summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Wurst <christoph@winzerhof-wurst.at>2016-10-04 12:56:04 +0200
committerRoeland Jago Douma <roeland@famdouma.nl>2016-11-07 14:58:45 +0100
commitc5597baf88c3f7bcea9c03a3fa35e1dc81e12bd5 (patch)
treeb2d88ae33f7e99207913afd71dfdc9851485f8b5
parent1857e50259e3cedffd9d9c24ce2a47bf08ebf782 (diff)
downloadnextcloud-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.js23
-rw-r--r--apps/files/js/filelist.js10
-rw-r--r--apps/files_sharing/appinfo/app.php1
-rw-r--r--apps/files_sharing/js/share.js3
-rw-r--r--apps/files_sharing/js/sharebreadcrumbview.js56
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;
+})();
+