// set login $_SESSION['signin'] = true; $_SESSION['project_name'] = $username; $_SESSION['project_title'] = $logins[$username]['title']; $_SESSION['emails'] = $logins[$username]['emails']; // Wich mode? $set_mode = 'read'; // first check if a global alive file exists, if not, we are in edit mode if (!is_file(alive_file())) { $set_mode = 'edit'; dbug('no alive file found'); } else { // not sure yet, does the file is active, or old? // load file dbug('alive file found'); include alive_file(); dbug($_alive); if ($alive_now - alive_file_value('refresh') > $alive_timeout) { // file is OLD $set_mode = 'edit'; alive_file_delete(); dbug('alive file is old, deleting...'); } } dbug(array('set_mode' => $set_mode)); $_SESSION['mode'] = $set_mode; $_SESSION['alive'] = $alive_now; // redirect header('Location: ../gantt.html'); } else { // wrong login
break; case 'save': if (!isset($_POST['data'])) { echo '{"ok":false,"errorMessages":["No data to save"]}'; exit; } if (session_value('mode') != 'edit') { echo '{"ok":false,"errorMessages":["You cannot save in read mode"]}'; exit; } // save data $data = $_POST['data']; file_put_contents($file, $lock . $data); file_put_contents($bkp_file, $lock . $data); // save alive status file_put_contents(alive_file(), '<?php $_alive[\'save\'] = ' . $alive_now . '; $_alive[\'refresh\'] = ' . $alive_now . '; ?>'); // send to client echo '{"ok":true,"data":' . $data . '}'; exit; break; case 'load': if (!is_file($file)) { echo '{"ok":true,"mode":"' . session_value('mode') . '","data":{"tasks":[],"selectedRow":0,"deletedTaskIds":[],"resources":[{"id":"tmp_1","name":"Resource 1"},{"id":"tmp_2","name":"Resource 2"},{"id":"tmp_3","name":"Resource 3"},{"id":"tmp_4","name":"Resource 4"},{"id":"tmp_5","name":"Resource 5"},{"id":"tmp_6","name":"Resource 6"},{"id":"tmp_7","name":"Resource 7"},{"id":"tmp_8","name":"Resource 8"},{"id":"tmp_9","name":"Resource 9"},{"id":"tmp_10","name":"Resource 10"}],"canWrite":true,"canWriteOnParent":true}}'; exit; } //$data = '{"tasks":[{"id":-1,"name":"Gantt editor","code":"","level":0,"status":"STATUS_ACTIVE","start":1363060800000,"duration":21,"end":1365566399999,"startIsMilestone":true,"endIsMilestone":false,"collapsed":false,"assigs":[]},{"id":-2,"name":"coding","code":"","level":1,"status":"STATUS_ACTIVE","start":1363060800000,"duration":10,"end":1364270399999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"description":"","progress":0},{"id":-3,"name":"gant part","code":"","level":2,"status":"STATUS_ACTIVE","start":1363060800000,"duration":2,"end":1363233599999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":""},{"id":-4,"name":"editor part","code":"","level":2,"status":"STATUS_SUSPENDED","start":1363233600000,"duration":4,"end":1363751999999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"3"},{"id":-5,"name":"testing","code":"","level":1,"status":"STATUS_SUSPENDED","start":1364875200000,"duration":6,"end":1365566399999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"2:5","description":"","progress":0},{"id":-6,"name":"test on safari","code":"","level":2,"status":"STATUS_SUSPENDED","start":1364875200000,"duration":2,"end":1365047999999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":""},{"id":-7,"name":"test on ie","code":"","level":2,"status":"STATUS_SUSPENDED","start":1365048000000,"duration":3,"end":1365479999999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"6"},{"id":-8,"name":"test on chrome","code":"","level":2,"status":"STATUS_SUSPENDED","start":1365048000000,"duration":2,"end":1365220799999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"6"}],"selectedRow":0,"deletedTaskIds":[],"resources":[{"id":"tmp_1","name":"Resource 1"},{"id":"tmp_2","name":"Resource 2"},{"id":"tmp_3","name":"Resource 3"},{"id":"tmp_4","name":"Resource 4"},{"id":"tmp_5","name":"Resource 5"},{"id":"tmp_6","name":"Resource 6"},{"id":"tmp_7","name":"Resource 7"},{"id":"tmp_8","name":"Resource 8"},{"id":"tmp_9","name":"Resource 9"},{"id":"tmp_10","name":"Resource 10"}],"roles":[{"id":"tmp_1","name":"Project Manager"},{"id":"tmp_2","name":"Worker"},{"id":"tmp_3","name":"Stakeholder/Customer"}],"canWrite":true,"canWriteOnParent":true}'; $data = file_get_contents($file); // remove lock
function alive_file_delete() { if (is_file(alive_file())) { unlink(alive_file()); } }