TiddlyWiki.org

Changeset 4942

Show
Ignore:
Timestamp:
14/05/08 15:46:43 (2 months ago)
Author:
MartinBudden
Message:

Improved message and topic handling code

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • Trunk/contributors/MartinBudden/adaptors/WikispacesSoapAdaptorPlugin.js

    r4931 r4942  
    3232fnLog = function(text) 
    3333{ 
    34       if(window.console) console.log(text.substr(0,80)); else displayMessage(text.substr(0,80)); 
     34//    if(window.console) console.log(text.substr(0,80)); else displayMessage(text.substr(0,80)); 
    3535}; 
    3636 
     
    115115WikispacesSoapAdaptor.prototype.login = function(context) 
    116116{ 
    117 //#console.log('login:'+context.host); 
     117fnLog('login:'+context.host); 
    118118// http://www.wikispaces.com/site/api?wsdl 
    119119        var uri = WikispacesSoapAdaptor.SoapUri(context,'%0site/api'); 
     
    128128WikispacesSoapAdaptor.loginCallback = function(r,x,context)//status,context,responseText,url,xhr) 
    129129{ 
    130 //#console.log('loginCallback'); 
     130fnLog('loginCallback'); 
    131131        if(r instanceof Error) { 
    132132                context.status = false; 
     
    143143WikispacesSoapAdaptor.prototype.openHost = function(host,context,userParams,callback) 
    144144{ 
    145 //#console.log('openHost:'+host); 
     145fnLog('openHost:'+host); 
    146146        this.host = WikispacesSoapAdaptor.fullHostName(host); 
    147147        context = this.setContext(context,userParams,callback); 
     
    155155WikispacesSoapAdaptor.prototype.openWorkspace = function(workspace,context,userParams,callback) 
    156156{ 
    157 //#console.log('openWorkspace:'+workspace); 
     157fnLog('openWorkspace:'+workspace); 
    158158        this.workspace = workspace; 
    159159        context = this.setContext(context,userParams,callback); 
     
    242242{ 
    243243        var status = r instanceof Error ? false : true; 
    244 //#console.log('getTiddlerListCallback:'+status); 
    245244        context.status = false; 
    246245        context.statusText = WikispacesSoapAdaptor.errorInFunctionMessage.format(['getTiddlerListCallback']); 
     
    250249        if(status) { 
    251250                try { 
    252 //#console.log("x1"); 
    253251// /envelope/body/listpagesresponse/pagelist/page[0]/name 
    254252                        var list = []; 
    255253                        var p = x.getElementsByTagName('page'); 
    256254                        for(var i = 0;i<p.length;i++) { 
    257 //#console.log("x2"); 
    258255                                var title = gev(p,i,'name'); 
    259                                 console.log(title); 
     256                                //#fnLog(title); 
    260257                                if(title.indexOf('._')!=0 && !store.isShadowTiddler(title)) { 
    261 //#console.log("x3"); 
    262258                                        var tiddler = new Tiddler(title); 
    263259                                        //tiddler.modifier = gev(); 
     
    278274                        } 
    279275                } catch (ex) { 
    280 //#console.log("x4"); 
    281276                        context.statusText = exceptionText(ex,WikispacesSoapAdaptor.serverParsingErrorMessage); 
    282277                        if(context.callback) 
     
    284279                        return; 
    285280                } 
    286 //#console.log("x5"); 
    287281 
    288282                context.tiddlers = list; 
     
    291285                context.statusText = null; 
    292286        } else { 
    293 //#console.log("x6"); 
    294287                context.statusText = '%0:%1 - %2%3'.format([r.name,r.message,r.fileName,r.lineNumber]); 
    295288        } 
    296 //#console.log("x7"); 
    297289        if(context.callback) 
    298290                context.callback(context,context.userParams); 
     
    312304WikispacesSoapAdaptor.prototype.getTiddlerRevision = function(title,revision,context,userParams,callback) 
    313305{ 
    314 //#console.log('getTiddlerRevision:'+title); 
     306//#fnLog('getTiddlerRevision:'+title); 
    315307        context = this.setContext(context,userParams,callback); 
    316308        if(revision) 
     
    321313WikispacesSoapAdaptor.prototype.getTiddler = function(title,context,userParams,callback) 
    322314{ 
    323 //#console.log('getTiddler:'+title); 
     315//#fnLog('getTiddler:'+title); 
    324316        context = this.setContext(context,userParams,callback); 
    325317        if(context.adaptor.tiddlers && !context.revision) { 
     
    350342WikispacesSoapAdaptor.getTiddlerComplete = function(context,userParams) 
    351343{ 
    352 //#console.log('getTiddlerComplete:'+context.tiddler.title); 
     344//#fnLog('getTiddlerComplete:'+context.tiddler.title); 
    353345        var uri = WikispacesSoapAdaptor.SoapUri(context,'%0page/api'); 
    354 //#console.log('uri:'+uri); 
     346//#fnLog('uri:'+uri); 
    355347        var pl = new SOAPClientParameters(); 
    356348        pl.add('session',context.sessionToken); 
     
    363355WikispacesSoapAdaptor.getTiddlerRevisionComplete = function(context,userParams) 
    364356{ 
    365 //#console.log('getTiddlerRevisionComplete:'+context.tiddler.title); 
     357//#fnLog('getTiddlerRevisionComplete:'+context.tiddler.title); 
    366358        var uri = WikispacesSoapAdaptor.SoapUri(context,'%0page/api'); 
    367 //#console.log('uri:'+uri); 
     359//#fnLog('uri:'+uri); 
    368360        var pl = new SOAPClientParameters(); 
    369361        pl.add('session',context.sessionToken); 
     
    377369WikispacesSoapAdaptor.getTiddlerCallback = function(r,x,context)//(status,context,responseText,uri,xhr) 
    378370{ 
    379 //#console.log('getTiddlerCallback:'+context.tiddler.title); 
     371//#fnLog('getTiddlerCallback:'+context.tiddler.title); 
    380372        var status = r instanceof Error ? false : true; 
    381373        context.status = false; 
    382374        context.statusText = WikispacesSoapAdaptor.errorInFunctionMessage.format(['getTiddlerCallback']); 
    383375        function gev(p,i,n) { 
    384                 return p[i].getElementsByTagName(n)[0].childNodes[0].nodeValue; 
     376                try { 
     377                        return p[i].getElementsByTagName(n)[0].childNodes[0].nodeValue; 
     378                } catch(ex) { 
     379                } 
    385380        } 
    386381        if(status) { 
     
    399394                        tiddler.fields.wikiformat = 'wikispaces'; 
    400395                        tiddler.fields['server.host'] = WikispacesSoapAdaptor.minHostName(context.host); 
    401 //#console.log("fields"); 
    402 //#console.log(tiddler.fields); 
     396//#fnLog("fields"); 
     397//#fnLog(tiddler.fields); 
    403398                        context.tiddler = tiddler; 
    404                 } catch (ex) { 
     399                } catch(ex) { 
    405400                        context.statusText = exceptionText(ex,WikispacesSoapAdaptor.serverParsingErrorMessage); 
    406401                        if(context.callback) 
     
    412407        } else { 
    413408                context.statusText = '%0:%1 - %2%3'.format([r.name,r.message,r.fileName,r.lineNumber]); 
    414                 //#console.log('gtc:'+context.statusText); 
     409                //#fnLog('gtc:'+context.statusText); 
    415410        } 
    416411        if(context.callback) 
     
    428423WikispacesSoapAdaptor.getTiddlerRevisionListComplete = function(context,userParams) 
    429424{ 
    430 //#console.log('getTiddlerRevisionListComplete'); 
     425//#fnLog('getTiddlerRevisionListComplete'); 
    431426        var uri = WikispacesSoapAdaptor.SoapUri(context,'%0page/api'); 
    432 //#console.log('uri:'+uri); 
     427//#fnLog('uri:'+uri); 
    433428        if(!context.workspaceId) { 
    434429                var tiddler = store.fetchTiddler(context.title); 
     
    534529// Wikispaces specific Message hanlding follows: 
    535530 
    536 WikispacesSoapAdaptor.prototype.getTopicList = function(context,userParams,callback) 
    537 
    538 //#console.log('getTopicList'); 
    539         context = this.setContext(context,userParams,callback); 
    540         return this.complete(context,WikispacesSoapAdaptor.getMessageListComplete); 
     531WikispacesSoapAdaptor.prototype.getTopicList = function(title,context,userParams,callback) 
     532
     533fnLog('getTopicList'); 
     534        context = this.setContext(context,userParams,callback); 
     535        var tiddler = store.getTiddler(title); 
     536        context.pageId = tiddler.fields['server.page.id']; 
     537        context.parentTitle = title; 
     538 
     539        return this.complete(context,WikispacesSoapAdaptor.getTopicListComplete); 
    541540}; 
    542541 
    543542WikispacesSoapAdaptor.getTopicListComplete = function(context,userParams) 
    544543{ 
    545 //#console.log('getTopicListComplete'); 
     544fnLog('getTopicListComplete'); 
    546545// http://www.wikispaces.com/message/api?wsdl 
    547546        var uri = WikispacesSoapAdaptor.SoapUri(context,'%0message/api'); 
     
    550549        pl.add('session',context.sessionToken); 
    551550        pl.add('pageId',context.pageId); 
    552         SOAPClient.invoke(uri,'listTopics',pl,true,WikispacesSoapAdaptor.getMessageListCallback,context); 
     551        SOAPClient.invoke(uri,'listTopics',pl,true,WikispacesSoapAdaptor.getTopicListCallback,context); 
    553552        return true; 
    554553}; 
     
    556555WikispacesSoapAdaptor.getTopicListCallback = function(r,x,context)//(status,context,responseText,uri,xhr) 
    557556{ 
    558 //#console.log('getTopicListCallback'); 
    559557        var status = r instanceof Error ? false : true; 
     558//#fnLog('getTopicListCallback:'+status); 
    560559        context.status = false; 
    561560        context.statusText = WikispacesSoapAdaptor.errorInFunctionMessage.format(['getTopicListCallback']); 
     
    568567                        var p = x.getElementsByTagName('message'); 
    569568                        for(var i = 0;i<p.length;i++) { 
    570                                 var title = String(gev(p,i,'id')) + ' Subject:' + gev(p,i,'subject'); 
     569                                var title = '_topic:' + String(gev(p,i,'id')) + ' parent:' + context.parentTitle+' Subject:' + gev(p,i,'subject'); 
    571570                                //var title = gev(p,i,'subject'); 
    572571                                if(title.indexOf('._')!=0 && !store.isShadowTiddler(title)) { 
     
    599598}; 
    600599 
    601 WikispacesSoapAdaptor.prototype.getMessageList = function(context,userParams,callback) 
    602 
    603 //#console.log('getMessageList'); 
    604         context = this.setContext(context,userParams,callback); 
     600WikispacesSoapAdaptor.prototype.getMessageList = function(topicId,context,userParams,callback) 
     601
     602fnLog('getMessageList:'+topicId); 
     603        context = this.setContext(context,userParams,callback); 
     604        context.topicId = topicId; 
    605605        return this.complete(context,WikispacesSoapAdaptor.getMessageListComplete); 
    606606}; 
     
    608608WikispacesSoapAdaptor.getMessageListComplete = function(context,userParams) 
    609609{ 
    610 //#console.log('getMessageListComplete'); 
     610fnLog('getMessageListComplete'); 
    611611        var uri = WikispacesSoapAdaptor.SoapUri(context,'%0message/api'); 
    612 //#console.log('uri:'+uri); 
     612//#fnLog('uri:'+uri); 
    613613        var pl = new SOAPClientParameters(); 
    614614        pl.add('session',context.sessionToken); 
     
    620620WikispacesSoapAdaptor.getMessageListCallback = function(r,x,context)//(status,context,responseText,uri,xhr) 
    621621{ 
    622 //#console.log('getMessageListCallback'); 
    623622        var status = r instanceof Error ? false : true; 
    624        context.status = false
     623fnLog('getMessageListCallback:'+status)
    625624        context.statusText = WikispacesSoapAdaptor.errorInFunctionMessage.format(['getMessageListCallback']); 
    626625        function gev(p,i,n) { 
     
    632631                        var p = x.getElementsByTagName('message'); 
    633632                        for(var i = 0;i<p.length;i++) { 
    634                                 var title = String(gev(p,i,'id')) + ' Subject:' + gev(p,i,'subject'); 
     633                                var title = '_message:' + String(gev(p,i,'id')) + ' Subject:' + gev(p,i,'subject'); 
     634                                fnLog("msg:"+title); 
    635635                                //var title = gev(p,i,'subject'); 
    636636                                if(title.indexOf('._')!=0 && !store.isShadowTiddler(title)) { 
     
    663663}; 
    664664 
    665  
    666  
    667665config.adaptors[WikispacesSoapAdaptor.serverType] = WikispacesSoapAdaptor; 
    668666} //# end of 'install only once'