pound-commit Mailing List for Pound
Status: Beta
Brought to you by:
rubin
You can subscribe to this list here.
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2010 |
Jan
(2) |
Feb
|
Mar
(3) |
Apr
|
May
(4) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Mercurial C. M. <pou...@li...> - 2010-05-21 03:57:13
|
details: http://pound.hg.sourceforge.net:8000/hgroot/pound/pound/rev/7e01f2a52010 changeset: 45:7e01f2a52010 user: Alex Schumann <ru...@us...> date: Thu May 20 22:57:06 2010 -0500 description: clean up old name diffstat: index.html | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diffs (12 lines): diff -r c05c5582881a -r 7e01f2a52010 index.html --- a/index.html Thu May 20 22:55:14 2010 -0500 +++ b/index.html Thu May 20 22:57:06 2010 -0500 @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> - <title>IRÄ</title> + <title>Puond IRC</title> <script src="/usr/palm/frameworks/mojo/mojo.js" type="text/javascript" x-mojo-version="1" /> <!-- application stylesheet should come in after the one loaded by the framework --> |
|
From: Mercurial C. M. <pou...@li...> - 2010-05-21 03:55:20
|
details: http://pound.hg.sourceforge.net:8000/hgroot/pound/pound/rev/c05c5582881a changeset: 44:c05c5582881a user: Alex Schumann <ru...@us...> date: Thu May 20 22:55:14 2010 -0500 description: fix several networks default settings diffstat: app/assistants/first-assistant.js | 9 ++++----- 1 files changed, 4 insertions(+), 5 deletions(-) diffs (24 lines): diff -r 7da8663876ec -r c05c5582881a app/assistants/first-assistant.js --- a/app/assistants/first-assistant.js Thu May 20 22:43:16 2010 -0500 +++ b/app/assistants/first-assistant.js Thu May 20 22:55:14 2010 -0500 @@ -33,16 +33,15 @@ networks: [ {name: "AfterNET", url: "http://www.afternet.org:6690", nick1: "", autoJoin: "#afternet"}, {name: "Freenode", url: "http://webchat.freenode.net/dynamic/one", nick1: "", autoJoin: "#palm,#webos"}, - {name: "QuakeNet", url: "http://webchat.quakenet.org", nick1: ""}, - {name: "Rizon", url: "http://qchat.rizon.net/", nick1: ""}, // untested.. - {name: "Borknet", url: "http://www.borknet.org:8000/", nick1: ""}, //untested.. - {name: "WarIRC", url: "http://desktop.tpwch.com:443/", nick1: ""} //untested.. + {name: "QuakeNet", url: "http://webchat.quakenet.org/dynamic/galaxy", nick1: ""}, + {name: "Rizon", url: "http://qchat.rizon.net", nick1: ""}, + {name: "Borknet", url: "http://www.borknet.org:8000", nick1: ""}, ] }; }; FirstAssistant.prototype.newNetwork = function() { - return {name: "New Network", url: "http://someurl:6690", nick1: "Pound-user", autoJoin: ""}; + return {name: "New Network", url: "http://someurl:6690", nick1: "", autoJoin: ""}; }; FirstAssistant.prototype.savePrefsSuccess = function() { |
|
From: Mercurial C. M. <pou...@li...> - 2010-05-21 03:43:23
|
details: http://pound.hg.sourceforge.net:8000/hgroot/pound/pound/rev/24db10f6e82e changeset: 41:24db10f6e82e user: Alex Schumann <ru...@us...> date: Thu May 20 22:41:19 2010 -0500 description: update freenode url details: http://pound.hg.sourceforge.net:8000/hgroot/pound/pound/rev/780751b58ee4 changeset: 42:780751b58ee4 user: Alex Schumann <ru...@us...> date: Thu May 20 22:42:43 2010 -0500 description: some more debug code details: http://pound.hg.sourceforge.net:8000/hgroot/pound/pound/rev/7da8663876ec changeset: 43:7da8663876ec user: Alex Schumann <ru...@us...> date: Thu May 20 22:43:16 2010 -0500 description: roll version to 0.1.7 diffstat: app/assistants/first-assistant.js | 2 +- appinfo.json | 2 +- libs/irc.js | 11 ++++++++--- 3 files changed, 10 insertions(+), 5 deletions(-) diffs (54 lines): diff -r 12ac7667bf69 -r 7da8663876ec app/assistants/first-assistant.js --- a/app/assistants/first-assistant.js Tue May 18 23:30:31 2010 -0500 +++ b/app/assistants/first-assistant.js Thu May 20 22:43:16 2010 -0500 @@ -32,7 +32,7 @@ return { networks: [ {name: "AfterNET", url: "http://www.afternet.org:6690", nick1: "", autoJoin: "#afternet"}, - {name: "Freenode", url: "http://webchat.freenode.net", nick1: "", autoJoin: "#palm,#webos"}, + {name: "Freenode", url: "http://webchat.freenode.net/dynamic/one", nick1: "", autoJoin: "#palm,#webos"}, {name: "QuakeNet", url: "http://webchat.quakenet.org", nick1: ""}, {name: "Rizon", url: "http://qchat.rizon.net/", nick1: ""}, // untested.. {name: "Borknet", url: "http://www.borknet.org:8000/", nick1: ""}, //untested.. diff -r 12ac7667bf69 -r 7da8663876ec appinfo.json --- a/appinfo.json Tue May 18 23:30:31 2010 -0500 +++ b/appinfo.json Thu May 20 22:43:16 2010 -0500 @@ -1,6 +1,6 @@ { "id": "org.simplanet.pound", - "version": "0.1.5", + "version": "0.1.7", "vendor": "Simplanet", "type": "web", "main": "index.html", diff -r 12ac7667bf69 -r 7da8663876ec libs/irc.js --- a/libs/irc.js Tue May 18 23:30:31 2010 -0500 +++ b/libs/irc.js Thu May 20 22:43:16 2010 -0500 @@ -213,7 +213,12 @@ if(this.buff.length > this.maxlen) { this.buff.shift(); } + try { this.irc.buffUpdated(); + } + catch(buffUpdatedErr) { + Mojo.Log.warn("buffUpdated() caught error:"+ buffUpdatedErr); + } }, get: function() { return this.buff.join("<br>\n"); @@ -1070,11 +1075,11 @@ } } }, - _poll_errorCallback: function() { + _poll_errorCallback: function(transport) { // set connected to false, clear cookie. maybe reconnect if set to? Save // the error for a dialog? I dunno :) - Mojo.Log.info("Got error callback."); - this.print("*** Poll resulted in error"); + Mojo.Log.info("Got error callback."+transport.status); + this.print("*** Poll resulted in error:"+transport.status); //TODO this.disconnect(1); // 1 for if there was an error, 0 for not (so send quit msg) try { |
|
From: Mercurial C. M. <pou...@li...> - 2010-05-19 04:30:40
|
details: http://pound.hg.sourceforge.net:8000/hgroot/pound/pound/rev/12ac7667bf69 changeset: 40:12ac7667bf69 user: Alex Schumann <ru...@us...> date: Tue May 18 23:30:31 2010 -0500 description: linkify links in buffer diffstat: libs/irc.js | 18 +++++++++++++++++- 1 files changed, 17 insertions(+), 1 deletions(-) diffs (32 lines): diff -r 621ab9b59e0e -r 12ac7667bf69 libs/irc.js --- a/libs/irc.js Tue Mar 30 00:28:57 2010 -0500 +++ b/libs/irc.js Tue May 18 23:30:31 2010 -0500 @@ -189,11 +189,27 @@ print: function(content) { this.printHTML(content.escapeHTML()); }, + linkify: function Linkify(inputText) { + //URLs starting with http://, https://, or ftp:// + //var replacePattern1 = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim; + var replacePattern1 = /(\b(https?):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim; + var replacedText = inputText.replace(replacePattern1, '<a href="$1" target="_blank">$1</a>'); + + //URLs starting with www. (without // before it, or it'd re-link the ones done above) + var replacePattern2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim; + var replacedText = replacedText.replace(replacePattern2, '$1<a href="http://$2" target="_blank">$2</a>'); + + //Change email addresses to mailto:: links + //var replacePattern3 = /(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6})/gim; + //var replacedText = replacedText.replace(replacePattern3, '<a href="mailto:$1">$1</a>'); + + return replacedText + }, // Send text to the buffer without any HTML escapes, // good for sending formatting colors etc printHTML: function(content) { //TODO: limit to about 600 lines, or about 5 screen-flicks worth - this.buff.push(content); + this.buff.push(this.linkify(content)); if(this.buff.length > this.maxlen) { this.buff.shift(); } |
|
From: Mercurial C. M. <pou...@li...> - 2010-03-30 05:29:05
|
details: http://pound.hg.sourceforge.net:8000/hgroot/pound/pound/rev/621ab9b59e0e changeset: 39:621ab9b59e0e user: Alex Schumann <ru...@us...> date: Tue Mar 30 00:28:57 2010 -0500 description: rolling version to 1.5 diffstat: appinfo.json | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diffs (11 lines): diff -r 9836eb42e125 -r 621ab9b59e0e appinfo.json --- a/appinfo.json Tue Mar 30 00:25:42 2010 -0500 +++ b/appinfo.json Tue Mar 30 00:28:57 2010 -0500 @@ -1,6 +1,6 @@ { "id": "org.simplanet.pound", - "version": "0.1.4", + "version": "0.1.5", "vendor": "Simplanet", "type": "web", "main": "index.html", |
|
From: Mercurial C. M. <pou...@li...> - 2010-03-30 05:25:59
|
details: http://pound.hg.sourceforge.net:8000/hgroot/pound/pound/rev/9836eb42e125 changeset: 38:9836eb42e125 user: Alex Schumann <ru...@us...> date: Tue Mar 30 00:25:42 2010 -0500 description: many fixups for first screen including nickname handling. Fix for error swiping away channels diffstat: app/assistants/channel-assistant.js | 9 ++++- app/assistants/first-assistant.js | 58 ++++++++++++++++++++++++++++-------- app/views/first/first-scene.html | 4 +- libs/irc.js | 20 ++++++++++-- stylesheets/ir.css | 1 + 5 files changed, 71 insertions(+), 21 deletions(-) diffs (296 lines): diff -r ce655f7360f7 -r 9836eb42e125 app/assistants/channel-assistant.js --- a/app/assistants/channel-assistant.js Sun Mar 28 03:10:23 2010 -0500 +++ b/app/assistants/channel-assistant.js Tue Mar 30 00:25:42 2010 -0500 @@ -44,6 +44,7 @@ // activity lights in the dropdown otherwise. // For now, just update the buffer. + Mojo.Log.info("Running updateCallback()..."); this.updateBuffer(); }; @@ -62,6 +63,7 @@ this.controller.modelChanged(this.titleButtonModel, this); } + Mojo.Log.info("updateBuffer() completed updating titleButton"); if(!this.dataScroller || !this.dataScroller.mojo) { // this happens if we get called from inside setup(), I guess. return; @@ -82,6 +84,7 @@ // We were at the bottom, scroll all the way down this.dataScroller.mojo.revealBottom(); } + Mojo.Log.info("updateBuffer() complete."); }; ChannelAssistant.prototype.tabEventsCallback = function(type, tab) { @@ -90,6 +93,7 @@ // DELETE (the buffer requested itself closed - not sure if we'll use this) //TODO: prefs check for auto-open new tabs // 'tab' means some element with a buffer: server, channel, or query etc. + Mojo.Log.info("tabEventsCallback() running..."); this.currentEventTab = tab; if(type === "NEW") { // Add channel buffer to buffer list dropdown. @@ -117,7 +121,10 @@ //TODO: delete from buffer list dropdown // if its the active one, change? show static log? alert user? idk. Mojo.Log.info("Got a tabEventCallback 'DELETE' on "+tab.type+" "+tab.name); + this.updateTabList(); + // be lame right now and switch to the 1st tab + this.attachBuffer(this.tabListModel.items[0].tabObj); } else if(type === "DISCONNECTED") { if(!tab) { @@ -321,8 +328,6 @@ Mojo.Log.info("handleTabDelete(): got a tabDelete event: "+ item.tabName); var tab = item.tabObj; tab.close("Leaving"); - - //TODO: if channel part it I guess. }; ChannelAssistant.prototype.handleTabTap = function(event) { diff -r ce655f7360f7 -r 9836eb42e125 app/assistants/first-assistant.js --- a/app/assistants/first-assistant.js Sun Mar 28 03:10:23 2010 -0500 +++ b/app/assistants/first-assistant.js Tue Mar 30 00:25:42 2010 -0500 @@ -31,12 +31,12 @@ //TODO: we can get name from webos somehow right? Lets use that as default nick! return { networks: [ - {name: "AfterNET", url: "http://www.afternet.org:6690", nick1: "Pound-user", autoJoin: "#afternet"}, - {name: "Freenode", url: "http://webchat.freenode.net", nick1: "Pound-user", autoJoin: "#palm,#webos"}, - {name: "QuakeNet", url: "http://webchat.quakenet.org", nick1: "Pound-user"}, - {name: "Rizon", url: "http://qchat.rizon.net/", nick1: "Pound-user"}, // untested.. - {name: "Borknet", url: "http://www.borknet.org:8000/", nick1: "Pound-user"}, //untested.. - {name: "WarIRC", url: "http://desktop.tpwch.com:443/", nick1: "Pound-user"} //untested.. + {name: "AfterNET", url: "http://www.afternet.org:6690", nick1: "", autoJoin: "#afternet"}, + {name: "Freenode", url: "http://webchat.freenode.net", nick1: "", autoJoin: "#palm,#webos"}, + {name: "QuakeNet", url: "http://webchat.quakenet.org", nick1: ""}, + {name: "Rizon", url: "http://qchat.rizon.net/", nick1: ""}, // untested.. + {name: "Borknet", url: "http://www.borknet.org:8000/", nick1: ""}, //untested.. + {name: "WarIRC", url: "http://desktop.tpwch.com:443/", nick1: ""} //untested.. ] }; }; @@ -58,7 +58,7 @@ }; FirstAssistant.prototype.getPrefsSuccess = function(prefs) { // this.prefs is set now. yay. -// Mojo.Log.info("Depot.get Success: "); + Mojo.Log.info("Depot.get Success: "); if(prefs === null) { Mojo.Log.info("Creating first time prefs.."); this.prefs = this.generateStockPrefs(); @@ -67,7 +67,6 @@ else { this.prefs = prefs; } - //TODO: activate the controls? this.onLoaded(); }; FirstAssistant.prototype.getPrefsFailure = function(result) { @@ -95,11 +94,10 @@ /* use Mojo.View.render to render view templates and add them to the scene, if needed. */ + this.prefDepot = new Mojo.Depot({name:"irc", version:1, replace: false }, this.dbSuccess.bind(this), this.dbFailure.bind(this)); /* setup widgets here */ /* add event handlers to listen to events from widgets */ - this.prefDepot = new Mojo.Depot({name:"irc", version:1, replace: false }, this.dbSuccess.bind(this), this.dbFailure.bind(this)); - // Now we wait for the callbacks to tell us the db is loaded so we can continue // Connect Button this.connectButtonAttributes = {}; @@ -150,7 +148,15 @@ try { this.fieldNicknameAttributes = { -hintText: '', multiline: false, enterSubmits: false, focus: false, textCase: Mojo.Widget.steModeLowerCase, autoReplace: false, focusMode: Mojo.Widget.focusSelectMode, charsAllow: irc.isValidNicknameChar.bind(this)}; + hintText: 'Enter a Nickname', + multiline: false, + enterSubmits: false, + focus: false, + textCase: Mojo.Widget.steModeTitleCase, + autoReplace: false, + changeOnKeyPress: true, + focusMode: Mojo.Widget.focusSelectMode, + charsAllow: irc.isValidNicknameChar.bind(this)}; this.fieldNicknameModel = {value: 'Undefined', disabled: false}; this.controller.setupWidget("fieldNickname", this.fieldNicknameAttributes, this.fieldNicknameModel); this.fieldNickname = this.controller.get("fieldNickname"); @@ -168,7 +174,7 @@ // and enable them. FirstAssistant.prototype.onLoaded = function() { // Make the buttons and selector list enabled -// Mojo.Log.info("in onLoaded()."); + Mojo.Log.info("in onLoaded()."); this.netListSelectorModel.selectedNetworkNum = 0; // TODO: get from prefs this.loadForm(); @@ -181,14 +187,20 @@ Mojo.Log.info("No prefs set in loadForm. Don't load yet"); return; } + if(!this.connectButtonModel) { + // we arent fully setup yet, don't try to run + return; + } try { // save so we can re-order or w/e later on var selection = this.netListSelectorModel.selectedNetworkNum; this.connectButtonModel.disabled = false; - this.controller.modelChanged(this.connectButtonModel, this); + //this.controller.modelChanged(this.connectButtonModel, this); + Mojo.Log.info("DEBUG: before connectButtonModel"); this.controller.modelChanged(this.connectButtonModel, this); this.editButtonModel.disabled = false; + Mojo.Log.info("DEBUG: before editButtonModel"); this.controller.modelChanged(this.editButtonModel, this); var networks = this.prefs.networks; this.netListSelectorModel.choices = []; @@ -206,11 +218,14 @@ this.selectedNetwork = this.prefs.networks[selection]; this.fieldNicknameModel.value = this.selectedNetwork.nick1; + Mojo.Log.info("DEBUG: before fieldNickname"); this.controller.modelChanged(this.fieldNicknameModel, this); //this.fieldNickname.blur(); //this.fieldNickname.focus(); //this.fieldNickname.setCursorPosition(0,99999); + this.setConnectButtonActiveState(); + } catch(loadErr) { Mojo.Log.error("loadForm(): "+loadErr); } Mojo.Log.info("Done with loadForm()"); }; @@ -279,6 +294,21 @@ this.selectedNetwork.nick1 = event.value; this.useNickname = event.value; //TODO: save this nick to selected network prefs + + // disable the connect button (or enable it) + this.setConnectButtonActiveState(); +}; + +// Enable or disable the connect button, depending if nickname is filled out +FirstAssistant.prototype.setConnectButtonActiveState = function() { + Mojo.Log.info("Setting connect button state.."); + if(this.fieldNicknameModel.value == '') { + this.connectButtonModel.disabled = true; + } + else { + this.connectButtonModel.disabled = false; + } + this.controller.modelChanged(this.connectButtonModel, this); }; FirstAssistant.prototype.activate = function(event) { @@ -286,7 +316,7 @@ example, key handlers that are observing the document */ // Refresh network selector widget -// Mojo.Log.info("first-assistant activate()"); + Mojo.Log.info("first-assistant activate()"); this.loadForm(); }; diff -r ce655f7360f7 -r 9836eb42e125 app/views/first/first-scene.html --- a/app/views/first/first-scene.html Sun Mar 28 03:10:23 2010 -0500 +++ b/app/views/first/first-scene.html Tue Mar 30 00:25:42 2010 -0500 @@ -8,7 +8,9 @@ <div id="fieldTitleNickname" class="xxfieldtitle">NICKNAME</div> - <div id="fieldNickname" name="fieldNickname" x-mojo-element="TextField"></div> + <div style="height: 50px;" class="nickContainer"> + <div id="fieldNickname" name="fieldNickname" x-mojo-element="TextField"></div> + </div> <div id="editButton" name="editButton" x-mojo-element="Button"></div> diff -r ce655f7360f7 -r 9836eb42e125 libs/irc.js --- a/libs/irc.js Sun Mar 28 03:10:23 2010 -0500 +++ b/libs/irc.js Tue Mar 30 00:25:42 2010 -0500 @@ -416,12 +416,17 @@ // For now, on part just remove the tab. Later on // we may want to try and auto-rejoin, or leave the // dead tab open so you can see it. + Mojo.Log.info("DEBUG: cOnPart: "+ from.nick + ", " + this.server.currentNick); + //this.print("DEBUG: cOnPART: "+ from.nick + ", "+ this.server.currentNick); if(from.nick === this.server.currentNick) { + Mojo.Log.info("cOnPART() Deleting channel..."); this.server.delChannel(this); //todo: send UI an event so it knows to update the tablist? } else { + Mojo.Log.info("cOnPART() printing has left message"); this.print("* "+from.nick+" ("+from.user+"@"+from.host+") has left "+this.name); + Mojo.Log.info("cOnPART() deleting user from list"); this.userList.del(from.nick); } }, @@ -917,12 +922,16 @@ }, onPART: function(command, from, args) { var to = args[0]; + Mojo.Log.info("doing onPART().."); if( to.startsWith("#") && (tab = this.findTab(to)) ) { //TODO: if its me, part the channel, close the tab etc + Mojo.Log.info("onPART() passing to tab.handle()"); tab.handle(command, from, args); } else { + Mojo.Log.info("onPART() tab not found"); if(from.nick === this.currentNick) { + Mojo.Log.info("onPART(): You have left"+to); this.print("* You have left "+to); } //this.print("Extranious: "+from.nick + " has parted "+ to); @@ -958,7 +967,9 @@ this[handler](command, from, args); } catch(err) { Mojo.Log.error("parseline handler("+command+","+from+",args) error: "+err); - this.print("Error parsing "+command+" from "+ from + " ("+args.join(" ")+"):"+err); + this.print("DEBUG: Error parsing "+command+" from "+ from + " ("+args.join(" ")+"):"+err); + //this.print("DEBUG: Line: "+err.number); + this.print("DEBUG: test"); } } else { @@ -990,7 +1001,8 @@ }, _poll_successCallback: function(transport) { //Mojo.Log.info("Got success callback:" + transport.status); - var response = transport.responseText || ""; + //var response = transport.responseText || ""; + var response = transport.responseText; Mojo.Log.info("RESPONSE: "+response); var json = {}; try { @@ -1000,8 +1012,8 @@ json = JSON.parse(response); } else { - Mojo.Log.info("poll reply is empty!"); - this.print("*** Empty response from poll. Is qWebIRC url correct? :"+transport.status+'/'+transport.readyState); + Mojo.Log.info("poll reply is empty! type: "+ typeof(response) +"."); + this.print("*** Empty response from poll. http:"+transport.status+' state '+transport.readyState); //this.print("* Poll reply is empty, giving up. Is the network qWebIRC url correct?"); //TODO: get here when https with bad cert. alert or something? //Hmm. apparently this also comes up in other situations.. diff -r ce655f7360f7 -r 9836eb42e125 stylesheets/ir.css --- a/stylesheets/ir.css Sun Mar 28 03:10:23 2010 -0500 +++ b/stylesheets/ir.css Tue Mar 30 00:25:42 2010 -0500 @@ -192,6 +192,7 @@ #fieldTitleNickname { font-size: 0.7em; color: #56F; + color: #256BB3; width: 30%; padding-top: 15px; } |
|
From: Mercurial C. M. <pou...@li...> - 2010-03-28 08:10:45
|
details: http://pound.hg.sourceforge.net:8000/hgroot/pound/pound/rev/27adf40868d6 changeset: 34:27adf40868d6 user: rubin@snark date: Fri Jan 22 12:59:31 2010 -0600 description: fix height details: http://pound.hg.sourceforge.net:8000/hgroot/pound/pound/rev/e02426530caa changeset: 35:e02426530caa user: rubin@snark date: Fri Jan 22 13:00:31 2010 -0600 description: fix nick change to undefined, add some debugging details: http://pound.hg.sourceforge.net:8000/hgroot/pound/pound/rev/91e3ebe4e4e8 changeset: 36:91e3ebe4e4e8 user: rubin@snark date: Fri Jan 22 13:00:44 2010 -0600 description: rolling to 0.1.4 details: http://pound.hg.sourceforge.net:8000/hgroot/pound/pound/rev/ce655f7360f7 changeset: 37:ce655f7360f7 user: Alex Schumann <ru...@us...> date: Sun Mar 28 03:10:23 2010 -0500 description: added ability to add and delete networks diffstat: app/assistants/channel-assistant.js | 5 +- app/assistants/first-assistant.js | 52 ++++++++++++++++++++++++----- app/assistants/netoptions-assistant.js | 37 ++++++++++++++++++++- app/views/netoptions/netoptions-scene.html | 2 + appinfo.json | 2 +- index.html | 5 -- libs/irc.js | 5 +- stylesheets/ir.css | 2 +- 8 files changed, 89 insertions(+), 21 deletions(-) diffs (260 lines): diff -r f7aa719071cc -r ce655f7360f7 app/assistants/channel-assistant.js --- a/app/assistants/channel-assistant.js Thu Jan 21 21:08:27 2010 -0600 +++ b/app/assistants/channel-assistant.js Sun Mar 28 03:10:23 2010 -0500 @@ -337,7 +337,8 @@ ChannelAssistant.prototype.showTabList = function() { Mojo.Log.info("Showing tab list"); - this.dataElement.style.height = "200px"; + //this.dataElement.style.height = "200px"; + this.dataElement.style.height = "190px"; this.dataFadeTop.style.top = "213px"; this.tabListScrollElement.style.height = "150px"; this.tabListFadeTop.style.top = "62px"; @@ -347,7 +348,7 @@ ChannelAssistant.prototype.hideTabList = function() { Mojo.Log.info("Hiding tab list"); - this.dataElement.style.height = "350px"; + this.dataElement.style.height = "340px"; this.dataFadeTop.style.top = "63px"; this.tabListScrollElement.style.height = "0px"; this.tabListFadeTop.style.top = "9999px"; diff -r f7aa719071cc -r ce655f7360f7 app/assistants/first-assistant.js --- a/app/assistants/first-assistant.js Thu Jan 21 21:08:27 2010 -0600 +++ b/app/assistants/first-assistant.js Sun Mar 28 03:10:23 2010 -0500 @@ -41,6 +41,10 @@ }; }; +FirstAssistant.prototype.newNetwork = function() { + return {name: "New Network", url: "http://someurl:6690", nick1: "Pound-user", autoJoin: ""}; +}; + FirstAssistant.prototype.savePrefsSuccess = function() { Mojo.Log.info("Depot.save Success"); }; @@ -172,7 +176,7 @@ // Note - also called from scene activate() FirstAssistant.prototype.loadForm = function() { -// Mojo.Log.info("loadForm()"); + Mojo.Log.info("loadForm()"); if(!this.prefs) { Mojo.Log.info("No prefs set in loadForm. Don't load yet"); return; @@ -187,13 +191,17 @@ this.editButtonModel.disabled = false; this.controller.modelChanged(this.editButtonModel, this); var networks = this.prefs.networks; + this.netListSelectorModel.choices = []; for(i = 0; i < networks.length; i++) { this.netListSelectorModel.choices[i] = { label: networks[i].name, value:i }; } + // The following one 'becomes' the new network + this.netListSelectorModel.choices[i] = { label: "+Add New", value:i }; + this.addNewIndicator = i; this.netListSelectorModel.disabled = false; this.netListSelectorModel.selectedNetworkNum = selection; -// Mojo.Log.info("Changing up model"); + Mojo.Log.info("Changing up model"); this.controller.modelChanged(this.netListSelectorModel, this); this.selectedNetwork = this.prefs.networks[selection]; @@ -204,6 +212,7 @@ //this.fieldNickname.setCursorPosition(0,99999); } catch(loadErr) { Mojo.Log.error("loadForm(): "+loadErr); } + Mojo.Log.info("Done with loadForm()"); }; // Connect Button @@ -229,14 +238,39 @@ // Net Selector Change FirstAssistant.prototype.handleNetListSelectorUpdate = function(event){ -// Mojo.Log.info("handleNetListSelectorUpdate(): setting selected network value"); - this.selectedNetwork = this.prefs.networks[event.value]; + Mojo.Log.info("handleNetListSelectorUpdate("+event.value+")") + if(event.value == this.addNewIndicator) { + Mojo.Log.info("networks.length is "+ this.prefs.networks.length); + if(this.prefs.networks[event.value]) { + Mojo.Log.warn("value matches addNewIndicator but seems to already exist!"); + return; + } - this.fieldNicknameModel.value = this.selectedNetwork.nick1; - this.controller.modelChanged(this.fieldNicknameModel, this); - //this.fieldNickname.blur(); - //this.fieldNickname.focus(); - //this.fieldNickname.setCursorPosition(0,99999); + // Create a new network + var theNewNetwork = this.newNetwork(); + this.prefs.networks[event.value] = theNewNetwork; + + // Choose new network + this.selectedNetwork = this.prefs.networks[event.value]; + + // Open edit dialog on new network as if edit button were pressed + this.controller.stageController.pushScene("netoptions", this.prefs, this.selectedNetwork); + + this.selectedNetwork = this.prefs.networks[event.value]; + + this.fieldNicknameModel.value = this.selectedNetwork.nick1; + this.controller.modelChanged(this.fieldNicknameModel, this); + //Mojo.Log.info("Done handling add new."); + } + else { + this.selectedNetwork = this.prefs.networks[event.value]; + + this.fieldNicknameModel.value = this.selectedNetwork.nick1; + this.controller.modelChanged(this.fieldNicknameModel, this); + //this.fieldNickname.blur(); + //this.fieldNickname.focus(); + //this.fieldNickname.setCursorPosition(0,99999); + } }; // Nickname change diff -r f7aa719071cc -r ce655f7360f7 app/assistants/netoptions-assistant.js --- a/app/assistants/netoptions-assistant.js Thu Jan 21 21:08:27 2010 -0600 +++ b/app/assistants/netoptions-assistant.js Sun Mar 28 03:10:23 2010 -0500 @@ -216,6 +216,19 @@ this.fieldNickservPassword = this.controller.get("fieldNickservPassword"); Mojo.Event.listen(this.fieldNickservPassword, Mojo.Event.propertyChange, this.handleUpdate); + + + // Delete Button + this.deleteButtonAttributes = {}; + this.deleteButtonModel = { + "buttonLabel" : "Delete", + "buttonClass" : "", + "disabled" : true + }; + this.controller.setupWidget("deleteButton", this.deleteButtonAttributes, this.deleteButtonModel); + Mojo.Event.listen(this.controller.get("deleteButton"), Mojo.Event.tap, this.handleDeleteButtonPress.bind(this)); + + } catch(meh) { Mojo.Log.error("meh:"+meh); } /* add event handlers to listen to events from widgets */ @@ -261,7 +274,9 @@ } try { var activate = function(model, value) { - model.value = value; + if(typeof(value) !== 'undefined') { + model.value = value; + } if(this.depotReady) { model.disabled = false; } @@ -282,9 +297,29 @@ activate(this.fieldLOCPasswordModel, this.selectedNetwork.LOCPassword); activate(this.fieldNickservServiceModel, this.selectedNetwork.nickservService); activate(this.fieldNickservPasswordModel, this.selectedNetwork.nickservPassword); + activate(this.deleteButtonModel, undefined); } catch(readyErr) { Mojo.Log.error("ready():"+readyErr); } }; +NetoptionsAssistant.prototype.handleDeleteButtonPress = function(event) { + var newNetworks = []; + var n=0; + for(i=0; i<this.prefs.networks.length; i++) { + if(this.prefs.networks[i] !== this.selectedNetwork) { + newNetworks[n++] = this.prefs.networks[i]; + } + else { + Mojo.Log.info("copying all but "+ i +"th element"); + } + } + this.prefs.networks = newNetworks; + try { + Mojo.Log.info("calling prefDepot.add()...."); + this.prefDepot.add("prefs", this.prefs, this.setPrefsSuccess.bind(this), this.setPrefsFailure.bind(this)); + } catch(saveErr2) { Mojo.Log.error("saveNetwork() "+saveErr2);} + this.controller.stageController.popScene(); +} + NetoptionsAssistant.prototype.activate = function(event) { /* put in event handlers here that should only be in effect when this scene is active. For example, key handlers that are observing the document */ diff -r f7aa719071cc -r ce655f7360f7 app/views/netoptions/netoptions-scene.html --- a/app/views/netoptions/netoptions-scene.html Thu Jan 21 21:08:27 2010 -0600 +++ b/app/views/netoptions/netoptions-scene.html Sun Mar 28 03:10:23 2010 -0500 @@ -92,5 +92,7 @@ </div> <!-- palm-list --> <div style="height: 20px;"><!--hack to make drawer fit in group's rounded corners --></div> </div> <!-- palm group --> + + <div id="deleteButton" name="deleteButton" x-mojo-element="Button"></div> </div> <!-- main --> diff -r f7aa719071cc -r ce655f7360f7 appinfo.json --- a/appinfo.json Thu Jan 21 21:08:27 2010 -0600 +++ b/appinfo.json Sun Mar 28 03:10:23 2010 -0500 @@ -1,6 +1,6 @@ { "id": "org.simplanet.pound", - "version": "0.1.2", + "version": "0.1.4", "vendor": "Simplanet", "type": "web", "main": "index.html", diff -r f7aa719071cc -r ce655f7360f7 index.html --- a/index.html Thu Jan 21 21:08:27 2010 -0600 +++ b/index.html Sun Mar 28 03:10:23 2010 -0500 @@ -10,10 +10,5 @@ <link href="stylesheets/ir.css" media="screen" rel="stylesheet" type="text/css" /> </head> <body> - <h2>This text verifies your application is running.</h2> - <p> - To create a fully functional Palm application create a scene and remove this text from index.html. - See the documentation on Palm Applications for more information on creating applications and scenes. - </p> </body> </html> diff -r f7aa719071cc -r ce655f7360f7 libs/irc.js --- a/libs/irc.js Thu Jan 21 21:08:27 2010 -0600 +++ b/libs/irc.js Sun Mar 28 03:10:23 2010 -0500 @@ -426,7 +426,7 @@ } }, cOnNICK: function( command, from, args) { - var newnick = args.shift(); + var newnick = args[0]; //TODO: We get this on every user, so we need to say something like: // if('from' is in this channel ...) { this.print("* "+from.nick+" is now known as "+ newnick); @@ -1001,7 +1001,7 @@ } else { Mojo.Log.info("poll reply is empty!"); - this.print("*** Empty response from poll. Is qWebIRC url correct?"); + this.print("*** Empty response from poll. Is qWebIRC url correct? :"+transport.status+'/'+transport.readyState); //this.print("* Poll reply is empty, giving up. Is the network qWebIRC url correct?"); //TODO: get here when https with bad cert. alert or something? //Hmm. apparently this also comes up in other situations.. @@ -1106,6 +1106,7 @@ if(this.connected) { return; } + //this.print("Trying to connect via "+this.url); Mojo.Log.info("Trying to connect to "+ this.url); this.currentNick = undefined; this.timeCounter = 0; //XXX calculate this, randomize r (below)! diff -r f7aa719071cc -r ce655f7360f7 stylesheets/ir.css --- a/stylesheets/ir.css Thu Jan 21 21:08:27 2010 -0600 +++ b/stylesheets/ir.css Sun Mar 28 03:10:23 2010 -0500 @@ -164,7 +164,7 @@ .scene-fade-bottom { position: fixed; - bottom: 39px; + bottom: 49px; z-index: 11000; height: 30px; width: 100%; |
|
From: Mercurial C. M. <pou...@li...> - 2010-01-22 03:08:34
|
details: http://pound.hg.sourceforge.net:8000/hgroot/pound/pound/rev/54e0ef9599a4 changeset: 32:54e0ef9599a4 user: rubin@snark date: Thu Jan 21 21:07:50 2010 -0600 description: enable support for server passwords details: http://pound.hg.sourceforge.net:8000/hgroot/pound/pound/rev/f7aa719071cc changeset: 33:f7aa719071cc user: rubin@snark date: Thu Jan 21 21:08:27 2010 -0600 description: remove #linux from default channels diffstat: app/assistants/first-assistant.js | 2 +- libs/irc.js | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diffs (29 lines): diff -r fcdc04776817 -r f7aa719071cc app/assistants/first-assistant.js --- a/app/assistants/first-assistant.js Sat Jan 16 10:05:05 2010 -0600 +++ b/app/assistants/first-assistant.js Thu Jan 21 21:08:27 2010 -0600 @@ -31,7 +31,7 @@ //TODO: we can get name from webos somehow right? Lets use that as default nick! return { networks: [ - {name: "AfterNET", url: "http://www.afternet.org:6690", nick1: "Pound-user", autoJoin: "#linux,#afternet"}, + {name: "AfterNET", url: "http://www.afternet.org:6690", nick1: "Pound-user", autoJoin: "#afternet"}, {name: "Freenode", url: "http://webchat.freenode.net", nick1: "Pound-user", autoJoin: "#palm,#webos"}, {name: "QuakeNet", url: "http://webchat.quakenet.org", nick1: "Pound-user"}, {name: "Rizon", url: "http://qchat.rizon.net/", nick1: "Pound-user"}, // untested.. diff -r fcdc04776817 -r f7aa719071cc libs/irc.js --- a/libs/irc.js Sat Jan 16 10:05:05 2010 -0600 +++ b/libs/irc.js Thu Jan 21 21:08:27 2010 -0600 @@ -1115,7 +1115,12 @@ this._ajaxSend({r: "blahblahblah3", t:this.timeCounter++, nick:this.prefNick, password: pass}, 'n'); } else { - this._ajaxSend({r: "blahblahblah3", t:this.timeCounter++, nick:this.prefNick}, 'n'); + if(this.options.serverPassword !== '') { + this._ajaxSend({r: "blahblahblah3", t:this.timeCounter++, password: this.options.serverPassword, nick:this.prefNick}, 'n'); + } + else { + this._ajaxSend({r: "blahblahblah3", t:this.timeCounter++, nick:this.prefNick}, 'n'); + } } }, quit: function(reason) { |
|
From: Mercurial C. M. <pou...@li...> - 2010-01-16 16:05:17
|
details: http://pound.hg.sourceforge.net:8000/hgroot/pound/pound/rev/7b5282242198 changeset: 30:7b5282242198 user: rubin@snark date: Sat Nov 28 10:22:56 2009 -0600 description: less delay when connecting, fix ctcps, more verbosity about poll results printed to status window details: http://pound.hg.sourceforge.net:8000/hgroot/pound/pound/rev/fcdc04776817 changeset: 31:fcdc04776817 user: rubin@snark date: Sat Jan 16 10:05:05 2010 -0600 description: add IRC to name, put nickname on first screen, and roll version to 1.2 diffstat: app/assistants/channel-assistant.js | 2 +- app/assistants/first-assistant.js | 38 ++++++++++++++++++++++++++++++- app/assistants/netoptions-assistant.js | 18 +-------------- app/views/first/first-scene.html | 13 ++++++++-- appinfo.json | 4 +- libs/irc.js | 41 +++++++++++++++++++++++++++++---- stylesheets/ir.css | 24 +++++++++++++++++++ 7 files changed, 111 insertions(+), 29 deletions(-) diffs (286 lines): diff -r 845e27ca2746 -r fcdc04776817 app/assistants/channel-assistant.js --- a/app/assistants/channel-assistant.js Sat Nov 28 02:16:45 2009 -0600 +++ b/app/assistants/channel-assistant.js Sat Jan 16 10:05:05 2010 -0600 @@ -144,7 +144,7 @@ this.controller.showAlertDialog({ onChoose: doClose, title: "Disconnected", - message: "You were disconnected from __netname__.", + message: "You were disconnected from "+tab.network+".", choices:[ {label:"Reconnect", value:1, type:'affirmative'}, {label:"Close", value:2, type:'negative'}, diff -r 845e27ca2746 -r fcdc04776817 app/assistants/first-assistant.js --- a/app/assistants/first-assistant.js Sat Nov 28 02:16:45 2009 -0600 +++ b/app/assistants/first-assistant.js Sat Jan 16 10:05:05 2010 -0600 @@ -110,7 +110,7 @@ // Edit button this.editButtonAttributes = {}; this.editButtonModel = { - "buttonLabel" : "edit", + "buttonLabel" : "Network Preferences", "buttonClass" : "", "disabled" : true }; @@ -141,6 +141,21 @@ Mojo.Log.error(err); } Mojo.Event.listen(this.controller.get("netListSelector"), Mojo.Event.propertyChange, this.handleNetListSelectorUpdate.bindAsEventListener(this)); + + + try { + + this.fieldNicknameAttributes = { +hintText: '', multiline: false, enterSubmits: false, focus: false, textCase: Mojo.Widget.steModeLowerCase, autoReplace: false, focusMode: Mojo.Widget.focusSelectMode, charsAllow: irc.isValidNicknameChar.bind(this)}; + this.fieldNicknameModel = {value: 'Undefined', disabled: false}; + this.controller.setupWidget("fieldNickname", this.fieldNicknameAttributes, this.fieldNicknameModel); + this.fieldNickname = this.controller.get("fieldNickname"); + Mojo.Event.listen(this.fieldNickname, Mojo.Event.propertyChange, this.handleNicknameUpdate.bind(this)); + + } catch(nickErr) { + Mojo.Log.error(nickErr); + } + // Done }; @@ -181,6 +196,13 @@ // Mojo.Log.info("Changing up model"); this.controller.modelChanged(this.netListSelectorModel, this); this.selectedNetwork = this.prefs.networks[selection]; + + this.fieldNicknameModel.value = this.selectedNetwork.nick1; + this.controller.modelChanged(this.fieldNicknameModel, this); + //this.fieldNickname.blur(); + //this.fieldNickname.focus(); + //this.fieldNickname.setCursorPosition(0,99999); + } catch(loadErr) { Mojo.Log.error("loadForm(): "+loadErr); } }; @@ -209,6 +231,20 @@ FirstAssistant.prototype.handleNetListSelectorUpdate = function(event){ // Mojo.Log.info("handleNetListSelectorUpdate(): setting selected network value"); this.selectedNetwork = this.prefs.networks[event.value]; + + this.fieldNicknameModel.value = this.selectedNetwork.nick1; + this.controller.modelChanged(this.fieldNicknameModel, this); + //this.fieldNickname.blur(); + //this.fieldNickname.focus(); + //this.fieldNickname.setCursorPosition(0,99999); +}; + +// Nickname change +FirstAssistant.prototype.handleNicknameUpdate = function(event) { + Mojo.Log.info("Setting active nick on "+ this.selectedNetwork.name + "to " + event.value); + this.selectedNetwork.nick1 = event.value; + this.useNickname = event.value; + //TODO: save this nick to selected network prefs }; FirstAssistant.prototype.activate = function(event) { diff -r 845e27ca2746 -r fcdc04776817 app/assistants/netoptions-assistant.js --- a/app/assistants/netoptions-assistant.js Sat Nov 28 02:16:45 2009 -0600 +++ b/app/assistants/netoptions-assistant.js Sat Jan 16 10:05:05 2010 -0600 @@ -137,7 +137,7 @@ this.fieldNicknameAttributes = { -hintText: '', multiline: false, enterSubmits: false, focus: false, textCase: Mojo.Widget.steModeLowerCase, autoReplace: false, charsAllow: this.isValidNicknameChar.bind(this)}; +hintText: '', multiline: false, enterSubmits: false, focus: false, textCase: Mojo.Widget.steModeLowerCase, autoReplace: false, charsAllow: irc.isValidNicknameChar.bind(this)}; this.fieldNicknameModel = {value: '', disabled: true}; this.controller.setupWidget("fieldNickname", this.fieldNicknameAttributes, this.fieldNicknameModel); this.fieldNickname = this.controller.get("fieldNickname"); @@ -221,22 +221,6 @@ /* add event handlers to listen to events from widgets */ }; -NetoptionsAssistant.prototype.isValidNicknameChar = function(c) { - Mojo.Log.info("isValidNicknameChar("+c+")"); - // TODO: rewrite this properly, its shamefull - if( (c >= 97 && c <= 122) || /* a-z */ - (c >= 65 && c <= 90) || /* A-Z */ - (c >= 48 && c <= 57) || /* 0-9 */ - (c >= 91 && c <= 93) || /* [, /, ] */ - c === 123 || /* { */ - c === 125 || /* } */ - c === 45 || /* - */ - (c === 94 || c === 95 || c === 96) /* ^, _, ` */ ) { - return true; - } - return false; -}; - NetoptionsAssistant.prototype.ready = function() { this.updateForm(); }; diff -r 845e27ca2746 -r fcdc04776817 app/views/first/first-scene.html --- a/app/views/first/first-scene.html Sat Nov 28 02:16:45 2009 -0600 +++ b/app/views/first/first-scene.html Sat Jan 16 10:05:05 2010 -0600 @@ -1,11 +1,18 @@ <div id="main" class="palm-hasheader"> - <div class="palm-header">Pound</div> + <div class="palm-header">Pound IRC</div> <div id="myAbout"> - <h1># Pound</h1> + <h1># Pound IRC</h1> <p>QWebIRC front-end for WebOS. You can IRC on your Pre!</p> </div> <div id="netListSelector" name="netListSelector" x-mojo-element="ListSelector" class="listselectorClass"></div> + + <div id="fieldTitleNickname" class="xxfieldtitle">NICKNAME</div> + + <div id="fieldNickname" name="fieldNickname" x-mojo-element="TextField"></div> + + <div id="editButton" name="editButton" x-mojo-element="Button"></div> + <div id="connectButton" name="connectButton" x-mojo-element="Button"></div> - <div id="editButton" name="editButton" x-mojo-element="Button"></div> + </div> diff -r 845e27ca2746 -r fcdc04776817 appinfo.json --- a/appinfo.json Sat Nov 28 02:16:45 2009 -0600 +++ b/appinfo.json Sat Jan 16 10:05:05 2010 -0600 @@ -1,9 +1,9 @@ { "id": "org.simplanet.pound", - "version": "0.1.1", + "version": "0.1.2", "vendor": "Simplanet", "type": "web", "main": "index.html", - "title": "Pound", + "title": "Pound IRC", "icon": "icon.png" } diff -r 845e27ca2746 -r fcdc04776817 libs/irc.js --- a/libs/irc.js Sat Nov 28 02:16:45 2009 -0600 +++ b/libs/irc.js Sat Jan 16 10:05:05 2010 -0600 @@ -350,7 +350,7 @@ } }, cOnPRIVMSG: function(command, from, args) { - if(args[0].startsWith("\x01")) { + if(args[1].startsWith("\x01")) { this.cOnCTCPREQUEST(command, from, args); } else { @@ -619,6 +619,9 @@ this.quit(args.join(" ")); this.print("* Sent quit: "+args.join(" ")); }, + doQ: function(args) { + this.doQUIT(args); + }, command: function(text) { // input via server tab, or passed from a channel object which couldnt handle it. // first off, if it starts with a /, check it for command list items. @@ -998,6 +1001,7 @@ } else { Mojo.Log.info("poll reply is empty!"); + this.print("*** Empty response from poll. Is qWebIRC url correct?"); //this.print("* Poll reply is empty, giving up. Is the network qWebIRC url correct?"); //TODO: get here when https with bad cert. alert or something? //Hmm. apparently this also comes up in other situations.. @@ -1010,20 +1014,29 @@ if(json[0] === false) { //TODO: ack? Mojo.Log.error("Got a false back from qwebirc: "+json[1]); - this.connected = false; + this.print("*** Not connected"); + // If we think we are connected, show the disconnect dialog, cos we aren't + if(this.connected === true) { + this.irc.tabEvent("DISCONNECTED", this); + this.connected = false; + } } else { //TODO: Then, setup a timer to query again in 2 seconds.. - this.pollTimer = setTimeout(this._poll.bind(this), 2000); // First, if this is our first response from the server, // take the cookie and immediately send it back if(this.connected === false && json[1]) { this.connected = true; this.sCookie = json[1]; - //Mojo.Log.info("First connect, sending back session cookie: '"+this.sCookie+"'"); + clearTimeout(this.pollTimer); + this.pollTimer = setTimeout(this._poll.bind(this), 1000); + Mojo.Log.info("First connect, sending back session cookie: '"+this.sCookie+"'"); + this.print("*** Setting up connection"); this._ajaxSend({r: "blahblahblah2", t:this.timeCounter++, s:this.sCookie}, 's'); } else { // Normal data back from server, parse it - //Mojo.Log.info("Calling parseLine on data"); + Mojo.Log.info("Calling parseLine on data"); + clearTimeout(this.pollTimer); + this.pollTimer = setTimeout(this._poll.bind(this), 2000); json.forEach(this.parseLine.bind(this)); //this.parseLine(json[0]); } @@ -1033,11 +1046,13 @@ // set connected to false, clear cookie. maybe reconnect if set to? Save // the error for a dialog? I dunno :) Mojo.Log.info("Got error callback."); + this.print("*** Poll resulted in error"); //TODO this.disconnect(1); // 1 for if there was an error, 0 for not (so send quit msg) try { if(this.connected === true) { this.irc.tabEvent("DISCONNECTED", this); + this.print("*** Disconnected"); } } @@ -1175,3 +1190,19 @@ } }); +irc.isValidNicknameChar = function(c) { + Mojo.Log.info("isValidNicknameChar("+c+")"); + // TODO: rewrite this properly, its shamefull + if( (c >= 97 && c <= 122) || /* a-z */ + (c >= 65 && c <= 90) || /* A-Z */ + (c >= 48 && c <= 57) || /* 0-9 */ + (c >= 91 && c <= 93) || /* [, /, ] */ + c === 123 || /* { */ + c === 125 || /* } */ + c === 45 || /* - */ + (c === 94 || c === 95 || c === 96) /* ^, _, ` */ ) { + return true; + } + return false; +}; + diff -r 845e27ca2746 -r fcdc04776817 stylesheets/ir.css --- a/stylesheets/ir.css Sat Nov 28 02:16:45 2009 -0600 +++ b/stylesheets/ir.css Sat Jan 16 10:05:05 2010 -0600 @@ -173,4 +173,28 @@ -webkit-palm-mouse-target: ignore; } +#myAbout { + padding: 0px; + margin: 0px; +} +#myAbout h1 { + padding: 0px; + margin: 0px; +} + +#myAbout p { + padding: 0px; + margin: 0px; + margin-bottom: 1em; +} + +#fieldTitleNickname { + font-size: 0.7em; + color: #56F; + width: 30%; + padding-top: 15px; +} + +#fieldNickname { +} |
|
From: Mercurial C. M. <pou...@li...> - 2009-12-09 20:07:30
|
aoeuaoeu -- -Rubin "In a time of universal deceit, telling the truth becomes a revolutionary act" - George Orwell |