source: Dev/trunk/classes/pipelineSequencer.php @ 167

Last change on this file since 167 was 167, checked in by fpvanagthoven, 13 years ago
  • Save functie verbeterd, nu confirm? parameter.
  • Begin aan infopanel gemaakt
  • moveStep functie in JS gezet, werkt nog niet helemaal goed (refreshed niet!)
  • General CSS layout verbeterd van pipelineEditor.php
  • edit button werkt nu.
  • saveSession zit nog steeds een error in, nog niet weten te fixen. Heeft met creator te maken.
File size: 7.0 KB
Line 
1<?php
2/*
3 * To change this template, choose Tools | Templates
4 * and open the template in the editor.
5 */
6
7/**
8 * A visual interface object for editing and viewing a session's pipeline.
9 *
10 * @author Tschipper
11 */
12class PipelineSequencer {
13
14    // properties
15    private $loadedSession;
16    private $selectedStep;
17    private $dbi;
18
19    public function __construct() {
20        $this->dbi = new DatabaseInterface();
21    }
22
23    public function init() {
24        $stringPipeline = "";
25        $stringPipelineType = "";
26        $stringPipelineUpdated = "";
27        $numberOfSteps = 0;
28
29        if (is_array($this->loadedSession->pipeline)) {
30            foreach ($this->loadedSession->pipeline as $object) {
31                $stringPipeline .= "$object->uid,";
32                $stringPipelineType .= get_class($object) . ",";
33                $stringPipelineUpdated .= "0,";
34                $numberOfSteps++;
35            }
36        } else {
37            $stringPipeline = $this->loadedSession->pipeline;
38            $stringPipelineType = $_POST['pipelineTypes'];
39            $stringPipelineUpdated = $_POST['pipelineUpdatedField'];
40        }
41        ?>
42        <br /><form name="sequencerForm" action="pipelineEditor.php" method="post">
43            <fieldset id="sequencer">
44                <div class="fieldsetTitle">Name: <?php echo $this->loadedSession->title; ?> </div>
45
46                <div id="seqContent">
47                    <div id="seqContentWrapper"></div>
48                </div>
49
50                <div id="controls">
51                    <input type="button" id="moveSelectedL" value="< Move" class="surveyButton"  onClick="moveStep(-1);" />
52                    <input type="button" id="moveSelectedR" value="Move >" class="surveyButton"  onClick="moveStep(1);" />
53                    <input type="button" id="editSelected" value="Edit step" class="surveyButton" />
54                    <input type="submit" id="deleteSelected" name="deleteSelected" value="Delete step" class="surveyButton" />
55                    <input type="submit" id ="clearPipeline" name="clearPipeline" value="Clear pipeline" class="surveyButton dis" disabled="true"/>
56                    <input type="checkbox" id="confirmClear" name="confirmClear" onChange="IsCheckEnabled(this, document.getElementById('clearPipeline'));" />Really clear?
57                    <input type="button" id="t_saveSession" name="t_saveSession" onClick="savePipeline(true);" value="t_Save_session!" />
58                    <input type="button" id="t_setOOD" name="t_setOOD" onClick="t_setOutOfDate();" value="t_Set_OOD" />
59                    <input type="button" id="t_updateSeq" name="t_updateSeq" onClick="updateSequencer();" value="t_Update_Seq" />
60                </div>
61                <div id="hiddenInputs">
62                    <input type="hidden" name="selectedStep" id="selectedStepField" value="" />
63                    <input type="hidden" name="pipelineString" id="pipelineStringField" value="<?php echo $stringPipeline; ?>" />
64                    <input type="hidden" name="pipelineTypes" id="pipelineTypeField" value="<?php echo $stringPipelineType; ?>" />
65                    <input type="hidden" name="pipelineUpDated" id="pipelineUpdatedField" value="<?php echo $stringPipelineUpdated; ?>" />
66                    <input type="hidden" name="numSteps" id="numSteps" value="<?php echo $numberOfSteps; ?>" />
67                    <input type="hidden" name="session" id="sessionField" value="<?php echo $this->loadedSession->uid; ?>" />
68                </div>
69            </fieldset>
70        </form>
71        <?php
72    }
73
74    public function DrawSteps() {
75        // Use AJAX to draw visual representations of step objects in a pipeline
76        // <TODO> Implement parameters such as screen size in the drawing of objects </TODO>
77        ?>
78        <script type="text/javascript">
79            drawSteps();
80        </script>
81
82
83        <?php
84    }
85
86    public function Javascript() {
87        ?>
88        <script type="text/javascript" src="js/sequencerScripts.js"></script>
89        <script type="text/javascript" src="js/jquery.js"></script>
90        <script type="text/javascript">
91            $(document).ready(function() {
92                updateSequencer();
93            });
94        </script>
95        <?php
96    }
97
98    public function LoadSession($currentSession) {   // Initialize variables on page load.
99        if (!isset($currentSession)) {
100            redirect("selectSession.php");
101        }
102        if (isset($_SESSION['updateNeeded'])) {    // user has performed an operation that flags session to be reloaded from DB, or is first load of page for that session
103            $sessionResults = $this->dbi->get("Session", array("uid" => $currentSession));
104
105            if (count($sessionResults) > 0) {
106                $_SESSION['localSessionCopy'] = $sessionResults[0];
107                unset($_SESSION['updateNeeded']);
108            } else {
109                die("No session with that UID found!");
110            }
111        }
112
113        if (isset($_SESSION['localSessionCopy']) && !empty($_SESSION['localSessionCopy'])) {
114
115            $this->loadedSession = $_SESSION['localSessionCopy'];
116            unset($_SESSION['updateNeeded']);
117        }
118    }
119
120    public function HandlePostData() {
121        if (isset($_POST['editSelected'])) {
122            if (isset($_POST['selectedStep']) && !empty($_POST['selectedStep'])) {
123                redirect("editredirect.php");
124            }
125        }
126
127        if (isset($_POST['moveSelectedLeft'])) {
128            if (isset($_POST['selectedStep']) && !empty($_POST['selectedStep'])) {
129                $this->MoveStep($_POST['selectedStep'], -1);
130            }
131        }
132
133        if (isset($_POST['moveSelectedRight'])) {
134            if (isset($_POST['selectedStep']) && !empty($_POST['selectedStep'])) {
135                $this->MoveStep($_POST['selectedStep'], 1);
136            }
137        }
138
139        if (isset($_POST['objectToCreate']) && !empty($_POST['objectToCreate'])) {
140            switch (strtolower($_POST['objectToCreate'])) {
141                case "survey":
142                    redirect("createsurvey.php");
143                    break;
144                case "application":
145                    redirect("createapplication.php");
146                    break;
147                case "dashboard":
148                    redirect("createdashboard.php");
149                    break;
150                default:
151                    // Er is iets fout gegaan, want er is geen valid type meegegeven!
152                    break;
153            }
154        }
155    }
156
157    // Dit is een pure php versie. Deze slaat nog niet op in de Database, en reageert nog niet op
158    public function MoveStep($uid, $direction) {
159        $newSession = $this->loadedSession;
160
161        for ($i = 0; $i < count($newSession->pipeline); $i++) {
162            if ($newSession->pipeline[$i]->uid == $uid) {
163                $temp = $newSession->pipeline[$i];
164                $newSession->pipeline[$i] = $newSession->pipeline[$i + $direction];
165                $newSession->pipeline[$i + $direction] = $temp;
166                break;
167            }
168        }
169
170        $this->loadedSession = $newSession;
171        redirect("pipelineEditor.php");
172    }
173
174}
175?>
Note: See TracBrowser for help on using the repository browser.