Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/assets/languages/da.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,8 @@
"saveTabsCount": "Gem {0} faner",
"closeTabs": "Luk faner",
"saveAutomatically": "Gem automatisk",
"contextMenu": "Genvejsmenu",
"saveAutomaticallyContextMenu": "Gem automatisk uden at åbne et vindue",
"addHighlights": "Tilføj fremhævninger",
"addDescription": "Tilføj beskrivelse",
"addNote": "Tilføj note",
Expand Down
2 changes: 2 additions & 0 deletions src/assets/languages/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,8 @@
"saveTabsCount": "{0} Tabs speichern",
"closeTabs": "Tabs schließen",
"saveAutomatically": "Automatisch speichern",
"contextMenu": "Kontextmenü",
"saveAutomaticallyContextMenu": "Automatisch speichern, ohne ein Fenster zu öffnen",
"addHighlights": "Highlights hinzufügen",
"addDescription": "Beschreibung hinzufügen",
"addNote": "Notiz hinzufügen",
Expand Down
2 changes: 2 additions & 0 deletions src/assets/languages/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,8 @@
"saveTabsCount": "Save {0} tabs",
"closeTabs": "Close tabs",
"saveAutomatically": "Save automatically",
"contextMenu": "Context menu",
"saveAutomaticallyContextMenu": "Save automatically without opening a window",
"addHighlights": "Add highlights",
"addDescription": "Add description",
"addNote": "Add note",
Expand Down
2 changes: 2 additions & 0 deletions src/assets/languages/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,8 @@
"saveTabsCount": "Guardar {0} pestañas",
"closeTabs": "Cerrar pestañas",
"saveAutomatically": "Guardar automáticamente",
"contextMenu": "Menú contextual",
"saveAutomaticallyContextMenu": "Guardar automáticamente sin abrir una ventana",
"addHighlights": "Añadir destacados",
"addDescription": "Añadir descripción",
"addNote": "Añadir nota",
Expand Down
2 changes: 2 additions & 0 deletions src/assets/languages/fi.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,8 @@
"saveTabsCount": "Tallenna {0} välilehteä",
"closeTabs": "Sulje välilehdet",
"saveAutomatically": "Tallenna automaattisesti",
"contextMenu": "Pikavalikko",
"saveAutomaticallyContextMenu": "Tallenna automaattisesti avaamatta ikkunaa",
"addHighlights": "Lisää korostuksia",
"addDescription": "Lisää kuvaus",
"addNote": "Lisää muistiinpano",
Expand Down
2 changes: 2 additions & 0 deletions src/assets/languages/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,8 @@
"saveTabsCount": "Enregistrer {0} onglets",
"closeTabs": "Fermer les onglets",
"saveAutomatically": "Enregistrer automatiquement",
"contextMenu": "Menu contextuel",
"saveAutomaticallyContextMenu": "Enregistrer automatiquement sans ouvrir de fenêtre",
"addHighlights": "Ajouter des surlignages",
"addDescription": "Ajouter une description",
"addNote": "Ajouter une note",
Expand Down
2 changes: 2 additions & 0 deletions src/assets/languages/hi.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,8 @@
"saveTabsCount": "{0} टैब सहेजें",
"closeTabs": "टैब बंद करें",
"saveAutomatically": "स्वचालित रूप से सहेजें",
"contextMenu": "संदर्भ मेनू",
"saveAutomaticallyContextMenu": "विंडो खोले बिना स्वचालित रूप से सहेजें",
"addHighlights": "हाइलाइट जोड़ें",
"addDescription": "विवरण जोड़ें",
"addNote": "नोट जोड़ें",
Expand Down
2 changes: 2 additions & 0 deletions src/assets/languages/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,8 @@
"saveTabsCount": "Salva {0} schede",
"closeTabs": "Chiudi schede",
"saveAutomatically": "Salva automaticamente",
"contextMenu": "Menu contestuale",
"saveAutomaticallyContextMenu": "Salva automaticamente senza aprire una finestra",
"addHighlights": "Aggiungi evidenziazioni",
"addDescription": "Aggiungi descrizione",
"addNote": "Aggiungi nota",
Expand Down
2 changes: 2 additions & 0 deletions src/assets/languages/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,8 @@
"saveTabsCount": "{0}個のタブを保存",
"closeTabs": "タブを閉じる",
"saveAutomatically": "自動保存",
"contextMenu": "コンテキストメニュー",
"saveAutomaticallyContextMenu": "ウィンドウを開かずに自動保存",
"addHighlights": "ハイライトを追加",
"addDescription": "説明を追加",
"addNote": "メモを追加",
Expand Down
2 changes: 2 additions & 0 deletions src/assets/languages/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,8 @@
"saveTabsCount": "{0}개 탭 저장",
"closeTabs": "탭 닫기",
"saveAutomatically": "자동 저장",
"contextMenu": "컨텍스트 메뉴",
"saveAutomaticallyContextMenu": "창을 열지 않고 자동 저장",
"addHighlights": "하이라이트 추가",
"addDescription": "설명 추가",
"addNote": "메모 추가",
Expand Down
2 changes: 2 additions & 0 deletions src/assets/languages/nl.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,8 @@
"saveTabsCount": "{0} tabbladen opslaan",
"closeTabs": "Tabbladen sluiten",
"saveAutomatically": "Automatisch opslaan",
"contextMenu": "Contextmenu",
"saveAutomaticallyContextMenu": "Automatisch opslaan zonder een venster te openen",
"addHighlights": "Markeringen toevoegen",
"addDescription": "Beschrijving toevoegen",
"addNote": "Notitie toevoegen",
Expand Down
2 changes: 2 additions & 0 deletions src/assets/languages/pl.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,8 @@
"saveTabsCount": "Zapisz {0} kart",
"closeTabs": "Zamknij karty",
"saveAutomatically": "Zapisuj automatycznie",
"contextMenu": "Menu kontekstowe",
"saveAutomaticallyContextMenu": "Zapisuj automatycznie bez otwierania okna",
"addHighlights": "Dodaj wyróżnienia",
"addDescription": "Dodaj opis",
"addNote": "Dodaj notatkę",
Expand Down
2 changes: 2 additions & 0 deletions src/assets/languages/pt_BR.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,8 @@
"saveTabsCount": "Salvar {0} abas",
"closeTabs": "Fechar abas",
"saveAutomatically": "Salvar automaticamente",
"contextMenu": "Menu de contexto",
"saveAutomaticallyContextMenu": "Salvar automaticamente sem abrir uma janela",
"addHighlights": "Adicionar destaques",
"addDescription": "Adicionar descrição",
"addNote": "Adicionar nota",
Expand Down
2 changes: 2 additions & 0 deletions src/assets/languages/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,8 @@
"saveTabsCount": "Сохранить {0} вкладок",
"closeTabs": "Закрыть вкладки",
"saveAutomatically": "Сохранять автоматически",
"contextMenu": "Контекстное меню",
"saveAutomaticallyContextMenu": "Сохранять автоматически без открытия окна",
"addHighlights": "Добавить цитату",
"addDescription": "Добавить описание",
"addNote": "Добавить заметку",
Expand Down
2 changes: 2 additions & 0 deletions src/assets/languages/sv.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,8 @@
"saveTabsCount": "Spara {0} flikar",
"closeTabs": "Stäng flikar",
"saveAutomatically": "Spara automatiskt",
"contextMenu": "Snabbmeny",
"saveAutomaticallyContextMenu": "Spara automatiskt utan att öppna ett fönster",
"addHighlights": "Lägg till markeringar",
"addDescription": "Lägg till beskrivning",
"addNote": "Lägg till anteckning",
Expand Down
2 changes: 2 additions & 0 deletions src/assets/languages/tr.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,8 @@
"saveTabsCount": "{0} sekmeyi kaydet",
"closeTabs": "Sekmeleri kapat",
"saveAutomatically": "Otomatik kaydet",
"contextMenu": "Bağlam menüsü",
"saveAutomaticallyContextMenu": "Pencere açmadan otomatik kaydet",
"addHighlights": "Vurgu ekle",
"addDescription": "Açıklama ekle",
"addNote": "Not ekle",
Expand Down
2 changes: 2 additions & 0 deletions src/assets/languages/zh-Hans.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,8 @@
"saveTabsCount": "保存 {0} 个标签页",
"closeTabs": "关闭标签页",
"saveAutomatically": "自动保存",
"contextMenu": "右键菜单",
"saveAutomaticallyContextMenu": "自动保存且不打开窗口",
"addHighlights": "添加高亮",
"addDescription": "添加描述",
"addNote": "添加备注",
Expand Down
2 changes: 2 additions & 0 deletions src/assets/languages/zh-Hant.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,8 @@
"saveTabsCount": "儲存 {0} 個分頁",
"closeTabs": "關閉分頁",
"saveAutomatically": "自動儲存",
"contextMenu": "右鍵選單",
"saveAutomaticallyContextMenu": "自動儲存且不開啟視窗",
"addHighlights": "新增標記",
"addDescription": "新增描述",
"addNote": "新增備註",
Expand Down
26 changes: 26 additions & 0 deletions src/data/helpers/bookmarks/createRaindrop.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import Api from '../../modules/api'

export async function createRaindrop(obj={}) {
let item = { ...obj }

//minimum info is already provided, grab all other in background on server
if (item.title)
item.pleaseParse = { weight: 1 }
//parse bookmark otherwise
else {
const parsed = await Api._get('import/url/parse?url='+encodeURIComponent(item.link))
item = { ...item, ...parsed.item }
}

//try to create bookmark on server
let res
try {
res = await Api._post('raindrop', item)
} catch (e) {}

//try again, maybe it's collectionId related issue
if (!res)
res = await Api._post('raindrop', {...item, collectionId: -1 })

return res.item
}
1 change: 1 addition & 0 deletions src/data/helpers/bookmarks/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ export * from './blankSpace'
export * from './getUrl'
export * from './queryIsEqual'
export * from './normalizeRecentSearch'
export * from './createRaindrop'

//Iterator by spaceId prefixes and original
export const iterateSpaceId = (spaceId, func)=>{
Expand Down
2 changes: 2 additions & 0 deletions src/data/reducers/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ const initialState = Immutable({

add_default_collection: 0, //last_used
add_auto_save: false,
add_auto_save_context_menu: false,
mobile_add_auto_save: false,

browser_extension_mode: 'clipper',
Expand All @@ -91,5 +92,6 @@ const safeKeys = [
'lang',
'add_default_collection',
'add_auto_save',
'add_auto_save_context_menu',
'browser_extension_mode'
]
29 changes: 5 additions & 24 deletions src/data/sagas/bookmarks/single.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ import {
import {
getBookmark,
getBookmarkScreenshotIndex,
getMeta
getMeta,
createRaindrop
} from '../../helpers/bookmarks'

import { isPro } from '../../selectors/user'
Expand Down Expand Up @@ -74,32 +75,12 @@ function* createBookmark({obj={}, ignore=false, draft, onSuccess, onFail}) {
if (ignore) return;

try{
let item = { ...obj }

//minimum info is already provided, grab all other in background on server
if (item.title)
item.pleaseParse = { weight: 1 }
//parse bookmark otherwise
else {
const parsed = yield call(Api.get, 'import/url/parse?url='+encodeURIComponent(item.link))

item = { ...item, ...parsed.item }
}

//try to create bookmark on server
let res
try {
res = yield call(Api.post, 'raindrop', item)
} catch (e) {}

//try again, maybe it's collectionId related issue
if (!res)
res = yield call(Api.post, 'raindrop', {...item, collectionId: -1 })
const item = yield call(createRaindrop, obj)

yield put({
type: BOOKMARK_CREATE_SUCCESS,
_id: res.item._id,
item: res.item,
_id: item._id,
item,
draft,
onSuccess, onFail
});
Expand Down
19 changes: 16 additions & 3 deletions src/routes/add/content.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,24 @@
import React from 'react'
import React, { useEffect, useRef } from 'react'
import { useSelector } from 'react-redux'
import Bookmark from '~co/bookmarks/edit'
import { getDraftStatus } from '~data/selectors/bookmarks'

export default function AddContent({ item }) {
const add_auto_save_context_menu = useSelector(state=>state.config.add_auto_save_context_menu)
const status = useSelector(state=>getDraftStatus(state, item.link))
const wasNew = useRef(false)

useEffect(()=>{
if (status == 'new')
wasNew.current = true
else if (wasNew.current && add_auto_save_context_menu && status == 'loaded')
window.close()
}, [status, add_auto_save_context_menu])

return (
<Bookmark
<Bookmark
_id={item.link}

new={{ item, autoCreate: true }}

autoFocus='title'
Expand Down
17 changes: 13 additions & 4 deletions src/routes/settings/extension/add/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { Title, Label, Radio, Checkbox, Layout } from '~co/common/form'
import Icon from '~co/common/icon'
import CollectionIcon from '~co/collections/item/icon'

function SettingsExtensionAdd({ add_default_collection, add_auto_save, browser_extension_mode, set }) {
function SettingsExtensionAdd({ add_default_collection, add_auto_save, add_auto_save_context_menu, browser_extension_mode, set }) {
if (browser_extension_mode != 'clipper')
return null

Expand All @@ -21,12 +21,21 @@ function SettingsExtensionAdd({ add_default_collection, add_auto_save, browser_e
<Label>
{t.s('newBookmark')}
</Label>
<Checkbox
<Checkbox
checked={add_auto_save}
onChange={()=>set('add_auto_save', !add_auto_save)}>
{t.s('saveAutomatically')}
</Checkbox>

<Label>
{t.s('contextMenu')}
</Label>
<Checkbox
checked={add_auto_save_context_menu}
onChange={()=>set('add_auto_save_context_menu', !add_auto_save_context_menu)}>
{t.s('saveAutomaticallyContextMenu')}
</Checkbox>

<Label>
{t.s('defaultCollection')}
</Label>
Expand All @@ -51,8 +60,8 @@ function SettingsExtensionAdd({ add_default_collection, add_auto_save, browser_e
}

export default connect(
({ config: { add_default_collection, add_auto_save, browser_extension_mode } })=>({
add_default_collection, add_auto_save, browser_extension_mode
({ config: { add_default_collection, add_auto_save, add_auto_save_context_menu, browser_extension_mode } })=>({
add_default_collection, add_auto_save, add_auto_save_context_menu, browser_extension_mode
}),
{ set }
)(SettingsExtensionAdd)
35 changes: 35 additions & 0 deletions src/target/extension/background/contextMenus.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,54 @@ import browser from 'webextension-polyfill'
import { open } from './popup'
import { addCurrentTabSelection } from './highlights'
import { environment } from '../environment'
import Api from '~data/modules/api'
import { createRaindrop } from '~data/helpers/bookmarks'
import * as links from './links'
import * as action from './action'

async function quickSave(link) {
if (!link) return false

let config
try {
({ user: { config } } = await Api._get('user'))
} catch(e) { return false }

if (!config.add_auto_save_context_menu)
return false

try {
const item = await createRaindrop({
link,
collectionId: config.add_default_collection || config.last_collection || -1
})

links.add(link, item._id)
action.updateBadge().catch(console.error)

return true
} catch(e) {
console.error(e)
return false
}
}

async function onClicked({ menuItemId, pageUrl, srcUrl, linkUrl }, { windowId }) {
switch(menuItemId) {
case 'save_page':
if (await quickSave(pageUrl)) return
return open(`/add?link=${encodeURIComponent(pageUrl)}`)

case 'save_link':
if (await quickSave(linkUrl)) return
return open(`/add?link=${encodeURIComponent(linkUrl)}`)

case 'save_video':
if (await quickSave(srcUrl)) return
return open(`/add?link=${encodeURIComponent(srcUrl)}`)

case 'save_image':
if (await quickSave(srcUrl)) return
return open(`/add?link=${encodeURIComponent(srcUrl)}`)

case 'save_highlight':
Expand Down