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) {
|
if (options.getCrumbUrl) {
|
||||||
this.getCrumbUrl = options.getCrumbUrl;
|
this.getCrumbUrl = options.getCrumbUrl;
|
||||||
}
|
}
|
||||||
|
this._detailViews = [];
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* @memberof OCA.Files
|
* @memberof OCA.Files
|
||||||
|
@ -52,6 +53,7 @@
|
||||||
BreadCrumb.prototype = {
|
BreadCrumb.prototype = {
|
||||||
$el: null,
|
$el: null,
|
||||||
dir: null,
|
dir: null,
|
||||||
|
dirInfo: null,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Total width of all breadcrumbs
|
* 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
|
* Returns the full URL to the given directory
|
||||||
*
|
*
|
||||||
|
@ -122,6 +138,13 @@
|
||||||
}
|
}
|
||||||
$crumb.addClass('last');
|
$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
|
// in case svg is not supported by the browser we need to execute the fallback mechanism
|
||||||
if (!OC.Util.hasSVGSupport()) {
|
if (!OC.Util.hasSVGSupport()) {
|
||||||
OC.Util.replaceSVG(this.$el);
|
OC.Util.replaceSVG(this.$el);
|
||||||
|
|
|
@ -1646,6 +1646,7 @@
|
||||||
|
|
||||||
// first entry is the root
|
// first entry is the root
|
||||||
this.dirInfo = result.shift();
|
this.dirInfo = result.shift();
|
||||||
|
this.breadcrumb.setDirectoryInfo(this.dirInfo);
|
||||||
|
|
||||||
if (this.dirInfo.permissions) {
|
if (this.dirInfo.permissions) {
|
||||||
this.setDirectoryPermissions(this.dirInfo.permissions);
|
this.setDirectoryPermissions(this.dirInfo.permissions);
|
||||||
|
@ -2954,6 +2955,15 @@
|
||||||
if (this._detailsView) {
|
if (this._detailsView) {
|
||||||
this._detailsView.addDetailView(detailView);
|
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() {
|
function() {
|
||||||
\OCP\Util::addScript('files_sharing', 'share');
|
\OCP\Util::addScript('files_sharing', 'share');
|
||||||
\OCP\Util::addScript('files_sharing', 'sharetabview');
|
\OCP\Util::addScript('files_sharing', 'sharetabview');
|
||||||
|
\OCP\Util::addScript('files_sharing', 'sharebreadcrumbview');
|
||||||
\OCP\Util::addStyle('files_sharing', 'sharetabview');
|
\OCP\Util::addStyle('files_sharing', 'sharetabview');
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
@ -185,6 +185,9 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
fileList.registerTabView(shareTab);
|
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