Author: [email protected]
Date: Fri Dec  2 10:30:16 2011
New Revision: 1803

Log:
survey closed

Modified:
   
sandbox/ivol/ntlm/src/main/java/org/amdatu/auth/ntlm/SurveyStorageProvider.java
   
sandbox/ivol/ntlm/src/main/java/org/amdatu/auth/ntlm/service/SurveyRESTServiceImpl.java
   
sandbox/ivol/ntlm/src/main/java/org/amdatu/auth/ntlm/service/SurveyStoreImpl.java
   sandbox/ivol/ntlm/src/main/resources/jsp/survey.jsp
   sandbox/ivol/ntlm/src/main/resources/jsp/surveyresults.jsp

Modified: 
sandbox/ivol/ntlm/src/main/java/org/amdatu/auth/ntlm/SurveyStorageProvider.java
==============================================================================
--- 
sandbox/ivol/ntlm/src/main/java/org/amdatu/auth/ntlm/SurveyStorageProvider.java 
    (original)
+++ 
sandbox/ivol/ntlm/src/main/java/org/amdatu/auth/ntlm/SurveyStorageProvider.java 
    Fri Dec  2 10:30:16 2011
@@ -56,4 +56,10 @@
      * @return the submitted survey answers
      */
     SubmittedSurvey loadAnswers(String surveyId);
+    
+    /**
+     * Returns the number of respondents of this survey.
+     * @param surveyId Id of the survey to count for.
+     */
+    int getNumberOfRespondents(String surveyId);
 }

Modified: 
sandbox/ivol/ntlm/src/main/java/org/amdatu/auth/ntlm/service/SurveyRESTServiceImpl.java
==============================================================================
--- 
sandbox/ivol/ntlm/src/main/java/org/amdatu/auth/ntlm/service/SurveyRESTServiceImpl.java
     (original)
+++ 
sandbox/ivol/ntlm/src/main/java/org/amdatu/auth/ntlm/service/SurveyRESTServiceImpl.java
     Fri Dec  2 10:30:16 2011
@@ -122,7 +122,10 @@
     @POST
     @Consumes("application/x-www-form-urlencoded")
     public void addSurvey(@Context final HttpServletRequest request, 
@FormParam("surveyId") final String surveyId) {
-        // Get the username from NTLM authentication
+        // Survey is closed!
+        return;
+        
+       /* // Get the username from NTLM authentication
         Map parameters = request.getParameterMap();
         NtlmPasswordAuthentication session =
             (NtlmPasswordAuthentication) 
request.getSession().getAttribute("NtlmHttpAuth");
@@ -144,6 +147,24 @@
                 m_logService.log(LogService.LOG_ERROR, "An error occurred 
while posting results for survey '" + surveyId + "'", e);
                 throw new WebApplicationException(e, 
Response.Status.INTERNAL_SERVER_ERROR);
             }
+        }*/
+    }
+    
+    @GET
+    @Path("respondents/{id}")
+    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+    public Response getSurveyRespondents(@Context final HttpServletRequest 
request, @PathParam("id") final String surveyId) {
+        try {
+            if (isAuthorized(request)) {
+                int respondents = 
m_surveyStore.getNumberOfRespondents(surveyId);
+                return Response.ok(new 
Integer(respondents).toString()).cacheControl(NO_CACHE_CONTROL).build();
+            } else {
+                return 
Response.status(Status.UNAUTHORIZED).cacheControl(NO_CACHE_CONTROL).build();
+            }
+        }
+        catch (Exception e) {
+            m_logService.log(LogService.LOG_ERROR, "An error occurred while 
retrieving respondents for survey '" + surveyId + "'", e);
+            throw new WebApplicationException(e, 
Response.Status.INTERNAL_SERVER_ERROR);
         }
     }
 

Modified: 
sandbox/ivol/ntlm/src/main/java/org/amdatu/auth/ntlm/service/SurveyStoreImpl.java
==============================================================================
--- 
sandbox/ivol/ntlm/src/main/java/org/amdatu/auth/ntlm/service/SurveyStoreImpl.java
   (original)
+++ 
sandbox/ivol/ntlm/src/main/java/org/amdatu/auth/ntlm/service/SurveyStoreImpl.java
   Fri Dec  2 10:30:16 2011
@@ -46,7 +46,7 @@
 
     public void start() throws JSONException {
         m_logService.log(LogService.LOG_INFO, "Starting survey store...");
-        
+
         // TODO: For now a survey can only be added using the Java API. A REST 
interface + UI should be added.
         addTestSurvey();
     }
@@ -78,7 +78,7 @@
         }
         survey.setQuestions(questionList);
     }
-    
+
     private Question load(HColumn<String, String> question) throws 
JSONException {
         String id = question.getName();
         String value = question.getValue();
@@ -132,14 +132,16 @@
                 String questionId = column.getName();
                 String[] answer = column.getValue();
 
-                Question question = survey.getQuestion(questionId);
-                if (question != null) {
-                    List<String[]> answers = results.get(question);
-                    if (answers == null) {
-                        answers = new ArrayList<String[]>();
+                if (answer != null && answer.length > 0) {
+                    Question question = survey.getQuestion(questionId);
+                    if (question != null) {
+                        List<String[]> answers = results.get(question);
+                        if (answers == null) {
+                            answers = new ArrayList<String[]>();
+                        }
+                        answers.add(answer);
+                        results.put(question, answers);
                     }
-                    answers.add(answer);
-                    results.put(question, answers);
                 }
             }
         }
@@ -162,10 +164,18 @@
         return surveyResult;
     }
 
+    public int getNumberOfRespondents(String surveyId) {
+        List<HColumn<String, String>> respondents =
+            m_pm.getColumns(SurveyColumnFamilyProvider.CF_SURVEY_USERS, 
surveyId, String.class);
+        return respondents.size();
+    }
+
     private List<String> toSingleList(List<String[]> list) {
         List<String> values = new ArrayList<String>();
         for (String[] v : list) {
-            values.add(v[0]);
+            if (v[0] != null && !v[0].isEmpty()) {
+                values.add(v[0]);
+            }
         }
         return values;
     }
@@ -192,15 +202,15 @@
         }
         return stats;
     }
-    
+
     private String toPercentage(int a, int b) {
-        long value = Math.round(100*new Double(a)/new Double(b));
+        long value = Math.round(100 * new Double(a) / new Double(b));
         return value + "%";
     }
 
     // TODO: This is an example survey
     private void addTestSurvey() throws JSONException {
-        Question q1 = new Question();      
+        Question q1 = new Question();
         q1.setDescription("Met welke onderwerpen zou de OR zich actief moeten 
bemoeien?");
         q1.setType("check");
         q1.addValue("Parkeerbeleid/Parkeerplaatsen.");
@@ -208,36 +218,36 @@
         q1.addValue("De secundaire arbeidsvoorwaarden.");
         q1.addValue("Verbetering van de klimaatbeheersing.");
         q1.addValue("MVO (Maatschappelijk Verantwoord Ondernemen).");
-        
+
         Question q2 = new Question();
         q2.setDescription("Welk onderwerp zou wat jou betreft op de OR agenda 
moeten staan?");
         q2.setType("open");
-        
+
         Question q3 = new Question();
         q3.setDescription("Heeft de OR toegevoegde waarde binnen GX?");
         q3.setType("radio");
         q3.addValue("Ja.");
         q3.addValue("Nee.");
         q3.addValue("Ik heb onvoldoende inzicht wat de OR doet.");
-        
+
         Question q4 = new Question();
         q4.setDescription("Wat merk jij van het thema From Good to Great?");
         q4.setType("radio");
         q4.addValue("Mijn werk is er inhoudelijk door veranderd.");
         q4.addValue("Er is gesproken over het thema, maar heeft nog niet 
geleid tot concrete veranderingen.");
         q4.addValue("Buiten de Brutal Facts heb ik er nauwelijks iets van 
vernomen.");
-                
+
         Question q5 = new Question();
         q5.setDescription("Wat vind je van het thema From Good to Great?");
         q5.setType("radio");
         q5.addValue("Ik denk dat GX met dit thema op de goede weg is.");
         q5.addValue("Ik denk dat GX met dit thema niet op de goede weg is.");
         q5.addValue("Ik weet te weinig van het thema om er iets van te 
vinden.");
-        
+
         Question q6 = new Question();
         q6.setDescription("Wil je nog iets kwijt over het thema From Good to 
Great?");
         q6.setType("open");
-        
+
         Question q7 = new Question();
         q7.setDescription("Ervaar je jouw salaris als marktconform?");
         q7.setType("radio");
@@ -250,7 +260,7 @@
         q8.setType("radio");
         q8.addValue("Helder en duidelijk, ik weet waar ik aan toe ben.");
         q8.addValue("Ondoorzichtig, ik kan niet goed zelf achterhalen hoe ze 
tot de beoordeling zijn gekomen.");
-        q8.addValue("Ik ervaar het als vervelend en zie er tegenop."); 
+        q8.addValue("Ik ervaar het als vervelend en zie er tegenop.");
 
         String surveyId = "1";
         m_pm.setValue(SurveyColumnFamilyProvider.CF_SURVEY, surveyId, 
SC_QUESTIONS, "Q1", q1.toJSON());

Modified: sandbox/ivol/ntlm/src/main/resources/jsp/survey.jsp
==============================================================================
--- sandbox/ivol/ntlm/src/main/resources/jsp/survey.jsp (original)
+++ sandbox/ivol/ntlm/src/main/resources/jsp/survey.jsp Fri Dec  2 10:30:16 2011
@@ -54,9 +54,12 @@
     <div class="rightbox">
       <h3>Online enquete Ondernemingsraad - Oktober 2011</h3>
 
+      <p>De enqu&ecirc;te is gesloten. De uitslag staat binnenkort online.</p>
+      <!--
       <form id="form" action="/rest/survey" method="POST">
         <div id="survey"></div>
       </form>
+      -->
     </div>
 
   </body>

Modified: sandbox/ivol/ntlm/src/main/resources/jsp/surveyresults.jsp
==============================================================================
--- sandbox/ivol/ntlm/src/main/resources/jsp/surveyresults.jsp  (original)
+++ sandbox/ivol/ntlm/src/main/resources/jsp/surveyresults.jsp  Fri Dec  2 
10:30:16 2011
@@ -31,10 +31,25 @@
       <script type="text/javascript" 
src="${staticPath}/js/jquery-1.4.2.min.js"></script>
   </head>
 
+  <div id="respondents"></div>
   <div id="result"></div>
 </html>
 
 <script type="text/javascript">
+  function loadNrOfRespondents() {
+    var url = "${surveyUrl}/respondents/" + surveyId;
+      jQuery.ajax({
+       url: url,
+       type: "GET",
+       dataType: "json",
+       async:true,
+       success: function(data, textStatus, jqXHR) {
+          var respondents = jQuery.parseJSON(jqXHR.responseText);
+          var html = "<p>Amount of respondents: " + respondents + "</p>";
+          document.getElementById("respondents").innerHTML = html;
+        }
+    });
+  }
 
   function loadSurveyAnswers() {
     var url = "${surveyUrl}/answers/" + surveyId;
@@ -51,14 +66,15 @@
           var description = question.description;
           html += "<li><b>" + description + "</b><br/>";
           var answers = question.answers.answer;
+          html += "<ul>";
           if(typeof answers == 'string') {
-            html += answers + "<br/>";
+            html += "<li>" + answers + "</li>";
           } else {
             for (j=0; j<answers.length;j++) {
-              html += answers[j] + "<br/>";
+              html += "<li>" + answers[j] + "</li>";
             }
           }
-          html += "</li>";
+          html += "</ul></li>";
         }
         html += "</ul>";
         document.getElementById("result").innerHTML = html;
@@ -78,6 +94,7 @@
   }
 
   var surveyId = getParameter("id");
+  loadNrOfRespondents();
   loadSurveyAnswers();
 
 </script>
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits

Reply via email to