Merge pull request #388 from ueokande/create-bookmarks

addbookmark command
jh-changes
Shin'ya Ueoka 7 years ago committed by GitHub
commit 439c2a3df9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 25
      src/background/actions/command.js
  2. 2
      src/background/components/background.js
  3. 5
      src/background/components/operation.js
  4. 9
      src/background/shared/bookmarks.js
  5. 1
      src/shared/operations.js
  6. 1
      src/shared/settings/default.js

@ -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

@ -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 },