Changeset 361
- Timestamp:
- 07/16/12 13:40:53 (13 years ago)
- Location:
- Dev/branches/rest-dojo-ui/client/config
- Files:
-
- 1 deleted
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Dev/branches/rest-dojo-ui/client/config/db.js
r360 r361 6 6 'dojo/query', 7 7 'dijit/registry', 8 'dojox/io/xhrPlugins', 9 'dojo/text!./docs/rft/_security.json', 10 'dojo/text!./docs/_users/rft_admin.json', 11 'dojo/text!./docs/rft/_design/default.json', 12 'dojo/text!./docs/rft/q1.json', 13 'dojo/text!./docs/rft/q2.json', 14 'dojo/text!./docs/rft/q3.json', 15 'dojo/text!./docs/rft/q4.json', 8 'dojo/text!./docs.json', 16 9 'dojo/domReady!', 17 10 'dijit/form/TextBox', … … 19 12 'dijit/form/CheckBox', 20 13 ], 21 function(json,lang,xhr,parser,query,registry,xhrPlugins, 22 securityDoc,rft_adminDoc,design_defaultDoc,q1Doc,q2Doc,q3Doc,q4Doc){ 14 function(json,lang,xhr,parser,query,registry,docsJson){ 15 var logNode; 16 var usernameInput, passwordInput, resetInput, configButton; 17 var defaultUsername = "", defaultPassword = ""; 18 var dbUrl = "../data/"; 19 23 20 parser.parse(); 24 21 25 var logNode;26 22 query("#log").forEach(function(n){ logNode = n; }); 23 usernameInput = registry.byId('username'); 24 passwordInput = registry.byId('password'); 25 resetInput = registry.byId('reset'); 26 configButton = registry.byId('configure'); 27 27 28 function log(text,overwrite) { 29 if ( overwrite ) logNode.innerHTML = text 30 else logNode.innerHTML = logNode.innerHTML + '\n' + text; 31 } 32 33 var usernameInput = registry.byId('username'); 34 var passwordInput = registry.byId('password'); 35 var resetInput = registry.byId('reset'); 36 37 usernameInput.set('value','rft_admin'); 38 passwordInput.set('value','Welkom01'); 28 usernameInput.set('value',defaultUsername); 29 passwordInput.set('value',defaultPassword); 30 configButton.on('click',configure); 39 31 40 32 log("Give CouchDB admin username & password and click 'Configure' to start.\nIf the database already exists, rft_admin password will suffice.",true); 41 33 42 registry.byId('configure').on('click',function(){ 34 35 function configure(){ 43 36 log("Configuring CouchDB for RFT:",true); 44 37 45 var baseUrl = '../data';46 38 var username = usernameInput.get('value'); 47 39 var password = passwordInput.get('value'); 48 40 var reset = resetInput.get('value'); 49 41 42 var docs = json.fromJson(docsJson); 43 50 44 function req(method,url,body) { 51 args = {52 url: baseUrl+url,45 var args = { 46 url: dbUrl+url, 53 47 contentType: 'application/json', 54 48 handleAs: 'json', … … 79 73 }); 80 74 81 82 75 var exists = false; 83 76 log("Checking database 'rft'"); 84 77 req('GET','/rft') 85 .then(function( res){86 log("Database 'rft' found. \nLeaving security and users as they are.")78 .then(function(db){ 79 log("Database 'rft' found.") 87 80 exists = true; 88 81 }); … … 94 87 log("Creating database 'rft'") 95 88 req('PUT','/rft') 96 97 /*log("Setting _security on database 'rft'");98 req('PUT','/rft/_security', securityDoc);99 100 log("Checking 'rft_admin' user");101 req('GET','/_users/org.couchdb.user:rft_admin')102 .then(function(){103 log("User 'rft_admin' already exists.");104 }, function() {105 log("Creating user 'rft_admin' with password 'Welkom01'");106 req('PUT','/_users/org.couchdb.user:rft_admin', rft_adminDoc);107 });*/108 89 }; 109 90 110 log("Updating design documents"); 111 newDoc = json.fromJson(design_defaultDoc); 112 req('GET','/rft/_design/default') 113 .then(function(doc){ 114 newDoc['_rev'] = doc['_rev']; 115 }); 116 req('PUT','/rft/_design/default', newDoc); 91 function processDoc(docUrl,doc){ 92 var configAction = doc.__configAction; 93 delete doc.__configAction; 94 switch (configAction) { 95 case "ignore": 96 log(docUrl+" ignored."); 97 return false; 98 case "update": 99 log(docUrl+" updating."); 100 return req('GET',docUrl) 101 .then(function(oldDoc){ 102 lang.mixin(oldDoc,doc); 103 return req('PUT',docUrl,oldDoc); 104 },function(){ 105 return req('PUT',docUrl,doc); 106 }); 107 case "replace": 108 default: 109 log(docUrl+" replacing."); 110 return req('GET',docUrl) 111 .then(function(oldDoc){ 112 doc['_rev'] = oldDoc['_rev']; 113 return req('PUT',docUrl,doc); 114 },function(){ 115 return req('PUT',docUrl,doc); 116 }); 117 } 118 } 117 119 118 log("Uploading sample question documents"); 119 req('PUT','/rft/q1', json.fromJson(q1Doc)); 120 req('PUT','/rft/q2', json.fromJson(q2Doc)); 121 req('PUT','/rft/q3', json.fromJson(q3Doc)); 122 req('PUT','/rft/q4', json.fromJson(q4Doc)); 120 for (var docUrl in docs) { 121 processDoc(docUrl,docs[docUrl]); 122 } 123 123 124 124 log("Done!"); 125 }); 125 } 126 127 function log(text,overwrite) { 128 if ( overwrite ) logNode.innerHTML = text 129 else logNode.innerHTML = logNode.innerHTML + '\n' + text; 130 } 126 131 127 132 });
Note: See TracChangeset
for help on using the changeset viewer.