From af61cb80eb600618df95a01a15a08e87fc878c2a Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Thu, 27 Oct 2016 01:57:27 +0200 Subject: es6 imports Signed-off-by: Thomas Citharel --- app/Resources/static/themes/material/js/init.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'app/Resources/static/themes/material/js') diff --git a/app/Resources/static/themes/material/js/init.js b/app/Resources/static/themes/material/js/init.js index a68269e0..d8edeed1 100755 --- a/app/Resources/static/themes/material/js/init.js +++ b/app/Resources/static/themes/material/js/init.js @@ -1,10 +1,10 @@ +import $ from 'jquery'; +import annotator from 'annotator'; import { savePercent, retrievePercent, initFilters, initExport } from '../../_global/js/tools'; -const $ = require('jquery'); +require('materialize'); // eslint-disable-line global.jQuery = $; -require('materialize'); // eslint-disable-line -const annotator = require('annotator'); $(document).ready(() => { // sideNav -- cgit v1.2.3 From 16ef7607f43ebc3e0134360b7657af191e14fe12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Wed, 2 Nov 2016 16:44:20 +0100 Subject: Reorganized JS folders for shortcuts --- app/Resources/static/themes/material/js/init.js | 2 ++ .../static/themes/material/js/shortcuts/entry.js | 19 +++++++++++++++++++ .../static/themes/material/js/shortcuts/main.js | 13 +++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 app/Resources/static/themes/material/js/shortcuts/entry.js create mode 100644 app/Resources/static/themes/material/js/shortcuts/main.js (limited to 'app/Resources/static/themes/material/js') diff --git a/app/Resources/static/themes/material/js/init.js b/app/Resources/static/themes/material/js/init.js index d8edeed1..3ff8de0a 100755 --- a/app/Resources/static/themes/material/js/init.js +++ b/app/Resources/static/themes/material/js/init.js @@ -1,6 +1,8 @@ import $ from 'jquery'; import annotator from 'annotator'; import { savePercent, retrievePercent, initFilters, initExport } from '../../_global/js/tools'; +import './shortcuts/main.js'; +import './shortcuts/entry.js'; require('materialize'); // eslint-disable-line diff --git a/app/Resources/static/themes/material/js/shortcuts/entry.js b/app/Resources/static/themes/material/js/shortcuts/entry.js new file mode 100644 index 00000000..900a8214 --- /dev/null +++ b/app/Resources/static/themes/material/js/shortcuts/entry.js @@ -0,0 +1,19 @@ +/* open original article */ +Mousetrap.bind('o', () => { + $('ul.side-nav li:nth-child(2) a i')[0].click(); +}); + +/* mark as favorite */ +Mousetrap.bind('s', () => { + $('ul.side-nav li:nth-child(5) a i')[0].click(); +}); + +/* mark as read */ +Mousetrap.bind('a', () => { + $('ul.side-nav li:nth-child(4) a i')[0].click(); +}); + +/* delete */ +Mousetrap.bind('del', () => { + $('ul.side-nav li:nth-child(6) a i')[0].click(); +}); diff --git a/app/Resources/static/themes/material/js/shortcuts/main.js b/app/Resources/static/themes/material/js/shortcuts/main.js new file mode 100644 index 00000000..ccd3c92d --- /dev/null +++ b/app/Resources/static/themes/material/js/shortcuts/main.js @@ -0,0 +1,13 @@ +/* Actions */ +Mousetrap.bind('g n', () => { + $('#nav-btn-add').trigger('click'); +}); + +Mousetrap.bind('esc', () => { + $('.close').trigger('click'); +}); + +// Display the first element of the current view +Mousetrap.bind('right', () => { + $('ul.data li:first-child span.dot-ellipsis a')[0].click(); +}); -- cgit v1.2.3 From 5637a26e9af98a05c76823c85611315cd1a986e0 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Thu, 3 Nov 2016 10:02:16 +0100 Subject: Bring navigation (with right, left and enter) on material entries page. Supports going to next and previous page ! Also better indentation for js files (changed editorconfig for them). Signed-off-by: Thomas Citharel --- app/Resources/static/themes/material/js/init.js | 13 +++- .../static/themes/material/js/shortcuts/entry.js | 11 ++-- .../static/themes/material/js/shortcuts/main.js | 74 +++++++++++++++++++--- 3 files changed, 84 insertions(+), 14 deletions(-) (limited to 'app/Resources/static/themes/material/js') diff --git a/app/Resources/static/themes/material/js/init.js b/app/Resources/static/themes/material/js/init.js index 3ff8de0a..9746224b 100755 --- a/app/Resources/static/themes/material/js/init.js +++ b/app/Resources/static/themes/material/js/init.js @@ -1,8 +1,17 @@ +/* jQuery */ import $ from 'jquery'; + +/* Annotations */ import annotator from 'annotator'; + +/* Tools */ import { savePercent, retrievePercent, initFilters, initExport } from '../../_global/js/tools'; -import './shortcuts/main.js'; -import './shortcuts/entry.js'; + +/* Import shortcuts */ +import './shortcuts/main'; +import './shortcuts/entry'; +import '../../_global/js/shortcuts/main'; +import '../../_global/js/shortcuts/entry'; require('materialize'); // eslint-disable-line diff --git a/app/Resources/static/themes/material/js/shortcuts/entry.js b/app/Resources/static/themes/material/js/shortcuts/entry.js index 900a8214..674253b5 100644 --- a/app/Resources/static/themes/material/js/shortcuts/entry.js +++ b/app/Resources/static/themes/material/js/shortcuts/entry.js @@ -1,19 +1,22 @@ +import Mousetrap from 'mousetrap'; +import $ from 'jquery'; + /* open original article */ Mousetrap.bind('o', () => { - $('ul.side-nav li:nth-child(2) a i')[0].click(); + $('ul.side-nav li:nth-child(2) a i')[0].click(); }); /* mark as favorite */ Mousetrap.bind('s', () => { - $('ul.side-nav li:nth-child(5) a i')[0].click(); + $('ul.side-nav li:nth-child(5) a i')[0].click(); }); /* mark as read */ Mousetrap.bind('a', () => { - $('ul.side-nav li:nth-child(4) a i')[0].click(); + $('ul.side-nav li:nth-child(4) a i')[0].click(); }); /* delete */ Mousetrap.bind('del', () => { - $('ul.side-nav li:nth-child(6) a i')[0].click(); + $('ul.side-nav li:nth-child(6) a i')[0].click(); }); diff --git a/app/Resources/static/themes/material/js/shortcuts/main.js b/app/Resources/static/themes/material/js/shortcuts/main.js index ccd3c92d..62b7ec64 100644 --- a/app/Resources/static/themes/material/js/shortcuts/main.js +++ b/app/Resources/static/themes/material/js/shortcuts/main.js @@ -1,13 +1,71 @@ -/* Actions */ -Mousetrap.bind('g n', () => { +import Mousetrap from 'mousetrap'; +import $ from 'jquery'; + +function toggleFocus(cardToToogleFocus) { + if (cardToToogleFocus) { + $(cardToToogleFocus).toggleClass('z-depth-4'); + } +} +let card; +let cardIndex; +let cardNumber; +let pagination; + +$(document).ready(() => { + cardIndex = 0; + cardNumber = $('#content ul.data > li').length; + card = $('#content ul.data > li')[cardIndex]; + pagination = $('.pagination'); + + /* If we come from next page */ + if (window.location.hash === '#prev') { + cardIndex = cardNumber - 1; + card = $('ul.data > li')[cardIndex]; + } + + /* Focus current card */ + toggleFocus(card); + + /* Actions */ + Mousetrap.bind('g n', () => { $('#nav-btn-add').trigger('click'); -}); + }); -Mousetrap.bind('esc', () => { + Mousetrap.bind('esc', () => { $('.close').trigger('click'); -}); + }); + + /* Select right card. If there's a next page, go to next page */ + Mousetrap.bind('right', () => { + if (cardIndex >= 0 && cardIndex < cardNumber - 1) { + toggleFocus(card); + cardIndex += 1; + card = $('ul.data > li')[cardIndex]; + toggleFocus(card); + return; + } + if (pagination != null && pagination.find('li.next') && cardIndex === cardNumber - 1) { + window.location.href = window.location.origin + $(pagination).find('li.next a').attr('href'); + return; + } + }); + + /* Select previous card. If there's a previous page, go to next page */ + Mousetrap.bind('left', () => { + if (cardIndex > 0 && cardIndex < cardNumber) { + toggleFocus(card); + cardIndex -= 1; + card = $('ul.data > li')[cardIndex]; + toggleFocus(card); + return; + } + if (pagination !== null && $(pagination).find('li.prev') && cardIndex === 0) { + window.location.href = `${window.location.origin + $(pagination).find('li.prev a').attr('href')}#prev`; + return; + } + }); -// Display the first element of the current view -Mousetrap.bind('right', () => { - $('ul.data li:first-child span.dot-ellipsis a')[0].click(); + Mousetrap.bind('enter', () => { + window.location.href = window.location.origin + $(card).find('span.card-title a').attr('href'); + }); }); -- cgit v1.2.3 From c930992348d81c70884791ee3edbec4a3cc1d128 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Sat, 5 Nov 2016 16:06:13 +0100 Subject: fix next/prev page --- .../static/themes/material/js/shortcuts/main.js | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) (limited to 'app/Resources/static/themes/material/js') diff --git a/app/Resources/static/themes/material/js/shortcuts/main.js b/app/Resources/static/themes/material/js/shortcuts/main.js index 62b7ec64..ba396841 100644 --- a/app/Resources/static/themes/material/js/shortcuts/main.js +++ b/app/Resources/static/themes/material/js/shortcuts/main.js @@ -6,16 +6,12 @@ function toggleFocus(cardToToogleFocus) { $(cardToToogleFocus).toggleClass('z-depth-4'); } } -let card; -let cardIndex; -let cardNumber; -let pagination; $(document).ready(() => { - cardIndex = 0; - cardNumber = $('#content ul.data > li').length; - card = $('#content ul.data > li')[cardIndex]; - pagination = $('.pagination'); + let cardIndex = 0; + const cardNumber = $('#content ul.data > li').length; + let card = $('#content ul.data > li')[cardIndex]; + const pagination = $('.pagination'); /* If we come from next page */ if (window.location.hash === '#prev') { @@ -44,9 +40,8 @@ $(document).ready(() => { toggleFocus(card); return; } - if (pagination != null && pagination.find('li.next') && cardIndex === cardNumber - 1) { + if (pagination.length > 0 && pagination.find('li.next:not(.disabled)').length > 0 && cardIndex === cardNumber - 1) { window.location.href = window.location.origin + $(pagination).find('li.next a').attr('href'); - return; } }); @@ -59,9 +54,8 @@ $(document).ready(() => { toggleFocus(card); return; } - if (pagination !== null && $(pagination).find('li.prev') && cardIndex === 0) { + if (pagination.length > 0 && $(pagination).find('li.prev:not(.disabled)').length > 0 && cardIndex === 0) { window.location.href = `${window.location.origin + $(pagination).find('li.prev a').attr('href')}#prev`; - return; } }); -- cgit v1.2.3 From 10a1ffae5313b0f77287b92aca93bb0066d3b1e3 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Tue, 15 Nov 2016 22:23:50 +0100 Subject: Fix keyboard navigation on quickstart view Signed-off-by: Thomas Citharel --- app/Resources/static/themes/material/js/shortcuts/main.js | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'app/Resources/static/themes/material/js') diff --git a/app/Resources/static/themes/material/js/shortcuts/main.js b/app/Resources/static/themes/material/js/shortcuts/main.js index ba396841..8514f71e 100644 --- a/app/Resources/static/themes/material/js/shortcuts/main.js +++ b/app/Resources/static/themes/material/js/shortcuts/main.js @@ -13,6 +13,11 @@ $(document).ready(() => { let card = $('#content ul.data > li')[cardIndex]; const pagination = $('.pagination'); + /* Show nothing on quickstart */ + if ($('#content > div.quickstart').length > 0) { + return; + } + /* If we come from next page */ if (window.location.hash === '#prev') { cardIndex = cardNumber - 1; -- cgit v1.2.3 From 94f2057ffefdb164ae388a6971b4ed052082a434 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Wed, 16 Nov 2016 09:17:12 +0100 Subject: Added CSS class on links --- app/Resources/static/themes/material/js/shortcuts/entry.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'app/Resources/static/themes/material/js') diff --git a/app/Resources/static/themes/material/js/shortcuts/entry.js b/app/Resources/static/themes/material/js/shortcuts/entry.js index 674253b5..357c22fe 100644 --- a/app/Resources/static/themes/material/js/shortcuts/entry.js +++ b/app/Resources/static/themes/material/js/shortcuts/entry.js @@ -3,20 +3,20 @@ import $ from 'jquery'; /* open original article */ Mousetrap.bind('o', () => { - $('ul.side-nav li:nth-child(2) a i')[0].click(); + $('ul.side-nav a.original i')[0].click(); }); /* mark as favorite */ Mousetrap.bind('s', () => { - $('ul.side-nav li:nth-child(5) a i')[0].click(); + $('ul.side-nav a.favorite i')[0].click(); }); /* mark as read */ Mousetrap.bind('a', () => { - $('ul.side-nav li:nth-child(4) a i')[0].click(); + $('ul.side-nav a.markasread i')[0].click(); }); /* delete */ Mousetrap.bind('del', () => { - $('ul.side-nav li:nth-child(6) a i')[0].click(); + $('ul.side-nav a.delete i')[0].click(); }); -- cgit v1.2.3