Changeset 463 for Dev/trunk/src
- Timestamp:
- 06/23/13 13:59:15 (12 years ago)
- Location:
- Dev/trunk/src
- Files:
-
- 5 added
- 3 deleted
- 7 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
Dev/trunk/src/client/client.profile.js
r453 r463 2 2 return { 3 3 basePath: '.', 4 releaseDir: '../../build',5 4 releaseName: 'client', 6 5 action: 'release', -
Dev/trunk/src/client/qed-client/index.js
r443 r463 1 1 define([ 2 'dojo/_base/array', 3 'dojo/parser', 4 './app/Content', 5 './app/Page', 6 './app/Router', 7 './ui/MainMenu', 8 './routes', 9 './store', 10 'dojo/domReady!', 11 './stddeps' 12 ],function(array,parser,Content,Page,Router,MainMenu,routes,store) { 2 "./app/Content", 3 "./app/Page", 4 "./app/Router", 5 "./routes", 6 "./store", 7 "./store/request", 8 "./ui/MainMenu", 9 "dojo/_base/array", 10 "dojo/parser", 11 "dojo/request/registry", 12 "./stddeps", 13 "dojo/domReady!" 14 ], function(Content, Page, Router, routes, store, request, MainMenu, array, parser, registry) { 15 16 registry.register(/.*/,request); 17 13 18 parser.parse(); 14 15 19 store.info() 16 20 .then(function(){ -
Dev/trunk/src/client/qed-client/pages/surveyRun.js
r457 r463 72 72 var surveyRun = this.surveyRunWidget.get('value'); 73 73 if ( surveyRun.mode === "open" ) { 74 this.runURLNode.innerHTML = this._link(this._getGeneralURL(store.getIdentity(this.surveyRun))); 74 this.runURLNode.innerHTML = 75 this._link(this._getGeneralURL(store.getIdentity(this.surveyRun))); 75 76 } else { 76 this.runURLNode.innerHTML = "No general URL. Add individual respondents below."; 77 this.runURLNode.innerHTML = 78 "No general URL. Add individual respondents below."; 77 79 } 78 80 }, … … 102 104 }); 103 105 } 104 event.stop(evt);106 if ( evt ) { event.stop(evt); } 105 107 return false; 106 108 }, 107 109 _onDiscard: function(evt) { 108 110 Router.go('/surveys'); 111 if ( evt ) { event.stop(evt); } 112 return false; 113 }, 114 _onExport: function(evt) { 115 if ( evt ) { event.stop(evt); } 116 return false; 109 117 } 110 118 }); -
Dev/trunk/src/client/qed-client/pages/templates/response.html
r461 r463 1 1 <div class="blue"> 2 2 3 <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'top'"> 3 <div data-dojo-type="dijit/layout/ContentPane" 4 data-dojo-props="region:'top'"> 4 5 <h2> 5 6 <span class="rftIcon rftIconSurvey"></span> … … 9 10 </div> 10 11 11 <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center'" data-dojo-attach-point="content"> 12 <div name="answers" data-dojo-type="../model/widgets/SurveyRenderWidget" data-dojo-attach-point="surveyWidget"></div> 12 <div data-dojo-type="dijit/layout/ContentPane" 13 data-dojo-props="region:'center'" data-dojo-attach-point="content"> 14 <div name="answers" 15 data-dojo-type="../model/widgets/SurveyRenderWidget" 16 data-dojo-attach-point="surveyWidget"></div> 13 17 </div> 14 18 15 19 16 <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'bottom'"> 20 <div data-dojo-type="dijit/layout/ContentPane" 21 data-dojo-props="region:'bottom'"> 17 22 <button data-dojo-type="dijit/form/Button" 18 23 type="submit" -
Dev/trunk/src/client/qed-client/pages/templates/surveyRun.html
r457 r463 1 1 <div class="blue"> 2 2 3 <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'top'"> 3 <div data-dojo-type="dijit/layout/ContentPane" 4 data-dojo-props="region:'top'"> 4 5 <h2> 5 6 <span class="rftIcon rftIconSurvey"></span> 6 <span class="headerText" data-dojo-attach-point="titleNode">SurveyRun Editor</span> 7 <span class="headerText" 8 data-dojo-attach-point="titleNode">SurveyRun Editor</span> 7 9 </h2> 8 10 </div> 9 11 10 <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center'"> 12 <div data-dojo-type="dijit/layout/ContentPane" 13 data-dojo-props="region:'center'"> 11 14 <fieldset class="qedFieldset"> 12 15 <legend>Survey</legend> 13 <div data-dojo-type="../model/widgets/SurveySummary" data-dojo-attach-point="surveySummaryWidget"></div> 16 <div data-dojo-type="../model/widgets/SurveySummary" 17 data-dojo-attach-point="surveySummaryWidget"></div> 14 18 </fieldset> 15 19 <fieldset class="qedFieldset"> 16 20 <legend>Run Details</legend> 17 <div data-dojo-type="../model/widgets/SurveyRunWidget" data-dojo-attach-point="surveyRunWidget"></div> 21 <div data-dojo-type="../model/widgets/SurveyRunWidget" 22 data-dojo-attach-point="surveyRunWidget"></div> 18 23 </fieldset> 19 24 <fieldset class="qedFieldset"> 20 25 <legend>Response Details</legend> 21 <div><div class="qedLabel">General URL</div><div class="qedField" data-dojo-attach-point="runURLNode" style="overflow: ellipsis"></div></div> 22 <div><div class="qedLabel">Responses <span data-dojo-attach-point="responsesCountNode"></span></div><div class="qedField qedFill" data-dojo-attach-point="responsesNode"></div></div> 26 <div> 27 <div class="qedLabel">General URL</div> 28 <div class="qedField" 29 data-dojo-attach-point="runURLNode" 30 style="overflow: ellipsis"></div> 31 </div> 32 <div> 33 <div class="qedLabel">Response count</div> 34 <div data-dojo-attach-point="responsesCountNode"></div> 35 </div> 36 <div> 37 <div class="qedLabel">In progress count</div> 38 <div data-dojo-attach-point="inprogressCountNode"></div> 39 </div> 40 <div> 41 <div class="qedLabel">Responses (including partial)</div> 42 <div class="qedField qedFill" 43 data-dojo-attach-point="responsesNode"></div> 44 </div> 45 <div> 46 <div class="qedLabel">Export results</div> 47 <button data-dojo-type="dijit/form/Button" 48 class="qedField blue" 49 data-dojo-props="baseClass: 'rftBlockButton', iconClass: 'rftIcon rftIconSave'" 50 data-dojo-attach-event="onClick:_onExport">To CSV</button> 51 </div> 23 52 </fieldset> 24 53 </div> 25 54 26 <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region: 'bottom'" style="height: 40px;"> 55 <div data-dojo-type="dijit/layout/ContentPane" 56 data-dojo-props="region: 'bottom'" style="height: 40px;"> 27 57 <button data-dojo-type="dijit/form/Button" 28 58 class="blue" -
Dev/trunk/src/client/qed-client/store/CouchStore.js
r461 r463 5 5 "dojo/_base/json", 6 6 "dojo/_base/lang", 7 "dojo/request ",7 "dojo/request/registry", 8 8 "dojo/store/util/QueryResults" 9 9 ], function(Deferred, array, declare, json, lang, request, QueryResults) { -
Dev/trunk/src/package.json
r458 r463 1 1 { 2 "name": "qed- full",2 "name": "qed-server", 3 3 "version": "0.0.1", 4 "description": "QED Full", 5 "devDependencies": { 6 "grunt": "~0.4.0", 7 "grunt-contrib-copy": "~0.4.1", 8 "grunt-contrib-jshint": "~0.2.0", 9 "grunt-contrib-less": "~0.5.0", 10 "grunt-dojo": "~0.2.3", 11 "grunt-exec": "~0.4.1", 12 "grunt-htmlhint": "~0.4.0", 13 "grunt-contrib-clean": "~0.4.1", 14 "grunt-zip": "~0.9.0", 15 "grunt-curl": "~1.1.0" 4 "description": "QED Server", 5 "dependencies": { 6 "simple-http-proxy": "~0.5.2", 7 "express": "~3.2.3", 8 "underscore": "~1.4.4", 9 "passport": "~0.1.17", 10 "passport-local": "~0.1.6" 16 11 }, 17 "dependencies": { 18 "underscore": "~1.4.4", 19 "q": "~0.9.4", 20 "q-io": "~1.7.0" 12 "engines": { 13 "node": "0.10.x", 14 "npm": "1.2.x" 21 15 } 22 16 } -
Dev/trunk/src/server/app.js
r462 r463 1 1 var express = require("express"); 2 var passport = require("passport"), 3 passportLocal = require("passport-local"); 2 4 var fs = require("fs"); 3 var https = require("https");4 var os = require("os");5 5 var path = require("path"); 6 6 var proxy = require("simple-http-proxy"); 7 7 var _ = require("underscore"); 8 8 9 function clientPath(relativePath) { 10 return path.resolve('../client/'+relativePath); 9 function assertSetting(name, settings, validate) { 10 if ( typeof settings[name] === 'undefined' ) { 11 throw new Error("Required setting '"+name+"' undefined."); 12 } 13 if ( _.isFunction(validate) && !validate(settings[name]) ) { 14 throw new Error("Setting '"+name+"' with value '"+settings[name]+"' is invalid."); 15 } 11 16 } 12 17 13 var httpsOptions = { 14 key: fs.readFileSync(path.resolve('../qed-server.key')), 15 cert: fs.readFileSync(path.resolve('../qed-server.pem')) 18 exports.App = function(settings) { 19 20 assertSetting("couchDbURL", settings, _.isString); 21 22 function clientPath(relativePath) { 23 return path.resolve(__dirname+'/../client/'+relativePath); 24 } 25 26 passport.use(new passportLocal.Strategy(function(username, password, done){ 27 if ( username === "igor" && password === "mayer" ) { 28 done(null,{ username: "igor" }); 29 } else { 30 done(null,false,{ message: 'Invalid credentials.' }); 31 } 32 })); 33 34 var app = express(); 35 app.use(express.logger()); 36 app.use(express.compress()); 37 app.use(express.favicon()); 38 39 app.use(express.cookieParser()); 40 app.use(express.bodyParser()); 41 app.use(express.session({ secret: "quasi experimental design" })); 42 43 // initialize passport 44 app.use(passport.initialize()); 45 app.use(passport.session()); 46 47 // static resources 48 app.get('/', function(request, response){ 49 response.sendfile(clientPath('index.html')); 50 }); 51 app.get('/*.html', function(request, response) { 52 response.sendfile(clientPath(request.path)); 53 }); 54 _.each(['/dojo', '/dijit', '/dojox', '/qed', '/qed-client'], function(dir){ 55 app.use(dir, express.static(clientPath(dir))); 56 }); 57 58 // url to login (might work on others as well?) 59 // you should then have a session to work with 60 app.post('/api/login', passport.authenticate('local')); 61 62 // forward to couch 63 app.use('/data/couch', passport.authenticate('local'), proxy(settings.couchDbURL)); 64 65 return app; 66 16 67 }; 17 18 var app = express();19 app.use(express.logger());20 app.use(express.compress());21 app.use(express.favicon());22 app.get('/', function(request, response){23 response.sendfile(clientPath('index.html'));24 });25 app.get('/*.html', function(request, response) {26 response.sendfile(clientPath(request.path));27 });28 _.each(['/dojo', '/dijit', '/dojox', '/qed', '/qed-client'], function(dir){29 app.use(dir, express.static(clientPath(dir)));30 });31 app.use('/data/couch', proxy('http://localhost:5984/qed'));32 33 var server = https.createServer(httpsOptions, app);34 server.listen(8443);35 36 console.log(37 "Listening on " +38 _.chain(os.networkInterfaces())39 .map(function(value,key){ return value; })40 .flatten()41 .filter(function(intf){ return intf.family === "IPv4" && !intf.internal; })42 .reduce(function(urls, intf){ return urls+', http://'+intf.address+':8443/'; }, "http://127.0.0.1:8443/")43 .value() + ".");
Note: See TracChangeset
for help on using the changeset viewer.