/* @author Kristian Kræmmer Nielsen <jkkn@tv2.dk> */
var TV2DeveloperQuickBox = {
-
- _addCheckbox: function(here, id, label, accesskey) {
- var radio = document.createElement('radio');
- radio.setAttribute('id', id);
- radio.setAttribute('label', label);
- radio.setAttribute('accesskey', accesskey);
- here.appendChild(radio);
- },
-
- _autoChange: false,
- _saveInitials: false, /* save the alternative initials field */
-
- /* assemble a final url */
- _makeUrl: function(protocol, env, sitetype, php4, username, site, uri, dynsite) {
- var domain;
+
+ _addCheckbox: function(here, id, label, accesskey) {
+ var radio = document.createElement('radio');
+ radio.setAttribute('id', id);
+ radio.setAttribute('label', label);
+ radio.setAttribute('accesskey', accesskey);
+ here.appendChild(radio);
+ },
+
+ _autoChange: false,
+ _saveInitials: false, /* save the alternative initials field */
+
+ /* assemble a final url */
+ _makeUrl: function(protocol, env, sitetype, php4, username, site, uri, dynsite) {
+ var domain;
// Assemble domain
// Always remove -dyn on test and -static on live
if (env != 'live' && site.substr(-4) == '-dyn') {
return protocol + '://' + domain + uri;
},
-
- /* determind if action requires us to create a site URL */
- _shouldMakeURL: function(action) {
- switch (action) {
- case 'go-site':
- case 'go-tango-page':
- case 'go-tango-requeue':
- case 'go-dynamic':
- case 'go-viewcvs':
- case 'go-pdolog':
- return true;
- default:
- return false;
- }
- },
-
- /* Change action manually */
- setManuel: function(target) {
+
+ /* determind if action requires us to create a site URL */
+ _shouldMakeURL: function(action) {
+ switch (action) {
+ case 'go-site':
+ case 'go-tango-page':
+ case 'go-tango-requeue':
+ case 'go-dynamic':
+ case 'go-viewcvs':
+ case 'go-pdolog':
+ return true;
+ default:
+ return false;
+ }
+ },
+
+ /* Change action manually */
+ setManuel: function(target) {
var action = document.getElementById('action').selectedItem.id;
- var makeSiteURL = this._shouldMakeURL(action);
+ var makeSiteURL = this._shouldMakeURL(action);
var environment = document.getElementById('environment').selectedItem;
if (target.id == 'environment') {
document.getElementById('testname').disabled = (target.selectedItem.id != 'othertest');
}
document.getElementById('php4site').disabled = (!makeSiteURL || action == 'go-pdolog' || action == 'go-viewcvs')
|| (environment && environment.id == 'live');
- if (!this._autoChange) { /* avoid updating if this was triggered by updateQuickbox() */
- if (target.id == 'testname' &&
- document.getElementById('environment').selectedItem.id != 'othertest') {
- document.getElementById('environment').selectedItem =
- document.getElementById('othertest');
- }
- this.updateQuickbox(true);
- document.getElementById('shorturl').focus();
- }
- },
+ if (!this._autoChange) { /* avoid updating if this was triggered by updateQuickbox() */
+ if (target.id == 'testname' &&
+ document.getElementById('environment').selectedItem.id != 'othertest') {
+ document.getElementById('environment').selectedItem =
+ document.getElementById('othertest');
+ }
+ this.updateQuickbox(true);
+ document.getElementById('shorturl').focus();
+ }
+ },
_reg_nodeid: /^(?!1234$)[0-9]+$/,
_reg_ttv: /^[0-9]{3}$/,
_reg_cvs_rootfolders: /^\/(((Java|build|inc|opdatering|robot|scripts|sql|template|views|php|php5|fonts|webroot)(\/|$)|\/))/,
_sitetypes: ['opdatering', 'robot', 'template'],
_envs: ['test', 'snapshot'],
- updateQuickbox: function(manual) {
- if (!manual) manual = false;
- var current_user = TV2Util.getPref('developer-initials');
- var username = current_user;
- var shorturl = document.getElementById('shorturl').value;
- var auto_action;
-
+ updateQuickbox: function(manual) {
+ if (!manual) manual = false;
+ var current_user = TV2Util.getPref('developer-initials');
+ var username = current_user;
+ var shorturl = document.getElementById('shorturl').value;
+ var auto_action;
+
var tv2 = this._reg_shortlink.exec(shorturl);
if (tv2) {
var protocol = tv2[2];
}
} else {
// determind action
- var cur_action = document.getElementById('action').selectedItem;
- if (this._reg_ttv.exec(site)) {
- auto_action = 'go-ttv-page';
- } else if (this._reg_nodeid.exec(site)) {
- auto_action = 'go-node';
- } else if (this._reg_classname.exec(shorturl)) {
- auto_action = 'go-viewcvs';
- } else {
- // if we are using the user input as an url we keep an eventually already selected action
- if (!this._shouldMakeURL(cur_action.id)) {
- auto_action = 'go-site';
- } else {
- auto_action = cur_action.id;
- }
+ var cur_action = document.getElementById('action').selectedItem;
+ if (this._reg_ttv.exec(site)) {
+ auto_action = 'go-ttv-page';
+ } else if (this._reg_nodeid.exec(site)) {
+ auto_action = 'go-node';
+ } else if (this._reg_classname.exec(shorturl)) {
+ auto_action = 'go-viewcvs';
+ } else {
+ // if we are using the user input as an url we keep an eventually already selected action
+ if (!this._shouldMakeURL(cur_action.id)) {
+ auto_action = 'go-site';
+ } else {
+ auto_action = cur_action.id;
+ }
}
// set options
env = auto_env;
document.getElementById('tv2developer_quickbox').getButton('accept').disabled = !validState;
}
- },
-
- /* method to extract short url */
+ },
+
+ /* method to extract short url */
_reg_fromviewcvs: /^http:\/\/viewcvs\.tv2.dk:7467\/cgi-bin\/viewvc\.cgi\/(([^/.]+)(?:\.tv2\.dk)?(?:\/(?:(webroot|robot|opdatering|template\/))|(\/[^#?/]*))([^#?]*)(.*)?)?/,
_reg_viewcvsbranch: /^\?(?:.*&)?pathrev=PHP5(?:&|$)/,
_reg_viewcvsviewsource: /^\?(?:.*&)?view=markup(?:&|$)/,
},
/* onload */
- setupQuickbox: function() {
- if (window.arguments && window.arguments[0]) {
- this._extractURL(window.arguments[0]);
- }
- this.updateQuickbox();
- document.getElementById('php4site').addEventListener('CheckboxStateChange',
- function() { TV2DeveloperQuickBox.setManuel(this); }, false);
- document.getElementById('php5branch').addEventListener('CheckboxStateChange',
- function() { TV2DeveloperQuickBox.setManuel(this); }, false);
- document.getElementById('viewsource').addEventListener('CheckboxStateChange',
- function() { TV2DeveloperQuickBox.setManuel(this); }, false);
- // init saved fields
- document.getElementById('testname').value = TV2Util.getPref('alternativ-initials', '');
+ setupQuickbox: function() {
+ if (window.arguments && window.arguments[0]) {
+ this._extractURL(window.arguments[0]);
+ }
+ this.updateQuickbox();
+ document.getElementById('php4site').addEventListener('CheckboxStateChange',
+ function() { TV2DeveloperQuickBox.setManuel(this); }, false);
+ document.getElementById('php5branch').addEventListener('CheckboxStateChange',
+ function() { TV2DeveloperQuickBox.setManuel(this); }, false);
+ document.getElementById('viewsource').addEventListener('CheckboxStateChange',
+ function() { TV2DeveloperQuickBox.setManuel(this); }, false);
+ // init saved fields
+ document.getElementById('testname').value = TV2Util.getPref('alternativ-initials', '');
// auto go (ALT+4)
- if (window.arguments && window.arguments[1]) {
- this.goQuickbox();
- }
- },
-
- goQuickbox: function() {
- // init saved fields
- if (this._saveInitials) {
- TV2Util.setPref('alternativ-initials', document.getElementById('testname').value);
- }
+ if (window.arguments && window.arguments[1]) {
+ this.goQuickbox();
+ }
+ },
+
+ goQuickbox: function() {
+ // init saved fields
+ if (this._saveInitials) {
+ TV2Util.setPref('alternativ-initials', document.getElementById('testname').value);
+ }
window.close();
opener.openUILink(document.getElementById('url').value, 'current', false, false, false);
/* allow ctrl, alt, but don't google */
- }
-
+ }
+
};
-\r
-/* Utility class for TV2 Developer Plugin */\r
-/* @author Kristian Kræmmer Nielsen <jkkn@tv2.dk> */\r
-\r
-var TV2Util = {\r
- /* string methods for localizations */\r
- _strs: null,\r
- get strs() {\r
- if (!this._strs) {\r
- \r
- this._strs = document.getElementById('tv2developer_strings');\r
- }\r
- return this._strs;\r
- },\r
- \r
- getStr: function(str) {\r
- try {\r
- return this.strs.getString(str);\r
- } catch(e) {\r
- alert('Missing string: ' + str);\r
- return '';\r
- }\r
- },\r
- \r
- /* preference functions */\r
- _prefs: null,\r
- get prefs() {\r
- if (!this._prefs)\r
- this._prefs =\r
- Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch('tv2developer.');\r
- return this._prefs;\r
- },\r
- \r
- /* default preference functions */\r
- _defPrefs: null,\r
- get defPrefs() {\r
- if (!this._defPrefs)\r
- this._defPrefs =\r
- Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getDefaultBranch('tv2developer.');\r
- return this._defPrefs;\r
- },\r
-\r
- getPref: function(name, defValue) {\r
- const CI=Components.interfaces.nsIPrefBranch;\r
- const prefs=this.prefs;\r
- try {\r
- switch(prefs.getPrefType(name)) {\r
- case CI.PREF_STRING:\r
- return prefs.getCharPref(name);\r
- case CI.PREF_INT:\r
- return prefs.getIntPref(name);\r
- case CI.PREF_BOOL:\r
- return prefs.getBoolPref(name);\r
- }\r
- } catch(e) {alert(e)}\r
- return defValue;\r
- },\r
- \r
- setPref: function(name, value) {\r
- const prefs=this.prefs;\r
- switch(typeof(value)) {\r
- case 'string':\r
- prefs.setCharPref(name, value);\r
- break;\r
- case 'boolean':\r
- prefs.setBoolPref(name, value);\r
- break;\r
- case 'number':\r
- prefs.setIntPref(name, value);\r
- break;\r
- default:\r
- throw new Error('Unsupported type '+typeof(value)+' for preference '+name);\r
- }\r
- },\r
- \r
- hasPref: function(name) {\r
- return this.prefs.prefHasUserValue(name);\r
- },\r
- \r
- clearPref: function(name) {\r
- this.prefs.clearUserPref(name);\r
- },\r
- \r
- getDefaultPref: function(name) {\r
- const CI=Components.interfaces.nsIPrefBranch;\r
- const prefs=this.defPrefs;\r
- try {\r
- switch(prefs.getPrefType(name)) {\r
- case CI.PREF_STRING:\r
- return prefs.getCharPref(name);\r
- case CI.PREF_INT:\r
- return prefs.getIntPref(name);\r
- case CI.PREF_BOOL:\r
- return prefs.getBoolPref(name);\r
- }\r
- } catch(e) {alert(e)}\r
- return defValue;\r
- }\r
- \r
- \r
-};\r
+
+/* Utility class for TV2 Developer Plugin */
+/* @author Kristian Kræmmer Nielsen <jkkn@tv2.dk> */
+
+var TV2Util = {
+ /* string methods for localizations */
+ _strs: null,
+ get strs() {
+ if (!this._strs) {
+
+ this._strs = document.getElementById('tv2developer_strings');
+ }
+ return this._strs;
+ },
+
+ getStr: function(str) {
+ try {
+ return this.strs.getString(str);
+ } catch(e) {
+ alert('Missing string: ' + str);
+ return '';
+ }
+ },
+
+ /* preference functions */
+ _prefs: null,
+ get prefs() {
+ if (!this._prefs)
+ this._prefs =
+ Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch('tv2developer.');
+ return this._prefs;
+ },
+
+ /* default preference functions */
+ _defPrefs: null,
+ get defPrefs() {
+ if (!this._defPrefs)
+ this._defPrefs =
+ Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getDefaultBranch('tv2developer.');
+ return this._defPrefs;
+ },
+
+ getPref: function(name, defValue) {
+ const CI=Components.interfaces.nsIPrefBranch;
+ const prefs=this.prefs;
+ try {
+ switch(prefs.getPrefType(name)) {
+ case CI.PREF_STRING:
+ return prefs.getCharPref(name);
+ case CI.PREF_INT:
+ return prefs.getIntPref(name);
+ case CI.PREF_BOOL:
+ return prefs.getBoolPref(name);
+ }
+ } catch(e) {alert(e)}
+ return defValue;
+ },
+
+ setPref: function(name, value) {
+ const prefs=this.prefs;
+ switch(typeof(value)) {
+ case 'string':
+ prefs.setCharPref(name, value);
+ break;
+ case 'boolean':
+ prefs.setBoolPref(name, value);
+ break;
+ case 'number':
+ prefs.setIntPref(name, value);
+ break;
+ default:
+ throw new Error('Unsupported type '+typeof(value)+' for preference '+name);
+ }
+ },
+
+ hasPref: function(name) {
+ return this.prefs.prefHasUserValue(name);
+ },
+
+ clearPref: function(name) {
+ this.prefs.clearUserPref(name);
+ },
+
+ getDefaultPref: function(name) {
+ const CI=Components.interfaces.nsIPrefBranch;
+ const prefs=this.defPrefs;
+ try {
+ switch(prefs.getPrefType(name)) {
+ case CI.PREF_STRING:
+ return prefs.getCharPref(name);
+ case CI.PREF_INT:
+ return prefs.getIntPref(name);
+ case CI.PREF_BOOL:
+ return prefs.getBoolPref(name);
+ }
+ } catch(e) {alert(e)}
+ return defValue;
+ }
+
+
+};