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ê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