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

Last change on this file since 166 was 166, checked in by fpvanagthoven, 13 years ago

Jos, nevermind. Mijn fout, ik heb die creator[0] in SessionConnector:117 weer teruggezet.

  • ToolBox?.php is overgezet naar javascript werking.
  • updateSequencer() werkt.
  • updateDividers() werkt.
  • t_setOutOfDate is in principe niet meer nodig, maar handig voor test purposes. Deze flagget de geselecteerde object voor een refresh.
  • saveSession() werkt! De pipeline editor is nu dus daadwerkelijk bruikbaar! [move/delete/clear/edit nog niet!]
  • Verkeerde calling code voor session->creator aangepast, login systeem werkt nu goed.
  • createObject.php werkt!
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 .= "1,";
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="title">Name: <?php echo $this->loadedSession->title; ?> </div>
45
46                <div id="seqContent"></div>
47
48                <div id="controls">
49                    <input type="submit" id="moveSelectedLeft" name="moveSelectedLeft" value="< Move" class="surveyButton" />
50                    <input type="submit" id="moveSelectedRight" name="moveSelectedRight" value="Move >" class="surveyButton" />
51                    <input type="submit" id="editSelected" name="editSelected" value="Edit step" class="surveyButton" />
52                    <input type="submit" id="deleteSelected" name="deleteSelected" value="Delete step" class="surveyButton" />
53                    <input type="submit" id ="clearPipeline" name="clearPipeline" value="Clear pipeline" class="surveyButton dis" disabled="true"/>
54                    <input type="checkbox" id="confirmClear" name="confirmClear" onChange="IsCheckEnabled(this, document.getElementById('clearPipeline'));" />Really clear?
55                    <input type="button" id="t_saveSession" name="t_saveSession" onClick="savePipeline();" value="t_Save_session!" />
56                    <input type="button" id="t_setOOD" name="t_setOOD" onClick="t_setOutOfDate();" value="t_Set_OOD" />
57                    <input type="button" id="t_updateSeq" name="t_updateSeq" onClick="updateSequencer();" value="t_Update_Seq" />
58                </div>
59                <div id="hiddenInputs">
60                    <input type="hidden" name="selectedStep" id="selectedStepField" value="" />
61                    <input type="hidden" name="pipelineString" id="pipelineStringField" value="<?php echo $stringPipeline; ?>" />
62                    <input type="hidden" name="pipelineTypes" id="pipelineTypeField" value="<?php echo $stringPipelineType; ?>" />
63                    <input type="hidden" name="pipelineUpDated" id="pipelineUpdatedField" value="<?php echo $stringPipelineUpdated; ?>" />
64                    <input type="hidden" name="numSteps" id="numSteps" value="<?php echo $numberOfSteps; ?>" />
65                    <input type="hidden" name="session" id="sessionField" value="<?php echo $this->loadedSession->uid; ?>" />
66                </div>
67            </fieldset>
68        </form>
69        <?php
70    }
71
72    public function DrawSteps() {
73        // Use AJAX to draw visual representations of step objects in a pipeline
74        // <TODO> Implement parameters such as screen size in the drawing of objects </TODO>
75        ?>
76        <script type="text/javascript">
77            drawSteps();
78        </script>
79
80
81        <?php
82    }
83
84    public function Javascript() {
85        $pipelineString = "ERROR";
86
87        echo "<!--$pipelineString-->";
88        ?>
89        <script type="text/javascript" src="js/sequencerScripts.js"></script>
90        <script type="text/javascript" src="js/jquery.js"></script>
91        <script type="text/javascript">
92            $(document).ready(function() {
93                drawSteps();
94            });
95        </script>
96        <?php
97    }
98
99    public function LoadSession($currentSession) {   // Initialize variables on page load.
100        if (!isset($currentSession)) {
101            redirect("selectSession.php");
102        }
103        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
104            $sessionResults = $this->dbi->get("Session", array("uid" => $currentSession));
105
106            if (count($sessionResults) > 0) {
107                $_SESSION['localSessionCopy'] = $sessionResults[0];
108                unset($_SESSION['updateNeeded']);
109            } else {
110                die("No session with that UID found!");
111            }
112        }
113
114        if (isset($_SESSION['localSessionCopy']) && !empty($_SESSION['localSessionCopy'])) {
115
116            $this->loadedSession = $_SESSION['localSessionCopy'];
117            unset($_SESSION['updateNeeded']);
118        }
119    }
120
121    public function HandlePostData() {
122        if (isset($_POST['editSelected'])) {
123            if (isset($_POST['selectedStep']) && !empty($_POST['selectedStep'])) {
124                redirect("editredirect.php");
125            }
126        }
127
128        if (isset($_POST['moveSelectedLeft'])) {
129            if (isset($_POST['selectedStep']) && !empty($_POST['selectedStep'])) {
130                $this->MoveStep($_POST['selectedStep'], -1);
131            }
132        }
133
134        if (isset($_POST['moveSelectedRight'])) {
135            if (isset($_POST['selectedStep']) && !empty($_POST['selectedStep'])) {
136                $this->MoveStep($_POST['selectedStep'], 1);
137            }
138        }
139
140        if (isset($_POST['objectToCreate']) && !empty($_POST['objectToCreate'])) {
141            switch (strtolower($_POST['objectToCreate'])) {
142                case "survey":
143                    redirect("createsurvey.php");
144                    break;
145                case "application":
146                    redirect("createapplication.php");
147                    break;
148                case "dashboard":
149                    redirect("createdashboard.php");
150                    break;
151                default:
152                    // Er is iets fout gegaan, want er is geen valid type meegegeven!
153                    break;
154            }
155        }
156    }
157
158    // Dit is een pure php versie. Deze slaat nog niet op in de Database, en reageert nog niet op
159    public function MoveStep($uid, $direction) {
160        $newSession = $this->loadedSession;
161
162        for ($i = 0; $i < count($newSession->pipeline); $i++) {
163            if ($newSession->pipeline[$i]->uid == $uid) {
164                $temp = $newSession->pipeline[$i];
165                $newSession->pipeline[$i] = $newSession->pipeline[$i + $direction];
166                $newSession->pipeline[$i + $direction] = $temp;
167                break;
168            }
169        }
170
171        $this->loadedSession = $newSession;
172        redirect("pipelineEditor.php");
173    }
174
175}
176?>
Note: See TracBrowser for help on using the repository browser.