# HG changeset patch # User victorp@symbian.org # Date 1273498367 -3600 # Node ID abeee2a2e01be5551ebc37286ed342ad9638104f # Parent 29d06ba03163fc63845e31e177f80b4b6f5e3047 my package version 0.4a diff -r 29d06ba03163 -r abeee2a2e01b mypackage_wrt/Info.plist --- a/mypackage_wrt/Info.plist Mon May 10 09:27:55 2010 +0100 +++ b/mypackage_wrt/Info.plist Mon May 10 14:32:47 2010 +0100 @@ -7,7 +7,7 @@ Identifier mypackage.org.symbian.developer.widget Version - 0.4 + 0.4a MainHTML index.html AllowNetworkAccess diff -r 29d06ba03163 -r abeee2a2e01b mypackage_wrt/Main.js --- a/mypackage_wrt/Main.js Mon May 10 09:27:55 2010 +0100 +++ b/mypackage_wrt/Main.js Mon May 10 14:32:47 2010 +0100 @@ -39,6 +39,9 @@ var Packageid=null; var myforumid=null; var myforumtitle=null; +var enabletransition=null; +var istransitionon = true; +var myoption ={ value: "1", text: "on" }; // Feed name, URL etc for forums var forumFeedName = "Symbian.org Forums"; @@ -64,7 +67,7 @@ var mercurialPackageUrl=null; // Update variables -var myversion = "0.4"; +var myversion = "0.4a"; var versionWikiPageUrl = wikiBaseUrl + "/My_Package_Widget"; var versionWikiPageString = "Current widget version is ["; var downloadUrl = "http://tiny.symbian.org/mypackage"; @@ -207,11 +210,18 @@ settings.addControl(ForumControl); + //add tick box for transition effects + + enabletransition = new SelectionList ("transitions","Transition Effects", [myoption],true,null); + settings.addControl(enabletransition); + if (istransitionon){ + enabletransition.setSelected([myoption]); + } + // save settings button settingsSaveButton = new FormButton(null, "Save"); settingsSaveButton.addEventListener("ActionPerformed", saveSettingsClicked); - settings.addControl(settingsSaveButton); - + settings.addControl(settingsSaveButton); // cancel settings button @@ -294,6 +304,8 @@ //saved from PackageMercurialUrlCompleted mercurialPackageUrl=widget.preferenceForKey("mercurialPackageUrl"); + + istransitionon=widget.preferenceForKey("istransitionon"); } } @@ -306,7 +318,7 @@ widget.setPreferenceForKey(Packageid, "Packageid"); widget.setPreferenceForKey(myforumid, "myforumid"); widget.setPreferenceForKey(myforumtitle, "myforumtitle"); - + widget.setPreferenceForKey(istransitionon, "istransitionon"); } } @@ -318,6 +330,8 @@ forumPassword = forumPasswordControl.getText(); Packageid = packageControl.getText(); + istransitionon= enabletransition.isSelected(myoption); + // save preferences savePreferences(); diff -r 29d06ba03163 -r abeee2a2e01b mypackage_wrt/WRTKit/UI/View.js --- a/mypackage_wrt/WRTKit/UI/View.js Mon May 10 09:27:55 2010 +0100 +++ b/mypackage_wrt/WRTKit/UI/View.js Mon May 10 14:32:47 2010 +0100 @@ -129,11 +129,11 @@ View.prototype.goBack = function() { if ( this.previousView != null ) { // transition looks funky - if (window.widget) { + if (window.widget && istransitionon) { widget.prepareForTransition("fade"); } this.previousView.show(); - if (window.widget) { + if (window.widget && istransitionon) { widget.performTransition(); } } diff -r 29d06ba03163 -r abeee2a2e01b mypackage_wrt/mercurial.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mypackage_wrt/mercurial.js Mon May 10 14:32:47 2010 +0100 @@ -0,0 +1,151 @@ +var revisionview=null; + + +function PackageMercurialUrl () { + if (!Packageid) {return;} + MCLrepos = new Ajax(); + MCLrepos.onreadystatechange = PackageMercurialUrlCompleted; + MCLrepos.open('GET', nocache(mercurialUrl), true); + debuglog.debug ("accessing mercurial url: "+ mercurialUrl); + MCLrepos.send(null); + +} + +function PackageMercurialUrlCompleted () { + + if (MCLrepos.readyState == 4) { + var pagetext = MCLrepos.responseText; + + var ind = pagetext.indexOf(Packageid +"/"); + pagetext = pagetext.substr(1,ind+Packageid.length); + debuglog.debug("result of regexp search for url is " + ind + " Package name is "+Packageid); + + if (ind==-1){ + uiManager.showNotification(1000, "Warning", "Mercurial - Package Not Found"); + debuglog.debug ("Error - Package not found in the FCL page"); + return; + } + ind=pagetext.lastIndexOf("href"); + + mercurialPackageUrl = symbianOrgBaseUrl + pagetext.substr(ind+6,pagetext.length-ind-6) + mercurialrss; + debuglog.debug("mercurial FCL repo URL is:" + mercurialPackageUrl); + //save settings + if (window.widget) { + widget.setPreferenceForKey(mercurialPackageUrl, "mercurialPackageUrl"); + } else { + debuglog.debug("mercurial - widget not found"); + } + } +} + + +function MercurialFeedPresenter(rssreader) { + var myreader = rssreader; + + ButtonFeedPresenter.prototype.init.call(this, rssreader); +} + + MercurialFeedPresenter.prototype = new ButtonFeedPresenter(null); + +// Handle the button-press + MercurialFeedPresenter.prototype.feedClicked = function(event){ + var clickedButton = event.source; + var id = clickedButton.id; + var myitem = this.items[id] + revisionpresenter(myitem,this.rssreader); +} + +function revisionpresenter(aItem, aParent) { + revisionview = new ListView(null, createCaption(aItem.title)); + revisionview.previousView = aParent; + + var mytext = new ContentPanel(null, null, null, true); + mytext.setExpanded(true); + + revisionview.addControl(mytext); + var mybuf = "
"; + mybuf += ""; + mybuf += "Open in browser.."; + mybuf += ""; + mybuf += "

"; + + var description = ""; + description += ""; + description += ""; + description += "
Author:" + "" + aItem.author + "
Date:" + "" + aItem.date + "
"; + description += "
"; + description += mybuf; + description += "
" + description += "Description:
" + aItem.description ; + description += "
"; + description += "
"; + + mytext.setContent(description); + revisionview.show(); + + +} + +function parseRepoFeed (broker, responseStatus, xmlDoc) { + + if (responseStatus == 200 && xmlDoc != null) { + // node ref for iterating + var node; + + // for compatibility with rss + var lastModified = new Date(); + + // init result items array + var items = []; + + var itemElements = xmlDoc.getElementsByTagName("item"); + + for (var i = 0; i < itemElements.length; i++) { + // iterate through child nodes of this item and gather + // all the data we need for a feed item + var title = null; + var date = null; + var description = null; + var url = null; + var author = null; + var changeset = null; + node = itemElements[i].firstChild; + while (node != null) { + if (node.nodeType == Node.ELEMENT_NODE) { + if (node.nodeName == "title") { + // item title + title = getTextOfNode(node); + if ( title.length > 48) { + title = title.substring(0,45) + "..."; + } + } else if (node.nodeName == "pubDate" ) { + // item publishing date + date = getTextOfNode(node); + } else if (node.nodeName == "description" && !this.ignoreContent ) { + // item description + description = getTextOfNode(node); + } else if (node.nodeName == "guid") { + // link URL + url = getTextOfNode(node); + // extract bug revision + ind=url.indexOf("rev/"); + rev = url.substr(ind,url.length-ind); + + } else if (node.nodeName == "author" ) { + author = getTextOfNode(node); + } + } + node = node.nextSibling; + } + items.push({ title: title, date: date, description: description, url: url, author: author, rev: rev }); + } + + // update was completed successfully + return { status: "ok", lastModified: lastModified, items: items }; + } else { + // update failed + return { status: "error" }; + } +} + + diff -r 29d06ba03163 -r abeee2a2e01b mypackage_wrt/package dashboard.wgz Binary file mypackage_wrt/package dashboard.wgz has changed