Merge pull request #388 from ueokande/create-bookmarks
addbookmark command
This commit is contained in:
commit
439c2a3df9
6 changed files with 41 additions and 2 deletions
|
@ -1,5 +1,7 @@
|
||||||
|
import messages from 'shared/messages';
|
||||||
import actions from '../actions';
|
import actions from '../actions';
|
||||||
import * as tabs from '../shared/tabs';
|
import * as tabs from '../shared/tabs';
|
||||||
|
import * as bookmarks from '../shared/bookmarks';
|
||||||
import * as parsers from 'shared/commands/parsers';
|
import * as parsers from 'shared/commands/parsers';
|
||||||
import * as properties from 'shared/settings/properties';
|
import * as properties from 'shared/settings/properties';
|
||||||
|
|
||||||
|
@ -39,6 +41,14 @@ const bufferCommand = (keywords) => {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const addBookmarkCommand = (tab, args) => {
|
||||||
|
if (!args[0]) {
|
||||||
|
return Promise.resolve();
|
||||||
|
}
|
||||||
|
|
||||||
|
return bookmarks.create(args.join(' '), tab.url);
|
||||||
|
};
|
||||||
|
|
||||||
const setCommand = (args) => {
|
const setCommand = (args) => {
|
||||||
if (!args[0]) {
|
if (!args[0]) {
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
|
@ -52,7 +62,7 @@ const setCommand = (args) => {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const exec = (line, settings) => {
|
const exec = (tab, line, settings) => {
|
||||||
let [name, args] = parsers.parseCommandLine(line);
|
let [name, args] = parsers.parseCommandLine(line);
|
||||||
|
|
||||||
switch (name) {
|
switch (name) {
|
||||||
|
@ -68,6 +78,19 @@ const exec = (line, settings) => {
|
||||||
case 'b':
|
case 'b':
|
||||||
case 'buffer':
|
case 'buffer':
|
||||||
return bufferCommand(args);
|
return bufferCommand(args);
|
||||||
|
case 'addbookmark':
|
||||||
|
return addBookmarkCommand(tab, args).then((item) => {
|
||||||
|
if (!item) {
|
||||||
|
return browser.tabs.sendMessage(tab.id, {
|
||||||
|
type: messages.CONSOLE_SHOW_ERROR,
|
||||||
|
text: 'Could not create a bookmark',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return browser.tabs.sendMessage(tab.id, {
|
||||||
|
type: messages.CONSOLE_SHOW_INFO,
|
||||||
|
text: 'Saved current page: ' + item.url,
|
||||||
|
});
|
||||||
|
});
|
||||||
case 'set':
|
case 'set':
|
||||||
return setCommand(args);
|
return setCommand(args);
|
||||||
case '':
|
case '':
|
||||||
|
|
|
@ -37,7 +37,7 @@ export default class BackgroundComponent {
|
||||||
tabActions.openToTab(message.url, sender.tab), sender);
|
tabActions.openToTab(message.url, sender.tab), sender);
|
||||||
case messages.CONSOLE_ENTER_COMMAND:
|
case messages.CONSOLE_ENTER_COMMAND:
|
||||||
this.store.dispatch(
|
this.store.dispatch(
|
||||||
commandActions.exec(message.text, settings.value),
|
commandActions.exec(sender.tab, message.text, settings.value),
|
||||||
sender
|
sender
|
||||||
);
|
);
|
||||||
return this.broadcastSettingsChanged();
|
return this.broadcastSettingsChanged();
|
||||||
|
|
|
@ -90,6 +90,11 @@ export default class BackgroundComponent {
|
||||||
return this.sendConsoleShowCommand(tab, 'winopen ');
|
return this.sendConsoleShowCommand(tab, 'winopen ');
|
||||||
case operations.COMMAND_SHOW_BUFFER:
|
case operations.COMMAND_SHOW_BUFFER:
|
||||||
return this.sendConsoleShowCommand(tab, 'buffer ');
|
return this.sendConsoleShowCommand(tab, 'buffer ');
|
||||||
|
case operations.COMMAND_SHOW_ADDBOOKMARK:
|
||||||
|
if (operation.alter) {
|
||||||
|
return this.sendConsoleShowCommand(tab, 'addbookmark ' + tab.title);
|
||||||
|
}
|
||||||
|
return this.sendConsoleShowCommand(tab, 'addbookmark ');
|
||||||
case operations.FIND_START:
|
case operations.FIND_START:
|
||||||
return browser.tabs.sendMessage(tab.id, {
|
return browser.tabs.sendMessage(tab.id, {
|
||||||
type: messages.CONSOLE_SHOW_FIND
|
type: messages.CONSOLE_SHOW_FIND
|
||||||
|
|
9
src/background/shared/bookmarks.js
Normal file
9
src/background/shared/bookmarks.js
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
const create = (title, url) => {
|
||||||
|
return browser.bookmarks.create({
|
||||||
|
type: 'bookmark',
|
||||||
|
title,
|
||||||
|
url,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export { create };
|
|
@ -13,6 +13,7 @@ export default {
|
||||||
COMMAND_SHOW_TABOPEN: 'command.show.tabopen',
|
COMMAND_SHOW_TABOPEN: 'command.show.tabopen',
|
||||||
COMMAND_SHOW_WINOPEN: 'command.show.winopen',
|
COMMAND_SHOW_WINOPEN: 'command.show.winopen',
|
||||||
COMMAND_SHOW_BUFFER: 'command.show.buffer',
|
COMMAND_SHOW_BUFFER: 'command.show.buffer',
|
||||||
|
COMMAND_SHOW_ADDBOOKMARK: 'command.show.addbookmark',
|
||||||
|
|
||||||
// Scrolls
|
// Scrolls
|
||||||
SCROLL_VERTICALLY: 'scroll.vertically',
|
SCROLL_VERTICALLY: 'scroll.vertically',
|
||||||
|
|
|
@ -11,6 +11,7 @@ export default {
|
||||||
"w": { "type": "command.show.winopen", "alter": false },
|
"w": { "type": "command.show.winopen", "alter": false },
|
||||||
"W": { "type": "command.show.winopen", "alter": true },
|
"W": { "type": "command.show.winopen", "alter": true },
|
||||||
"b": { "type": "command.show.buffer" },
|
"b": { "type": "command.show.buffer" },
|
||||||
|
"a": { "type": "command.show.addbookmark", "alter": true },
|
||||||
"k": { "type": "scroll.vertically", "count": -1 },
|
"k": { "type": "scroll.vertically", "count": -1 },
|
||||||
"j": { "type": "scroll.vertically", "count": 1 },
|
"j": { "type": "scroll.vertically", "count": 1 },
|
||||||
"h": { "type": "scroll.horizonally", "count": -1 },
|
"h": { "type": "scroll.horizonally", "count": -1 },
|
||||||
|
|
Reference in a new issue