Changeset 519
- Timestamp:
- 03/15/14 01:00:23 (11 years ago)
- Location:
- Dev/trunk
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
Dev/trunk/Gruntfile.js
r518 r519 84 84 { cwd: srcDir, ext: '.css' }); 85 85 86 var mode = process.env.QED_ENV || 'dev'; 87 var dbNames = { 88 dev: 'qed-dev', 89 production: 'qed' 90 }; 91 if ( !( mode in dbNames ) ) { 92 throw new Error("Unknown mode "+mode+" specified."); 93 } 94 86 95 // TASK CONFIG 87 96 88 97 grunt.initConfig({ 89 98 localDbURL: "http://localhost:5984", 99 dbName: dbNames[mode], 90 100 timestamp: "<%= grunt.template.today(\"UTC:yyyymmdd't'HHMMss'z'\") %>", 91 101 … … 155 165 method: 'POST', 156 166 body: { 157 source: "<%= herokuConfig.CLOUDANT_URL %>/ qed",158 target: " qed-<%= timestamp %>",167 source: "<%= herokuConfig.CLOUDANT_URL %>/<%= dbName %>", 168 target: "<%= dbName %>-<%= timestamp %>", 159 169 create_target: true 160 170 }, … … 167 177 method: 'POST', 168 178 body: { 169 source: "<%= herokuConfig.CLOUDANT_URL %>/ qed",170 target: " qed"179 source: "<%= herokuConfig.CLOUDANT_URL %>/<%= dbName %>", 180 target: "<%= dbName %>" 171 181 }, 172 182 json: true … … 178 188 method: 'POST', 179 189 body: { 180 source: " qed",181 target: "<%= herokuConfig.CLOUDANT_URL %>/ qed"190 source: "<%= dbName %>", 191 target: "<%= herokuConfig.CLOUDANT_URL %>/<%= dbName %>" 182 192 }, 183 193 json: true -
Dev/trunk/src/client/index.html
r468 r519 25 25 <div id="content" class="page" data-dojo-type="dijit/layout/BorderContainer" data-dojo-props="region:'center'" style="width: 100%; height: 100%;"> 26 26 <div class="topbar" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'top'"> 27 <a href="#!/"><h1>QED</h1></a> 27 <a href="#!/"><h1>QED</h1></a><span id="qedModeNode"></span> 28 28 <div id="menu"></div> 29 29 </div> -
Dev/trunk/src/client/qed-client/app/Router.js
r515 r519 29 29 this._handleHashChange(hash()); 30 30 window.onbeforeunload = function(evt) { 31 var msg = Content.isDirty() ? 32 "Unsaved changes, leave anyway?" : 33 null; 34 evt.returnValue = msg; 31 var msg; 32 if ( Content.isDirty() ) { 33 msg = "Unsaved changes, leave anyway?"; 34 evt.returnValue = msg; 35 } 35 36 return msg; 36 37 }; -
Dev/trunk/src/client/qed-client/css/ui/topbar.less
r443 r519 6 6 float: left; 7 7 clear: left; 8 } 9 10 #qedModeNode { 11 float: left; 12 margin-top: 28px; 8 13 } 9 14 -
Dev/trunk/src/client/qed-client/index.js
r472 r519 5 5 "./ui/MainMenu", 6 6 "dojo/_base/array", 7 "dojo/_base/xhr", 8 "dojo/dom", 7 9 "dojo/parser", 8 10 "./stddeps", 9 11 "dojo/domReady!" 10 ], function(Router, routes, session, MainMenu, array, parser) {12 ], function(Router, routes, session, MainMenu, array, xhr, dom, parser) { 11 13 12 14 parser.parse(); 13 15 14 16 new MainMenu({},"menu").startup(); 17 18 xhr("GET", { 19 url: 'api/mode', 20 handleAs: 'json' 21 }).then(function(result){ 22 var node = dom.byId('qedModeNode'); 23 if ( result.mode !== 'production' ) { 24 node.innerHTML = "Running in "+result.mode+" mode"; 25 } 26 }); 15 27 16 28 array.forEach(routes,function(route){ -
Dev/trunk/src/client/qed-client/pages/surveyRun.js
r506 r519 47 47 .then(lang.hitch(this,function(allResponses){ 48 48 array.forEach(allResponses, function(response){ 49 var actions = { 50 view: { 51 callback: function(){}, 49 var actions = {}; 50 if ( !response.publicationDate ) { 51 actions.Delete = { 52 callback: function(){ 53 responses.remove(response) 54 .then(function(){ 55 w.destroy(); 56 }); 57 }, 52 58 properties: { 53 title: "View response" 54 } 55 } 56 }; 57 if ( !response.publicationDate ) { 58 actions.remove = { 59 callback: function(){}, 60 properties: { 61 title: "Remove response" 59 icon: 'Delete', 60 title: "Delete response" 62 61 } 63 62 }; -
Dev/trunk/src/server/app.js
r508 r519 14 14 ; 15 15 16 function assertSetting(name, settings, validate) { 17 if ( typeof settings[name] === 'undefined' ) { 18 throw new Error("Required setting '"+name+"' undefined."); 19 } 20 if ( _.isFunction(validate) && !validate(settings[name]) ) { 21 throw new Error("Setting '"+name+"' with value '"+settings[name]+"' is invalid."); 22 } 23 } 24 25 exports.App = function(settings) { 26 27 assertSetting("couchServerURL", settings, _.isString); 28 assertSetting("dbName", settings, _.isString); 29 var couch = new CouchDB(settings.couchServerURL,settings.dbName); 16 exports.App = function(env) { 17 18 assertSetting("couchServerURL", env, _.isString); 19 assertSetting("dbName", env, _.isString); 20 assertSetting("mode", env, _.isString); 21 var couch = new CouchDB(env.couchServerURL,env.dbName); 30 22 31 23 var schema = require("./config/couchdb-schema.json"); … … 35 27 throw new Error(msg); 36 28 } 37 return configureApp( settings,couch,schema);29 return configureApp(env,couch,schema); 38 30 }); 39 31 40 32 }; 41 33 42 function configureApp( settings,couch,schema) {34 function configureApp(env,couch,schema) { 43 35 44 36 function clientPath(relativePath) { … … 46 38 } 47 39 48 passport.use(new passportLocal.Strategy(function(username, password, done){ 49 if ( username === "igor" && password === "mayer" ) { 50 done(null,{ username: "igor" }); 51 } else { 52 done(null,false,{ message: 'Invalid credentials.' }); 53 } 54 })); 40 passport.use( 41 new passportLocal.Strategy( 42 function(username, password, done){ 43 if ( username === "igor" && password === "mayer" ) { 44 done(null,{ username: "igor" }); 45 } else { 46 done(null,false,{ message: 'Invalid credentials.' }); 47 } 48 })); 55 49 passport.serializeUser(function(user, done) { 56 50 done(null, user.username); … … 952 946 }); 953 947 948 app.get('/api/mode', 949 ensureMIME(JSON_MIME), 950 function(req,res){ 951 res.send({mode:env.mode}); 952 }); 953 954 954 955 return app; 955 956 } … … 991 992 return result; 992 993 } 994 995 function assertSetting(name, settings, validate) { 996 if ( typeof settings[name] === 'undefined' ) { 997 throw new Error("Required setting '"+name+"' undefined."); 998 } 999 if ( _.isFunction(validate) && !validate(settings[name]) ) { 1000 throw new Error("Setting '"+name+"' with value '"+settings[name]+"' is invalid."); 1001 } 1002 } -
Dev/trunk/src/server/bin/check-db.js
r487 r519 2 2 , checkCouch = require('../config/check-couchdb') 3 3 ; 4 console.log("Running on",env.couchServerURL+env.dbName); 4 5 checkCouch(env.couchServerURL,env.dbName) 5 6 .then(function(res){ -
Dev/trunk/src/server/bin/config-db-for-upgrade.js
r487 r519 3 3 , designDocs = require('../config/couchdb-upgrade-design-docs') 4 4 ; 5 console.log("Running on",env.couchServerURL+env.dbName); 5 6 configCouch(env.couchServerURL,env.dbName,designDocs) 6 7 .then(function(res){ -
Dev/trunk/src/server/bin/config-db.js
r487 r519 3 3 , designDocs = require('../config/couchdb-design-docs') 4 4 ; 5 console.log("Running on",env.couchServerURL+env.dbName); 5 6 configCouch(env.couchServerURL,env.dbName,designDocs) 6 7 .then(function(res){ -
Dev/trunk/src/server/bin/heroku.js
r487 r519 1 1 var env = require('../env') 2 2 , configCouch = require('../config/config-couchdb') 3 , designDocs = require('../config/co nfig-couchdb')3 , designDocs = require('../config/couchdb-design-docs') 4 4 ; 5 5 6 console.log("Running on",env.couchServerURL );6 console.log("Running on",env.couchServerURL+env.dbName); 7 7 8 require('../app').App({ 9 couchServerURL: env.couchServerURL, 10 dbName: env.dbName 11 }).then(function(app){ 8 require('../app').App(env) 9 .then(function(app){ 12 10 configCouch(env.couchServerURL,env.dbName,designDocs); 13 11 return app; -
Dev/trunk/src/server/config/config-couchdb.js
r487 r519 20 20 } 21 21 }).then(function(res){ 22 console.log("Checking database ' qed'");23 return server.get( 'qed')22 console.log("Checking database '"+dbName+"'"); 23 return server.get(dbName) 24 24 .then(function(db){ 25 console.log("Database 'qed'found.");25 console.log("Database found."); 26 26 },function(err){ 27 console.log("Creating database 'qed'");28 return server.put( 'qed');27 console.log("Creating database."); 28 return server.put(dbName); 29 29 }); 30 30 }).then(function(){ … … 34 34 var configAction = doc.__configAction || "replace"; 35 35 delete doc.__configAction; 36 docUrl = dbName+'/'+docUrl; 36 37 switch (configAction) { 37 38 case "ignore": -
Dev/trunk/src/server/config/couchdb-design-docs.js
r516 r519 1 1 module.exports = { 2 2 3 "_users/qed_admin": { 4 __configAction: "ignore", 5 _id: "org.couchdb.user:qed_admin", 6 name: "qed_admin", 7 password: "Welkom01", 8 roles: [ "qed_admin" ], 9 type: "user" 10 }, 11 12 "qed/schemaInfo": { 3 "schemaInfo": { 4 _id: "schemaInfo", 13 5 version: "4" 14 6 }, 15 7 16 "qed/_security": { 17 __configAction: "ignore", 18 admins: { 19 names: [], 20 roles: ["qed_admin"] 21 }, 22 readers: { 23 names: [], 24 roles: ["qed_user"] 25 } 26 }, 27 28 "qed/_design/protectPublished": { 8 "_design/protectPublished": { 29 9 __configAction: "replace", 30 _id: "_design/protectPublished",31 10 language: "javascript", 32 11 validate_doc_update: function(newDoc, oldDoc, userCtx, secObj) { … … 37 16 }, 38 17 39 " qed/_design/default": {18 "_design/default": { 40 19 __configAction: "replace", 41 _id: "_design/default",42 20 language: "javascript", 43 21 views: { … … 57 35 }, 58 36 59 " qed/_design/questions": {37 "_design/questions": { 60 38 __configAction: "replace", 61 _id: "_design/questions",62 39 language: "javascript", 63 40 views: { … … 117 94 }, 118 95 119 " qed/_design/surveys": {96 "_design/surveys": { 120 97 __configAction: "replace", 121 _id: "_design/surveys",122 98 language: "javascript", 123 99 views: { … … 137 113 }, 138 114 139 " qed/_design/surveyRuns": {115 "_design/surveyRuns": { 140 116 __configAction: "replace", 141 _id: "_design/surveys",142 117 language: "javascript", 143 118 views: { … … 153 128 }, 154 129 155 " qed/_design/responses": {130 "_design/responses": { 156 131 __configAction: "replace", 157 _id: "_design/responses",158 132 language: "javascript", 159 133 views: { -
Dev/trunk/src/server/config/couchdb-upgrade-design-docs.js
r516 r519 1 1 module.exports = { 2 2 3 " qed/schemaInfo": {3 "schemaInfo": { 4 4 version: "-1" 5 5 }, 6 6 7 "qed/_design/protectPublished": { 8 __configAction: "replace", 9 _id: "_design/protectPublished" 7 "_design/protectPublished": { 8 __configAction: "replace" 10 9 } 11 10 -
Dev/trunk/src/server/env.js
r487 r519 1 var couchServerURL = (process.env.CLOUDANT_URL || 'http://localhost:5984')+'/'; 1 var dbNames = { 2 dev: 'qed-dev', 3 production: 'qed' 4 }; 5 var mode = process.env.QED_ENV || 'dev'; 6 if ( !( mode in dbNames ) ) { 7 throw new Error("Unknown environment "+mode); 8 } 2 9 module.exports = { 3 10 port: process.env.PORT || 5000, 4 couchServerURL: couchServerURL, 5 dbName: 'qed' 11 couchServerURL: (process.env.CLOUDANT_URL || 'http://localhost:5984')+'/', 12 dbName: dbNames[mode], 13 mode: mode 6 14 };
Note: See TracChangeset
for help on using the changeset viewer.