diff options
author | Christoph Wurst <christoph@winzerhof-wurst.at> | 2016-10-04 12:56:04 +0200 |
---|---|---|
committer | Roeland Jago Douma <roeland@famdouma.nl> | 2016-11-07 14:58:45 +0100 |
commit | c5597baf88c3f7bcea9c03a3fa35e1dc81e12bd5 (patch) | |
tree | b2d88ae33f7e99207913afd71dfdc9851485f8b5 | |
parent | 1857e50259e3cedffd9d9c24ce2a47bf08ebf782 (diff) | |
download | nextcloud-server-c5597baf88c3f7bcea9c03a3fa35e1dc81e12bd5.tar.gz nextcloud-server-c5597baf88c3f7bcea9c03a3fa35e1dc81e12bd5.zip |
show whether the current folder was shared or not
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
-rw-r--r-- | apps/files/js/breadcrumb.js | 23 | ||||
-rw-r--r-- | apps/files/js/filelist.js | 10 | ||||
-rw-r--r-- | apps/files_sharing/appinfo/app.php | 1 | ||||
-rw-r--r-- | apps/files_sharing/js/share.js | 3 | ||||
-rw-r--r-- | apps/files_sharing/js/sharebreadcrumbview.js | 56 |
5 files changed, 93 insertions, 0 deletions
diff --git a/apps/files/js/breadcrumb.js b/apps/files/js/breadcrumb.js index 98de7aa374c..ff9700456da 100644 --- a/apps/files/js/breadcrumb.js +++ b/apps/files/js/breadcrumb.js @@ -45,6 +45,7 @@ if (options.getCrumbUrl) { this.getCrumbUrl = options.getCrumbUrl; } + this._detailViews = []; }; /** * @memberof OCA.Files @@ -52,6 +53,7 @@ BreadCrumb.prototype = { $el: null, dir: null, + dirInfo: null, /** * Total width of all breadcrumbs @@ -79,6 +81,20 @@ } }, + setDirectoryInfo: function(dirInfo) { + if (dirInfo !== this.dirInfo) { + this.dirInfo = dirInfo; + this.render(); + } + }, + + /** + * @param {Backbone.View} detailView + */ + addDetailView: function(detailView) { + this._detailViews.push(detailView); + }, + /** * Returns the full URL to the given directory * @@ -122,6 +138,13 @@ } $crumb.addClass('last'); + _.each(this._detailViews, function(view) { + view.render({ + dirInfo: this.dirInfo + }); + $crumb.append(view.$el); + }, this); + // in case svg is not supported by the browser we need to execute the fallback mechanism if (!OC.Util.hasSVGSupport()) { OC.Util.replaceSVG(this.$el); diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 18534db3ee9..8d0e492643f 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -1646,6 +1646,7 @@ // first entry is the root this.dirInfo = result.shift(); + this.breadcrumb.setDirectoryInfo(this.dirInfo); if (this.dirInfo.permissions) { this.setDirectoryPermissions(this.dirInfo.permissions); @@ -2954,6 +2955,15 @@ if (this._detailsView) { this._detailsView.addDetailView(detailView); } + }, + + /** + * Register a view to be added to the breadcrumb view + */ + registerBreadCrumbDetailView: function(detailView) { + if (this.breadcrumb) { + this.breadcrumb.addDetailView(detailView); + } } }; diff --git a/apps/files_sharing/appinfo/app.php b/apps/files_sharing/appinfo/app.php index 7da295afddd..06f4a41ac14 100644 --- a/apps/files_sharing/appinfo/app.php +++ b/apps/files_sharing/appinfo/app.php @@ -42,6 +42,7 @@ $eventDispatcher->addListener( function() { \OCP\Util::addScript('files_sharing', 'share'); \OCP\Util::addScript('files_sharing', 'sharetabview'); + \OCP\Util::addScript('files_sharing', 'sharebreadcrumbview'); \OCP\Util::addStyle('files_sharing', 'sharetabview'); } ); diff --git a/apps/files_sharing/js/share.js b/apps/files_sharing/js/share.js index 64fc7ef7296..7629124ec44 100644 --- a/apps/files_sharing/js/share.js +++ b/apps/files_sharing/js/share.js @@ -185,6 +185,9 @@ } }); fileList.registerTabView(shareTab); + + var breadCrumbSharingDetailView = new OCA.Sharing.ShareBreadCrumbView(); + fileList.registerBreadCrumbDetailView(breadCrumbSharingDetailView); }, /** diff --git a/apps/files_sharing/js/sharebreadcrumbview.js b/apps/files_sharing/js/sharebreadcrumbview.js new file mode 100644 index 00000000000..c469fd252aa --- /dev/null +++ b/apps/files_sharing/js/sharebreadcrumbview.js @@ -0,0 +1,56 @@ +/* global Handlebars, OC */ + +/** + * @copyright 2016 Christoph Wurst <christoph@winzerhof-wurst.at> + * + * @author 2016 Christoph Wurst <christoph@winzerhof-wurst.at> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +(function() { + 'use strict'; + + var TEMPLATE = '{{#if isShared}}' + + 'Shared!' + + '{{else}}' + + 'Not shared!' + + '{{/if}}'; + + var BreadCrumbView = OC.Backbone.View.extend({ + tagName: 'span', + _template: undefined, + template: function(data) { + if (!this._template) { + this._template = Handlebars.compile(TEMPLATE); + } + return this._template(data); + }, + render: function(data) { + var isShared = data.dirInfo && data.dirInfo.shareTypes && data.dirInfo.shareTypes.length > 0; + + this.$el.html(this.template({ + isShared: isShared + })); + + return this; + } + }); + + OCA.Sharing.ShareBreadCrumbView = BreadCrumbView; +})(); + |