From 25924fd7c985f84dd57cdc1b19e2a4069d4327e6 Mon Sep 17 00:00:00 2001 From: Stephen Cameron Date: Thu, 21 Sep 2017 17:41:05 +0200 Subject: [PATCH] Refactoring sharing functionality and fix bug with sharing icon. WIP #807 @1.5 --- js/libs/fluidbook/fluidbook.nav.js | 61 ++-------------------------- js/libs/fluidbook/fluidbook.share.js | 27 ++++++++---- style/mmenu/mmenu.less | 11 ++++- 3 files changed, 32 insertions(+), 67 deletions(-) diff --git a/js/libs/fluidbook/fluidbook.nav.js b/js/libs/fluidbook/fluidbook.nav.js index e2f16ce3..f04ffffe 100644 --- a/js/libs/fluidbook/fluidbook.nav.js +++ b/js/libs/fluidbook/fluidbook.nav.js @@ -366,67 +366,14 @@ FluidbookNav.prototype = { } else if (navType == 'menu') { - var shareLinks = {}, - shareHTML = ''; - - if (this.fluidbook.datas.friend) { - shareLinks['email'] = 'E-mail'; - } - if (this.fluidbook.datas.facebook) { - shareLinks['facebook'] = 'Facebook'; - } - if (this.fluidbook.datas.twitter) { - shareLinks['twitter'] = 'Twitter'; - } - if (this.fluidbook.datas.googleplus) { - shareLinks['googleplus'] = 'Google Plus'; - } - if (this.fluidbook.datas.linkedin) { - shareLinks['linkedin'] = 'LinkedIn'; - } - if (this.fluidbook.datas.viadeo) { - shareLinks['viadeo'] = 'Viadeo'; - } - - // Generate links - for (var shareType in shareLinks) { - if (shareLinks.hasOwnProperty(shareType)) { // Ensure we don't get inherited properties - shareHTML += ''; - shareHTML += getSpriteIcon('interface-' + shareType); - shareHTML += ''; - } - } - // Save HTML so it can be added to menu once MMenu is initialised - this.shareLinksHTML = ''; - } - + this.shareLinksHTML = ''; - $("#share").click(function () { - if ($this.fluidbook.datas.phonegap != 'android') { - return true; - } - $this.fluidbook.share.intentShare(); - return false; - }); + } } } else if (icon == 'bookmark' && this.fluidbook.datas.bookmark) { - if (this.fluidbook.datas.bookmark) { - link = this.addLink(navType, 'interface-bookmarks', '#/bookmark', 'bookmarks', 'bookmarks', 'bookmarks'); - $("#bookmarks").click(function () { - if (!$this.fluidbook.bookmarks.hasBookmarkedPages()) { - var message = $this.fluidbook.l10n.__("you don't have any bookmarks"); - if ($this.fluidbook.datas.phonegap) { - navigator.notification.alert(message, function () { - }, $this.fluidbook.l10n.__('bookmarks')); - } else { - window.alert(message); - } - return false; - } - }); - } + link = this.addLink(navType, 'interface-bookmarks', '#/bookmark', 'bookmarks', 'bookmarks', 'bookmarks'); } else if (icon == 'pdf' && this.fluidbook.datas.pdf) { link = this.addLink(navType, 'interface-download', '#', 'download', 'download', 'download'); @@ -589,7 +536,7 @@ FluidbookNav.prototype = { if ($this.fluidbook.datas.phonegap != 'android') { return true; } - $this.fluidbook.intentShare(); + $this.fluidbook.share.intentShare(); return false; }); diff --git a/js/libs/fluidbook/fluidbook.share.js b/js/libs/fluidbook/fluidbook.share.js index 8c9dfd5b..73c1f3ca 100644 --- a/js/libs/fluidbook/fluidbook.share.js +++ b/js/libs/fluidbook/fluidbook.share.js @@ -29,11 +29,12 @@ FluidbookShare.prototype = { } return res; }, - openShare: function (p1, p2, callback) { - + + getShareLinks: function(hideLabels) { var shareLinks = {}, - shareHTML = '', - view; + shareHTML = ''; + + hideLabels = hideLabels || false; if (this.fluidbook.datas.friend) { shareLinks['email'] = 'E-mail'; @@ -59,16 +60,24 @@ FluidbookShare.prototype = { if (shareLinks.hasOwnProperty(shareType)) { // Ensure we don't get inherited properties shareHTML += '
  • '; } } - view = '
    ' + this.closeButton() + '

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

    '; + // ToDo: tidy up CSS so we don't have to rely on unrelated class names (less likely to break in the future) + return ''; + }, + + openShare: function (p1, p2, callback) { + + var view; + + view = '
    ' + this.fluidbook.menu.closeButton() + '

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

    '; view += '
    '; - view += ''; + view += this.getShareLinks(); view += '
    '; $("#view").append('
    ' + view + '
    '); diff --git a/style/mmenu/mmenu.less b/style/mmenu/mmenu.less index bcbef1f6..1c087f29 100644 --- a/style/mmenu/mmenu.less +++ b/style/mmenu/mmenu.less @@ -336,13 +336,22 @@ html.mm-opening .mm-menu.mm-opened[class*=mm-pagedim]~#mm-blocker { white-space: nowrap; } - a { + .shareList { + padding: 0; + } + + li { + display: inline-block; padding: 0; &:not(:last-of-type) { margin-right: 33px; } + a { + padding: 0; + } + img { margin: 0; } -- 2.39.5