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

Last change on this file since 178 was 178, checked in by fpvanagthoven, 13 years ago
  • returnQuestionDisplay.php is vergelijkbaar met returnStep.php. Stuur "uids=blablablabla" erheen en je krijgt de HTML markup voor de question display terug als plain text. Deze gaat worden gebruikt in de surveyEditor, zelfde principe als pipelineSequencer/returnStep.php
  • Nieuwe icons, alpha channel. Betere styling mee mogelijk, formaat/cropping is nog wel een beetje weird.
  • surveyEditorWidget.php is de survey versie van pipelineSequencer.php. (Ook hier weer een consistent naming scheme toepassen? Als in: pipelineEditor->pipelineEditorWidget, surveyEditor->surveyEditorWidget, etc...?
  • layout van pipelineEditor.php klopt nu weer en werkt nu helemaal op de nieuwe stylesheet, visualeditors.css. Logo, header en navbar stuff moet nog wel gemaakt worden.
  • surveyEditorScripts.js: scripts voor, verrassing, surveyEditor.php. loadSurvey werkt, drawQuestions ook bijna. BELANGRIJK! Deze editor werkt met global variables ipv de hidden fields die in pipelineSequencer.php gebruikt worden. Om conflicten te voorkomen wordt alles opgeslagen in een object literal "surveyEditor".
File size: 8.5 KB
RevLine 
[144]1<?php
2/*
3 * To change this template, choose Tools | Templates
4 * and open the template in the editor.
5 */
6
7/**
[151]8 * A visual interface object for editing and viewing a session's pipeline.
[144]9 *
[151]10 * @author Tschipper
[144]11 */
[146]12class PipelineSequencer {
[144]13
14    // properties
[152]15    private $loadedSession;
[144]16    private $selectedStep;
[163]17    private $dbi;
[144]18
[152]19    public function __construct() {
[163]20        $this->dbi = new DatabaseInterface();
[146]21    }
[144]22
[150]23    public function init() {
[153]24        $stringPipeline = "";
[164]25        $stringPipelineType = "";
26        $stringPipelineUpdated = "";
27        $numberOfSteps = 0;
[166]28
[163]29        if (is_array($this->loadedSession->pipeline)) {
30            foreach ($this->loadedSession->pipeline as $object) {
31                $stringPipeline .= "$object->uid,";
[166]32                $stringPipelineType .= get_class($object) . ",";
[167]33                $stringPipelineUpdated .= "0,";
[164]34                $numberOfSteps++;
[163]35            }
36        } else {
[156]37            $stringPipeline = $this->loadedSession->pipeline;
[164]38            $stringPipelineType = $_POST['pipelineTypes'];
39            $stringPipelineUpdated = $_POST['pipelineUpdatedField'];
[156]40        }
[144]41        ?>
[178]42        <br />
43
44        <div id="sequencer" class="largeFrame">
45            <div class="largeTitle">Name <?php echo $this->loadedSession->title; ?></div>
46           
47            <div id="seqContent" class="innerLargeFrame">
48                <div id="seqContentWrapper"></div>
49            </div>
50
51            <div class="controls">
52                <input type="button" id="moveSelectedL" value="< Move" class="smallButton"  onClick="moveStep(-1);" />
53                <input type="button" id="moveSelectedR" value="Move >" class="smallButton"  onClick="moveStep(1);" />
54                <input type="button" id="editSelected" value="Edit step" class="smallButton" onClick="editStep();" />
55                <input type="button" id="deleteSelected" value="Delete step" class="smallButton" onClick="deleteStep();" />
56                <input type="submit" id ="clearPipeline" name="clearPipeline" value="Clear pipeline" class="smallButton dis" disabled="true"/>
57                <input type="checkbox" id="confirmClear" name="confirmClear" onChange="IsCheckEnabled(this, document.getElementById('clearPipeline'));" />Really clear?
58                <input type="button" value="debug_save" onClick="savePipeline(true);" />
59            </div>
60           
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        </div>
70
71        <!--
72        <form name="sequencerForm" action="pipelineEditor.php" method="post">
[151]73            <fieldset id="sequencer">
[167]74                <div class="fieldsetTitle">Name: <?php echo $this->loadedSession->title; ?> </div>
[144]75
[167]76                <div id="seqContent">
77                    <div id="seqContentWrapper"></div>
78                </div>
[153]79
[144]80                <div id="controls">
[167]81                    <input type="button" id="moveSelectedL" value="< Move" class="surveyButton"  onClick="moveStep(-1);" />
82                    <input type="button" id="moveSelectedR" value="Move >" class="surveyButton"  onClick="moveStep(1);" />
[168]83                    <input type="button" id="editSelected" value="Edit step" class="surveyButton" onClick="editStep();" />
[169]84                    <input type="button" id="deleteSelected" value="Delete step" class="surveyButton" onClick="deleteStep();" />
[156]85                    <input type="submit" id ="clearPipeline" name="clearPipeline" value="Clear pipeline" class="surveyButton dis" disabled="true"/>
86                    <input type="checkbox" id="confirmClear" name="confirmClear" onChange="IsCheckEnabled(this, document.getElementById('clearPipeline'));" />Really clear?
[168]87                    <input type="button" value="debug_save" onClick="savePipeline(true);" />
[144]88                </div>
[154]89                <div id="hiddenInputs">
[153]90                    <input type="hidden" name="selectedStep" id="selectedStepField" value="" />
[155]91                    <input type="hidden" name="pipelineString" id="pipelineStringField" value="<?php echo $stringPipeline; ?>" />
[164]92                    <input type="hidden" name="pipelineTypes" id="pipelineTypeField" value="<?php echo $stringPipelineType; ?>" />
93                    <input type="hidden" name="pipelineUpDated" id="pipelineUpdatedField" value="<?php echo $stringPipelineUpdated; ?>" />
94                    <input type="hidden" name="numSteps" id="numSteps" value="<?php echo $numberOfSteps; ?>" />
[166]95                    <input type="hidden" name="session" id="sessionField" value="<?php echo $this->loadedSession->uid; ?>" />
[153]96                </div>
[144]97            </fieldset>
98        </form>
[178]99        -->
[144]100        <?php
101    }
102
[153]103    public function Javascript() {
[150]104        ?>
[152]105        <script type="text/javascript" src="js/sequencerScripts.js"></script>
[153]106        <script type="text/javascript" src="js/jquery.js"></script>
107        <script type="text/javascript">
108            $(document).ready(function() {
[168]109                updateSequencer(true);      // true means it is the first refresh of the page.
[153]110            });
111        </script>
[150]112        <?php
113    }
114
[163]115    public function LoadSession($currentSession) {   // Initialize variables on page load.
[152]116        if (!isset($currentSession)) {
117            redirect("selectSession.php");
[151]118        }
[163]119        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
120            $sessionResults = $this->dbi->get("Session", array("uid" => $currentSession));
[166]121
[163]122            if (count($sessionResults) > 0) {
123                $_SESSION['localSessionCopy'] = $sessionResults[0];
[164]124                unset($_SESSION['updateNeeded']);
[163]125            } else {
126                die("No session with that UID found!");
127            }
[152]128        }
[166]129
[163]130        if (isset($_SESSION['localSessionCopy']) && !empty($_SESSION['localSessionCopy'])) {
[166]131
[163]132            $this->loadedSession = $_SESSION['localSessionCopy'];
133            unset($_SESSION['updateNeeded']);
134        }
[151]135    }
136
[154]137    public function HandlePostData() {
138        if (isset($_POST['editSelected'])) {
139            if (isset($_POST['selectedStep']) && !empty($_POST['selectedStep'])) {
140                redirect("editredirect.php");
141            }
142        }
143
144        if (isset($_POST['moveSelectedLeft'])) {
145            if (isset($_POST['selectedStep']) && !empty($_POST['selectedStep'])) {
[164]146                $this->MoveStep($_POST['selectedStep'], -1);
[154]147            }
148        }
149
150        if (isset($_POST['moveSelectedRight'])) {
151            if (isset($_POST['selectedStep']) && !empty($_POST['selectedStep'])) {
[164]152                $this->MoveStep($_POST['selectedStep'], 1);
[154]153            }
154        }
155
156        if (isset($_POST['objectToCreate']) && !empty($_POST['objectToCreate'])) {
157            switch (strtolower($_POST['objectToCreate'])) {
158                case "survey":
159                    redirect("createsurvey.php");
160                    break;
161                case "application":
162                    redirect("createapplication.php");
163                    break;
164                case "dashboard":
165                    redirect("createdashboard.php");
166                    break;
167                default:
168                    // Er is iets fout gegaan, want er is geen valid type meegegeven!
169                    break;
170            }
171        }
172    }
173
174    // Dit is een pure php versie. Deze slaat nog niet op in de Database, en reageert nog niet op
175    public function MoveStep($uid, $direction) {
176        $newSession = $this->loadedSession;
177
178        for ($i = 0; $i < count($newSession->pipeline); $i++) {
[164]179            if ($newSession->pipeline[$i]->uid == $uid) {
180                $temp = $newSession->pipeline[$i];
181                $newSession->pipeline[$i] = $newSession->pipeline[$i + $direction];
182                $newSession->pipeline[$i + $direction] = $temp;
[154]183                break;
184            }
185        }
186
187        $this->loadedSession = $newSession;
[164]188        redirect("pipelineEditor.php");
[154]189    }
190
[144]191}
192?>
Note: See TracBrowser for help on using the repository browser.