Changeset 247 for Dev/branches/jQueryUI/js/api.js
- Timestamp:
- 02/08/12 16:43:40 (13 years ago)
- bzr:base-revision:
- hendrik@van-antwerpen.net-20120207191752-mbokj4rwqv8oi8bk
- bzr:committer:
- Hendrik van Antwerpen <hendrik@van-antwerpen.net>
- bzr:file-ids:
Dev/branches/jQueryUI/api.php 244@e1b9dffa-5495-0410-85d9-cf58ec4b5d15:%2FDev%2Fbranches%2FjQueryUI%2Fapi.php
Dev/branches/jQueryUI/index.php 243@e1b9dffa-5495-0410-85d9-cf58ec4b5d15:%2FDev%2Fbranches%2FjQueryUI%2Findex.php
Dev/branches/jQueryUI/js/api.js api.js-20120207184802-m5kfm0pir6sqj2uh-2
Dev/branches/jQueryUI/js/jquery/plugins plugins-20120208154136-m6u6o9acix3zvony-2
Dev/branches/jQueryUI/js/jquery/plugins/jquery.ba-bbq.js jquery.babbq.js-20120208154136-m6u6o9acix3zvony-5
Dev/branches/jQueryUI/js/main.js 244@e1b9dffa-5495-0410-85d9-cf58ec4b5d15:%2FDev%2Fbranches%2FjQueryUI%2Fjs%2Fmain.js
Dev/branches/jQueryUI/pages/mainmenu/mainmenu.html mainmenu.html-20120207184802-m5kfm0pir6sqj2uh-4
Dev/branches/jQueryUI/pages/mainmenu/mainmenu.js mainmenu.js-20120207184802-m5kfm0pir6sqj2uh-5
Dev/branches/jQueryUI/pages/sessions sessions-20120208154136-m6u6o9acix3zvony-1
Dev/branches/jQueryUI/pages/sessions/sessions.html sessions.html-20120208154136-m6u6o9acix3zvony-3
Dev/branches/jQueryUI/pages/sessions/sessions.js sessions.js-20120208154136-m6u6o9acix3zvony-4- bzr:mapping-version:
- v4
- bzr:repository-uuid:
- e1b9dffa-5495-0410-85d9-cf58ec4b5d15
- bzr:revision-id:
- hendrik@van-antwerpen.net-20120208154334-gr4a79sgxd2lp6v0
- bzr:revno:
- 248
- bzr:revprop:branch-nick:
- RESEARCHTOOL
- bzr:testament:
bazaar-ng testament short form 2.1
revision-id: hendrik@van-antwerpen.net-20120208154334-gr4a79sgxd2lp6v0
sha1: 5521adbc27dd512aa1572cefe88d4c14770cb488- bzr:text-parents:
Dev/branches/jQueryUI/api.php hendrik@van-antwerpen.net-20120207191752-mbokj4rwqv8oi8bk
Dev/branches/jQueryUI/index.php hendrik@van-antwerpen.net-20120207191752-mbokj4rwqv8oi8bk
Dev/branches/jQueryUI/js/api.js hendrik@van-antwerpen.net-20120207191752-mbokj4rwqv8oi8bk
Dev/branches/jQueryUI/js/jquery/plugins/jquery.ba-bbq.js
Dev/branches/jQueryUI/js/main.js hendrik@van-antwerpen.net-20120207191752-mbokj4rwqv8oi8bk
Dev/branches/jQueryUI/pages/mainmenu/mainmenu.html hendrik@van-antwerpen.net-20120207191752-mbokj4rwqv8oi8bk
Dev/branches/jQueryUI/pages/mainmenu/mainmenu.js hendrik@van-antwerpen.net-20120207191752-mbokj4rwqv8oi8bk
Dev/branches/jQueryUI/pages/sessions/sessions.html
Dev/branches/jQueryUI/pages/sessions/sessions.js- bzr:timestamp:
- 2012-02-08 16:43:34.436000109 +0100
- bzr:user-agent:
- bzr2.4.1+bzr-svn1.1.0
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Dev/branches/jQueryUI/js/api.js
r246 r247 1 1 $(function() { 2 3 jQuery.extend({ 4 getScript: function(url, callback) { 5 var d = $.Deferred(); 6 if (callback) 7 d.done(callback); 8 var head = document.getElementsByTagName("head")[0]; 9 var script = document.createElement("script"); 10 script.src = url; 11 12 // Handle Script loading 13 { 14 var done = false; 15 16 // Attach handlers for all browsers 17 script.onload = script.onreadystatechange = function(){ 18 if ( !done && (!this.readyState || 19 this.readyState == "loaded" || this.readyState == "complete") ) { 20 done = true; 21 d.resolve(); 22 23 // Handle memory leak in IE 24 script.onload = script.onreadystatechange = null; 25 } 26 }; 27 } 28 29 head.appendChild(script); 30 31 // We handle everything using the script element injection 32 return d; 33 } 34 }); 2 35 3 36 rft = { 4 37 api: { 5 post: function(action,args ,success,error) {6 $.ajax({38 post: function(action,args) { 39 return $.ajax({ 7 40 type: "POST", 8 41 url: "api.php", 9 42 contentType: "application/json", 10 data: JSON.stringify({ action:action, args:args }), 11 success: success, 12 error: error 43 data: JSON.stringify({ 44 uid:rft.auth.getUid(), 45 action:action, 46 args:args 47 }) 48 }); 49 }, 50 createObject: function(type, args) { 51 var d = $.Deferred(); 52 rft.api.post("createObject", 53 { 54 type: type, 55 values: args 56 }) 57 .done(function(data, textStatus, jqXHR) { 58 d.resolve(data.uid); 59 }) 60 .fail(function(jqXHR,textStatus,errorThrown){ 61 d.reject(); 62 }); 63 return d.promise(); 64 }, 65 getObject: function(type, uid, success) { 66 var d = $.Deferred(); 67 rft.api.post("getObject", 68 { 69 type: type, 70 uid: uid 71 }) 72 .done(function(data, textStatus, jqXHR) { 73 d.resolve(data.object); 74 }) 75 .fail(function(jqXHR,textStatus,errorThrown){ 76 d.reject(); 77 }); 78 return d.promise(); 79 }, 80 getObjects: function(type, predicates, success) { 81 var d = $.Deferred(); 82 rft.api.post("getObjects", 83 { 84 type: type, 85 predicates: predicates 86 }) 87 .done(function(data, textStatus, jqXHR) { 88 d.resolve(data.objects); 89 }) 90 .fail(function(jqXHR,textStatus,errorThrown){ 91 d.reject(); 92 }); 93 return d.promise(); 94 }, 95 deleteObject: function(type, uid, success) { 96 var d = $.Deferred(); 97 d.reject(); 98 return d.promise(); 99 100 } 101 }, 102 auth: new (function() { 103 var self = this; 104 var currentUid = null; 105 106 self.login = function(username,password,success,error) { 107 var d = $.Deferred(); 108 rft.api.post("login", 109 { 110 username:username, 111 password:password 112 }) 113 .done(function(data, textStatus, jqXHR) { 114 currentUid = data.uid; 115 d.resolve(data.uid); 116 }) 117 .fail(function(jqXHR,textStatus,errorThrown){ 118 d.reject(); 119 }); 120 return d.promise(); 121 }; 122 123 self.register = function(username,password,success,error) { 124 var d = $.Deferred(); 125 rft.api.post("register", 126 { 127 username:username, 128 password:password 129 }) 130 .done(function(data, textStatus, jqXHR) { 131 currentUid = data.uid; 132 d.resolve(data.uid); 133 }) 134 .fail(function(jqXHR,textStatus,errorThrown){ 135 d.reject(); 136 }); 137 return d.promise(); 138 }; 139 140 self.getUid = function(){ 141 return currentUid; 142 }; 143 })(), 144 content: new (function() { 145 var self = this; 146 var current = ""; 147 148 function init() { 149 $(window).bind( 'hashchange', function(e){ 150 var url = $.bbq.getState("content"); 151 self.goTo(url); 13 152 }); 14 153 } 15 }, 16 auth: { 17 login: function(username,password,success,error) { 18 rft.api.post("login", 19 {username:username,password:password}, 20 function(data,textStatus,jqXHR) { 21 success && success() 22 }, 23 function(jqXHR,textStatus,errorThrown) { 24 error && error() 25 } 26 ); 27 }, 28 register: function(username,password,success,error) { 29 rft.api.post("register", 30 {username:username,password:password}, 31 function(data,textStatus,jqXHR) { 32 success && success() 33 }, 34 function(jqXHR,textStatus,errorThrown) { 35 error && error() 36 } 37 ); 154 155 self.initial = function(location) { 156 if ( current ) { 157 self.goTo(location); 158 } 159 var url = $.bbq.getState("content"); 160 self.goTo(url || location); 38 161 } 39 } 162 163 self.goTo = function(location) { 164 if ( current == location ) { 165 return $.when(); 166 } 167 current = location; 168 var d = $.Deferred(); 169 $.get("pages/"+location+"/"+location+".html") 170 .done(function(html){ 171 $("#content").html(html); 172 $.getScript("pages/"+location+"/"+location+".js") 173 .done(function(){ 174 d.resolve(); 175 }) 176 .fail(function(){ 177 d.reject(); 178 }) 179 }) 180 .fail(function(){ 181 $("#content").html("Page "+location+" not found."); 182 d.reject(); 183 }).then(function(){ 184 $.bbq.pushState({ 185 "content": location 186 }); 187 }) 188 return d; 189 } 190 191 init(); 192 })() 40 193 }; 41 194
Note: See TracChangeset
for help on using the changeset viewer.