1
0
mirror of https://github.com/MatMoul/quickdial-webext.git synced 2025-04-05 12:51:45 +00:00

Compare commits

..

No commits in common. "develop" and "v0.1.14" have entirely different histories.

9 changed files with 779 additions and 1140 deletions

View File

@ -31,7 +31,6 @@ git checkout beta
version=$1 version=$1
sed -i "/\"version\":/c\ \ \"version\": \"$version\"," src/manifest.json sed -i "/\"version\":/c\ \ \"version\": \"$version\"," src/manifest.json
sed -i 's/quickdial@matmoul.com/quickdialtest@matmoul.com/' src/manifest.json
git commit -a -m "Beta Version $version" git commit -a -m "Beta Version $version"

View File

@ -1,67 +0,0 @@
{
"menuAddToQuickDial": {
"message": "הוסף לחיוג מהיר",
"description": "Text of add bookmark menu item."
},
"menuNew": {
"message": "חדש",
"description": "Text of new menu item."
},
"menuNewBookmark": {
"message": "מועדף",
"description": "Text of add bookmark menu item."
},
"AddBookmarkPrompt": {
"message": "הכנס קישור חדש למועדף :",
"description": "Text of the add bookmark prompt."
},
"menuNewFolder": {
"message": "תיקייה",
"description": "Text of add folder menu item."
},
"AddFolderPrompt": {
"message": "הכנס שם חדש לתיקייה :",
"description": "Text of the add folder prompt."
},
"menuProperties": {
"message": "מאפיינים",
"description": "Text of properties menu item."
},
"menuRefreshItem": {
"message": "רענן",
"description": "Text of refresh menu item."
},
"menuCaptureHere": {
"message": "צלם מסך כאן",
"description": "Text of capture here menu item."
},
"menuCapturePage": {
"message": "צלם מסך בלשונית חדשה",
"description": "Text of capture menu item."
},
"menuDeleteItem": {
"message": "מחק",
"description": "Text of delete menu item."
},
"deleteItemConfimation": {
"message": "האם למחוק $1 ?",
"description": "Text of delete confirmation."
},
"menuSettings": {
"message": "הגדרות חיוג מהיר",
"description": "Text of settings menu item."
}
}

View File

@ -1,67 +0,0 @@
{
"menuAddToQuickDial": {
"message": "Dodaj do Quick Dial",
"description": "Text of add bookmark menu item."
},
"menuNew": {
"message": "Nowy",
"description": "Text of new menu item."
},
"menuNewBookmark": {
"message": "Zakładka",
"description": "Text of add bookmark menu item."
},
"AddBookmarkPrompt": {
"message": "Wprowadź nowy adres URL zakładki:",
"description": "Text of the add bookmark prompt."
},
"menuNewFolder": {
"message": "Folder",
"description": "Text of add folder menu item."
},
"AddFolderPrompt": {
"message": "Wprowadź nazwę nowego folderu:",
"description": "Text of the add folder prompt."
},
"menuProperties": {
"message": "Właściwości",
"description": "Text of properties menu item."
},
"menuRefreshItem": {
"message": "Odśwież",
"description": "Text of refresh menu item."
},
"menuCaptureHere": {
"message": "Zdjęcie tutaj",
"description": "Text of capture here menu item."
},
"menuCapturePage": {
"message": "Zdjęcie na nowej karcie",
"description": "Text of capture menu item."
},
"menuDeleteItem": {
"message": "Usuń",
"description": "Text of delete menu item."
},
"deleteItemConfimation": {
"message": "Usuń $1 ?",
"description": "Text of delete confirmation."
},
"menuSettings": {
"message": "Ustawienia Quick Dial",
"description": "Text of settings menu item."
}
}

View File

@ -1,67 +0,0 @@
{
"menuAddToQuickDial": {
"message": "Додати до Quick Dial",
"description": "Text of add bookmark menu item."
},
"menuNew": {
"message": "Додати",
"description": "Text of new menu item."
},
"menuNewBookmark": {
"message": "Закладку",
"description": "Text of add bookmark menu item."
},
"AddBookmarkPrompt": {
"message": "Введіть URL-адресу нової закладки:",
"description": "Text of the add bookmark prompt."
},
"menuNewFolder": {
"message": "Папку",
"description": "Text of add folder menu item."
},
"AddFolderPrompt": {
"message": "Введіть им'я нової папки:",
"description": "Text of the add folder prompt."
},
"menuProperties": {
"message": "Властивості",
"description": "Text of properties menu item."
},
"menuRefreshItem": {
"message": "Оновити",
"description": "Text of refresh menu item."
},
"menuCaptureHere": {
"message": "Захватити тут",
"description": "Text of capture here menu item."
},
"menuCapturePage": {
"message": "Захватити на новій вкладці",
"description": "Text of capture menu item."
},
"menuDeleteItem": {
"message": "Видалити",
"description": "Text of delete menu item."
},
"deleteItemConfimation": {
"message": "Видалити $1?",
"description": "Text of delete confirmation."
},
"menuSettings": {
"message": "Налаштування Quick Dial",
"description": "Text of settings menu item."
}
}

View File

@ -68,10 +68,6 @@
<td><input id="ButtonOpenInNewPage" type="checkbox"></td> <td><input id="ButtonOpenInNewPage" type="checkbox"></td>
</tr> </tr>
<tr>
<td>Startpage timeout :</td>
<td><input id="StartupTimeout" type="number"></td>
</tr>
</table> </table>

View File

@ -8,27 +8,11 @@ app.init = function(){ // Init module
if(app.settings.openQuickDialInNewPage) browser.tabs.create({}); if(app.settings.openQuickDialInNewPage) browser.tabs.create({});
else browser.tabs.update(e.id, {url: '/dial'}).then(); else browser.tabs.update(e.id, {url: '/dial'}).then();
}); });
browser.runtime.sendMessage({ cmd: app.Messages.Commands.gridNodesLoaded }); app.GridNodes.sync(app.node, app.settings.grid.root, function(){
app.ContextMenus.initMenu(); browser.runtime.sendMessage({ cmd: app.Messages.Commands.gridNodesLoaded });
window.setTimeout(function(){ app.Bookmarks.initListener();
app.GridNodes.sync(app.node, app.settings.grid.root, function(){ app.ContextMenus.initMenu();
app.Bookmarks.initListener(); });
});
}, 500);
// Start page workaround :
if(app.settings.startpageTimeout>0){
setTimeout(function(){
browser.tabs.query({}).then( function(tabs) {
tabs.forEach(function(itm){
if(itm.url=='about:blank'){
browser.tabs.update(itm.id, {url: browser.extension.getURL('dial')});
}
});
});
}, app.settings.startpageTimeout);
}
}); });
}; };
@ -118,7 +102,7 @@ app.Messages.init = function(){ // Init Messages Listeners
app.Settings = {}; // Settings helper object app.Settings = {}; // Settings helper object
app.Settings.init = function(callback){ // Load settings and nodes app.Settings.init = function(callback){ // Load settings and nodes
browser.storage.local.get().then(function(data){ browser.storage.local.get().then(function(data){
if(Object.keys(data).length == 0 || ! data.settings) { if(Object.keys(data).length == 0) {
data = { data = {
version: 3, version: 3,
settings: { settings: {
@ -243,9 +227,6 @@ app.Settings.init = function(callback){ // Load settings and nodes
if(!data.settings.openQuickDialInNewPage && data.settings.openQuickDialInNewPage != false){ if(!data.settings.openQuickDialInNewPage && data.settings.openQuickDialInNewPage != false){
data.settings.openQuickDialInNewPage = true; data.settings.openQuickDialInNewPage = true;
} }
if(!data.settings.startpageTimeout){
data.settings.startpageTimeout = 500;
}
//app.Settings.save(); //app.Settings.save();
} }
app.settings = data.settings; app.settings = data.settings;
@ -258,7 +239,6 @@ app.Settings.update = function(settings, callback){ // Save new settings
app.Settings.save(callback); app.Settings.save(callback);
}; };
app.Settings.save = function(callback){ // Save settings app.Settings.save = function(callback){ // Save settings
if(! app.settings) return;
var data = { version: 4 }; var data = { version: 4 };
data.settings = app.settings; data.settings = app.settings;
data.node = app.node; data.node = app.node;
@ -276,143 +256,15 @@ app.ContextMenus.menuItemClicked = function(info, tab){
}); });
}; };
app.ContextMenus.initMenu = function(){ // (Called from app.init) Init context menu in all pages app.ContextMenus.initMenu = function(){ // (Called from app.init) Init context menu in all pages
// Create Add Context menu for all pages
if(app.settings.menuShowAdd){ if(app.settings.menuShowAdd){
browser.contextMenus.create({ browser.contextMenus.create({ // Create Context menu
id: 'AddToQuickDial', id: 'AddToQuickDial',
title: browser.i18n.getMessage("menuAddToQuickDial"), title: browser.i18n.getMessage("menuAddToQuickDial"),
contexts: ["all"], contexts: ["all"],
documentUrlPatterns: [ 'http://*/*', 'https://*/*', 'file://*/*', 'ftp://*/*' ], documentUrlPatterns: [ 'http://*/*', 'https://*/*', 'file://*/*', 'ftp://*/*' ]
onclick(info, tab) { app.ContextMenus.menuItemClicked(info, tab) } }, function(){});
}); browser.contextMenus.onClicked.addListener(app.ContextMenus.menuItemClicked);
} }
// Create WebExt Page Context menu
browser.contextMenus.create({
id: "pagemenu",
title: "Quick Dial",
documentUrlPatterns: [ 'moz-extension://*/dial', 'moz-extension://*/dial?*' ],
contexts: ["page"]
});
browser.contextMenus.create({
id: "pagemenunew",
parentId: "pagemenu",
title: browser.i18n.getMessage("menuNew")
});
browser.contextMenus.create({
parentId: "pagemenunew",
title: browser.i18n.getMessage("menuNewBookmark"),
onclick(info, tab) {
browser.tabs.executeScript(tab.id, {
code: "window.dial.createBookmark();"
});
}
});
browser.contextMenus.create({
parentId: "pagemenunew",
title: browser.i18n.getMessage("menuNewFolder"),
onclick(info, tab) {
browser.tabs.executeScript(tab.id, {
code: "window.dial.createFolder();"
});
}
});
browser.contextMenus.create({ parentId: "pagemenu", type: "separator" });
browser.contextMenus.create({
parentId: "pagemenu",
title: browser.i18n.getMessage("menuSettings"),
onclick(info, tab) {
browser.tabs.executeScript(tab.id, {
code: "window.dial.editSettings();"
});
}
});
// Create WebExt Link Context menu
browser.contextMenus.create({
id: "itemmenu",
title: "Quick Dial",
documentUrlPatterns: [ 'moz-extension://*/dial', 'moz-extension://*/dial?*' ],
contexts: ["link"]
});
browser.contextMenus.create({
id: "itemmenunew",
parentId: "itemmenu",
title: browser.i18n.getMessage("menuNew")
});
browser.contextMenus.create({
parentId: "itemmenunew",
title: browser.i18n.getMessage("menuNewBookmark"),
onclick(info, tab) {
browser.tabs.executeScript(tab.id, {
code: "window.dial.createBookmark();"
});
}
});
browser.contextMenus.create({
parentId: "itemmenunew",
title: browser.i18n.getMessage("menuNewFolder"),
onclick(info, tab) {
browser.tabs.executeScript(tab.id, {
code: "window.dial.createFolder();"
});
}
});
browser.contextMenus.create({ parentId: "itemmenu", type: "separator" });
browser.contextMenus.create({
parentId: "itemmenu",
title: browser.i18n.getMessage("menuProperties"),
onclick(info, tab) {
browser.tabs.executeScript(tab.id, {
code: "window.dial.editProperties(window.dial._selectedItem);"
});
}
});
browser.contextMenus.create({
parentId: "itemmenu",
title: browser.i18n.getMessage("menuRefreshItem"),
onclick(info, tab) {
browser.tabs.executeScript(tab.id, {
code: "window.dial.refreshNode(window.dial._selectedItem);"
});
}
});
browser.contextMenus.create({
parentId: "itemmenu",
title: browser.i18n.getMessage("menuCaptureHere"),
visible: false,
onclick(info, tab) {
browser.tabs.executeScript(tab.id, {
code: "window.dial.captureHere(window.dial._selectedItem);"
});
}
});
browser.contextMenus.create({
parentId: "itemmenu",
title: browser.i18n.getMessage("menuCapturePage"),
onclick(info, tab) {
browser.tabs.executeScript(tab.id, {
code: "window.dial.capturePage(window.dial._selectedItem);"
});
}
});
browser.contextMenus.create({
parentId: "itemmenu",
title: browser.i18n.getMessage("menuDeleteItem"),
onclick(info, tab) {
browser.tabs.executeScript(tab.id, {
code: "window.dial.deleteNode();"
});
}
});
browser.contextMenus.create({ parentId: "itemmenu", type: "separator" });
browser.contextMenus.create({
parentId: "itemmenu",
title: browser.i18n.getMessage("menuSettings"),
onclick(info, tab) {
browser.tabs.executeScript(tab.id, {
code: "window.dial.editSettings();"
});
}
});
}; };
app.ContextMenus.updateMenu = function(){ app.ContextMenus.updateMenu = function(){
browser.contextMenus.onClicked.removeListener(app.ContextMenus.menuItemClicked); browser.contextMenus.onClicked.removeListener(app.ContextMenus.menuItemClicked);
@ -656,7 +508,7 @@ app.GridNodes.sync = function(gridNode, rootPath, callback){ // Sync GridNodes w
delete app.GridNodes._syncing; delete app.GridNodes._syncing;
if(app.GridNodes._needSync == true) { if(app.GridNodes._needSync == true) {
delete app.GridNodes._needSync; delete app.GridNodes._needSync;
app.GridNodes.sync(gridNode, rootPath, callback); app.GridNodes.sync(gridNode, rootPath, callback);
} else { } else {
app.GridNodes.save(); app.GridNodes.save();
if(callback) callback(); if(callback) callback();

View File

@ -163,11 +163,10 @@ app.GridNodes._changed = function(node){
dial.init = function(){ dial.init = function(){
//dial.initMenus(); dial.initMenus();
dial.Title = document.createElement('title'); dial.Title = document.createElement('title');
document.head.appendChild(dial.Title); document.head.appendChild(dial.Title);
}; };
/*
dial.initMenus = function(){ dial.initMenus = function(){
document.body.setAttribute('contextmenu', 'page'); document.body.setAttribute('contextmenu', 'page');
dial.PageMenu = document.createElement('menu'); dial.PageMenu = document.createElement('menu');
@ -251,7 +250,6 @@ dial.initMenus = function(){
dial.ItemMenu.appendChild(dial.ItemMenuSettings); dial.ItemMenu.appendChild(dial.ItemMenuSettings);
document.body.appendChild(dial.ItemMenu); document.body.appendChild(dial.ItemMenu);
} }
*/
dial.initStyles = function(){ dial.initStyles = function(){
function applyImageMode(imageMode, target){ function applyImageMode(imageMode, target){
switch(imageMode){ switch(imageMode){
@ -281,7 +279,7 @@ dial.initStyles = function(){
document.head.appendChild(dial.Style); document.head.appendChild(dial.Style);
dial.styles = {}; dial.styles = {};
dial.styles.html = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('html { height: 100%; }')].style; dial.styles.html = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('html { height: 100%; }')].style;
dial.styles.body = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('body { user-select: none; -moz-user-select: none; display: flex; width: 100%; height: 100%; margin: 0px; padding: 0px; background-color: ' + app.settings.backgroundColor + '; background-image: ' + app.settings.backgroundImage + '; }')].style; dial.styles.body = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('body { user-select: none; -moz-user-select: none; display: flex; width: 100%; height: 100%; margin: 0px; padding: 0px; background-color: ' + app.settings.backgroundColor + '; background-image: ' + app.settings.backgroundImage + '; }')].style;
applyImageMode(app.settings.backgroundMode, dial.styles.body); applyImageMode(app.settings.backgroundMode, dial.styles.body);
dial.styles.grid = {}; dial.styles.grid = {};
dial.styles.grid.grid = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('.Grid { border-collapse: collapse; margin: auto; }')].style; dial.styles.grid.grid = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('.Grid { border-collapse: collapse; margin: auto; }')].style;
@ -294,7 +292,7 @@ dial.initStyles = function(){
dial.styles.grid.linkPanelHover = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('.Grid td>a:hover>div:first-child { }')].style; dial.styles.grid.linkPanelHover = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('.Grid td>a:hover>div:first-child { }')].style;
if(app.settings.grid.cells.backgroundColorHover) dial.styles.grid.linkPanelHover.backgroundColor = app.settings.grid.cells.backgroundColorHover; if(app.settings.grid.cells.backgroundColorHover) dial.styles.grid.linkPanelHover.backgroundColor = app.settings.grid.cells.backgroundColorHover;
else dial.styles.grid.linkPanelHover.backgroundColor = 'transparent'; else dial.styles.grid.linkPanelHover.backgroundColor = 'transparent';
dial.styles.grid.linkTitle = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('.Grid td>a>div:last-child { height: ' + app.settings.grid.cells.titleHeight + 'px; font-size: ' + app.settings.grid.cells.titleFontSize + 'pt; font-family: ' + app.settings.grid.cells.titleFont + '; text-align: center; overflow: hidden; color: ' + app.settings.grid.cells.titleColor + '; border-top: ' + app.settings.grid.cells.titleBorderSize + 'px solid ' + app.settings.grid.cells.borderColor + '; }')].style; dial.styles.grid.linkTitle = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('.Grid td>a>div:last-child { height: ' + app.settings.grid.cells.titleHeight + 'px; font-size: ' + app.settings.grid.cells.titleFontSize + 'pt; font-family: ' + app.settings.grid.cells.titleFont + 'pt; text-align: center; overflow: hidden; color: ' + app.settings.grid.cells.titleColor + '; border-top: ' + app.settings.grid.cells.titleBorderSize + 'px solid ' + app.settings.grid.cells.borderColor + '; }')].style;
if(app.settings.grid.cells.titleBackgroundColor) dial.styles.grid.linkTitle.backgroundColor = app.settings.grid.cells.titleBackgroundColor; if(app.settings.grid.cells.titleBackgroundColor) dial.styles.grid.linkTitle.backgroundColor = app.settings.grid.cells.titleBackgroundColor;
else dial.styles.grid.linkTitle.backgroundColor = 'transparent'; else dial.styles.grid.linkTitle.backgroundColor = 'transparent';
dial.styles.grid.linkTitleHover = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('.Grid td>a:hover>div:last-child { font-size: ' + app.settings.grid.cells.titleFontSizeHover + 'pt; color: ' + app.settings.grid.cells.titleColorHover + '; border-top-width: ' + app.settings.grid.cells.titleBorderSizeHover + 'px; border-top-color: ' + app.settings.grid.cells.borderColorHover + ' }')].style; dial.styles.grid.linkTitleHover = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('.Grid td>a:hover>div:last-child { font-size: ' + app.settings.grid.cells.titleFontSizeHover + 'pt; color: ' + app.settings.grid.cells.titleColorHover + '; border-top-width: ' + app.settings.grid.cells.titleBorderSizeHover + 'px; border-top-color: ' + app.settings.grid.cells.borderColorHover + ' }')].style;
@ -330,7 +328,6 @@ dial.initGrid = function(){
link.appendChild(document.createElement('div')); link.appendChild(document.createElement('div'));
link.onmousedown = function(){ link.onmousedown = function(){
dial._selectedItem = this; dial._selectedItem = this;
/*
if(dial._selectedItem.Node){ if(dial._selectedItem.Node){
switch(dial._selectedItem.Node.type){ switch(dial._selectedItem.Node.type){
case app.GridNodes.GridNodeType.folder: case app.GridNodes.GridNodeType.folder:
@ -342,7 +339,6 @@ dial.initGrid = function(){
break; break;
} }
} }
*/
}; };
function dragstart_handler(ev) { function dragstart_handler(ev) {
@ -350,7 +346,6 @@ dial.initGrid = function(){
ev.preventDefault(); ev.preventDefault();
return; return;
} }
if(dial.page == 0) dial.page = 1;
var index = (dial.page - 1) * (app.settings.grid.rows * app.settings.grid.columns) + +(ev.target.parentElement.getAttribute('gridindex')); var index = (dial.page - 1) * (app.settings.grid.rows * app.settings.grid.columns) + +(ev.target.parentElement.getAttribute('gridindex'));
if(app.settings.grid.backNode && dial.path != '/') index -= dial.page; if(app.settings.grid.backNode && dial.path != '/') index -= dial.page;
ev.dataTransfer.setData("text/plain", JSON.stringify({parentId: app.node.id, index: index})); ev.dataTransfer.setData("text/plain", JSON.stringify({parentId: app.node.id, index: index}));

View File

@ -28,7 +28,6 @@ app.init = function(){
BackgroundPreview.style.backgroundRepeat = 'no-repeat'; BackgroundPreview.style.backgroundRepeat = 'no-repeat';
BackgroundPreview.style.backgroundSize = '100% 100%'; BackgroundPreview.style.backgroundSize = '100% 100%';
ButtonOpenInNewPage.checked = app.settings.openQuickDialInNewPage; ButtonOpenInNewPage.checked = app.settings.openQuickDialInNewPage;
StartupTimeout.value = app.settings.startpageTimeout;
GridRoot.value = app.settings.grid.root; GridRoot.value = app.settings.grid.root;
GridRows.value = app.settings.grid.rows; GridRows.value = app.settings.grid.rows;
GridRatioX.value = app.settings.grid.ratioX; GridRatioX.value = app.settings.grid.ratioX;
@ -89,7 +88,6 @@ app.init = function(){
app.settings.backgroundImage = BackgroundImage; app.settings.backgroundImage = BackgroundImage;
app.settings.backgroundMode = +(BackgroundMode.value); app.settings.backgroundMode = +(BackgroundMode.value);
app.settings.openQuickDialInNewPage = ButtonOpenInNewPage.checked; app.settings.openQuickDialInNewPage = ButtonOpenInNewPage.checked;
app.settings.startpageTimeout = StartupTimeout.value;
app.settings.grid.rows = +(GridRows.value); app.settings.grid.rows = +(GridRows.value);
app.settings.grid.margin = +(GridMargins.value); app.settings.grid.margin = +(GridMargins.value);
app.settings.grid.columns = +(GridColumns.value); app.settings.grid.columns = +(GridColumns.value);

View File

@ -2,7 +2,7 @@
"manifest_version": 2, "manifest_version": 2,
"name": "Quick Dial", "name": "Quick Dial",
"version": "0.1.20", "version": "0.1.14",
"author": "MatMoul", "author": "MatMoul",
"homepage_url": "https://github.com/MatMoul/quickdial-webext", "homepage_url": "https://github.com/MatMoul/quickdial-webext",
"developer": { "developer": {
@ -43,7 +43,7 @@
"applications": { "applications": {
"gecko": { "gecko": {
"id": "quickdial@matmoul.com", "id": "quickdial@matmoul.com",
"strict_min_version": "70.0" "strict_min_version": "52.0"
} }
}, },