From ce85c52f3329c5b9e16666162a67ca0b9165f773 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Wed, 7 Feb 2018 15:30:05 +0100 Subject: [PATCH] done #1934 @6 --- js/libs/fluidbook/fluidbook.bookmarks.js | 19 ++++++++++----- js/libs/fluidbook/fluidbook.links.js | 6 ++++- js/libs/fluidbook/fluidbook.menu.js | 31 +++++++++++++++++++++--- js/libs/fluidbook/fluidbook.nav.js | 30 ++++++++++++++++------- style/nav-horizontal.less | 11 ++++++++- 5 files changed, 76 insertions(+), 21 deletions(-) diff --git a/js/libs/fluidbook/fluidbook.bookmarks.js b/js/libs/fluidbook/fluidbook.bookmarks.js index f9cf8c91..9375291e 100644 --- a/js/libs/fluidbook/fluidbook.bookmarks.js +++ b/js/libs/fluidbook/fluidbook.bookmarks.js @@ -364,12 +364,15 @@ FluidbookBookmarks.prototype = { } return bookmarks; }, - getView: function () { - var c = this.getIndex(false); + getView: function (title, downloadLabel) { + var c = this.getIndex(false, false, downloadLabel); if (c === false) { return c; } - var index = '
' + this.fluidbook.menu.closeButton() + '

' + this.fluidbook.l10n.__('bookmarks') + '

'; + if(title==''){ + title=this.fluidbook.l10n.__('bookmarks'); + } + var index = '
' + this.fluidbook.menu.closeButton() + '

' + title + '

'; index += '
'; index += c; index += '
'; @@ -391,7 +394,7 @@ FluidbookBookmarks.prototype = { } return true; }, - getIndex: function (all, onlyGroup) { + getIndex: function (all, onlyGroup, downloadLabel) { if (all == undefined) { all = false; } @@ -407,9 +410,13 @@ FluidbookBookmarks.prototype = { return false; } + if (downloadLabel == '') { + downloadLabel = this.fluidbook.l10n.__('download'); + } + var index = '
'; - if (onlyGroup == undefined) { + if (onlyGroup == undefined || !onlyGroup) { for (var g = 0; g < groups.length; g++) { var group = groups[g]; var pages = []; @@ -451,7 +458,7 @@ FluidbookBookmarks.prototype = { } if (this.fluidbook.datas.print || this.fluidbook.datas.pdf) { - index += '' + this.fluidbook.l10n.__('download') + ''; + index += '' + downloadLabel + ''; } index += '
'; index += '
'; diff --git a/js/libs/fluidbook/fluidbook.links.js b/js/libs/fluidbook/fluidbook.links.js index e5a78cf1..09eea178 100644 --- a/js/libs/fluidbook/fluidbook.links.js +++ b/js/libs/fluidbook/fluidbook.links.js @@ -92,12 +92,16 @@ FluidbookLinks.prototype = { } if (action == 'chapters' && extra) { - window.location.hash='#/chapters/'+extra; + window.location.hash = '#/chapters/' + extra; return false; } var navitem = $("#horizontalNav_" + action); + if (navitem.length > 0) { + if ($(this).data('extra') != null) { + $(navitem).data('extra', $(this).data('extra')); + } $(navitem).get(0).click(); } diff --git a/js/libs/fluidbook/fluidbook.menu.js b/js/libs/fluidbook/fluidbook.menu.js index f4ebf51c..ca3a37e2 100644 --- a/js/libs/fluidbook/fluidbook.menu.js +++ b/js/libs/fluidbook/fluidbook.menu.js @@ -64,10 +64,13 @@ FluidbookMenu.prototype = { } }, __openView: function (view, param1, param2, callback) { - //console.log('__openView(' + view + ',' + param1 + ',' + param2 + ')'); - param1 = decodeURIComponent(param1); - param2 = decodeURIComponent(param2); + if (typeof param1 === 'string') { + param1 = decodeURIComponent(param1); + } + if (typeof param2 === 'string') { + param2 = decodeURIComponent(param2); + } var $this = this; var camelView = view.charAt(0).toUpperCase() + view.substr(1); @@ -256,7 +259,27 @@ FluidbookMenu.prototype = { this.fluidbook.share.openShare(p1, p2, callback); }, openBookmark: function (p1, p2, callback) { - var view = this.fluidbook.bookmarks.getView(); + console.log('!!' + JSON.stringify(p1)); + var title = ''; + var downloadLabel = ''; + try { + title = p1.title; + } catch (e) { + + } + try { + downloadLabel = p1.downloadLabel; + } catch (e) { + + } + if (title == undefined) { + title = ''; + } + if (downloadLabel == undefined) { + downloadLabel = ''; + } + + var view = this.fluidbook.bookmarks.getView(title, downloadLabel); if (view !== false) { $("#view").append('
' + view + '
'); if (callback != undefined) { diff --git a/js/libs/fluidbook/fluidbook.nav.js b/js/libs/fluidbook/fluidbook.nav.js index d3714187..ae66938c 100644 --- a/js/libs/fluidbook/fluidbook.nav.js +++ b/js/libs/fluidbook/fluidbook.nav.js @@ -314,11 +314,17 @@ FluidbookNav.prototype = { navOrder.push(navOrder.splice(localeIconIndex, 1)[0]); // Push to end of array } + var hide = array_diff(all, navOrder); + var thisall = navOrder.concat(hide); + var $this = this; - for (var i in navOrder) { - var icon = navOrder[i]; - //var visible = hide.indexOf(icon) == -1; + for (var i in thisall) { + var icon = thisall[i]; + var visible = hide.indexOf(icon) == -1; + if (!visible && navType == 'menu') { + continue; + } var link = null; var link2 = null; @@ -534,15 +540,16 @@ FluidbookNav.prototype = { link = $(link).get(0).outerHTML; } - - var nav = this.getNavFromType(navType); nav.find('ul').append('
  • ' + link + '
  • '); } - // if (!visible) { - // $(link).addClass('hidden'); - // } + if (!visible) { + $(link).addClass('hidden'); + if (link2) { + $(link2).addClass('hidden'); + } + } } if (navType == 'menu') { @@ -642,7 +649,7 @@ FluidbookNav.prototype = { // Share icon $(document).on('click', '.icon-share', function () { if ($this.fluidbook.datas.phonegap != 'android') { - return true; + return true;0 } $this.fluidbook.share.intentShare(); return false; @@ -672,6 +679,11 @@ FluidbookNav.prototype = { } return false; } + if ($(this).data('extra') != null) { + $this.fluidbook.menu.openView('bookmark', $(this).data('extra'), null, function () { + }); + return false; + } }); // Zoom In icon diff --git a/style/nav-horizontal.less b/style/nav-horizontal.less index 8e8ef424..20b9e0a5 100644 --- a/style/nav-horizontal.less +++ b/style/nav-horizontal.less @@ -69,12 +69,21 @@ .help & { color: #ccc; } + &.hidden { + display: none !important; + opacity: 0; + width: 0; + height: 0; + visibility: hidden; + margin: 0; + padding: 0; + } } img, .svg-icon { height: 25px; width: auto; - .msie &{ + .msie & { width: 25px; } -- 2.39.5