Ignore:
Timestamp:
02/08/12 16:43:40 (13 years ago)
Author:
hendrikvanantwerpen
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
Message:

Introduced basic checking of login.
Added object query and create functions to API.
Fixed sessions overview page.
Added browser history mgmt.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Dev/branches/jQueryUI/js/api.js

    r246 r247  
    11$(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    });
    235
    336    rft = {
    437        api: {
    5             post: function(action,args,success,error) {
    6                 $.ajax({
     38            post: function(action,args) {
     39                return $.ajax({
    740                    type: "POST",
    841                    url: "api.php",
    942                    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);
    13152                });
    14153            }
    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);
    38161            }
    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        })()
    40193    };
    41194
Note: See TracChangeset for help on using the changeset viewer.