define([
"./app/Content",
"./app/Page",
"./app/Path",
"./lib/async",
"./model/classes/responses",
"./model/classes/surveyRuns",
"./pages/response",
"dojo/_base/json",
"dojo/date",
"dojo/date/locale",
"dojo/hash",
"dojo/parser",
"dojo/request",
"./stddeps",
"dojo/domReady!"
], function(Content, Page, Path, async, responses, surveyRuns, ResponsePage, json, date, locale, hash, parser, request) {
parser.parse();
Content.startup();
function error(msg) {
Content.set(new Page({
templateString: "
"+msg+"
"
}));
}
var path = new Path('/:type/:id');
var params = path.match(hash());
params.options = params.options || {};
if ( params && params.type === 'surveyRuns' ) {
var response = responses.create();
response.surveyRunId = params.id;
responses.postWithSecret(response,params.options.secret)
.then(setContent,function(err){ error(err.error); });
} else if ( params && params.type === 'responses' ) {
responses.getWithSecret(params.id,params.options.secret)
.then(setContent,function(err){ error(err.error); });
} else {
error("Something is wrong with the URL, don't know what survey to show you. Sorry.");
}
function setContent(response) {
hash(Path.format("/responses/"+responses.getId(response),
{secret:response.secret}));
Content.set(new ResponsePage({
response: response
}));
}
});