Skip to content

Commit

Permalink
Bugfix: Drag&Drop below directories
Browse files Browse the repository at this point in the history
  • Loading branch information
Kiuryy committed Mar 14, 2018
1 parent 8b29f68 commit 003e71f
Show file tree
Hide file tree
Showing 12 changed files with 109 additions and 10 deletions.
2 changes: 1 addition & 1 deletion dist/_locales/fr/messages.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/_locales/ja/messages.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/_locales/pt_BR/messages.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/_locales/zh_CN/messages.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/js/extension.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
"del": "^3.0.0",
"eslint": "^4.18.2",
"glob-concat": "^1.0.1",
"html-minifier": "^3.5.10",
"html-minifier": "^3.5.11",
"jsonminify": "^0.4.1",
"node-sass": "^4.7.2",
"read-file": "^0.2.0",
Expand Down
39 changes: 39 additions & 0 deletions src/_locales/fr/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,12 @@
"notification_sidebar_not_working_unknown": {
"message": "Si cela se produit r\u00e9guli\u00e8rement, faites-le-moi savoir."
},
"notification_sidebar_blacklisted": {
"message": "La barre lat\u00e9rale ne s'affiche pas car cette URL est sur votre liste noire."
},
"notification_sidebar_not_whitelisted": {
"message": "La barre lat\u00e9rale ne s'affiche pas car cette URL n'est pas sur votre liste blanche."
},
"contribute_headline": {
"message": "Aidez-moi"
},
Expand Down Expand Up @@ -401,6 +407,9 @@
"onboarding_goto_settings": {
"message": "Param\u00e8tres suppl\u00e9mentaires"
},
"onboarding_goto_appearance": {
"message": "Param\u00e8tres d'affichage"
},
"onboarding_close": {
"message": "Fermer la page"
},
Expand Down Expand Up @@ -692,6 +701,36 @@
"settings_sidebar_position_right": {
"message": "Droite"
},
"settings_filter_intro": {
"message": "Si vous ne voulez pas charger la barre lat\u00e9rale pour chacune des pages, vous pouvez sp\u00e9cifier une liste d'URL ; blanche (whitelist) pour autoriser le chargement de la barre lat\u00e9rale ou noire (blacklist) pour l'emp\u00eacher."
},
"settings_filter_explanation_1": {
"message": "Ne saisir qu'un masque d'URL par ligne"
},
"settings_filter_explanation_2": {
"message": "Utiliser <em>*<\/em> pour remplacer un ou plusieurs caract\u00e8res (ex; exemple.com\/* retournera toutes les pages qui d\u00e9butent par exemple.com\/).<em>"
},
"settings_filter_explanation_3": {
"message": "Si vous n'utilisez pas le caract\u00e8re de substitution (<em>*<\/em>) la recherche retournera une pas que si elle est \u00e9gale au masque (ex; exemple.com ne retournera que l'URL exemple.com)."
},
"settings_filter_explanation_4": {
"message": "Vous n'avez pas besoin d'inclure le protocole (http:\/\/, https:\/\/) dans le masque."
},
"settings_filter_visibility": {
"message": "Charger la page"
},
"settings_filter_visibility_always": {
"message": "Sur chaque page"
},
"settings_filter_visibility_blacklist": {
"message": "Sur toutes les pages sauf les pages sp\u00e9cifi\u00e9es"
},
"settings_filter_visibility_whitelist": {
"message": "Uniquement sur les pages sp\u00e9cifi\u00e9es"
},
"settings_filter_rules": {
"message": "Masque d'URL"
},
"settings_import_export_desc": {
"message": "Vous pouvez exporter les param\u00e8tres de l'extension dans un fichier et l'enregistrer sur votre ordinateur. Vous pourrez ensuite importer ce fichier sur n'importe quel ordinateur o\u00f9 l'extension est install\u00e9e."
},
Expand Down
3 changes: 3 additions & 0 deletions src/_locales/ja/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,9 @@
"onboarding_goto_settings": {
"message": "\u305d\u306e\u4ed6\u306e\u8a2d\u5b9a"
},
"onboarding_goto_appearance": {
"message": "\u5916\u89b3\u306e\u8a2d\u5b9a"
},
"onboarding_close": {
"message": "\u3053\u306e\u30da\u30fc\u30b8\u3092\u9589\u3058\u308b"
},
Expand Down
42 changes: 42 additions & 0 deletions src/_locales/pt_BR/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,12 @@
"notification_sidebar_not_working_unknown": {
"message": "Se isto estiver acontecendo frequentemente, por favor, me informe."
},
"notification_sidebar_blacklisted": {
"message": "O atual URL est\u00e1 em sua lista negra e portanto a barra lateral n\u00e3o est\u00e1 sendo carregada."
},
"notification_sidebar_not_whitelisted": {
"message": "O atual URL n\u00e3o est\u00e1 em sua lista branca e portanto a barra lateral n\u00e3o est\u00e1 sendo carregada."
},
"contribute_headline": {
"message": "Eu preciso da sua ajuda"
},
Expand Down Expand Up @@ -401,6 +407,9 @@
"onboarding_goto_settings": {
"message": "Mais configura\u00e7\u00f5es"
},
"onboarding_goto_appearance": {
"message": "Configurar apar\u00eancia"
},
"onboarding_close": {
"message": "Fechar esta p\u00e1gina"
},
Expand Down Expand Up @@ -431,6 +440,9 @@
"settings_menu_sidebar_tooltip": {
"message": "Dicas de contexto"
},
"settings_menu_sidebar_filter": {
"message": "Filtro"
},
"settings_menu_appearance": {
"message": "Apar\u00eancia"
},
Expand Down Expand Up @@ -689,6 +701,36 @@
"settings_sidebar_position_right": {
"message": "Direita"
},
"settings_filter_intro": {
"message": "Se voc\u00ea n\u00e3o deseja que a barra lateral seja carregada em todas as p\u00e1ginas, pode configurar onde carregar a extens\u00e3o (lista branca) ou onde n\u00e3o carreg\u00e1-la (lista negra)."
},
"settings_filter_explanation_1": {
"message": "Somente adicionar um padr\u00e3o de URL por linha."
},
"settings_filter_explanation_2": {
"message": "Use <em>*<\/em> para corresponder a qualquer caractere (por exemplo: exemplo.com\/* corresponde a todas as p\u00e1ginas relacionadas a exemplo.com)"
},
"settings_filter_explanation_3": {
"message": "Se voc\u00ea n\u00e3o incluir nenhum <em>*<\/em> em uma regra, ser\u00e1 correspondido somente ao exato URL (por exemplo: \"exemplo.com\" n\u00e3o corresponde ao URL \"exemplo.com\/sobre.html\")"
},
"settings_filter_explanation_4": {
"message": "Voc\u00ea n\u00e3o precisa adicionar o protocolo (por exemplo: http:\/\/) nas regras."
},
"settings_filter_visibility": {
"message": "Carregar a barra lateral"
},
"settings_filter_visibility_always": {
"message": "Em todas as p\u00e1ginas"
},
"settings_filter_visibility_blacklist": {
"message": "Em todas as p\u00e1ginas, exceto p\u00e1ginas espec\u00edficas"
},
"settings_filter_visibility_whitelist": {
"message": "Somente em p\u00e1ginas espec\u00edficas"
},
"settings_filter_rules": {
"message": "Padr\u00f5es de URL"
},
"settings_import_export_desc": {
"message": "Voc\u00ea pode exportar suas configura\u00e7\u00f5es da extens\u00e3o e salv\u00e1-las localmente no seu computador. Voc\u00ea pode importar o arquivo previamente exportado para qualquer computador onde a extens\u00e3o esteja instalada."
},
Expand Down
3 changes: 3 additions & 0 deletions src/_locales/zh_CN/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,9 @@
"onboarding_goto_settings": {
"message": "\u66f4\u591a\u8bbe\u7f6e"
},
"onboarding_goto_appearance": {
"message": "\u914d\u7f6e\u5916\u89c2"
},
"onboarding_close": {
"message": "\u5173\u95ed\u6b64\u9875"
},
Expand Down
17 changes: 13 additions & 4 deletions src/js/helper/dragndrop.js
Original file line number Diff line number Diff line change
Expand Up @@ -423,7 +423,7 @@
if (boundClientRect.top > topVal) {
return false;
} else if (newAboveElm.elm === null || newAboveElm.diff > diff) {
newAboveElm = {elm: elmObj, diff: diff};
newAboveElm = {elm: elmObj, height: elmObj[0].offsetHeight, diff: diff};
}
}
});
Expand All @@ -432,10 +432,17 @@
if (newAboveElm.elm && newAboveElm.elm !== oldAboveElm) {
oldAboveElm = newAboveElm.elm;
let newAboveLink = newAboveElm.elm.children("a").eq(0);
let aboveIsDir = newAboveLink.hasClass(ext.opts.classes.sidebar.bookmarkDir);
let hoverPosPercentage = newAboveElm.diff / newAboveElm.height * 100;

clearDirOpenTimeout(newAboveLink);

if (newAboveLink.hasClass(ext.opts.classes.sidebar.bookmarkDir)) { // drag position is beneath a directory
if (newAboveElm.elm.nextAll("li:not(." + ext.opts.classes.drag.isDragged + ")").length() === 0 && hoverPosPercentage > 80) { // drag position is below the last element of a directory -> placeholder under the current directory
let elm = bookmarkElm.insertAfter(newAboveElm.elm.parents("li").eq(0));
if (draggedElm) {
draggedElm.data("elm", elm);
}
} else if (aboveIsDir && hoverPosPercentage < 50) { // directory is hovered
if (newAboveLink.hasClass(ext.opts.classes.sidebar.dirOpened)) { // opened directory
let elm = bookmarkElm.prependTo(newAboveLink.next("ul"));
if (draggedElm) {
Expand All @@ -455,13 +462,15 @@

dirOpenTimeout.instance = setTimeout(() => { // open closed directory after short delay -> possibility for user to cancel timeout
ext.helper.list.toggleBookmarkDir(newAboveLink);
}, 700);
}, 1000);
}
} else if (newAboveLink.next("ul").length() === 0) { // empty directory
newAboveLink.addClass(ext.opts.classes.sidebar.dirOpened);
$("<ul />").insertAfter(newAboveLink);
}
} else { // drag position is beneath a bookmark
} else { // drag position is below a bookmark
clearDirOpenTimeout();

let elm = bookmarkElm.insertAfter(newAboveElm.elm);
if (draggedElm) {
draggedElm.data("elm", elm);
Expand Down
3 changes: 3 additions & 0 deletions src/js/helper/list.js
Original file line number Diff line number Diff line change
Expand Up @@ -736,7 +736,10 @@
list.html(cachedHtml);
list.find("a." + ext.opts.classes.sidebar.mark).removeClass(ext.opts.classes.sidebar.mark);
list.find("a." + ext.opts.classes.sidebar.hover).removeClass(ext.opts.classes.sidebar.hover);
list.find("a." + ext.opts.classes.drag.dragHover).removeClass(ext.opts.classes.drag.dragHover);
list.find("a." + ext.opts.classes.sidebar.lastHover).removeClass(ext.opts.classes.sidebar.lastHover);
list.find("li." + ext.opts.classes.drag.dragInitial).removeClass(ext.opts.classes.drag.dragInitial);
list.find("li." + ext.opts.classes.drag.isDragged).remove();

loadMissingFavicons(list, true);
ext.elements.bookmarkBox.all.addClass(ext.opts.classes.sidebar.cached);
Expand Down

0 comments on commit 003e71f

Please sign in to comment.