diff --git a/.eslintrc.json b/.eslintrc.json
index d93d3ee7..aca2b715 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -9,6 +9,7 @@
"sourceType": "module"
},
"rules": {
+ "no-console": 2,
"indent": ["error", 2],
"linebreak-style": ["error", "unix"],
"quotes": ["error", "single"],
diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md
new file mode 100644
index 00000000..ffb5902d
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/Bug_report.md
@@ -0,0 +1,30 @@
+---
+name: Bug report
+about: Something is not working
+---
+
+## Description
+
+
+## Steps to reproduce
+
+
+## Expected behavior
+
+
+## Actual behavior
+
+
+## Environment info
+
+OS:
+Firefox:
+Addon:
+
+
+
+
diff --git a/.github/ISSUE_TEMPLATE/Feature_request.md b/.github/ISSUE_TEMPLATE/Feature_request.md
new file mode 100644
index 00000000..9ba1397a
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/Feature_request.md
@@ -0,0 +1,10 @@
+---
+name: Feature request
+about: Something is missing
+---
+
+## Description
+
+
+## Use cases
+
diff --git a/addon/manifest.json b/addon/manifest.json
index 3f805565..c7f6bc2c 100644
--- a/addon/manifest.json
+++ b/addon/manifest.json
@@ -8,7 +8,7 @@
},
"author": "mbnuqw",
"name": "__MSG_ExtName__",
- "version": "3.0.6",
+ "version": "3.0.7",
"default_locale": "en",
"description": "__MSG_ExtDesc__",
"homepage_url": "https://github.com/mbnuqw/sidebery",
diff --git a/addon/settings/settings.html b/addon/settings/settings.html
index 425c0f4b..2a525aff 100644
--- a/addon/settings/settings.html
+++ b/addon/settings/settings.html
@@ -80,10 +80,6 @@
class="option"
:data-active="$store.state.activeView === 'Snapshots'"
@click="navigateTo('snapshots')">{{t('settings.nav_snapshots')}}
-
{{t('settings.nav_debug')}}
diff --git a/build/debug.js b/build/debug.js
deleted file mode 100644
index c9b57ac8..00000000
--- a/build/debug.js
+++ /dev/null
@@ -1,118 +0,0 @@
-/*global process, require:true*/
-/*eslint no-console: off*/
-const { spawn, spawnSync } = require('child_process')
-const { scripts } = require('../package.json')
-const VER = process.argv[process.argv.length - 1]
-
-const colors = {
- reset: '\x1b[0m',
- white: str => `\x1b[37m${str}\x1b[0m`,
- grey: str => `\x1b[90m${str}\x1b[0m`,
- red: str => `\x1b[31m${str}\x1b[0m`,
- yellow: str => `\x1b[33m${str}\x1b[0m`,
- green: str => `\x1b[32m${str}\x1b[0m`,
- blue: str => `\x1b[34m${str}\x1b[0m`,
- magenta: str => `\x1b[35m${str}\x1b[0m`,
- cyan: str => `\x1b[36m${str}\x1b[0m`,
-}
-
-const CLEAR_SIDEBAR = scripts['clear.sidebar'].split(' ')
-const CLEAR_SIDEBAR_CMD = CLEAR_SIDEBAR[0]
-const CLEAR_SIDEBAR_OPT = CLEAR_SIDEBAR.slice(1)
-
-const SIDEBAR = scripts['dev.sidebar'].split(' ')
-const SIDEBAR_CMD = SIDEBAR[0]
-const SIDEBAR_OPT = SIDEBAR.slice(1)
-
-const GROUP = scripts['dev.group'].split(' ')
-const GROUP_CMD = GROUP[0]
-const GROUP_OPT = GROUP.slice(1)
-
-const DBG = scripts['dev.debug'].split(' ')
-const DBG_CMD = DBG[0]
-const DBG_OPT = DBG.slice(1)
-
-const SETTINGS = scripts['dev.settings'].split(' ')
-const SETTINGS_CMD = SETTINGS[0]
-const SETTINGS_OPT = SETTINGS.slice(1)
-
-const MENU = scripts['dev.menu'].split(' ')
-const MENU_CMD = MENU[0]
-const MENU_OPT = MENU.slice(1)
-
-const STYLES = scripts['dev.styles'].split(' ')
-const STYLES_CMD = STYLES[0]
-const STYLES_OPT = STYLES.slice(1)
-
-const THEME = scripts['dev.theme'].split(' ')
-const THEME_CMD = THEME[0]
-const THEME_OPT = THEME.slice(1)
-
-const SNAPSHOTS = scripts['dev.snapshots'].split(' ')
-const SNAPSHOTS_CMD = SNAPSHOTS[0]
-const SNAPSHOTS_OPT = SNAPSHOTS.slice(1)
-
-const EXT = scripts['dev.ext.' + VER].split(' ')
-const EXT_CMD = EXT[0]
-const EXT_OPT = EXT.slice(1)
-
-const EXEC_CONFIG = { env: process.env }
-
-let out = spawnSync(CLEAR_SIDEBAR_CMD, CLEAR_SIDEBAR_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-
-const Sidebar = spawn(SIDEBAR_CMD, SIDEBAR_OPT, EXEC_CONFIG)
-Sidebar.stdout.on('data', data => logOut('[Sidebar] ', data))
-Sidebar.stderr.on('data', data => errOut('[Sidebar ERROR] ', data))
-
-// const Group = spawn(GROUP_CMD, GROUP_OPT, EXEC_CONFIG)
-// Group.stdout.on('data', data => logOut('[Group] ', data))
-// Group.stderr.on('data', data => errOut('[Group ERROR] ', data))
-
-const Debug = spawn(DBG_CMD, DBG_OPT, EXEC_CONFIG)
-Debug.stdout.on('data', data => logOut('[Debug] ', data))
-Debug.stderr.on('data', data => errOut('[Debug ERROR] ', data))
-
-const Settings = spawn(SETTINGS_CMD, SETTINGS_OPT, EXEC_CONFIG)
-Settings.stdout.on('data', data => logOut('[Settings] ', data))
-Settings.stderr.on('data', data => errOut('[Settings ERROR] ', data))
-
-// const Menu = spawn(MENU_CMD, MENU_OPT, EXEC_CONFIG)
-// Menu.stdout.on('data', data => logOut('[Menu] ', data))
-// Menu.stderr.on('data', data => errOut('[Menu ERROR] ', data))
-
-const Styles = spawn(STYLES_CMD, STYLES_OPT, EXEC_CONFIG)
-Styles.stdout.on('data', data => logOut('[Styles] ', data))
-Styles.stderr.on('data', data => errOut('[Styles ERROR] ', data))
-
-const Theme = spawn(THEME_CMD, THEME_OPT, EXEC_CONFIG)
-Theme.stdout.on('data', data => logOut('[Theme] ', data))
-Theme.stderr.on('data', data => errOut('[Theme ERROR] ', data))
-
-// const Snapshots = spawn(SNAPSHOTS_CMD, SNAPSHOTS_OPT, EXEC_CONFIG)
-// Snapshots.stdout.on('data', data => logOut('[Snapshots] ', data))
-// Snapshots.stderr.on('data', data => errOut('[Snapshots ERROR] ', data))
-
-const Ext = spawn(EXT_CMD, EXT_OPT, EXEC_CONFIG)
-
-Ext.stdout.on('data', data => logOut('[Ext] ', data))
-
-function logOut(prefix, data) {
- data
- .toString()
- .split('\n')
- .map(line => {
- if (!line) return
- console.log(prefix, line)
- })
-}
-
-function errOut(prefix, data) {
- data
- .toString()
- .split('\n')
- .map(line => {
- if (!line) return
- console.log(colors.red(prefix), line)
- })
-}
diff --git a/build/release.js b/build/release.js
deleted file mode 100644
index a9ee4908..00000000
--- a/build/release.js
+++ /dev/null
@@ -1,141 +0,0 @@
-/*eslint no-console: off*/
-const { spawnSync } = require('child_process')
-const { scripts } = require('../package.json')
-
-const TESTS = scripts['test'].split(' ')
-const TESTS_CMD = TESTS[0]
-const TESTS_OPT = TESTS.slice(1)
-
-const CLEAR_CACHE = scripts['clear.cache'].split(' ')
-const CLEAR_CACHE_CMD = CLEAR_CACHE[0]
-const CLEAR_CACHE_OPT = CLEAR_CACHE.slice(1)
-
-const CLEAR_SIDEBAR = scripts['clear.sidebar'].split(' ')
-const CLEAR_SIDEBAR_CMD = CLEAR_SIDEBAR[0]
-const CLEAR_SIDEBAR_OPT = CLEAR_SIDEBAR.slice(1)
-
-const CLEAR_GROUP = scripts['clear.group'].split(' ')
-const CLEAR_GROUP_CMD = CLEAR_GROUP[0]
-const CLEAR_GROUP_OPT = CLEAR_GROUP.slice(1)
-
-const CLEAR_PERM = scripts['clear.permissions'].split(' ')
-const CLEAR_PERM_CMD = CLEAR_PERM[0]
-const CLEAR_PERM_OPT = CLEAR_PERM.slice(1)
-
-const CLEAR_DBG = scripts['clear.debug'].split(' ')
-const CLEAR_DBG_CMD = CLEAR_DBG[0]
-const CLEAR_DBG_OPT = CLEAR_DBG.slice(1)
-
-const CLEAR_STYLES = scripts['clear.styles'].split(' ')
-const CLEAR_STYLES_CMD = CLEAR_STYLES[0]
-const CLEAR_STYLES_OPT = CLEAR_STYLES.slice(1)
-
-const CLEAR_THEME = scripts['clear.theme'].split(' ')
-const CLEAR_THEME_CMD = CLEAR_THEME[0]
-const CLEAR_THEME_OPT = CLEAR_THEME.slice(1)
-
-const CLEAR_SETTINGS = scripts['clear.settings'].split(' ')
-const CLEAR_SETTINGS_CMD = CLEAR_SETTINGS[0]
-const CLEAR_SETTINGS_OPT = CLEAR_SETTINGS.slice(1)
-
-const CLEAR_SNAPSHOTS = scripts['clear.snapshots'].split(' ')
-const CLEAR_SNAPSHOTS_CMD = CLEAR_SNAPSHOTS[0]
-const CLEAR_SNAPSHOTS_OPT = CLEAR_SNAPSHOTS.slice(1)
-
-const CLEAR_MENU = scripts['clear.menu'].split(' ')
-const CLEAR_MENU_CMD = CLEAR_MENU[0]
-const CLEAR_MENU_OPT = CLEAR_MENU.slice(1)
-
-const SIDEBAR = scripts['build.sidebar'].split(' ')
-const SIDEBAR_CMD = SIDEBAR[0]
-const SIDEBAR_OPT = SIDEBAR.slice(1)
-
-const GROUP = scripts['build.group'].split(' ')
-const GROUP_CMD = GROUP[0]
-const GROUP_OPT = GROUP.slice(1)
-
-const PERM_URL = scripts['build.perm.url'].split(' ')
-const PERM_URL_CMD = PERM_URL[0]
-const PERM_URL_OPT = PERM_URL.slice(1)
-
-const PERM_HIDE = scripts['build.perm.hide'].split(' ')
-const PERM_HIDE_CMD = PERM_HIDE[0]
-const PERM_HIDE_OPT = PERM_HIDE.slice(1)
-
-const DBG = scripts['build.debug'].split(' ')
-const DBG_CMD = DBG[0]
-const DBG_OPT = DBG.slice(1)
-
-const SETTINGS = scripts['build.settings'].split(' ')
-const SETTINGS_CMD = SETTINGS[0]
-const SETTINGS_OPT = SETTINGS.slice(1)
-
-const MENU = scripts['build.menu'].split(' ')
-const MENU_CMD = MENU[0]
-const MENU_OPT = MENU.slice(1)
-
-const STYLES = scripts['build.styles'].split(' ')
-const STYLES_CMD = STYLES[0]
-const STYLES_OPT = STYLES.slice(1)
-
-const THEME = scripts['build.theme'].split(' ')
-const THEME_CMD = THEME[0]
-const THEME_OPT = THEME.slice(1)
-
-const SNAPSHOTS = scripts['build.snapshots'].split(' ')
-const SNAPSHOTS_CMD = SNAPSHOTS[0]
-const SNAPSHOTS_OPT = SNAPSHOTS.slice(1)
-
-const EXT = scripts['build.ext'].split(' ')
-const EXT_CMD = EXT[0]
-const EXT_OPT = EXT.slice(1)
-
-const EXEC_CONFIG = { env: process.env, stdio: 'inherit' }
-
-let out = spawnSync(TESTS_CMD, TESTS_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-
-out = spawnSync(CLEAR_CACHE_CMD, CLEAR_CACHE_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-out = spawnSync(CLEAR_SIDEBAR_CMD, CLEAR_SIDEBAR_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-out = spawnSync(CLEAR_GROUP_CMD, CLEAR_GROUP_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-out = spawnSync(CLEAR_PERM_CMD, CLEAR_PERM_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-out = spawnSync(CLEAR_DBG_CMD, CLEAR_DBG_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-out = spawnSync(CLEAR_STYLES_CMD, CLEAR_STYLES_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-out = spawnSync(CLEAR_THEME_CMD, CLEAR_THEME_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-out = spawnSync(CLEAR_SETTINGS_CMD, CLEAR_SETTINGS_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-out = spawnSync(CLEAR_SNAPSHOTS_CMD, CLEAR_SNAPSHOTS_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-out = spawnSync(CLEAR_MENU_CMD, CLEAR_MENU_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-
-out = spawnSync(SIDEBAR_CMD, SIDEBAR_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-out = spawnSync(GROUP_CMD, GROUP_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-out = spawnSync(PERM_URL_CMD, PERM_URL_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-out = spawnSync(PERM_HIDE_CMD, PERM_HIDE_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-out = spawnSync(DBG_CMD, DBG_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-out = spawnSync(SETTINGS_CMD, SETTINGS_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-out = spawnSync(MENU_CMD, MENU_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-out = spawnSync(STYLES_CMD, STYLES_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-out = spawnSync(THEME_CMD, THEME_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-out = spawnSync(SNAPSHOTS_CMD, SNAPSHOTS_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
-
-out = spawnSync(EXT_CMD, EXT_OPT, EXEC_CONFIG)
-if (out.status) process.exit(out.status)
diff --git a/package.json b/package.json
index 5b721788..5256e96e 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "sidebery",
- "version": "3.0.6",
+ "version": "3.0.7",
"description": "Manage your tabs and bookmarks in sidebar",
"main": "index.js",
"scripts": {
diff --git a/src/components/select-field.vue b/src/components/select-field.vue
index f972c687..e08f9f6c 100644
--- a/src/components/select-field.vue
+++ b/src/components/select-field.vue
@@ -1,11 +1,15 @@
-.SelectField(:data-inline="inline" :data-inactive="inactive" @mousedown="select")
+.SelectField(
+ :data-inline="inline"
+ :data-inactive="inactive"
+ @mousedown="switchOption")
.label {{t(label)}}
select-input(
:label="optLabel"
:value="value"
:opts="opts"
- :noneOpt="noneOpt")
+ :noneOpt="noneOpt"
+ @input="select")
@@ -32,7 +36,7 @@ export default {
},
methods: {
- select(e) {
+ switchOption(e) {
if (this.inactive) return
let i = this.opts.indexOf(this.value)
if (e.button === 0) i++
@@ -41,6 +45,10 @@ export default {
if (i < 0) i = this.opts.length - 1
this.$emit('input', this.opts[i])
},
+
+ select(option) {
+ this.$emit('input', option)
+ },
},
}
diff --git a/src/components/select-input.vue b/src/components/select-input.vue
index 56c8180d..0ede04cd 100644
--- a/src/components/select-input.vue
+++ b/src/components/select-input.vue
@@ -1,9 +1,10 @@
-.SelectInput(@mousedown="select")
+.SelectInput
.opt(
v-for="o in opts"
:data-none="o === noneOpt"
- :data-active="o === value") {{t(label + o, plurNum)}}
+ :data-active="o === value"
+ @mousedown.stop="select(o)") {{t(label + o, plurNum)}}
@@ -25,13 +26,8 @@ export default {
},
methods: {
- select(e) {
- let i = this.opts.indexOf(this.value)
- if (e.button === 0) i++
- if (e.button === 2) i--
- if (i >= this.opts.length) i = 0
- if (i < 0) i = this.opts.length - 1
- this.$emit('input', this.opts[i])
+ select(option) {
+ this.$emit('input', option)
},
},
}
diff --git a/src/locales/en.dashboards.js b/src/locales/en.dashboards.js
index aae0d66a..ffb05de5 100644
--- a/src/locales/en.dashboards.js
+++ b/src/locales/en.dashboards.js
@@ -1,7 +1,5 @@
export default {
// --- General
- 'dashboard.sync_label': { message: 'Sync' },
- 'dashboard.sync_tooltip': { message: 'Auto-open synchronized tabs on this panel (using Firefox sync)' },
'dashboard.lock_panel_label': { message: 'Lock panel' },
'dashboard.lock_panel_tooltip': { message: 'Prevent auto-switching from this panel' },
'dashboard.lock_tabs_label': { message: 'Lock tabs' },
diff --git a/src/locales/en.settings.js b/src/locales/en.settings.js
index 2302a56f..f8f5957b 100644
--- a/src/locales/en.settings.js
+++ b/src/locales/en.settings.js
@@ -6,7 +6,9 @@ export default {
'settings.nav_menu': { message: 'Menu' },
'settings.nav_styles': { message: 'Styles' },
'settings.nav_snapshots': { message: 'Snapshots' },
- 'settings.nav_debug': { message: 'Debug' },
+
+ 'settings.ctrl_copy': { message: 'COPY' },
+ 'settings.ctrl_close': { message: 'CLOSE' },
// --- General
'settings.general_title': { message: 'General' },
@@ -202,18 +204,11 @@ export default {
'settings.tab_hide_label': { message: 'Hiding tabs:' },
'settings.tab_hide_info': { message: 'Required for:\n- Hiding tabs on inactive panels\n- Hiding folded tabs' },
- // --- Favicons
- 'settings.favi_title': { message: 'Favicons' },
- 'settings.cached_favics': { message: 'Cached favicons size' },
- 'settings.cached_favics_unknown': { message: 'unknown - click to recalc' },
- 'settings.rm_unused_favi_cache': { message: 'Remove unused favicons' },
- 'settings.rm_favi_cache': { message: 'Remove all favicons' },
-
- // --- Sync
- 'settings.sync_title': { message: 'Sync' },
- 'settings.sync_data_size': { message: 'Sync data size' },
- 'settings.sync_data_size_unknown': { message: 'unknown - click to recalc' },
- 'settings.rm_sync_data': { message: 'Remove sync data' },
+ // --- Storage
+ 'settings.storage_title': { message: 'Storage' },
+ 'settings.storage_delete_prop': { message: 'delete' },
+ 'settings.storage_open_prop': { message: 'open' },
+ 'settings.storage_delete_confirm': { message: 'Delete property ' },
// --- Help
'settings.help_title': { message: 'Help' },
diff --git a/src/locales/ru.dashboards.js b/src/locales/ru.dashboards.js
index a3b03698..9ea60db9 100644
--- a/src/locales/ru.dashboards.js
+++ b/src/locales/ru.dashboards.js
@@ -1,13 +1,11 @@
export default {
// --- General
- 'dashboard.sync_label': { message: 'Синхронизация' },
- 'dashboard.sync_tooltip': { message: 'Автоматически открывать синхронизированные вкладки на этой панели (используя синхронизацию Firefox)' },
'dashboard.lock_panel_label': { message: 'Заблокировать панель' },
'dashboard.lock_panel_tooltip': { message: 'Запретить автоматическое переключение с этой панели' },
'dashboard.lock_tabs_label': { message: 'Заблокировать табы' },
'dashboard.lock_tabs_tooltip': { message: 'Запретить закрытие вкладок на этой панели' },
- 'dashboard.no_empty_label': { message: 'No empty' },
- 'dashboard.no_empty_tooltip': { message: 'Предотвратить опустошение этой панели' },
+ 'dashboard.no_empty_label': { message: 'Предотвращать опустошение' },
+ 'dashboard.no_empty_tooltip': { message: 'Предотвращать опустошение этой панели' },
// --- Bookmarks
'bookmarks_dashboard.title': { message: 'Закладки' },
@@ -45,8 +43,8 @@ export default {
'container_dashboard.proxy_socks4': { message: 'socks4' },
'container_dashboard.proxy_socks': { message: 'socks5' },
'container_dashboard.proxy_direct': { message: 'выкл' },
- 'container_dashboard.rules_include': { message: 'Include urls' },
- 'container_dashboard.rules_include_tooltip': { message: 'Reopen tabs with matched urls in this panel.\nNewline separated list of "substrings" or "/regex/":\n example.com\n /^(some)?regex$/\n ...' },
- 'container_dashboard.rules_exclude': { message: 'Exclude urls' },
- 'container_dashboard.rules_exclude_tooltip': { message: 'Reopen tabs with matched url in default panel.\nNewline separated list of "substrings" or "/regex/":\n example.com\n /^(some)?regex$/\n ...' },
+ 'container_dashboard.rules_include': { message: 'Включать табы' },
+ 'container_dashboard.rules_include_tooltip': { message: 'Переоткрывать табы с совпадающими url в этой панели.\nПострочный список правил "substrings" или "/regex/":\n example.com\n /^(some)?regex$/\n ...' },
+ 'container_dashboard.rules_exclude': { message: 'Исключать табы' },
+ 'container_dashboard.rules_exclude_tooltip': { message: 'Переоткрывать табы с совпадающими url из этой панели в стандартной.\nПострочный список правил "substrings" или "/regex/":\n example.com\n /^(some)?regex$/\n ...' },
}
diff --git a/src/locales/ru.settings.js b/src/locales/ru.settings.js
index 0652a08d..36514118 100644
--- a/src/locales/ru.settings.js
+++ b/src/locales/ru.settings.js
@@ -6,7 +6,9 @@ export default {
'settings.nav_menu': { message: 'Меню' },
'settings.nav_styles': { message: 'Стили' },
'settings.nav_snapshots': { message: 'Снепшоты' },
- 'settings.nav_debug': { message: 'Отладка' },
+
+ 'settings.ctrl_copy': { message: 'СКОПИРОВАТЬ' },
+ 'settings.ctrl_close': { message: 'ЗАКРЫТЬ' },
// --- General
'settings.general_title': { message: 'Основные' },
@@ -226,18 +228,11 @@ export default {
'settings.tab_hide_label': { message: 'Скрытие табов:' },
'settings.tab_hide_info': { message: 'Необходимо для:\n- Скрывания табов неактивных панелей\n- Скрывания свернутых табов' },
- // --- Favicons
- 'settings.favi_title': { message: 'Иконки сайтов' },
- 'settings.cached_favics': { message: 'Размер кэшированных иконок' },
- 'settings.cached_favics_unknown': { message: 'не определено - кликни для обновления' },
- 'settings.rm_unused_favi_cache': { message: 'Удалить неиспользуемые иконки' },
- 'settings.rm_favi_cache': { message: 'Удалить кэш иконок' },
-
- // --- Sync
- 'settings.sync_title': { message: 'Синхронизация' },
- 'settings.sync_data_size': { message: 'Размер данных для синхронизации' },
- 'settings.sync_data_size_unknown': { message: 'не определено - кликни для обновления' },
- 'settings.rm_sync_data': { message: 'Удалить данные синхронизации' },
+ // --- Storage
+ 'settings.storage_title': { message: 'Данные' },
+ 'settings.storage_delete_prop': { message: 'удалить' },
+ 'settings.storage_open_prop': { message: 'открыть' },
+ 'settings.storage_delete_confirm': { message: 'Удалить поле ' },
// --- Help
'settings.help_title': { message: 'Помошь' },
diff --git a/src/locales/ru.styles.js b/src/locales/ru.styles.js
index dc15e4d6..bfc7c5d6 100644
--- a/src/locales/ru.styles.js
+++ b/src/locales/ru.styles.js
@@ -12,7 +12,7 @@ export default {
'styles.false_color': { message: 'Цвет отрицания' },
'styles.active_color': { message: 'Цвет активной опции' },
'styles.inactive_color': { message: 'Цвет неактивной опции' },
- 'styles.favi_placeholder_color': { message: 'Favicons placeholder color' },
+ 'styles.favi_placeholder_color': { message: 'Цвет заглушки фавиконки' },
// --- Buttons
'styles.buttons_title': { message: 'Кнопки' },
@@ -38,6 +38,8 @@ export default {
// --- Navigation Strip
'styles.nav_title': { message: 'Полоса навигации' },
'styles.nav_fg_color': { message: 'Основной цвет' },
+ 'styles.nav_btn_width': { message: 'Ширина кнопки' },
+ 'styles.nav_btn_height': { message: 'Высота кнопки' },
// --- Pinned dock
'styles.pinned_dock_title': { message: 'Область закрепленных табов' },
@@ -81,10 +83,11 @@ export default {
'styles.bookmarks_closed_dir_fg_color': { message: 'Цвет закрытой папки' },
'styles.bookmarks_closed_dir_fg_color_hover': { message: 'Цвет закрытой папки при наведении курсора' },
'styles.bookmarks_closed_dir_fg_color_active': { message: 'Цвет закрытой папки при клике' },
- 'styles.bookmarks_open_dir_fg_color': { message: 'Цвет отрытой папки' },
- 'styles.bookmarks_open_dir_fg_color_hover': { message: 'Цвет отрытой папки при наведении курсора' },
- 'styles.bookmarks_open_dir_fg_color_active': { message: 'Цвет отрытой папки при клике' },
+ 'styles.bookmarks_open_dir_fg_color': { message: 'Цвет открытой папки' },
+ 'styles.bookmarks_open_dir_fg_color_hover': { message: 'Цвет открытой папки при наведении курсора' },
+ 'styles.bookmarks_open_dir_fg_color_active': { message: 'Цвет открытой папки при клике' },
'styles.bookmarks_empty_dir_fg_color': { message: 'Цвет пустой папки' },
+ 'styles.bookmarks_open_fg_color': { message: 'Цвет открытой закладки' },
'styles.reset_styles': { message: 'Сбросить' },
diff --git a/src/page.settings/actions/index.js b/src/page.settings/actions/index.js
index 087677a0..2c8b6af0 100644
--- a/src/page.settings/actions/index.js
+++ b/src/page.settings/actions/index.js
@@ -81,14 +81,6 @@ function updateActiveView() {
return
}
- if (hash === 'debug') {
- document.title = 'Sidebery / Debug'
- this.state.activeView = 'Debug'
- this.state.highlight.allUrls = false
- this.state.highlight.tabHide = false
- return
- }
-
if (hash === 'styles-editor') {
document.title = 'Sidebery / Styles Editor'
this.state.activeView = 'StylesEditor'
diff --git a/src/page.settings/components/debug.vue b/src/page.settings/components/debug.vue
deleted file mode 100644
index d83ca974..00000000
--- a/src/page.settings/components/debug.vue
+++ /dev/null
@@ -1,232 +0,0 @@
-
-.Debug(v-noise:300.g:12:af.a:0:42.s:0:9="")
-
- .info
- h2 General info
-
- section
- .field
- .label Windows:
- .value {{windowsCount}}
- .separator
- .sub
- .field
- .label Containers:
- .value {{containersCount}}
- .separator
- .field
- .label Tabs:
- .value {{tabsCount}}
- .separator
- .field
- .label Pinned Tabs:
- .value {{pinnedTabsCount}}
-
- section
- .field
- .label Bookmarks:
- .value {{bookmarksCount}}
- .separator
- .sub
- .field
- .label Folders:
- .value {{foldersCount}}
- .separator
- .field
- .label Separators:
- .value {{separatorsCount}}
- .separator
- .field
- .label Max Depth:
- .value {{bookmarksMaxDepth}}
-
- .info
- h2 Storage (~{{storageOveral}})
- .storage-viewer(v-if="storageData" @click="storageData = ''") {{storageData}}
- .storage-section
- .storage-prop(v-for="info in storage" :data-depr="info.depr")
- .name {{info.name}}
- .size ~{{info.sizeStr}}
- .del-btn(@click="deleteStoredData(info.name)") delete
- .open-btn(@click="openStoredData(info.name)") open
- .depr(v-if="!storageValid") deprecated
-
- .windows
- .window(v-for="w in windows" :key="w.id")
- h2.title Window \#{{w.id}}
- section.logs
- .log(v-for="l in w.logs" :data-type="l.type") {{l.msg}}
- section.tabs
- .tab(v-for="t in w.tabs" :key="t.id")
- .refs {{getTabRefs(t)}}
- .flags
- div(:class="{ '-active': t.discarded }") d
- div(:class="{ '-active': t.muted }") m
- div(:class="{ '-active': t.hidden }") h
- div(:class="{ '-active': t.isParent }") p
- div(:class="{ '-active': t.folded }") f
- div(:class="{ '-active': t.invisible }") i
- .lvl {{'*'.padStart(t.lvl + 1, ' ')}}
-
- .data
- h2 JSON
- section
- .json(title="click to select" ref="data" @click="onDataClick") {{jsonData}}
-
- FooterSection
-
-
-
-
diff --git a/src/page.settings/settings.js b/src/page.settings/settings.js
index 2369cdf6..39f3de68 100644
--- a/src/page.settings/settings.js
+++ b/src/page.settings/settings.js
@@ -10,7 +10,6 @@ import Settings from './settings.vue'
import MenuEditor from './components/menu-editor.vue'
import StylesEditor from './components/styles-editor.vue'
import Snapshots from './components/snapshots.vue'
-import Debug from './components/debug.vue'
Actions.updateActiveView()
@@ -32,7 +31,6 @@ export default new Vue({
MenuEditor,
StylesEditor,
Snapshots,
- Debug,
},
data() {
diff --git a/src/page.settings/settings.vue b/src/page.settings/settings.vue
index b5547d37..9749a905 100644
--- a/src/page.settings/settings.vue
+++ b/src/page.settings/settings.vue
@@ -470,6 +470,15 @@
.ctrls
.btn(@click="switchView('snapshots')") {{t('settings.snapshots_view_label')}}
+ section
+ h2 {{t('settings.storage_title')}} (~{{storageOveral}})
+ .storage-section
+ .storage-prop(v-for="info in storedProps")
+ .name {{info.name}}
+ .size ~{{info.sizeStr}}
+ .del-btn(@click="deleteStoredData(info.name)") {{t('settings.storage_delete_prop')}}
+ .open-btn(@click="openStoredData(info.name)") {{t('settings.storage_open_prop')}}
+
section
h2 {{t('settings.help_title')}}
@@ -480,16 +489,36 @@
input(type="file" ref="importData" accept="application/json" @input="importData")
.ctrls
- .btn(@click="switchView('debug')") {{t('settings.debug_info')}}
- a.btn(tabindex="-1" :href="issueLink" @mouseenter="updateIssueLink") {{t('settings.repo_bug')}}
+ .btn(@click="showDbgDetails") {{t('settings.debug_info')}}
+ a.btn(
+ tabindex="-1"
+ href="https://github.com/mbnuqw/sidebery/issues/new/choose") {{t('settings.repo_bug')}}
.btn.-warn(@click="resetSettings") {{t('settings.reset_settings')}}
+ .separator
+
+ .ctrls
+ .info(v-if="$store.state.osInfo") OS: {{$store.state.osInfo.os}}
+ .info(v-if="$store.state.ffInfo") Firefox: {{$store.state.ffInfo.version}}
+ .info Addon: {{$store.state.version}}
+
+ .details-box(
+ v-if="dbgDetails"
+ v-noise:300.g:12:af.a:0:42.s:0:9=""
+ @scroll.stop="")
+ .box
+ .btn(@click="copyDebugDetail") {{t('settings.ctrl_copy')}}
+ .btn.-warn(@click="dbgDetails = ''") {{t('settings.ctrl_close')}}
+ .json {{dbgDetails}}
+
footer-section