Skip to content

Commit

Permalink
Merge pull request #141 from coletivoEITA/circles-files-panel
Browse files Browse the repository at this point in the history
Circles files panel (#137)
  • Loading branch information
ArtificialOwl authored Nov 7, 2017
2 parents 450dea0 + 5a0c65d commit 6b92706
Show file tree
Hide file tree
Showing 12 changed files with 773 additions and 134 deletions.
8 changes: 7 additions & 1 deletion 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 @@ -26,5 +28,9 @@

$app = new \OCA\Circles\AppInfo\Application();

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


54 changes: 54 additions & 0 deletions css/files/circles.filelist.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
/*
* Circles - Bring cloud-users closer together.
*
* This file is licensed under the Affero General Public License version 3 or
* later. See the COPYING file.
*
* @author Maxence Lange <maxence@artificial-owl.com>
* @copyright 2017
* @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/>.
*
*/
#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;
}
6 changes: 6 additions & 0 deletions files/list.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?php

OCP\User::checkLoggedIn();

$tmpl = new OCP\Template('circles', 'files/list', '');
$tmpl->printPage();
113 changes: 113 additions & 0 deletions js/files/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

0 comments on commit 6b92706

Please sign in to comment.