diff options
Diffstat (limited to 'chrome/content')
| -rw-r--r-- | chrome/content/overlay.js | 101 | ||||
| -rw-r--r-- | chrome/content/redirectList.js | 29 | ||||
| -rw-r--r-- | chrome/content/redirectList.xul | 4 | ||||
| -rw-r--r-- | chrome/content/redirector.js | 2 | 
4 files changed, 123 insertions, 13 deletions
| diff --git a/chrome/content/overlay.js b/chrome/content/overlay.js new file mode 100644 index 0000000..9092938 --- /dev/null +++ b/chrome/content/overlay.js @@ -0,0 +1,101 @@ +//// $Id$ + +var RedirectorOverlay = { + +    id          : "redirector@einaregilsson.com", +    name        : "Redirector", +    initialized : false, +    strings     : null, + +    onLoad : function(event) { +        try { + +            // initialization code +            RedirLib.initialize(this); +            RedirLib.debug("Initializing..."); + +            $('contentAreaContextMenu') +                .addEventListener("popupshowing", function(e) { RedirectorOverlay.showContextMenu(e); }, false); + +            Redirector.init(); + +            var appcontent = window.document.getElementById('appcontent'); + +            if (appcontent && !appcontent.processed) { +                appcontent.processed = true; + +                appcontent.addEventListener('DOMContentLoaded', function(event) { + +                    RedirectorOverlay.onDOMContentLoaded(event); + +                }, false); +            } +            this.strings = document.getElementById("redirector-strings"); + +            RedirLib.debug("Finished initialization"); +            this.initialized = true; + +        } catch(e) { +            //Don't use RedirLib because it's initialization might have failed. +            if (this.strings) { +                alert(this.strings.getString("initError")._(this.name) + "\n\n" + e); +            } else { +                alert(e); +            } +        } +    }, + +    onDOMContentLoaded : function(event) { +        var redirect, link, links, url; + +        if (event.target != window.content.document) { +            return; +        } + +        url = window.content.location.href; + +        RedirLib.debug('Processing url %1'._(url)); +        Redirector.processUrl(url); +    }, + + +    onUnload : function(event) { +        //Clean up here +        RedirLib.debug("Finished cleanup"); +    }, + +    showContextMenu : function(event) { +        if (gContextMenu.onLink) { +            $("redirector-context").label = this.strings.getString('addLinkUrl'); +        } else { +            $("redirector-context").label = this.strings.getString('addCurrentUrl'); +        } +    }, + +    onContextMenuCommand: function(event) { + +        params = { inn : { url : window.content.location.href}, out : {} }; +        if (gContextMenu.onLink) { +            params.inn.redirect = gContextMenu.link.toString(); +        } + +        window.openDialog("chrome://redirector/content/redirect.xul", +                    "redirect", +                    "chrome,dialog,modal,centerscreen", params); + +        if (params.out.pattern) { +            Redirector.addRedirect(params.out); +        } + +    }, + +    onMenuItemCommand: function(event) { +        window.openDialog("chrome://redirector/content/redirectList.xul", +                    "redirectList", +                    "chrome,dialog,modal,centerscreen", this); + +    }, + +}; +window.addEventListener("load", function(event) { RedirectorOverlay.onLoad(event); }, false); +window.addEventListener("unload", function(event) { RedirectorOverlay.onUnload(event); }, false);
\ No newline at end of file diff --git a/chrome/content/redirectList.js b/chrome/content/redirectList.js index 522fa20..7a273cd 100644 --- a/chrome/content/redirectList.js +++ b/chrome/content/redirectList.js @@ -1,30 +1,41 @@  var RedirectList = { +    id          : "redirector@einaregilsson.com", +    name        : "Redirector",      addItemsToListBox : function(items) { -        var list = document.getElementById('foo'); +        var list = $('lstRedirects');          var item, row, value;          for each (item in items) { -              row = document.createElement('listitem'); -            for each (value in item) { -                cell = document.createElement('listcell'); -                cell.setAttribute('label',value); -                cell.setAttribute('value',value); -                row.appendChild(cell); -            } +            this.createCell(row, item.exampleUrl); +            this.createCell(row, item.pattern); +            this.createCell(row, item.redirectUrl); +            this.createCell(row, item.onlyIfLinkExists);              list.appendChild(row);          }      }, +    createCell : function(row, value) { +        var cell = document.createElement('listcell'); +        cell.setAttribute('label', value); +        cell.setAttribute('value', value); +        row.appendChild(cell); +    },      onLoad : function() { -        addItemsToList(items); +        try { +            RedirLib.initialize(this); +            Redirector.init(); +            this.addItemsToListBox(Redirector.list); +        } catch(e) { +            alert(e); +        }      }  }; diff --git a/chrome/content/redirectList.xul b/chrome/content/redirectList.xul index 163703e..3c0b687 100644 --- a/chrome/content/redirectList.xul +++ b/chrome/content/redirectList.xul @@ -10,13 +10,13 @@          xmlns:nc="http://home.netscape.com/NC-rdf#"
          xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 -  <script type="application/x-javascript" src="common.js"/>
    <script type="application/x-javascript" src="redirlib.js"/>
 +  <script type="application/x-javascript" src="redirector.js"/>
    <script type="application/x-javascript" src="redirectList.js"/>
    <dialogheader title="&header;" description="&header.description;"/>
 -  <listbox id="foo">
 +  <listbox id="lstRedirects">
      <listhead>
        <listheader label="&colPattern.label;"/>
 diff --git a/chrome/content/redirector.js b/chrome/content/redirector.js index 73d59fa..63ee85d 100644 --- a/chrome/content/redirector.js +++ b/chrome/content/redirector.js @@ -17,7 +17,6 @@ var Redirector = {          for each (r in this.list) {              tempList.push([r.exampleUrl, r.pattern, r.redirectUrl, r.onlyIfLinkExists, r.patternType]);          } -        alert(tempList.toSource());          RedirLib.setCharPref('redirects', tempList.toSource());      }, @@ -41,7 +40,6 @@ var Redirector = {      addRedirect : function(redirect) {          this.list.push(redirect); -        alert(redirect.toSource());          this.save();      }, | 
