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

Last change on this file since 155 was 155, checked in by fpvanagthoven, 13 years ago
File size: 5.3 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
18    public function __construct() {
19        //nothing yet
20    }
21
22    public function init() {
23        $stringPipeline = "";
24        foreach ($this->loadedSession->pipeline as $object) {
25            $stringPipeline .= "$object->uid,";
26        }
27        $stringPipeline = rtrim($stringPipeline, ",");
28        ?>
29        <br /><form name="sequencerForm" action="pipelineEditor.php" method="post">
30            <fieldset id="sequencer">
31                <div class="title">Name: <?php echo $this->loadedSession->title; ?> </div>
32
33                <div id="seqContent"></div>
34
35                <div id="controls">
36                    <input type="submit" name="moveSelectedLeft" value="< Move" class="surveyButton" />
37                    <input type="submit" name="moveSelectedRight" value="Move >" class="surveyButton" />
38                    <input type="submit" name="editSelected" value="Edit step" class="surveyButton" />
39                    <input type="submit" name="deleteSelected" value="Delete step" class="surveyButton" />
40                    <input type="submit" name="clearPipeline" value="Clear pipeline" class="surveyButton dis" disabled="true"/>
41                    <input type="checkbox" name="confirmClear" onChange="IsCheckEnabled(this, document.sequencer.clearPipeline);" />Really clear?
42                </div>
43                <div id="hiddenInputs">
44                    <input type="hidden" name="selectedStep" id="selectedStepField" value="" />
45                    <!-- <input type="hidden" name="pipelineString" id="pipelineStringField" value="123,456" /> -->
46                    <input type="hidden" name="pipelineString" id="pipelineStringField" value="<?php echo $stringPipeline; ?>" />
47                </div>
48            </fieldset>
49        </form>
50        <?php
51    }
52
53    public function DrawSteps() {
54        // Use AJAX to draw visual representations of step objects in a pipeline
55        // <TODO> Implement parameters such as screen size in the drawing of objects </TODO>
56        ?>
57        <script type="text/javascript">
58            drawSteps();
59        </script>
60
61
62        <?php
63    }
64
65    public function Javascript() {
66        $pipelineString = "ERROR";
67
68        echo "<!--$pipelineString-->";
69        ?>
70        <script type="text/javascript" src="js/sequencerScripts.js"></script>
71        <script type="text/javascript" src="js/jquery.js"></script>
72        <script type="text/javascript">
73            $(document).ready(function() {
74                drawSteps();
75            });
76        </script>
77        <?php
78    }
79
80    public function GetFromDB($currentSession) {   // Initialize variables on page load.
81        $dbi = new DatabaseInterface();
82        if (!isset($currentSession)) {
83            $_SESSION['message'] = "No session set!";
84            redirect("selectSession.php");
85        }
86
87        $sessionResults = $dbi->get("Session", array("uid" => $currentSession));
88        if (count($sessionResults) > 0) {
89            $this->loadedSession = $sessionResults[0];
90        } else {        //No session with that UID found in database!
91            die("Invalid session!");
92        }
93    }
94
95    public function HandlePostData() {
96        if (isset($_POST['editSelected'])) {
97            if (isset($_POST['selectedStep']) && !empty($_POST['selectedStep'])) {
98                redirect("editredirect.php");
99            }
100        }
101
102        if (isset($_POST['moveSelectedLeft'])) {
103            if (isset($_POST['selectedStep']) && !empty($_POST['selectedStep'])) {
104                MoveStep($_POST['selectedStep'], -1);
105            }
106        }
107
108        if (isset($_POST['moveSelectedRight'])) {
109            if (isset($_POST['selectedStep']) && !empty($_POST['selectedStep'])) {
110                MoveStep($_POST['selectedStep'], 1);
111            }
112        }
113
114        if (isset($_POST['objectToCreate']) && !empty($_POST['objectToCreate'])) {
115            switch (strtolower($_POST['objectToCreate'])) {
116                case "survey":
117                    redirect("createsurvey.php");
118                    break;
119                case "application":
120                    redirect("createapplication.php");
121                    break;
122                case "dashboard":
123                    redirect("createdashboard.php");
124                    break;
125                default:
126                    // Er is iets fout gegaan, want er is geen valid type meegegeven!
127                    break;
128            }
129        }
130    }
131
132    // Dit is een pure php versie. Deze slaat nog niet op in de Database, en reageert nog niet op
133    public function MoveStep($uid, $direction) {
134        $newSession = $this->loadedSession;
135
136        for ($i = 0; $i < count($newSession->pipeline); $i++) {
137            if ($newSession->pipeline[i]->uid == $uid) {
138                $temp = $newSession->pipeline[i];
139                $newSession->pipeline[i] = $newSession->pipeline[i + $direction];
140                $newSession->pipeline[i + $direction] = $newSession->pipeline[i];
141                break;
142            }
143        }
144
145        $this->loadedSession = $newSession;
146    }
147
148}
149?>
Note: See TracBrowser for help on using the repository browser.