Skip to content

Commit

Permalink
Creation of panel to see circles' shared files
Browse files Browse the repository at this point in the history
This commit inserts a panel in files visualization to allow filtering files that were shared to one or more circles.
Depends on some other modifications in nextcloud core, that will be referenced in the PR.

Signed-off-by: Vinicius Cubas Brand <viniciuscb@gmail.com>
  • Loading branch information
viniciuscb committed Sep 29, 2017
1 parent 736bf4e commit e04b7e0
Show file tree
Hide file tree
Showing 11 changed files with 638 additions and 9 deletions.
5 changes: 5 additions & 0 deletions appinfo/app.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
* later. See the COPYING file.
*
* @author Maxence Lange <maxence@pontapreta.net>
* @author Vinicius Cubas Brand <vinicius@eita.org.br>
*
* @copyright 2017
* @license GNU AGPL version 3 or any later version
*
Expand All @@ -28,3 +30,6 @@

$app->registerNavigation();
$app->registerSettingsAdmin();
$app->registerFilesPlugin();


39 changes: 39 additions & 0 deletions css/circles.filelist.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/*
* Copyright (c) 2017
*
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*
*/
#app-content-circlesfilter .select2-container {
width: 30%;
margin-left: 10px;
}

#app-content-circlesfilter .select2-choices {
white-space: nowrap;
text-overflow: ellipsis;
background: #fff;
color: #555;
box-sizing: content-box;
border-radius: 3px;
border: 1px solid #ddd;
padding: 0;
min-height: auto;
}

.nav-icon-circlesfilter {
background-image: url('../img/black_circle.svg');
}

#app-sidebar .mainFileInfoView .tag-label {
cursor: pointer;
padding: 13px;
}

#app-sidebar .mainFileInfoView .icon-tag {
opacity: .5;
vertical-align: middle;
}
113 changes: 113 additions & 0 deletions js/circles.files.app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
/*
* Copyright (c) 2017 Cooperativa EITA (eita.org.br)
*
* @author Vinicius Cubas Brand <vinicius@eita.org.br>
* @author Daniel Tygel <dtygel@eita.org.br>
*
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*
*/

var api = OCA.Circles.api;

(function() {
if (!OCA.Circles) {
/**
* @namespace
*/
OCA.Circles = {};
}

OCA.Circles.App = {

initFileList: function($el) {
if (this._fileList) {
return this._fileList;
}

this._fileList = new OCA.Circles.FileList(
$el,
{
id: 'circles',
scrollContainer: $('#app-content'),
fileActions: this._createFileActions(),
config: OCA.Files.App.getFilesConfig()
}
);

this._fileList.appName = t('circles', 'Circles');
return this._fileList;
},

removeFileList: function() {
if (this._fileList) {
this._fileList.$fileList.empty();
}
},

_createFileActions: function() {
// inherit file actions from the files app
var fileActions = new OCA.Files.FileActions();
// note: not merging the legacy actions because legacy apps are not
// compatible with the sharing overview and need to be adapted first
fileActions.registerDefaultActions();
fileActions.merge(OCA.Files.fileActions);

if (!this._globalActionsInitialized) {
// in case actions are registered later
this._onActionsUpdated = _.bind(this._onActionsUpdated, this);
OCA.Files.fileActions.on('setDefault.app-circles', this._onActionsUpdated);
OCA.Files.fileActions.on('registerAction.app-circles', this._onActionsUpdated);
this._globalActionsInitialized = true;
}

// when the user clicks on a folder, redirect to the corresponding
// folder in the files app instead of opening it directly
fileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function (filename, context) {
OCA.Files.App.setActiveView('files', {silent: true});
OCA.Files.App.fileList.changeDirectory(OC.joinPaths(context.$file.attr('data-path'), filename), true, true);
});
fileActions.setDefault('dir', 'Open');
return fileActions;
},

_onActionsUpdated: function(ev) {
if (!this._fileList) {
return;
}

if (ev.action) {
this._fileList.fileActions.registerAction(ev.action);
} else if (ev.defaultAction) {
this._fileList.fileActions.setDefault(
ev.defaultAction.mime,
ev.defaultAction.name
);
}
},

/**
* Destroy the app
*/
destroy: function() {
OCA.Files.fileActions.off('setDefault.app-circles', this._onActionsUpdated);
OCA.Files.fileActions.off('registerAction.app-circles', this._onActionsUpdated);
this.removeFileList();
this._fileList = null;
delete this._globalActionsInitialized;
}
};

})();

$(document).ready(function() {
$('#app-content-circlesfilter').on('show', function(e) {
OCA.Circles.App.initFileList($(e.target));
});
$('#app-content-circlesfilter').on('hide', function() {
OCA.Circles.App.removeFileList();
});
});
Loading

1 comment on commit e04b7e0

@dtygel
Copy link
Member

@dtygel dtygel commented on e04b7e0 Oct 19, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.