<?php /* * Copyright (c) Codiad & Kent Safranski (codiad.com), distributed * as-is and without warranty under the MIT License. See * [root]/license.txt for more. This information must remain intact. */ require_once('../../common.php'); require_once('./class.project.php'); ////////////////////////////////////////////////////////////////// // Verify Session or Key ////////////////////////////////////////////////////////////////// checkSession(); $Project = new Project; switch( $_GET['action'] ) { ////////////////////////////////////////////////////////////// // List Projects Mini Sidebar ////////////////////////////////////////////////////////////// case 'sidelist': // Get projects data $projects = $Project->get_projects(); ?> <ul> <?php //natcasesort( $projects ); foreach( $projects as $project => $data ) { if( $_GET['trigger'] == 'true' ) { ?> <li onclick="codiad.project.open('<?php echo( $data['path'] );?>');"><div class="icon-archive icon"></div><?php echo( $data['name'] );?></li> <?php } else { ?> <li ondblclick="codiad.project.open('<?php echo( $data['path'] );?>');"><div class="icon-archive icon"></div><?php echo( $data['name'] );?></li> <?php } } ?> </ul> <?php break; ////////////////////////////////////////////////////////////// // List Projects ////////////////////////////////////////////////////////////// case 'list': //Get projects data $projects = $Project->get_projects(); ?> <label><?php i18n("Project List"); ?></label> <div id="project-list"> <table width="100%"> <tr> <th width="70"><?php i18n( "Open");?></th> <th width="150"><?php i18n( "Project Name" );?></th> <th width="250"><?php i18n( "Path" );?></th> <th width="70"><?php i18n( "Access" );?></th> <th width="70"><?php i18n( "Delete" );?></th> </tr> </table> <div class="project-wrapper"> <table width="100%" style="word-wrap: break-word;word-break: break-all;"> <?php foreach( $projects as $project => $data ) { $show = true; if( $show ) { ?> <tr> <td width="70"><a onclick="codiad.project.open('<?php echo( $data['path'] );?>');" class="icon-folder bigger-icon"></a></td> <td width="150"><?php echo($data['name']);?></td> <td width="250"><?php echo($data['path']);?></td> <?php $owner = $Project->get_owner( $data['path'] ); if( $owner == 'nobody' ) { ?> <td width="70"><a onclick="codiad.message.error(i18n('Public projects can not be managed'));" class="icon-block bigger-icon"></a></td> <?php } elseif( $owner !== $_SESSION["user"] ) { ?> <td width="70"><a onclick="codiad.message.error(i18n('Projects owned by others can not be managed'));" class="icon-block bigger-icon"></a></td> <?php } else { ?> <td width="70"><a onclick="codiad.project.manage_access( '<?php echo( $data['path'] );?>' );" class="icon-lock bigger-icon"></a></td> <?php } ?> <?php if( $_SESSION['project'] == $data['path'] ) { ?> <td width="70"><a onclick="codiad.message.error(i18n('Active Project Cannot Be Removed'));" class="icon-block bigger-icon"></a></td> <?php } elseif( $owner !== $_SESSION["user"] ) { ?> <td width="70"><a onclick="codiad.message.error(i18n('Projects owned by others can not be deleted'));" class="icon-block bigger-icon"></a></td> <?php } else { ?> <td width="70"><a onclick="codiad.project.delete('<?php echo($data['name']);?>','<?php echo($data['path']);?>');" class="icon-cancel-circled bigger-icon"></a></td> <?php } ?> </tr> <?php } } ?> </table> </div> </div> <button class="btn-left" onclick="codiad.project.create();"><?php i18n("New Project");?></button> <button class="btn-right" onclick="codiad.modal.unload();return false;"><?php i18n("Close");?></button> <?php break; ////////////////////////////////////////////////////////////////////// // Create New Project ////////////////////////////////////////////////////////////////////// case 'create': ?> <form> <label><?php i18n( "Project Name" );?></label> <input name="project_name" autofocus="autofocus" autocomplete="off"> <label><?php i18n( "Folder Name or Absolute Path" );?></label> <input name="project_path" autofocus="off" autocomplete="off"> <label><?php i18n( "Public Project" );?></label> <select name="public_project"> <option value="false">False</option> <option value="true">True</option> </select> <p><small><i>Note: Everyone will have full access to public projects.</i></small></p> <!-- Clone From GitHub --> <div style="width: 500px;"> <table class="hide" id="git-clone"> <tr> <td> <label><?php i18n( "Git Repository" );?></label> <input name="git_repo"> </td> <td width="5%"> </td> <td width="25%"> <label><?php i18n( "Branch" );?></label> <input name="git_branch" value="master"> </td> </tr> <tr> <td colspan="3" class="note"><?php i18n( "Note: This will only work if your Git repo DOES NOT require interactive authentication and your server has git installed." );?></td> </tr> </table> </div> <!-- /Clone From GitHub --> <?php $action = 'codiad.project.list();'; if( $_GET['close'] == 'true' ) { $action = 'codiad.modal.unload();'; } ?> <button class="btn-left"><?php i18n( "Create Project" );?></button> <button onclick="$('#git-clone').slideDown(300); $(this).hide(); return false;" class="btn-mid"><?php i18n( "...From Git Repo" ); ?></button> <button class="btn-right" onclick="<?php echo $action;?>return false;"><?php i18n( "Cancel" );?></button> </form> <?php break; ////////////////////////////////////////////////////////////// // Manage Project Access ////////////////////////////////////////////////////////////// case 'manage_access': /** * Check and see if the path of the project is set. Also check and * see if the project the user is attempting to view permissions for * is one that they own. */ if( ! isset( $_GET["path"] ) || ! $Project->check_owner( $_GET["path"], true ) ) { ?> <pre>Error, you either do not own this project or it is a public project.</pre> <?php return; } // Get projects data $path = $_GET['path']; $project = $Project->get_project( $path ); $access = json_decode( $project["access"], true ); $users = get_users( "return", true ); ?> <form> <input type="hidden" name="project_path" value="<?php echo( $path );?>"> <label><span class="icon-pencil"></span><?php i18n( "Add Users" );?></label> <input id="search_users" type="text" onkeyup="codiad.project.search_users();" /> <select id="user_list" name="user_list"> <?php foreach( $users as $user ) { ?> <option value="<?php echo htmlentities( $user );?>"><?php echo htmlentities( $user );?></option> <?php } ?> </select> <button class="btn-left" onclick="codiad.project.add_user();">Add User</button> <?php if( $access == null ) { ?> <p>No users have been given access.</p> <?php } else { ?> <table id="access_list"> <?php foreach( $access as $user ) { ?> <tr> <td> <p><?php echo htmlentities( $user );?></p> </td> <td> <button class="btn-left" onclick="codiad.project.remove_user( '<?php echo htmlentities( $user );?>' );">Remove Access</button> </td> </tr> <?php } ?> </table> <?php } ?> <button class="btn-right" onclick="codiad.modal.unload();return false;"><?php i18n( "Done" );?></button> <form> <?php break; ////////////////////////////////////////////////////////////////// // Rename ////////////////////////////////////////////////////////////////// case 'rename': ?> <form> <input type="hidden" name="project_path" value="<?php echo( $_GET['path'] );?>"> <label><span class="icon-pencil"></span><?php i18n( "Rename Project" );?></label> <input type="text" name="project_name" autofocus="autofocus" autocomplete="off" value="<?php echo( $_GET['name'] );?>"> <button class="btn-left"><?php i18n( "Rename" );?></button> <button class="btn-right" onclick="codiad.modal.unload(); return false;"><?php i18n( "Cancel" );?></button> <form> <?php break; ////////////////////////////////////////////////////////////////////// // Delete Project ////////////////////////////////////////////////////////////////////// case 'delete': ?> <form> <input type="hidden" name="project_path" value="<?php echo( $_GET['path'] );?>"> <label><?php i18n( "Confirm Project Deletion" );?></label> <pre><?php i18n( "Name:" );?> <?php echo( $_GET['name'] );?>, <?php i18n( "Path:" )?> <?php echo( $_GET['path'] );?></pre> <table> <tr> <td width="5"> <input type="checkbox" name="delete" id="delete" value="true"></td> <td><?php i18n( "Delete Project Files" ); ?></td> </tr> <tr> <td width="5"><input type="checkbox" name="follow" id="follow" value="true"></td> <td><?php i18n( "Follow Symbolic Links " );?></td> </tr> </table> <button class="btn-left"><?php i18n( "Confirm" );?></button><button class="btn-right" onclick="codiad.project.list();return false;"><?php i18n( "Cancel" );?></button> <?php break; } ?>