Changeset 164 for Dev/trunk/classes


Ignore:
Timestamp:
11/22/11 16:42:37 (13 years ago)
Author:
fpvanagthoven
Message:

Editor wordt steeds meer JS based en werkt nu voor het grootste deel op een local copy van de session en de hidden input fields. Routine is ongeveer: Page load->DB query, meest up-to-date versie van pipeline en objecten worden geladen, uids daarvan ingevoerd in hidden fields. Alle operaties op de pipeline gebeuren alleen op deze hidden fields. Aanmaken van objecten roept wel php code aan die dit object toevoegt aan de DB, NIET aan de pipeline.

Bij edit/delete/logout/refresh of andere pagina wissel wordt saveSession.php aangeroepen en de informatie uit de hidden fields weggeschreven naar de PHP objecten (localCopy) en DB.

Bij changes aan een object wordt deze geflagged als niet up to date (pipelineUpdatedField),

-

Verder heb ik nog een $creator[0] in SessionConnector?.php:117 veranderd in $creator. Deze code is inderdaad niet opgewassen tegen meerdere resultaten, maar dit zou met de UID's toch nooit kunnen gebeuren (en deze check zit er voor andere arguments ook niet in. Ondertussen fixt dit wel zo'n 3 warnings/errors per pagina.
Jos, als dit niet de bedoeling was, feel free to revert.

Location:
Dev/trunk/classes
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • Dev/trunk/classes/Logo.php

    r151 r164  
    1717        echo '<div id="logo"><a href="index.php">Research Tool</a>';
    1818        if (isset($_SESSION['username'])) {
    19             echo '<a href="logout.php" style="font-size: 12pt;">Log out</a>';
     19            echo '<a href="index.php" onClick="savePipeline();" style="font-size: 12pt;">Log out</a>';
    2020        }
    2121        echo '</div>';
  • Dev/trunk/classes/SessionConnector.php

    r159 r164  
    115115                                $datetime = new DateTime();
    116116                                $datetime->setTimestamp(intval($result['?datetime']->label));
    117                                 $sessions[] = new Session($result['?uid']->label, $result['?title']->label, $creator[0], $datetime, $pipeline, $answersets);
     117                                $sessions[] = new Session($result['?uid']->label, $result['?title']->label, $creator, $datetime, $pipeline, $answersets);
    118118                        }
    119119                }
  • Dev/trunk/classes/pipelineSequencer.php

    r163 r164  
    11<?php
     2
    23/*
    34 * To change this template, choose Tools | Templates
     
    2324    public function init() {
    2425        $stringPipeline = "";
     26        $stringPipelineType = "";
     27        $stringPipelineUpdated = "";
     28        $numberOfSteps = 0;
     29       
    2530        if (is_array($this->loadedSession->pipeline)) {
    2631            foreach ($this->loadedSession->pipeline as $object) {
    2732                $stringPipeline .= "$object->uid,";
     33                $stringPipelineType .= get_class($object).",";
     34                $stringPipelineUpdated .= "1,";
     35                $numberOfSteps++;
     36               
    2837            }
    2938            $stringPipeline = rtrim($stringPipeline, ",");
     39            $stringPipelineType = rtrim($stringPipelineType, ",");
     40            $stringPipelineUpdated = rtrim($stringPipelineUpdated, ",");
     41           
    3042        } else {
    3143            $stringPipeline = $this->loadedSession->pipeline;
     44            $stringPipelineType = $_POST['pipelineTypes'];
     45            $stringPipelineUpdated = $_POST['pipelineUpdatedField'];
    3246        }
    3347        ?>
     
    4559                    <input type="submit" id ="clearPipeline" name="clearPipeline" value="Clear pipeline" class="surveyButton dis" disabled="true"/>
    4660                    <input type="checkbox" id="confirmClear" name="confirmClear" onChange="IsCheckEnabled(this, document.getElementById('clearPipeline'));" />Really clear?
     61                    <input type="button" id="t_saveSession" name="t_saveSession" onClick="savePipeline();" value="t_Save_session!" />
     62                    <input type="button" id="t_setOOD" name="t_setOOD" onClick="t_setOutOfDate();" value="t_Set_OOD" />
     63                    <input type="button" id="t_updateSeq" name="t_updateSeq" onClick="updateSequencer();" value="t_Update_Seq" />
    4764                </div>
    4865                <div id="hiddenInputs">
    4966                    <input type="hidden" name="selectedStep" id="selectedStepField" value="" />
    50                     <!-- <input type="hidden" name="pipelineString" id="pipelineStringField" value="123,456" /> -->
    5167                    <input type="hidden" name="pipelineString" id="pipelineStringField" value="<?php echo $stringPipeline; ?>" />
     68                    <input type="hidden" name="pipelineTypes" id="pipelineTypeField" value="<?php echo $stringPipelineType; ?>" />
     69                    <input type="hidden" name="pipelineUpDated" id="pipelineUpdatedField" value="<?php echo $stringPipelineUpdated; ?>" />
     70                    <input type="hidden" name="numSteps" id="numSteps" value="<?php echo $numberOfSteps; ?>" />
    5271                </div>
    5372            </fieldset>
     
    92111            if (count($sessionResults) > 0) {
    93112                $_SESSION['localSessionCopy'] = $sessionResults[0];
     113                unset($_SESSION['updateNeeded']);
    94114            } else {
    95115                die("No session with that UID found!");
    96116            }
    97117        }
    98             var_dump($_SESSION['localSessionCopy']);   
     118            //var_dump($_SESSION['localSessionCopy']);   
    99119       
    100120        if (isset($_SESSION['localSessionCopy']) && !empty($_SESSION['localSessionCopy'])) {
     
    115135        if (isset($_POST['moveSelectedLeft'])) {
    116136            if (isset($_POST['selectedStep']) && !empty($_POST['selectedStep'])) {
    117                 MoveStep($_POST['selectedStep'], -1);
     137                $this->MoveStep($_POST['selectedStep'], -1);
    118138            }
    119139        }
     
    121141        if (isset($_POST['moveSelectedRight'])) {
    122142            if (isset($_POST['selectedStep']) && !empty($_POST['selectedStep'])) {
    123                 MoveStep($_POST['selectedStep'], 1);
     143                $this->MoveStep($_POST['selectedStep'], 1);
    124144            }
    125145        }
     
    148168
    149169        for ($i = 0; $i < count($newSession->pipeline); $i++) {
    150             if ($newSession->pipeline[i]->uid == $uid) {
    151                 $temp = $newSession->pipeline[i];
    152                 $newSession->pipeline[i] = $newSession->pipeline[i + $direction];
    153                 $newSession->pipeline[i + $direction] = $newSession->pipeline[i];
     170            if ($newSession->pipeline[$i]->uid == $uid) {
     171                $temp = $newSession->pipeline[$i];
     172                $newSession->pipeline[$i] = $newSession->pipeline[$i + $direction];
     173                $newSession->pipeline[$i + $direction] = $temp;
    154174                break;
    155175            }
     
    157177
    158178        $this->loadedSession = $newSession;
     179        redirect("pipelineEditor.php");
    159180    }
    160181
    161     public function StoreToDb() {
    162         if (isset($_SESSION['localSessionCopy']) && !empty($_SESSION['localSessionCopy'])) {
    163             $this->dbi->set($_SESSION['localSessionCopy']);
    164             unset($_SESSION['updateNeeded']);
    165         }
    166     }
    167182
    168183}
Note: See TracChangeset for help on using the changeset viewer.