aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNik Nyby <nikolas@gnu.org>2015-06-19 19:29:52 -0400
committerNik Nyby <nikolas@gnu.org>2015-10-22 21:33:30 -0400
commitd64a3c7e6b8a95517057eae39cc3115e27842f5a (patch)
tree8e0517f1eb5ae266331b1ff55b081c353e2e96f8
parent9180aa0e94f4c043f2ef6103788d7fde0b927741 (diff)
downloadlibrejsxul-d64a3c7e6b8a95517057eae39cc3115e27842f5a.tar.lz
librejsxul-d64a3c7e6b8a95517057eae39cc3115e27842f5a.tar.xz
librejsxul-d64a3c7e6b8a95517057eae39cc3115e27842f5a.zip
remove menuitems
-rw-r--r--lib/addon_management/install_uninstall.js2
-rw-r--r--packages/menuitems/README.md3
-rw-r--r--packages/menuitems/docs/menuitems.md66
-rw-r--r--packages/menuitems/lib/menuitems.js195
-rw-r--r--packages/menuitems/package.json9
-rw-r--r--packages/menuitems/tests/test-menuitems.js171
6 files changed, 1 insertions, 445 deletions
diff --git a/lib/addon_management/install_uninstall.js b/lib/addon_management/install_uninstall.js
index 7ce73ea..084b448 100644
--- a/lib/addon_management/install_uninstall.js
+++ b/lib/addon_management/install_uninstall.js
@@ -46,7 +46,7 @@ exports.onUnload = function(reason) {
reason == "shutdown" ||
reason == "upgrade" ||
reason == "downgrade") {
- require("settings/storage").librejsStorage.writeCacheToDB();
+ require("../settings/storage").librejsStorage.writeCacheToDB();
// remove all http notifications
httpObserver.removeHttpObserver();
// remove worker.
diff --git a/packages/menuitems/README.md b/packages/menuitems/README.md
deleted file mode 100644
index 12a6954..0000000
--- a/packages/menuitems/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Menuitems Package for Jetpack Add-ons
-
-
diff --git a/packages/menuitems/docs/menuitems.md b/packages/menuitems/docs/menuitems.md
deleted file mode 100644
index 2017c9c..0000000
--- a/packages/menuitems/docs/menuitems.md
+++ /dev/null
@@ -1,66 +0,0 @@
-<!-- contributed by Erik Vold [erikvvold@gmail.com] -->
-
-
-The `menuitems` API is a simple way to create
-[Menuitems](https://developer.mozilla.org/en/XUL/PopupGuide/MenuItems), which
-can perform an action when clicked, and display state.
-
-## Example ##
-
- exports.main = function(options) {
- // create menuitem for the File menu,
- // and insert it before the 'Quit' menuitem
- require("menuitems").Menuitem({
- id: "myextprefix-some-mi-id",
- menuid: "menu_FilePopup",
- insertbefore: "menu_FileQuitItem",
- "label": _("label"),
- "accesskey": _("label.ak"),
- image: self.data.url("icon.png"),
- className: 'pizazz',
- disabled: false,
- checked: false,
- onCommand: function() {
- // do something
- }
- });
- };
-
-<api name="Menuitem">
-@class
-
-Module exports `Menuitem` constructor allowing users to create a
-[`menuitem`](https://developer.mozilla.org/en/XUL/menuitem).
-
-<api name="Menuitem">
-@constructor
-Creates a `menuitem`.
-
-@param options {Object}
- Options for the `menuitem`, with the following parameters:
-
-@prop id {String}
-A id for the `menuitem`, this should be namespaced.
-
-@prop menuid {String}
-The id of the parent `<menu>` node.
-
-@prop label {String}
-A label for the `menuitem`.
-
-@prop image {String}
-A image url for the `menuitem`.
-
-@prop className {String}
-A default space delimited list of class names for the menuitem.
-
-@prop disabled {Boolean}
-When a menuitem is disabled it cannot be used, but is still displayed.
-
-@prop checked {Boolean}
-Displays a check beside the menuitem.
-
-@prop [onCommand] {Function}
- A option function that is invoked when the `menuitem` is executed.
-</api>
-</api>
diff --git a/packages/menuitems/lib/menuitems.js b/packages/menuitems/lib/menuitems.js
deleted file mode 100644
index 075d690..0000000
--- a/packages/menuitems/lib/menuitems.js
+++ /dev/null
@@ -1,195 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-"use strict";
-
-const windowUtils = require("sdk/deprecated/window-utils");
-const { Class } = require("sdk/core/heritage");
-const { validateOptions } = require("sdk/deprecated/api-utils");
-const { on, emit, once, off } = require("sdk/event/core");
-const { isBrowser } = require("sdk/window/utils");
-const { EventTarget } = require('sdk/event/target');
-const { unload } = require("unload+");
-
-const menuitemNS = require("sdk/core/namespace").ns();
-const NS_XUL = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
-
-function MenuitemOptions(options) {
- return validateOptions(options, {
- id: { is: ['string'] },
- menuid: { is: ['undefined', 'string'] },
- insertbefore: { is: ['undefined', 'string', 'object'] },
- label: { is: ["string"] },
- disabled: { is: ["undefined", "boolean"], map: function(v) !!v},
- accesskey: { is: ["undefined", "string"] },
- key: { is: ["undefined", "string"] },
- checked: { is: ['undefined', 'boolean'] },
- className: { is: ["undefined", "string"] },
- onCommand: { is: ['undefined', 'function'] }
- });
-}
-
-let Menuitem = Class({
- extends: EventTarget,
- initialize: function(options) {
- options = menuitemNS(this).options = MenuitemOptions(options);
- EventTarget.prototype.initialize.call(this, options);
-
- menuitemNS(this).destroyed = false;
- menuitemNS(this).unloaders = [];
- menuitemNS(this).menuitems = addMenuitems(this, options).menuitems;
- },
- get id() menuitemNS(this).options.id,
- get label() menuitemNS(this).options.label,
- set label(val) updateProperty(this, 'label', val),
- get checked() menuitemNS(this).options.checked,
- set checked(val) updateProperty(this, 'checked', !!val),
- get disabled() menuitemNS(this).options.disabled,
- set disabled(val) updateProperty(this, 'disabled', !!val),
- get key() menuitemNS(this).options.key,
- set key(val) updateProperty(this, 'key', val),
- clone: function (overwrites) {
- let opts = Object.clone(menuitemNS(this).options);
- for (let key in overwrites) {
- opts[key] = ovrewrites[key];
- }
- return Menuitem(opts);
- },
- get menuid() menuitemNS(this).options.menuid,
- set menuid(val) {
- let options = menuitemNS(this).options;
- options.menuid = val;
-
- forEachMI(function(menuitem, i, $) {
- updateMenuitemParent(menuitem, options, $);
- });
- },
- destroy: function() {
- if (!menuitemNS(this).destroyed) {
- menuitemNS(this).destroyed = true;
- menuitemNS(this).unloaders.forEach(function(u) u());
- menuitemNS(this).unloaders = null;
- menuitemNS(this).menuitems = null;
- }
- return true;
- }
-});
-
-function addMenuitems(self, options) {
- let menuitems = [];
-
- // setup window tracker
- windowUtils.WindowTracker({
- onTrack: function (window) {
- if (!isBrowser(window) || menuitemNS(self).destroyed) return;
-
- // add the new menuitem to a menu
- var menuitem = updateMenuitemAttributes(
- window.document.createElementNS(NS_XUL, "menuitem"), options);
- var menuitems_i = menuitems.push(menuitem) - 1;
-
- // add the menutiem to the ui
- updateMenuitemParent(menuitem, options, function(id) window.document.getElementById(id));
-
- menuitem.addEventListener("command", function() {
- if (!self.disabled)
- emit(self, 'command');
- }, true);
-
- // add unloader
- let unloader = function unloader() {
- menuitem.parentNode && menuitem.parentNode.removeChild(menuitem);
- menuitems[menuitems_i] = null;
- };
- menuitemNS(self).unloaders.push(function() {
- remover();
- unloader();
- });
- let remover = unload(unloader, window);
- }
- });
- return {menuitems: menuitems};
-}
-
-function updateMenuitemParent(menuitem, options, $) {
- // add the menutiem to the ui
- if (Array.isArray(options.menuid)) {
- let ids = options.menuid;
- for (var len = ids.length, i = 0; i < len; i++) {
- if (tryParent($(ids[i]), menuitem, options.insertbefore))
- return true;
- }
- }
- else {
- return tryParent($(options.menuid), menuitem, options.insertbefore);
- }
- return false;
-}
-
-function updateMenuitemAttributes(menuitem, options) {
- menuitem.setAttribute("id", options.id);
- menuitem.setAttribute("label", options.label);
-
- if (options.accesskey)
- menuitem.setAttribute("accesskey", options.accesskey);
-
- if (options.key)
- menuitem.setAttribute("key", options.key);
-
- menuitem.setAttribute("disabled", !!options.disabled);
-
- if (options.image) {
- menuitem.classList.add("menuitem-iconic");
- menuitem.style.listStyleImage = "url('" + options.image + "')";
- }
-
- if (options.checked)
- menuitem.setAttribute('checked', options.checked);
-
- if (options.className)
- options.className.split(/\s+/).forEach(function(name) menuitem.classList.add(name));
-
- return menuitem;
-}
-
-function updateProperty(menuitem, key, val) {
- menuitemNS(menuitem).options[key] = val;
-
- forEachMI(function(menuitem) {
- menuitem.setAttribute(key, val);
- }, menuitem);
- return val;
-}
-
-function forEachMI(callback, menuitem) {
- menuitemNS(menuitem).menuitems.forEach(function(mi, i) {
- if (!mi) return;
- callback(mi, i, function(id) mi.ownerDocument.getElementById(id));
- });
-}
-
-function tryParent(parent, menuitem, before) {
- if (parent) parent.insertBefore(menuitem, insertBefore(parent, before));
- return !!parent;
-}
-
-function insertBefore(parent, insertBefore) {
- if (typeof insertBefore == "number") {
- switch (insertBefore) {
- case MenuitemExport.FIRST_CHILD:
- return parent.firstChild;
- }
- return null;
- }
- else if (typeof insertBefore == "string") {
- return parent.querySelector("#" + insertBefore);
- }
- return insertBefore;
-}
-
-function MenuitemExport(options) {
- return Menuitem(options);
-}
-MenuitemExport.FIRST_CHILD = 1;
-
-exports.Menuitem = MenuitemExport;
diff --git a/packages/menuitems/package.json b/packages/menuitems/package.json
deleted file mode 100644
index 95b1ede..0000000
--- a/packages/menuitems/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "menuitems",
- "description": "Menuitems for Jetpacks",
- "keywords": ["menu", "menuitems", "button", "ui"],
- "author": "Erik Vold (http://erikvold.com/) <erikvvold@gmail.com>",
- "version": "1.1.1",
- "license": "MPL 2.0",
- "dependencies": ["api-utils", "vold-utils"]
-}
diff --git a/packages/menuitems/tests/test-menuitems.js b/packages/menuitems/tests/test-menuitems.js
deleted file mode 100644
index 191bb44..0000000
--- a/packages/menuitems/tests/test-menuitems.js
+++ /dev/null
@@ -1,171 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-'use strict'
-
-const windowUtils = require("window-utils");
-const menuitems = require("menuitems");
-
-let window = windowUtils.activeBrowserWindow;
-let document = window.document;
-function $(id) document.getElementById(id);
-
-function createMI(options, test) {
- test.assertEqual(!$(options.id), true);
- var mi = new menuitems.Menuitem(options);
- return mi;
-}
-
-exports.testMIDoesNotExist = function(test) {
- var options = {
- id: "test-mi-dne",
- label: "test"
- };
- createMI(options, test);
- test.assertEqual(!!$(options.id), false, 'menuitem does not exists');
-};
-
-exports.testMIDoesExist = function(test) {
- var options = {
- id: "test-mi-exists",
- label: "test",
- menuid: 'menu_FilePopup'
- };
- let mi = createMI(options, test);
- let menuitem = $(options.id);
- test.assertEqual(!!menuitem, true, 'menuitem exists');
- test.assertEqual(menuitem.id, options.id, 'menuitem id is ok');
- test.assertEqual(menuitem.getAttribute('label'), options.label, 'menuitem label is ok');
- test.assertEqual(menuitem.parentNode.id, options.menuid, 'in the file menu');
- test.assertEqual(menuitem.getAttribute('disabled'), 'false', 'menuitem not disabled');
- test.assertEqual(menuitem.getAttribute('accesskey'), '', 'menuitem accesskey is ok');
- test.assertEqual(menuitem.getAttribute('class'), '', 'menuitem class is ok');
- test.assertEqual(menuitem.nextSibling, undefined, 'menuitem is last');
- test.assertEqual(menuitem.hasAttribute("checked"), false, 'menuitem not checked');
- mi.destroy();
- test.assert(!$(options.id), 'menuitem is gone');
- test.assertEqual(menuitem.parentNode, null, 'menuitem has no parent');
-};
-
-exports.testMIOnClick = function(test) {
- test.waitUntilDone();
-
- let options = {
- id: "test-mi-onclick",
- label: "test",
- menuid: 'menu_FilePopup',
- onCommand: function() {
- mi.destroy();
- test.pass('onCommand worked!');
- test.done();
- }
- };
-
- let e = document.createEvent("UIEvents");
- e.initUIEvent("command", true, true, window, 1);
-
- var mi = createMI(options, test);
- let menuitem = $(options.id);
- test.assertEqual(!!menuitem, true, 'menuitem exists');
- menuitem.dispatchEvent(e);
-};
-
-exports.testMIDisabled = function(test) {
- test.waitUntilDone();
-
- let commandIsOK = false;
- let count = 0;
- let options = {
- id: "test-mi-disabled",
- label: "test",
- disabled: true,
- menuid: 'menu_FilePopup',
- onCommand: function() {
- count++;
- if (!commandIsOK) {
- test.fail('onCommand was called, that is not ok');
- return;
- }
-
- mi.destroy();
- test.assertEqual(count, 1, 'onCommand was called the correct number of times!');
- test.done();
- }
- };
-
- let e = document.createEvent("UIEvents");
- e.initUIEvent("command", true, true, window, 1);
-
- var mi = createMI(options, test);
- let menuitem = $(options.id);
- test.assertEqual(!!menuitem, true, 'menuitem exists');
- test.assertEqual(menuitem.getAttribute('disabled'), 'true', 'menuitem not disabled');
- menuitem.dispatchEvent(e);
- mi.disabled = false;
- test.assertEqual(menuitem.getAttribute('disabled'), 'false', 'menuitem not disabled');
- commandIsOK = true;
- menuitem.dispatchEvent(e);
-};
-
-exports.testMIChecked = function(test) {
- let options = {
- id: "test-mi-checked",
- label: "test",
- disabled: true,
- menuid: 'menu_FilePopup',
- checked: true
- };
-
- let mi = createMI(options, test);
- let menuitem = $(options.id);
- test.assertEqual(!!menuitem, true, 'menuitem exists');
- test.assertEqual(menuitem.getAttribute("checked"), "true", 'menuitem checked');
- mi.checked = false;
- test.assertEqual(menuitem.getAttribute("checked"), "false", 'menuitem checked');
- mi.destroy();
-};
-
-exports.testMIClass = function(test) {
- let options = {
- id: "test-mi-class",
- label: "pizazz",
- className: "pizazz",
- menuid: 'menu_FilePopup',
- };
-
- var mi = createMI(options, test);
- let menuitem = $(options.id);
- test.assertEqual(!!menuitem, true, 'menuitem exists');
- test.assertEqual(menuitem.getAttribute('class'), 'pizazz', 'menuitem not disabled');
- mi.destroy();
-};
-
-exports.testInsertBeforeExists = function(test) {
- let options = {
- id: 'test-mi-insertbefore',
- label: 'insertbefore',
- insertbefore:'menu_FileQuitItem',
- menuid: 'menu_FilePopup',
- };
-
- var mi = createMI(options, test);
- let menuitem = $(options.id);
- test.assertEqual(!!menuitem, true, 'menuitem exists');
- test.assertEqual(menuitem.nextSibling, $('menu_FileQuitItem'), 'menuitem not disabled');
- mi.destroy();
-};
-
-exports.testInsertBeforeDoesNotExist = function(test) {
- let options = {
- id: 'test-mi-insertbefore',
- label: 'insertbefore',
- insertbefore:'menu_ZZZDNE',
- menuid: 'menu_FilePopup',
- };
-
- var mi = createMI(options, test);
- let menuitem = $(options.id);
- test.assertEqual(!!menuitem, true, 'menuitem exists');
- test.assertEqual(menuitem.nextSibling, null, 'menuitem not disabled');
- mi.destroy();
-};