TiddlyWiki.org

Changeset 4931

Show
Ignore:
Timestamp:
13/05/08 17:34:40 (2 months ago)
Author:
MartinBudden
Message:

Started work on wikispaces message handling

Files:

Legend:

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

    r4772 r4931  
    55|''Source:''|http://www.martinswiki.com/#WikispacesSoapAdaptorPlugin | 
    66|''CodeRepository:''|http://svn.tiddlywiki.org/Trunk/contributors/MartinBudden/adaptors/WikispacesSoapAdaptorPlugin.js | 
    7 |''Version:''|0.0.6
     7|''Version:''|0.0.7
    88|''Date:''|Feb 15, 2008| 
    99|''Comments:''|Please make comments at http://groups.google.co.uk/group/TiddlyWikiDev | 
     
    2929if(!version.extensions.WikispacesSoapAdaptorPlugin) { 
    3030version.extensions.WikispacesSoapAdaptorPlugin = {installed:true}; 
     31 
     32fnLog = function(text) 
     33{ 
     34        if(window.console) console.log(text.substr(0,80)); else displayMessage(text.substr(0,80)); 
     35}; 
    3136 
    3237function WikispacesSoapAdaptor() 
     
    236241WikispacesSoapAdaptor.getTiddlerListCallback = function(r,x,context)//(status,context,responseText,uri,xhr) 
    237242{ 
    238 //#console.log('getTiddlerListCallback'); 
    239243        var status = r instanceof Error ? false : true; 
     244//#console.log('getTiddlerListCallback:'+status); 
    240245        context.status = false; 
    241246        context.statusText = WikispacesSoapAdaptor.errorInFunctionMessage.format(['getTiddlerListCallback']); 
     
    245250        if(status) { 
    246251                try { 
     252//#console.log("x1"); 
    247253// /envelope/body/listpagesresponse/pagelist/page[0]/name 
    248254                        var list = []; 
    249255                        var p = x.getElementsByTagName('page'); 
    250256                        for(var i = 0;i<p.length;i++) { 
     257//#console.log("x2"); 
    251258                                var title = gev(p,i,'name'); 
     259                                console.log(title); 
    252260                                if(title.indexOf('._')!=0 && !store.isShadowTiddler(title)) { 
     261//#console.log("x3"); 
    253262                                        var tiddler = new Tiddler(title); 
    254263                                        //tiddler.modifier = gev(); 
     
    262271                                        tiddler.fields['server.page.revision'] = gev(p,i,'versionId'); 
    263272                                        tiddler.fields['server.workspace'] = context.workspace; 
    264                                         tiddler.fields['server.workspaceid'] = gev(p,i,'spaceId'); 
     273                                        tiddler.fields['server.workspaceid'] = gev(p,i,'spaceId');*/ 
    265274                                        tiddler.fields.wikiformat = 'wikispaces'; 
    266                                         tiddler.fields['server.host'] = WikispacesSoapAdaptor.minHostName(context.host);*/ 
     275                                        tiddler.fields['server.host'] = WikispacesSoapAdaptor.minHostName(context.host); 
    267276                                        list.push(tiddler); 
    268277                                } 
    269278                        } 
    270279                } catch (ex) { 
     280//#console.log("x4"); 
    271281                        context.statusText = exceptionText(ex,WikispacesSoapAdaptor.serverParsingErrorMessage); 
    272282                        if(context.callback) 
     
    274284                        return; 
    275285                } 
     286//#console.log("x5"); 
     287 
    276288                context.tiddlers = list; 
    277289                //context.adaptor.tiddlers = list; 
     
    279291                context.statusText = null; 
    280292        } else { 
     293//#console.log("x6"); 
    281294                context.statusText = '%0:%1 - %2%3'.format([r.name,r.message,r.fileName,r.lineNumber]); 
    282295        } 
     296//#console.log("x7"); 
    283297        if(context.callback) 
    284298                context.callback(context,context.userParams); 
     
    385399                        tiddler.fields.wikiformat = 'wikispaces'; 
    386400                        tiddler.fields['server.host'] = WikispacesSoapAdaptor.minHostName(context.host); 
     401//#console.log("fields"); 
     402//#console.log(tiddler.fields); 
    387403                        context.tiddler = tiddler; 
    388404                } catch (ex) { 
     
    516532}; 
    517533 
     534// Wikispaces specific Message hanlding follows: 
     535 
     536WikispacesSoapAdaptor.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); 
     541}; 
     542 
     543WikispacesSoapAdaptor.getTopicListComplete = function(context,userParams) 
     544{ 
     545//#console.log('getTopicListComplete'); 
     546// http://www.wikispaces.com/message/api?wsdl 
     547        var uri = WikispacesSoapAdaptor.SoapUri(context,'%0message/api'); 
     548//#console.log('uri:'+uri); 
     549        var pl = new SOAPClientParameters(); 
     550        pl.add('session',context.sessionToken); 
     551        pl.add('pageId',context.pageId); 
     552        SOAPClient.invoke(uri,'listTopics',pl,true,WikispacesSoapAdaptor.getMessageListCallback,context); 
     553        return true; 
     554}; 
     555 
     556WikispacesSoapAdaptor.getTopicListCallback = function(r,x,context)//(status,context,responseText,uri,xhr) 
     557{ 
     558//#console.log('getTopicListCallback'); 
     559        var status = r instanceof Error ? false : true; 
     560        context.status = false; 
     561        context.statusText = WikispacesSoapAdaptor.errorInFunctionMessage.format(['getTopicListCallback']); 
     562        function gev(p,i,n) { 
     563                return p[i].getElementsByTagName(n)[0].childNodes[0].nodeValue; 
     564        } 
     565        if(status) { 
     566                try { 
     567                        var list = []; 
     568                        var p = x.getElementsByTagName('message'); 
     569                        for(var i = 0;i<p.length;i++) { 
     570                                var title = String(gev(p,i,'id')) + ' Subject:' + gev(p,i,'subject'); 
     571                                //var title = gev(p,i,'subject'); 
     572                                if(title.indexOf('._')!=0 && !store.isShadowTiddler(title)) { 
     573                                        var tiddler = new Tiddler(title); 
     574                                        tiddler.text = gev(p,i,'body'); 
     575                                        tiddler.fields['server.page_id'] = gev(p,i,'page_id'); 
     576                                        tiddler.fields['server.topic_id'] = gev(p,i,'topic_id'); 
     577                                        tiddler.fields['server.responses'] = gev(p,i,'responses'); 
     578                                        tiddler.modified = WikispacesSoapAdaptor.dateFromTimestamp(gev(p,i,'date_created')); 
     579                                        tiddler.fields['server.modifier.id'] = gev(p,i,'user_created'); 
     580                                        tiddler.fields.wikiformat = 'wikispaces'; 
     581                                        tiddler.fields['server.host'] = WikispacesSoapAdaptor.minHostName(context.host); 
     582                                        list.push(tiddler); 
     583                                } 
     584                        } 
     585                } catch (ex) { 
     586                        context.statusText = exceptionText(ex,WikispacesSoapAdaptor.serverParsingErrorMessage); 
     587                        if(context.callback) 
     588                                context.callback(context,context.userParams); 
     589                        return; 
     590                } 
     591                context.topics = list; 
     592                context.status = true; 
     593                context.statusText = null; 
     594        } else { 
     595                context.statusText = '%0:%1 - %2%3'.format([r.name,r.message,r.fileName,r.lineNumber]); 
     596        } 
     597        if(context.callback) 
     598                context.callback(context,context.userParams); 
     599}; 
     600 
     601WikispacesSoapAdaptor.prototype.getMessageList = function(context,userParams,callback) 
     602{ 
     603//#console.log('getMessageList'); 
     604        context = this.setContext(context,userParams,callback); 
     605        return this.complete(context,WikispacesSoapAdaptor.getMessageListComplete); 
     606}; 
     607 
     608WikispacesSoapAdaptor.getMessageListComplete = function(context,userParams) 
     609{ 
     610//#console.log('getMessageListComplete'); 
     611        var uri = WikispacesSoapAdaptor.SoapUri(context,'%0message/api'); 
     612//#console.log('uri:'+uri); 
     613        var pl = new SOAPClientParameters(); 
     614        pl.add('session',context.sessionToken); 
     615        pl.add('topicId',context.topicId); 
     616        SOAPClient.invoke(uri,'listMessagesInTopic',pl,true,WikispacesSoapAdaptor.getMessageListCallback,context); 
     617        return true; 
     618}; 
     619 
     620WikispacesSoapAdaptor.getMessageListCallback = function(r,x,context)//(status,context,responseText,uri,xhr) 
     621{ 
     622//#console.log('getMessageListCallback'); 
     623        var status = r instanceof Error ? false : true; 
     624        context.status = false; 
     625        context.statusText = WikispacesSoapAdaptor.errorInFunctionMessage.format(['getMessageListCallback']); 
     626        function gev(p,i,n) { 
     627                return p[i].getElementsByTagName(n)[0].childNodes[0].nodeValue; 
     628        } 
     629        if(status) { 
     630                try { 
     631                        var list = []; 
     632                        var p = x.getElementsByTagName('message'); 
     633                        for(var i = 0;i<p.length;i++) { 
     634                                var title = String(gev(p,i,'id')) + ' Subject:' + gev(p,i,'subject'); 
     635                                //var title = gev(p,i,'subject'); 
     636                                if(title.indexOf('._')!=0 && !store.isShadowTiddler(title)) { 
     637                                        var tiddler = new Tiddler(title); 
     638                                        tiddler.text = gev(p,i,'body'); 
     639                                        tiddler.fields['server.page_id'] = gev(p,i,'page_id'); 
     640                                        tiddler.fields['server.topic_id'] = gev(p,i,'topic_id'); 
     641                                        tiddler.fields['server.responses'] = gev(p,i,'responses'); 
     642                                        tiddler.modified = WikispacesSoapAdaptor.dateFromTimestamp(gev(p,i,'date_created')); 
     643                                        tiddler.fields['server.modifier.id'] = gev(p,i,'user_created'); 
     644                                        tiddler.fields.wikiformat = 'wikispaces'; 
     645                                        tiddler.fields['server.host'] = WikispacesSoapAdaptor.minHostName(context.host); 
     646                                        list.push(tiddler); 
     647                                } 
     648                        } 
     649                } catch (ex) { 
     650                        context.statusText = exceptionText(ex,WikispacesSoapAdaptor.serverParsingErrorMessage); 
     651                        if(context.callback) 
     652                                context.callback(context,context.userParams); 
     653                        return; 
     654                } 
     655                context.messages = list; 
     656                context.status = true; 
     657                context.statusText = null; 
     658        } else { 
     659                context.statusText = '%0:%1 - %2%3'.format([r.name,r.message,r.fileName,r.lineNumber]); 
     660        } 
     661        if(context.callback) 
     662                context.callback(context,context.userParams); 
     663}; 
     664 
     665 
     666 
    518667config.adaptors[WikispacesSoapAdaptor.serverType] = WikispacesSoapAdaptor; 
    519668} //# end of 'install only once'