Changeset 191 for Dev


Ignore:
Timestamp:
12/21/11 17:52:00 (13 years ago)
Author:
fpvanagthoven
Message:
  • Clean up van bestanden die niet meer gebruikt worden/niet nodig zijn/zijn gemerged met bestaande files.
  • Daarnaast question/survey editor nu grotendeels werkend (min save functie...)
  • Inloggen werkt nu op userUid ipv naam, werkt beter met het aanmaken van creators.
  • Bug in returnObjectDisplay gefixt, er stond nog een var_dump tussen de echoes. JSON houdt niet van HTML tags.
Location:
Dev/trunk
Files:
3 added
9 deleted
10 edited

Legend:

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

    r185 r191  
    2727            $surveyResults = $dbi->get("Survey", array("uid" => $_POST['objectUid']));
    2828            if (!empty($surveyResults)) {
    29                 (is_array($surveyResults)) ? $this->loadedSurvey = $surveyResults[0] : $this->loadedSurvey = $surveyResults;
     29                $this->loadedSurvey = $surveyResults[0];
    3030            } else {
    3131                die("No surveys found!");
     
    3939        $questionString = "";
    4040        foreach ($this->loadedSurvey->questions as $question) {
    41             $questionString .= $question->uid . ",";
     41            $questionString .= $question->code . ",";
    4242        }
    4343        // echo the HTML markup to display the editor on the screen
     
    7272
    7373                <input type="button" value="Discard survey" onClick="javascript:alert('discard not yet supported');" class="smallButton" />
    74                 <input type="button" value="Save survey" onClick="javascript:alert('save not yet supported');" class="smallButton" />
     74                <input type="button" value="Save survey" onClick="saveSurvey(true);" class="smallButton" />
    7575            </div>
    7676
  • Dev/trunk/createObject.php

    r188 r191  
    1414
    1515$dbi = new DatabaseInterface();
    16 $creator_results = $dbi->get("User", array("name" => $_SESSION['username']));
     16$creator_results = $dbi->get("User", array("uid" => $_SESSION['userUid']));
     17$creator = $creator_results[0];
    1718
    18 if (count($creator_results) > 0) {
    19     $creator = $creator_results[0];
    20 } else {
    21     //die ("Invalid creator, make sure you are logged in!");
     19//var_dump($creator);
     20
     21if (!$creator) {
     22    die("Stuff is broke, yo!");
    2223}
    2324
  • Dev/trunk/css/visualeditors.css

    r188 r191  
    117117    box-shadow: 2px 2px 1px #888;
    118118    border: 1px solid #FFF;
     119    margin: 0;
    119120}
    120121
     
    357358
    358359#seqContentWrapper .divider.vertical {
    359     height: 1px;
    360     width: 200px;
    361     background-color: #FF00FF; /* VIES MAGENTA! */
    362     margin: 1em auto;
     360    float: left;
     361    clear: both;
     362    height: 2px;
     363    width: 400px;
     364    background-color: #555; /* VIES MAGENTA! */
     365    margin: 0.75em 100px;
    363366}
    364367
     
    415418}
    416419
     420.smallFrame .smallButton {
     421    width:55px;
     422}
     423
  • Dev/trunk/getInfo.php

    r186 r191  
    3737    case "Session":
    3838        $returnString .= "<span class='property'>Title: </span><span class='value'>$result->title</span>";
     39        $result->evaluate();
    3940        $returnString .= "<span class='property'>Created: </span><span class='value'>" . $result->datetime->format("H:i:s, d-m-Y") . " by " . $result->creator->name . "</span>";
    4041        $cS = 0; $cD = 0; $cA = 0;
  • Dev/trunk/index.php

    r152 r191  
    88
    99//Even voor tijdelijk, aangezien er nog pagina's missen en redirects daarom niet goed werken:
    10 if (isset($_SESSION['username'])) {
     10if (isset($_SESSION['userUid'])) {
    1111    redirect("logout.php");
    1212}
     
    1515
    1616if (isset($_POST['register'])) {
    17     if ($_POST['username'] != null && $_POST['password'] != null) {
     17    if (isset($_POST['username']) && isset($_POST['password'])) {
    1818        $dbi = new DatabaseInterface();
    1919        $user_results = $dbi->get("user", array("name" => $_POST['username']));
    20         $user_exists = (count($user_results) > 0);
    21         if (!$user_exists) {
     20        if (count($user_results) == 0 || !$user_results) {
    2221            if (strlen($_POST['password']) > 6) {
    2322                $user = new User(null, $_POST['username'], $_POST['password']);
    2423                $dbi->set($user);
    25                 $_SESSION['username'] = $_POST['username'];
     24                $_SESSION['userUid'] = $user->uid;
    2625            } else {
    27                 $errorMessage[] = "Password is too short!";
    28                 //echo "Password is too short!";
     26                $errorMessage[] = "Password is too short";
    2927            }
    3028        }
    3129        else
    3230            $errorMessage[] = "Username already exists, try something else!";
    33         //echo "Username already exists, try something else";
    3431    }
    3532    else
    3633        $errorMessage[] = "Please fill in a username and password";
    37     //echo "please fill in a username and password";
    3834}
    3935
    40 if (isset($_POST['login'])) {
     36if (isset($_POST['login'])) {   // User clicked the login button
    4137    $dbi = new DatabaseInterface();
    4238    $user_results = $dbi->get("user", array("name" => $_POST['username']));
    4339    if (isset($user_results[0])) {
    4440        if ($user_results[0]->password == $_POST['password']) {
    45             $_SESSION['username'] = $user_results[0]->name;
    46             // USER HAS LOGGED IN
     41            $_SESSION['userUid'] = $user_results[0]->uid;
    4742        } else {
    4843            $errorMessage[] = "Incorrect password!";
    49             //echo "Incorrect password!";
    5044        }
    5145    } else {
    5246        $errorMessage[] = "Username doesn't exist!";
    53         //echo "Username doesn't exist!";
    5447    }
    5548}
    5649
    57 if (isset($_SESSION['username'])) {
     50if (isset($_SESSION['userUid'])) {  // User just registered a new account
    5851    redirect('selectSession.php');
    5952}
  • Dev/trunk/js/generalScripts.js

    r183 r191  
    7676}
    7777
     78// Function that handles updating of info panel via AJAX getInfo.php. Currently operates on HTML to paste into #infoPanelContent, should eventually involve JSON arrays, to have more control over formatting.
     79function ajaxInfoRequest(uid, el, type) {
     80    // Info panel update.
     81   
     82    var c = "uid="+uid;
     83    c += "&type="+type;
     84    var u = "getInfo.php";
     85    newAjaxRequest(c, u, function(result) {
     86        el.innerHTML = result.responseText;
     87    }, true);
     88}
     89
    7890// Function to save the object currently being edited.
    7991// !! Still needs to be generalized !!
  • Dev/trunk/js/sequencerScripts.js

    r188 r191  
    7373        // settings fields first
    7474        initSequencer();
    75        
     75        debugger;
    7676        switch (sequencer.settings.content.contentType.toLowerCase()) {
    7777            case "session":
     
    230230        requestString = "args="+JSON.stringify(args);
    231231        newAjaxRequest(requestString, "returnObjectDisplay.php", function(result){
     232            console.log(result.responseText);
    232233            insertNewObjects(result.responseText, needsUpdating);
    233234        }, true);
     
    290291
    291292        // This means that one or more steps are being added, not an entire pipeline's worth of them
    292         debugger;
    293293        needsUpdating = new Array();
    294294        args = [];
     
    305305        requestString = "args="+JSON.stringify(args);
    306306        newAjaxRequest(requestString, "returnObjectDisplay.php", function(result){
     307            //console.log(result.responseText);
    307308            insertNewObjects(result.responseText, needsUpdating);
    308309        }, true);
     
    388389
    389390function insertNewObjects(responseText, needsUpdating) {
     391    //console.log(responseText);
    390392    // Container function that calls different insertNewX() functions depending on content type. Called from updateSequencer().
    391393    var response = JSON.parse(responseText);
     
    520522    // Loop through returned question objects
    521523    for (var i = 0; i < response.length; i++) {
     524       
     525        /*
     526         * The following block of code defines the layout and composition of the question display
     527         */
     528       
    522529        // Define the outer frame
    523530        var frameDiv = ce("div");
     
    570577        frameDiv.appendChild(controlsDiv);
    571578       
     579        /*
     580         * This is where the layout code ends
     581         * We proceed to insertion of the created DIV into the document
     582         */
     583       
    572584        // We now have a full question display DIV contained in the frameDiv variable. We should now add this to the sequencer content.
    573         debugger;
    574585        for (var j = needsUpdating.length - 1; j >= 0; j--) {
    575586            if (needsUpdating[j][1] != response[i].uid) continue;
     
    587598   
    588599    sequencer.state.updating = false;   //re-enable user commands
     600}
     601
     602function saveSurvey(confirmSave) {
     603    // Sends an AJAX request to the PHP server that saves the current object.
     604    var answer = (confirmSave == true) ? confirm("Save changes?") : true;
     605    if (answer == false) return;
     606   
     607    // Check for object type being edited, adjust requestString and target URL to this information.
     608    var request = new Object(), url, requestString;
     609    switch (sequencer.settings.content.contentType.toLowerCase()) {
     610        case "survey":
     611            url = "saveSurvey.php";
     612            request.title = sequencer.survey.title;
     613            request.uid = sequencer.survey.uid;
     614            request.description = sequencer.survey.description;
     615            request.questions = new Object();
     616            request.questions.uids = sequencer.survey.questions.uids;
     617            requestString = "args="+JSON.stringify(request);
     618            console.log(request);
     619            newAjaxRequest(requestString, url, function(result){
     620                console.log(result.responseText);
     621            }, true);
     622            break;
     623        case "blaaaat":
     624            url = "savesession.php";
     625            request.pipeline.uids = sequencer.session.pipeline.uids;
     626            request.pipeline.types = sequencer.session.pipeline.types;
     627            break;
     628    }
    589629}
    590630
     
    648688}
    649689
    650 function ajaxInfoRequest(uid, el, type) {
    651     // Info panel update.
    652    
    653     var c = "uid="+uid;
    654     c += "&type="+type;
    655     var u = "getInfo.php";
    656     newAjaxRequest(c, u, function(result) {
    657         el.innerHTML = result.responseText;
    658     }, true);
    659 }
     690
    660691
    661692function savePipeline (confirmSave) {
     
    784815
    785816// Temp function that creates a dummy question to test the insertNewQuestions function.
     817// NOTE: CAN BE REMOVED!
    786818function debug_addQuestion() {
    787819    // Derp, natuurlijk werkt de addQuestion call niet twee keer. Hij creeert twee keer exact hetzelfde object. Bottom line: het werkt. Nu de editing code voor deze questions gaan schrijven!
     
    803835
    804836// Temp function that articially switches content type when the page is already loaded, to easily test layout changes and content flow.
     837// NOTE: CAN BE REMOVED!
    805838function debug_switchType() {
    806839    var content = ge("seqContent");
  • Dev/trunk/returnObjectDisplay.php

    r188 r191  
    2121foreach ($requestArray as $request) {
    2222   
     23    //!!! DEZE SHIT MOET WEER TERUGGEDRAAID WORDEN ZODRA QUESTIONS WEER GEWOON UIDS HEBBEN IPV CODES!
     24    if ($request->type == "Question"){
    2325    $results = $dbi->get($request->type, array("code" => $request->uid));
    2426    // Bottom line, werkt prima. Questions werken nu op ns1:question_code, accessible als question->code
    25    
     27    }
     28    else {
     29        $results =  $dbi->get($request->type, array("uid"=>$request->uid));
     30    }
    2631    if (isset($results) && !empty($results)) {
    2732        is_array($results) ? $object = $results[0] : $object = $results;
  • Dev/trunk/savesession.php

    r183 r191  
    22
    33require 'classes/master.php'; //should be at top of every page
     4
     5/*
     6 * Dit kan een STUK sneller. Vervang gewoon de hele pipeline string met de lokale versie.
     7 * Daarna: $session->eval
     8 */
    49
    510if (isset($_POST['uids']) && isset($_POST['types']) && isset($_POST['sessionUid'])) {
  • Dev/trunk/selectSession.php

    r185 r191  
    22require 'classes/master.php'; //should be at top of every page
    33
    4 if (!isset($_SESSION['username'])) {
     4if (!isset($_SESSION['userUid'])) {
    55    redirect("index.php");
    66}
     
    1818        // check if name is available
    1919        if (!empty($_POST['newSessionName'])) {
    20             $matching = $dbi->get("Session", array("title" => $_POST['newSessionName']));
    21             if (count($matching) == 0) {
     20            $session_results = $dbi->get("Session", array("title" => $_POST['newSessionName']));
     21            if (count($session_results) == 0) {
    2222                // make new session!
    23                 unset($matching);
    24                 $creators = $dbi->get("User", array("username"=>$_SESSION['username']));
     23                unset($session_results);
     24                $creators = $dbi->get("User", array("uid" => $_SESSION['userUid']));
    2525                $creator = $creators[0];
    2626                $session = new Session(null, $_POST['newSessionName'], $creator, new DateTime(), null, null);
     
    4343if (isset($_POST['editSession'])) {
    4444    if (isset($_POST['sessionUID'])) {
    45         $matching = $dbi->get("SESSION", array("uid" => $_POST['sessionUID']));
    46         if (count($matching) == 1 && $matching[0] != null) {
     45        $session_results = $dbi->get("SESSION", array("uid" => $_POST['sessionUID']));
     46        if (count($session_results) == 1 && $session_results[0] != null) {
    4747            // DEZE SESSION MOET UITEINDELIJK EEN POST WORDEN, WANNEER DEZE HELE PAGINA IS OVERGEZET IN JAVASCRIPT!
    4848            $_SESSION['currentSession'] = $_POST['sessionUID'];
    4949            $_SESSION['updateNeeded'] = "true";
    50             redirect("pipelineEditor.php");
     50            redirect("sessionEditor.php");
    5151        }
    5252    }
     
    6666        <?php new StyleSheet("awesome"); ?>
    6767        <script type="text/javascript" src="js/sequencerScripts.js"></script>
     68        <script type="text/javascript" src="js/generalScripts.js"></script>
    6869    </head>
    6970    <body>
     
    7475        <div id="wrapper">
    7576            <div id="content">
    76             <form action="selectSession.php" method="POST">
    77                 <fieldset name="selectionMenu">
    78                     <!-- onchange van volgende select linkt deze aan de ajax-based info panel, script staat in sequencerScripts.js -->
    79                     <select name="sessionUID" style="float: left;" onChange="ajaxInfoRequest(this.value, document.getElementById('infoPanelContent'), 'Session');">
    80                         <option value="" disabled="true" selected>Please select a session</option>
    81             <?php
    82                         foreach ($sessions as $session) {
    83                             $selected = "";
    84                             if ($session->title == $_POST['newSessionName']) {
    85                                 $selected = ' selected="true"';
     77                <form action="selectSession.php" method="POST">
     78                    <fieldset name="selectionMenu">
     79                        <!-- onchange van volgende select linkt deze aan de ajax-based info panel, script staat in sequencerScripts.js -->
     80                        <select name="sessionUid" style="float: left;" onChange="ajaxInfoRequest(this.value, document.getElementById('infoPanelContent'), 'Session');">
     81                            <option value="" disabled="true" selected>Please select a session</option>
     82                            <?php
     83                            foreach ($sessions as $session) {
     84                                $selected = "";
     85                                if ($session->title == $_POST['newSessionName']) {
     86                                    $selected = ' selected="true"';
     87                                }
     88
     89                                echo '<option value="' . $session->uid . '"' . $selected . '>' . $session->title . '</option>' . "\n";
    8690                            }
    87                            
    88                             echo '<option value="' . $session->uid . '"' . $selected . '>' . $session->title . '</option>' . "\n";
    89                         }
    90                         ?>                   
    91                     </select>
    92                     <br /><br />
    93                     <input type="hidden" name="updateNeeded" value="true" />
    94                     <input type="text" name="newSessionName" value="Name..." style="float: left;" /><br />
    95                     <input type="submit" name="createSession" value="Create new session" class="surveybutton" style="float: left;" />
    96                     <input type="submit" name="editSession" value="Edit session" class="surveybutton" style="float: left;" />
    97                     <input type="submit" name="deleteSession" value="Delete session" class="surveybutton" style="float: left;" />
    98                     <br /><br /><br />
    99                     <div id="errorDisplay"><?php
    100                         if (isset($errorMessage)) {
    101                             foreach ($errorMessage as $message) {
    102                                 echo $message;
     91                            ?>                   
     92                        </select>
     93                        <br /><br />
     94                        <input type="hidden" name="updateNeeded" value="true" />
     95                        <input type="text" name="newSessionName" value="Name..." style="float: left;" /><br />
     96                        <input type="submit" name="createSession" value="Create new session" class="surveybutton" style="float: left;" />
     97                        <input type="submit" name="editSession" value="Edit session" class="surveybutton" style="float: left;" />
     98                        <input type="submit" name="deleteSession" value="Delete session" class="surveybutton" style="float: left;" />
     99                        <br /><br /><br />
     100                        <div id="errorDisplay"><?php
     101                            if (isset($errorMessage)) {
     102                                foreach ($errorMessage as $message) {
     103                                    echo $message;
     104                                }
    103105                            }
    104                         }
    105                         ?></div>
    106                 </fieldset>
    107                 <fieldset id="sessionDescription">
    108                     <div class="fieldsetTitle">
    109                         Info
    110                     </div>
    111                     <div id="infoPanelContent">
    112                     </div>
    113                 </fieldset>
    114             </form>
    115         </div>
     106                            ?></div>
     107                    </fieldset>
     108                    <fieldset id="sessionDescription">
     109                        <div class="fieldsetTitle">
     110                            Info
     111                        </div>
     112                        <div id="infoPanelContent">
     113                        </div>
     114                    </fieldset>
     115                </form>
     116            </div>
    116117        </div>
    117118    </body>
Note: See TracChangeset for help on using the changeset viewer.