Changes in / [20:30]


Ignore:
Files:
8 added
8 edited

Legend:

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

    r20 r30  
    99class SurveyCreationTool {
    1010
    11     public function __construct() {
    12         SurveyCreationTool::javascript();
    13         ?>
    14 
    15         <div id="surveyCreation"><form action="submitsurvey.php" method="post">
     11    private $survey;
     12    private $timeStamp;
     13
     14    public function __construct($survey = null, $timeStamp = null) {
     15        $this->survey = $survey;
     16        $this->timeStamp = $timeStamp;
     17
     18        if( isset($this->survey->id))
     19            SurveyCreationTool::javascript($this->survey->id);
     20        else
     21            SurveyCreationTool::javascript();
     22        ?>
     23
     24        <div id="surveyCreation"><form id="survey" action="submitsurvey.php" method="post">
    1625                <?php
    17                 SurveyCreationTool::titleBox();
    18                 SurveyCreationTool::descriptionBox();
    19                 SurveyCreationTool::questionCreationForm();
     26                $this->surveyHead();
     27                $this->questionCreationForm();
    2028                SurveyCreationTool::addQuestionButton();
    2129                SurveyCreationTool::removeLastQuestionButton();
     
    2533    }
    2634
    27     private static function javascript() {
     35    private static function javascript($id = null) {
    2836        ?>
    2937        <script type="text/javascript">
    30             var questionCount = 1;           
    31                                                                                                                    
    32             function getNewQuestion()
    33             {
     38            /* autosave every 3 minutes */
     39            setTimeout("save('<?php echo $id; ?>')", 180000);
     40                                                                           
     41            var questionCount = 1;         
     42                                                                                                                                                                                                                   
     43            function getNewQuestion(title, description)
     44            {
     45                if (title != null)
     46                    var title = title;
     47                else
     48                    var title = 'Untitled Question';
     49               
     50                if (description != null)
     51                    var description = description;
     52                else
     53                    var description = 'Write a question description here.';
     54                                   
    3455                var questionDiv = document.createElement("div");
    3556                var htmlStr =
     
    3859                    "<th>Question " + questionCount + "</th>" +
    3960                    "<tr><td><label for='questionTitle'>Title</label></td>" +
    40                     "<td><input type='text' class='questionTitle' name='questionTitle" + questionCount + "' size='30' value='Untitled Question' /></td></tr>" +
     61                    "<td><input type='text' class='questionTitle' name='questionTitle" + questionCount + "' onfocus='handleFocus(this)' size='30' value='" + title + "' /></td></tr>" +
    4162                    "<tr><td><label for='questionDescription'>Description</label></td>" +
    42                     "<td><input type='text' class='questionDescription' name='questionDescription" + questionCount + "' size='60' value='Write a question description here.' /></td>" +
     63                    "<td><input type='text' class='questionDescription' name='questionDescription" + questionCount + "' onfocus='handleFocus(this)' size='60' value='" + description + "' /></td>" +
    4364                    "<tr><td><label for='questionType'>Answer type</label></td>" +
    4465                    "<td><select id='" + questionCount + "' name='questionType" + questionCount + "' onchange='handleType(this)'><br />"+
     
    5071                    "</select></td></tr>" +
    5172                    "</table>" +
    52                     "<div id='answersDiv" + questionCount + "'></div>" +
     73                    "<div id='answersDiv" + questionCount + "' class='answersDiv'></div>" +
    5374                    "</div>";
    54                                                                                                                
     75                                                                                                                                                                                                               
    5576                questionDiv.innerHTML = htmlStr;
    56                                                                                                                
     77                                                                                                                                                                                                               
    5778                return questionDiv;
    5879            }
    59                                                                                                                    
     80                                                                                                                                                                                                                   
    6081            function handleFocus(input)
    6182            {
     
    6788                }
    6889            }
    69                                                                                                                                                    
     90                                                                                                                                                                                                                                                   
    7091            function handleBlur(input)
    7192            {       
    7293                var surveyTitle = document.getElementById('surveyTitle');
    7394                var surveyDescription = document.getElementById('surveyDescription');
    74                                                                                                                                    
     95                                                                                                                                                                                                                                   
    7596                if (input.value == "")
    7697                {
    7798                    input.style.color = "gray";
    7899                    input.clicked = null;
    79                                                                                                                                                            
     100                                                                                                                                                                                                                                                           
    80101                    if (input == surveyTitle)
    81102                    {
     
    88109                }                           
    89110            }
    90                                                                                                    
     111                                                                                                                                                                                                   
    91112            function handleType(select)
    92113            {
     
    95116                answersDiv.answerCount = 1;
    96117                answersDiv.clicked = null;
    97                                                        
     118                                                                                                                                                       
    98119                switch (type) {
    99120                    case 'mc':
    100121                        answersDiv.innerHTML = "";
    101122                        addOption(select.id);
    102                                                                                        
     123                                                                                                                                                                                       
    103124                        break;
    104125                    case 'text':
     
    124145
    125146            }
    126                                                                                    
    127                                                                            
     147                                                                                                                                                                                   
     148                                                                                                                                                                           
    128149            function addOption(questionNumber)
    129150            {       
     
    132153                var answerDiv = document.createElement("div");
    133154                answerDiv.className = "answerDiv";
    134                                                                                
     155                                                                                                                                                                               
    135156                var htmlStr = "<input type='text' name='q" +
    136157                    questionNumber + "ans" + answerCount + "' value='Option " + answerCount + "' />";
    137                                                        
     158                                                                                                                                                       
    138159                if (answersDiv.clicked == null)
    139160                {
     
    141162                        + " class='surveyButton' onclick='addOption(" + questionNumber + ")' value='Add Option' />" +
    142163                        "<input type='button' class='surveyButton' onclick='removeOption(" + questionNumber + ")' value='x' />";
    143                            
     164                                                                                                                           
    144165                    answersDiv.clicked = true;
    145166                }
    146                                                                                        
     167                                                                                                                                                                                      
    147168                answerDiv.innerHTML = htmlStr;
    148                        
     169                                                                                                                       
    149170                answerDiv.prev = answersDiv.lastAnswer; //singly linked list
    150171                answersDiv.lastAnswer = answerDiv;
    151                                                                                        
     172                                                                                                                                                                                      
    152173                answersDiv.appendChild(answerDiv);
    153174                answersDiv.answerCount++;
    154175            }
    155                    
     176                                                                                                                   
    156177            function removeOption(questionNumber)
    157178            {
    158179                var answersDiv = document.getElementById("answersDiv" + questionNumber);
    159                        
     180                                                                                                                      
    160181                if (answersDiv.lastAnswer.prev != null)
    161182                {
     
    165186                }
    166187            }
    167                                            
     188                                                                                                                                           
    168189            function minMax(questionNumber)
    169190            {
    170191                var answersDiv = document.getElementById("answersDiv" + questionNumber);
    171                                                
     192                                                                                                                                               
     193                var answerDiv = document.createElement("div");
     194                                                                                                               
     195                answerDiv.className = "answerDiv";
     196                answerDiv.innerHTML = "<label for='min'>Min</label><input type='text' name='q" + questionNumber + "ans1' />" +
     197                    "<label for='max'>Max</label><input type='text' name='q" + questionNumber + "ans2' />";
     198                                                                                                                                           
     199                answersDiv.appendChild(answerDiv);
     200            } 
     201                                                                                                                                           
     202            function minMaxIncr(questionNumber)
     203            {
     204                var answersDiv = document.getElementById("answersDiv" + questionNumber);
     205                                                                                                                                               
    172206                var answerDiv = document.createElement("div");
    173207                answerDiv.className = "answerDiv";
    174                 answerDiv.innerHTML = "<label for='min'>Min</label><input type='text' name='min" + questionNumber + "' />" +
    175                     "<label for='max'>Max</label><input type='text' name='max" + questionNumber + "' />";
    176                                            
    177                 answersDiv.appendChild(answerDiv);
    178             } 
    179                                            
    180             function minMaxIncr(questionNumber)
    181             {
    182                 minMax(questionNumber);
    183                 var answersDiv = document.getElementById("answersDiv" + questionNumber);
    184                                                
    185                 var answerDiv = document.createElement("div");
    186                 answerDiv.className = "answerDiv";
    187                 answerDiv.innerHTML = "<label for='incr'>Increment by</label><input type='text' name='incr" + questionNumber + "' />";
    188                                            
     208                answerDiv.innerHTML = "<label>Left label</label><input type='text' name='q" + questionNumber + "ans1' />" +
     209                    "<label>Right label</label><input type='text' name='q" + questionNumber + "ans2' />" +
     210                    "<label>Scale count</label><input type='text' name='q" + questionNumber + "ans3' />" +
     211                    "<div id='inputCheckFeedback'" + questionNumber + "";
     212                                                                                                                                           
    189213                answersDiv.appendChild(answerDiv);
    190214            }         
    191                                                                                                  
    192                                                                                                          
    193             function addQuestion()
     215                                                                                                                                                                                                
     216                                                                                                                                                                                                        
     217            function addQuestion(title, description)
    194218            {
    195219                var questionsDiv = document.getElementById('questionsDiv');
    196                 var newQuestion = getNewQuestion();
    197                                        
     220                var newQuestion = getNewQuestion(title, description);
     221                                                                                                                                       
    198222
    199223                newQuestion.prev = document.lastQuestion;
     
    203227                questionCount++;
    204228            }
    205                                    
     229                                                                                                                                   
    206230            function removeLastQuestion()
    207231            {
    208232                var questionsDiv = document.getElementById('questionsDiv');
    209                                        
     233                                                                                                                                       
    210234                if (document.lastQuestion.prev != null)
    211235                {
     
    219243                }               
    220244            }
    221                                  
    222                                            
    223                                                                                                                                                                                                                            
     245                                                                                                             
     246            function save(surveyID)
     247            {
     248                var form = document.getElementById('survey');
     249                var questionsDiv = document.getElementById('questionsDiv');
     250                form.action = "surveycreation.php";
     251                                                                               
     252                /* extra time stamp */
     253                var date = new Date();
     254                var minutes = date.getUTCMinutes();
     255                if (minutes < 10)
     256                    minutes = "0" + minutes;
     257                var timeStamp = date.getHours() + ":" + minutes;
     258                var timeStampInput = document.createElement("input");
     259                timeStampInput.name = "timeStamp";
     260                timeStampInput.value = timeStamp;
     261                timeStampInput.type = "hidden";
     262                                   
     263                var surveyIDInput = document.createElement("input");
     264                surveyIDInput.name = "surveyID";
     265                surveyIDInput.value = surveyID;
     266                surveyIDInput.type = "hidden";
     267                                                             
     268                questionsDiv.appendChild(timeStampInput);
     269                questionsDiv.appendChild(surveyIDInput);
     270                form.submit();
     271            }
     272                                                                                                                                           
     273                                                                                                                                                                                                                                                                                                                           
    224274        </script>
    225275        <?php
    226276    }
    227277
    228     private static function titleBox() {
    229         ?>
    230         <input type="text" id="surveyTitle" name="surveyTitle" value="Untitled Survey" size="30" onblur="handleBlur(this)" onfocus="handleFocus(this)" />
    231         <?php
    232     }
    233 
    234     private static function descriptionBox() {
    235         ?>
    236         <textarea id="surveyDescription" rows="3" cols="80" name="surveyDescription" onblur="handleBlur(this)" onfocus="handleFocus(this)">Write a helpful description for this survey here.</textarea>
    237         <?php
    238     }
    239 
    240     private static function questionCreationForm() {
     278    private function surveyHead() {
     279        ?><div id="surveyHead">
     280        <?php
     281        $this->titleBox();
     282        $this->saveSurvey();
     283        $this->descriptionBox();
     284        ?></div>
     285        <?php
     286    }
     287
     288    private function titleBox() {
     289        if (isset($this->survey->title))
     290            $value = $this->survey->title;
     291        else
     292            $value = 'Untitled Survey';
     293        ?>
     294        <input type="text" id="surveyTitle" name="surveyTitle" value="<?php echo $value ?>" onblur="handleBlur(this)" onfocus="handleFocus(this)" />
     295        <?php
     296    }
     297
     298    private function saveSurvey() {
     299        if (isset($this->timeStamp))
     300            echo "<div id='timeStamp'>Last saved " . $this->timeStamp . '</div>';
     301        if (isset($this->survey->id))
     302            $id = $this->survey->id;
     303        else
     304            $id = null;
     305        ?>
     306        <input id="surveySaveButton" type="button" onclick="save('<?php echo $id; ?>')" class='surveyButton' value='Save' />
     307        <?php
     308    }
     309
     310    private function descriptionBox() {
     311        if (isset($this->survey->description))
     312            $value = $this->survey->description;
     313        else
     314            $value = 'Write a helpful description for this survey here.';
     315        ?>
     316        <textarea id="surveyDescription" name="surveyDescription" onblur="handleBlur(this)" onfocus="handleFocus(this)"><?php echo $value; ?></textarea>
     317        <?php
     318    }
     319
     320    private function questionCreationForm() {
    241321        ?>
    242322        <div id='questionsDiv'>
    243323        </div>
    244         <script type="text/javascript"> addQuestion(); </script>
    245         <?php
     324        <?php
     325        if (isset($this->survey)) {
     326            foreach ($this->survey->questions as $question) {
     327                ?>
     328                <script type="text/javascript"> addQuestion('<?php echo $question->title; ?>', '<?php echo $question->description; ?>');
     329                </script>
     330                <?php
     331            }
     332        } else {
     333            ?>
     334            <script type="text/javascript"> addQuestion();</script>
     335            <?php
     336        }
    246337    }
    247338
  • /Dev/trunk/classes/SurveyRDFReader.php

    r20 r30  
    33class SurveyRDFReader
    44{
    5         var $model;
    6                
    7         public function SurveyRDFReader()
    8         {
     5        protected $model;
     6       
     7        protected $surveyUID;
     8       
     9    public function __construct($surveyUID)
     10    {
    911        // Create empty MemModel
    1012                $factory = new ModelFactory();
    11                 $this->model = $factory->getDefaultModel();     
     13                $this->model = $factory->getDefaultModel();
     14               
     15                $this->surveyUID = $surveyUID;
    1216        }
    1317       
    14         public function loadSurvey($sTitle)
     18        public function loadSurvey()
    1519        {
    16                 $this->model->load('surveys/'.$sTitle.'.rdf');
     20                $this->model->load('surveys/survey_'.$this->surveyUID.'.rdf');
    1721        }
    1822       
    19         public function readSurveyTitle()
     23        public function getSurveyInfo()
     24        {               
     25                SurveyRDFReader::loadSurvey();
     26       
     27                $result = array();
     28                $result[] = $this->readSurveyInfo();                           
     29                $result[] = $this->readSurveyQuestions();
     30               
     31                return $result;
     32        }
     33       
     34        public function readSurveyInfo()
    2035        {
    2136                $querystring = '
    22                         PREFIX  predicates: <' .SURVEYTOOL_PREDICATES_NAMESPACE . '>
     37                        PREFIX  predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE . '>
    2338                        PREFIX  resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE . '>
    24                         SELECT  ?title
    25                         WHERE   { resources:survey predicates:title ?title }';
     39                        SELECT  ?uid ?title ?description
     40                        WHERE   
     41                        {
     42                                _survey         predicates:resource_type        resources:survey ;
     43                                                        predicates:uid                          ?uid    ;
     44                                                        predicates:title                        ?title  ;
     45                                                        predicates:description          ?description
     46                        }';
     47                       
     48                $result = $this->model->sparqlQuery($querystring);
     49                               
     50                return $result;
     51        }
     52       
     53        public function readSurveyQuestions()
     54        {
     55                $result = array();
     56                $result[] = $this->readSurveyQuestionsTitle();                         
     57                $result[] = $this->readSurveyQuestionsDescription();
     58                $result[] = $this->readSurveyQuestionsType();
     59                $result[] = $this->readSurveyQuestionsID();             
     60                               
     61                return $result;
     62        }
     63       
     64        public function readSurveyQuestionsTitle()
     65        {
     66                $querystring = '
     67                        PREFIX  predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE . '>
     68                        PREFIX  resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE . '>
     69                        SELECT  ?questionTitle
     70                        WHERE
     71                        {       
     72                                _question       predicates:resource_type        resources:question ;
     73                                                        predicates:title                        ?questionTitle         
     74                        }';
    2675                       
    2776                $result = $this->model->sparqlQuery($querystring);
     
    3079        }
    3180       
    32         public function readSurveyDescription()
     81        public function readSurveyQuestionsDescription()
    3382        {
    3483                $querystring = '
    35                         PREFIX  predicates: <' .SURVEYTOOL_PREDICATES_NAMESPACE . '>
     84                        PREFIX  predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE . '>
    3685                        PREFIX  resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE . '>
    37                         SELECT  ?description
    38                         WHERE   { resources:survey predicates:description ?description }';
     86                        SELECT  ?questionDescription
     87                        WHERE
     88                        {       
     89                                _question       predicates:resource_type        resources:question ;
     90                                                        predicates:description  ?questionDescription           
     91                        }';
     92                       
     93                $result = $this->model->sparqlQuery($querystring);
     94               
     95                return $result;
     96        }
     97       
     98        public function readSurveyQuestionsType()
     99        {
     100                $querystring = '
     101                        PREFIX  predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE . '>
     102                        PREFIX  resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE . '>
     103                        SELECT  ?questionType
     104                        WHERE
     105                        {       
     106                                _question       predicates:resource_type        resources:question ;
     107                                                        predicates:question_type        ?questionType                           
     108                        }';
     109                       
     110                $result = $this->model->sparqlQuery($querystring);
     111               
     112                return $result;
     113        }
     114       
     115        public function readSurveyQuestionsID()
     116        {
     117                $querystring = '
     118                        PREFIX  predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE . '>
     119                        PREFIX  resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE . '>
     120                        SELECT  ?questionID
     121                        WHERE
     122                        {       
     123                                _question       predicates:resource_type        resources:question ;
     124                                                        predicates:uid                          ?questionID                             
     125                        }';
     126                       
     127                $result = $this->model->sparqlQuery($querystring);
     128               
     129                return $result;
     130        }
     131       
     132        public function readSurveyAnswers($qID)
     133        {
     134                $querystring = '
     135                        PREFIX  predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE . '>
     136                        PREFIX  resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE . '>
     137                        SELECT  ?answerTitle
     138                        WHERE
     139                        {
     140                                _question               predicates:resource_type        resources:question ;
     141                                                                predicates:uid                          "' . $qID . '"  ;
     142                                                                predicates:has_answer           _answer .
     143                                _answer                 predicates:title                        ?answerTitle                                                           
     144                        }';
    39145                       
    40146                $result = $this->model->sparqlQuery($querystring);
  • /Dev/trunk/classes/SurveyRDFWriter.php

    r20 r30  
    33class SurveyRDFWriter
    44{
    5         var $model;
     5        protected $model;
    66               
    7         var $resourceSurvey;
    8     /**
    9     * Use SurveyRDFWriter::getInstance() instead of this
    10     * constructor.
    11     */
    12     public function __construct()
     7        protected $resourceSurvey;
     8        protected $surveyUID;
     9       
     10    public function __construct($surveyUID)
    1311    {
    1412        // Create empty MemModel
     
    1614                $this->model = $factory->getDefaultModel();
    1715               
    18                 $this->initResources();
    19     }
    20 
    21         function initResources()
    22         {
     16                $this->surveyUID = $surveyUID;
    2317               
    24                 $this->resourceSurvey = new Resource(SURVEY);
     18    }   
     19       
     20        public function saveSurvey()
     21        {       
     22                $this->model->saveAs('surveys/survey_'.$this->surveyUID.'.rdf','rdf');
    2523        }
    2624       
    2725        public function createSurvey($sTitle, $sDescription)
    2826        {               
     27                $this->resourceSurvey = new Resource(SURVEY.'/'.$this->surveyUID);
     28               
     29                $resourceSurveyType = new Resource(SURVEY);
     30                $predicateRType = new Resource(RTYPE);
     31                $this->model->add(new Statement($this->resourceSurvey,$predicateRType,$resourceSurveyType));
     32               
     33                $literalSurveyID = new Literal($this->surveyUID);
     34                $predicateUniqueID = new Resource(UID);
     35                $this->model->add(new Statement($this->resourceSurvey,$predicateUniqueID,$literalSurveyID));
    2936               
    3037                $predicateTitle = new Resource(TITLE);         
     
    3946        public function addQuestion($qTitle,$qDescription,$qType,$qAnswers)
    4047        {
    41                 $resourceQuestion = new Resource(QUESTION);
    42                 $predicateQuestion = new Resource(HAS_QUESTION);
    43                 $this->model->add(new Statement($this->resourceSurvey,$predicateQuestion,$resourceQuestion));
    44                
     48                $questionID = md5( uniqid(rand(), true) );
     49                $resourceQuestion = new Resource(QUESTION.'/'.$questionID);
     50                               
     51                $resourceQuestionType = new Resource(QUESTION);
     52                $predicateRType = new Resource(RTYPE);
     53                $this->model->add(new Statement($resourceQuestion,$predicateRType,$resourceQuestionType));
     54                               
     55                $predicateUniqueID = new Resource(UID);
     56                $questionUID = new Literal($questionID);
     57                $this->model->add(new Statement($resourceQuestion,$predicateUniqueID,$questionUID));
     58                               
    4559                $predicateTitle = new Resource(TITLE);         
    4660                $questionTitle = new Literal($qTitle);
     
    5165                $this->model->add(new Statement($resourceQuestion,$predicateDescription,$questionDescription));         
    5266               
    53                 $predicateType = new Resource(TYPE);
    54                 $resourceQuestionType = new Resource(QUESTION_TYPE);
    55                 $this->model->add(new Statement($resourceQuestion,$predicateType,$resourceQuestionType));
     67                $predicateQType = new Resource(QTYPE);
     68                $resourceQuestionType = new Literal($qType);
     69                $this->model->add(new Statement($resourceQuestion,$predicateQType,$resourceQuestionType));
    5670               
    5771                foreach($qAnswers as $answer)
    58                 {
    59                         $resourceAnswer = new Resource(ANSWER);
    60                         $predicateAnswer = new Resource(HAS_ANSWER);   
    61                         $this->model->add(new Statement($resourceQuestion,$predicateAnswer,$resourceAnswer));
    62                        
    63                         $predicateTitle = new Resource(TITLE);
     72                {               
     73                        $answerID = md5( uniqid(rand(), true) );       
     74                        $resourceAnswer = new Resource(ANSWER.'/'.$answerID);
     75                               
     76                        $resourceAnswerType = new Resource(ANSWER);
     77                        $predicateRType = new Resource(RTYPE);
     78                        $this->model->add(new Statement($resourceAnswer,$predicateRType,$resourceAnswerType)); 
     79
     80                        $predicateUniqueID = new Resource(UID);
     81                        $answerUID = new Literal($answerID);
     82                        $this->model->add(new Statement($resourceAnswer,$predicateUniqueID,$answerUID));                       
     83                                               
    6484                        $answerTitle = new Literal($answer['Title']);
    6585                        $this->model->add(new Statement($resourceAnswer,$predicateTitle,$answerTitle));
    6686                       
    67                         $predicateDescription = new Resource(DESCRIPTION);
    6887                        $answerDescription = new Literal($answer['Description']);
    6988                        $this->model->add(new Statement($resourceAnswer,$predicateDescription,$answerDescription));
    7089                       
     90                        $predicateAnswer = new Resource(HAS_ANSWER);   
     91                        $this->model->add(new Statement($resourceQuestion,$predicateAnswer,$resourceAnswer));
    7192                }
    7293               
    73                
     94                $predicateQuestion = new Resource(HAS_QUESTION);
     95                $this->model->add(new Statement($this->resourceSurvey,$predicateQuestion,$resourceQuestion));           
    7496        }
    75        
    76         public function saveSurvey($sTitle)
    77         {
    78                 $this->model->saveAs('surveys/'.$sTitle.'.rdf','rdf');
    79                
    80                 return true;
    81         }
    82 
    8397}
    8498
  • /Dev/trunk/css/style.css

    r20 r30  
    7878}
    7979
     80#surveyHead {
     81    position: relative;
     82    width: 100%;
     83}
     84
    8085#surveyTitle {
     86    width: 17em;
    8187    font-size: large;
    8288    color: gray;
     
    8995#surveyDescription {
    9096    display: block;
     97    width: 35em;
     98    max-width: 35em;
    9199    font-family: sans-serif;
    92100    color: gray;
     101}
     102
     103#timeStamp {
     104    position: absolute;
     105    color: gray;
     106    font-size: small;
     107    right: 6em;
     108    top: 0;
     109    line-height: 2.3em;
     110}
     111
     112#surveySaveButton {
     113    position: absolute;
     114    top: 0;
     115    right: 0;
     116    width: 5em;
    93117}
    94118
     
    101125}
    102126
     127.answersDiv {
     128    margin-left: 0.5em;
     129}
     130
    103131#submitSurvey {
    104132    display: block;
     
    109137
    110138#addQuestionButton {
     139    margin-top: 1em;
    111140    width: 20em;
    112141}
     
    116145}
    117146
     147
    118148.surveyButton {
    119     margin-top: 1em;
    120     color: gray;
     149    color: #888;
     150    font-weight: bold;
    121151    background-color: #fff;
    122     border: 1px solid #ddd;
    123     -moz-border-radius: 8px;
    124     border-radius: 8px;
    125     -moz-box-shadow: 1px 1px 1px #555;
    126     -webkit-box-shadow: 1px 1px 1px #555;
    127     box-shadow: 1px 1px 1px #555;
     152    border: 2px solid #aaa;
     153    -moz-border-radius: 6px;
     154    border-radius: 6px;
    128155}
    129156
    130157.surveyButton:hover {
    131158    background-color: white;
    132     color: #333;
     159    color: #555;
    133160    border-color: deepskyblue;
    134161}
  • /Dev/trunk/rdfConstants.php

    r20 r30  
    1616
    1717// Predicates used for RDF triples
     18define('UID',SURVEYTOOL_PREDICATES_NAMESPACE . 'uid');
    1819define('CREATOR',SURVEYTOOL_PREDICATES_NAMESPACE . 'creator');
    1920define('TITLE',SURVEYTOOL_PREDICATES_NAMESPACE . 'title');
    2021define('DESCRIPTION',SURVEYTOOL_PREDICATES_NAMESPACE . 'description');
    21 define('TYPE',SURVEYTOOL_PREDICATES_NAMESPACE . 'type');
     22define('RTYPE',SURVEYTOOL_PREDICATES_NAMESPACE . 'resource_type');
     23define('QTYPE',SURVEYTOOL_PREDICATES_NAMESPACE . 'question_type');
    2224define('HAS_QUESTION',SURVEYTOOL_PREDICATES_NAMESPACE . 'has_question');
    2325define('HAS_ANSWER',SURVEYTOOL_PREDICATES_NAMESPACE . 'has_answer');
    2426define('NUMBER_OF_ANSWERS',SURVEYTOOL_PREDICATES_NAMESPACE . 'number_of_answers');
    2527define('SCALE',SURVEYTOOL_PREDICATES_NAMESPACE . 'scale');
     28define('ANSWERED',SURVEYTOOL_PREDICATES_NAMESPACE . 'answered');
    2629
    2730// Arry with types of survey questions
  • /Dev/trunk/submitsurvey.php

    r20 r30  
    1111
    1212$sTitle = $_POST['surveyTitle'];
     13$sDesription = $_POST['surveyDescription'];
    1314
    14 $surveyRDFWriter->createSurvey($sTitle,$_POST['surveyDescription']);
     15$surveyRDFWriter->createSurvey($sTitle,$sDesription);
    1516
    16 $done = $surveyRDFWriter->saveSurvey($sTitle);
     17$qNumber = 1;
     18do
     19{
     20        $qTitle = $_POST['questionTitle'.$qNumber];
     21        $qDescription = $_POST['questionDescription'.$qNumber];
     22        $qType = $_POST['questionType'.$qNumber];
     23
     24        if ($qTitle != null)
     25        {
     26                $qaArray = array();
     27                $aNumber = 1;
     28                do
     29                {
     30                        $aTitle = $_POST['q'.$qNumber.'ans'.$aNumber];
     31                        if ($aTitle != null)
     32                        {
     33                                $aArray = array();
     34                                $aArray['Title'] = $aTitle;
     35                                $aArray['Description'] = 'answerDescription'.$aNumber;
     36                                $qaArray[] = $aArray;
     37                        }
     38                        $aNumber++;
     39                } while ($aTitle != null);
     40                               
     41                $qNumber++;
     42                $surveyRDFWriter->addQuestion($qTitle,$qDescription,$qType,$qaArray);
     43        }
     44} while($qTitle != null);
     45
     46
     47$surveyRDFWriter->saveSurvey($sTitle);
    1748
    1849echo 'Done<br/><br/>';
     
    2758  $value = $line['?title'];
    2859    if($value != "")
    29       echo $value->toString()."<br/>";
     60      echo $value->toString().'<br/>';
    3061    else
    31       echo "undbound<br/>";
     62      echo 'undbound<br/>';
    3263}
    3364
     
    3768  $value = $line['?description'];
    3869    if($value != "")
    39       echo $value->toString()."<br/>";
     70      echo $value->toString().'<br/>';
    4071    else
    41       echo "undbound<br/>";
     72      echo 'undbound<br/>';
    4273}
    4374
     75$result3 = $surveyRDFReader->readSurveyQuestions($sTitle);
     76
     77if($result3 != null)
     78{
     79        var_dump($result3);
     80         
     81        foreach($result3 as $line){
     82          $value = $line['?questionTitle'];
     83                if($value != "")
     84                  echo '<br/>'.'<br/>'.$value->toString().'<br/>';
     85                else
     86                  echo 'undbound<br/>';
     87        }
     88} else
     89{
     90        echo '<"Literal("'.$sTitle.'")"> empty result <br/>';
     91}
     92echo '<br/>';
    4493var_dump($_POST);
    4594
  • /Dev/trunk/surveycreation.php

    r20 r30  
    1 <?php require 'classes/master.php'; ?>
     1<?php
     2require 'classes/master.php';
     3
     4$savedSurvey = null;
     5
     6if (isset($_POST['timeStamp']))
     7{
     8    $timeStamp = $_POST['timeStamp'];
     9       
     10        var_dump($_POST);
     11        echo '<br/><br/>';
     12        $surveyDBI =  new SurveyDatabaseInterface();
     13        $surveyDBI->setSurveyInfo($_POST);
     14        $info = $surveyDBI->getSurveyInfo();
     15        echo '<br/><br/>';
     16        var_dump($info);
     17       
     18        $savedSurvey = Survey::getSurvey($info);
     19}
     20else {
     21    $timeStamp = null;
     22}
     23
     24?>
    225
    326<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     
    1235    <body>
    1336        <div id="header">
    14                 <div id="logo">CPSFacilitator Tool </div>
    15             </div>
     37            <div id="logo">CPSFacilitator Tool </div>
     38        </div>
    1639        <div id="wrapper">
    17            
     40
    1841            <div id="content">
    1942                <?php
    20                     new SurveyCreationTool();
     43     
     44                new SurveyCreationTool($savedSurvey, $timeStamp);
    2145                ?>
    2246            </div>
Note: See TracChangeset for help on using the changeset viewer.