show whether the current folder was shared or not
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
This commit is contained in:
parent
1857e50259
commit
c5597baf88
5 changed files with 93 additions and 0 deletions
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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');
|
||||
}
|
||||
);
|
||||
|
|
|
@ -185,6 +185,9 @@
|
|||
}
|
||||
});
|
||||
fileList.registerTabView(shareTab);
|
||||
|
||||
var breadCrumbSharingDetailView = new OCA.Sharing.ShareBreadCrumbView();
|
||||
fileList.registerBreadCrumbDetailView(breadCrumbSharingDetailView);
|
||||
},
|
||||
|
||||
/**
|
||||
|
|
56
apps/files_sharing/js/sharebreadcrumbview.js
Normal file
56
apps/files_sharing/js/sharebreadcrumbview.js
Normal file
|
@ -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;
|
||||
})();
|
||||
|
Loading…
Reference in a new issue