summaryrefslogtreecommitdiffstats
path: root/apps/files_sharing
diff options
context:
space:
mode:
authorRoeland Jago Douma <roeland@famdouma.nl>2018-07-09 13:04:09 +0200
committerJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2018-07-13 07:31:02 +0200
commit1f9e50086cc404d6dd46c5ae664f951faaf74c98 (patch)
tree2293c8100ab5da2b3bfa4f77c8483e6debb6138a /apps/files_sharing
parentca65b82f046b12a3ccbb35715673cfe84d8dfabd (diff)
downloadnextcloud-server-1f9e50086cc404d6dd46c5ae664f951faaf74c98.tar.gz
nextcloud-server-1f9e50086cc404d6dd46c5ae664f951faaf74c98.zip
Tiny start of the share overview
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Diffstat (limited to 'apps/files_sharing')
-rw-r--r--apps/files_sharing/appinfo/app.php34
-rw-r--r--apps/files_sharing/js/app.js36
-rw-r--r--apps/files_sharing/js/sharedfilelist.js99
3 files changed, 139 insertions, 30 deletions
diff --git a/apps/files_sharing/appinfo/app.php b/apps/files_sharing/appinfo/app.php
index 4f5cf09befb..189c45426d5 100644
--- a/apps/files_sharing/appinfo/app.php
+++ b/apps/files_sharing/appinfo/app.php
@@ -62,17 +62,6 @@ if ($config->getAppValue('core', 'shareapi_enabled', 'yes') === 'yes') {
'name' => $l->t('Shared with you'),
];
});
-
- \OCA\Files\App::getNavigationManager()->add(function () {
- $l = \OC::$server->getL10N('files_sharing');
- return [
- 'id' => 'deletedshares',
- 'appname' => 'files_sharing',
- 'script' => 'list.php',
- 'order' => 18,
- 'name' => $l->t('Deleted shares'),
- ];
- });
if (\OCP\Util::isSharingDisabledForUser() === false) {
\OCA\Files\App::getNavigationManager()->add(function () {
@@ -100,4 +89,27 @@ if ($config->getAppValue('core', 'shareapi_enabled', 'yes') === 'yes') {
});
}
}
+
+ \OCA\Files\App::getNavigationManager()->add(function () {
+ $l = \OC::$server->getL10N('files_sharing');
+ return [
+ 'id' => 'shareoverview',
+ 'appname' => 'files_sharing',
+ 'script' => 'list.php',
+ 'order' => 18,
+ 'name' => $l->t('Share overview'),
+ ];
+ });
+
+
+ \OCA\Files\App::getNavigationManager()->add(function () {
+ $l = \OC::$server->getL10N('files_sharing');
+ return [
+ 'id' => 'deletedshares',
+ 'appname' => 'files_sharing',
+ 'script' => 'list.php',
+ 'order' => 19,
+ 'name' => $l->t('Deleted shares'),
+ ];
+ });
}
diff --git a/apps/files_sharing/js/app.js b/apps/files_sharing/js/app.js
index f63410bc9bf..ce16c1da927 100644
--- a/apps/files_sharing/js/app.js
+++ b/apps/files_sharing/js/app.js
@@ -21,6 +21,7 @@ OCA.Sharing.App = {
_inFileList: null,
_outFileList: null,
+ _overviewFileList: null,
initSharingIn: function($el) {
if (this._inFileList) {
@@ -116,6 +117,28 @@ OCA.Sharing.App = {
return this._deletedFileList;
},
+ initShareingOverview: function($el) {
+ if (this._overviewFileList) {
+ return this._overviewFileList;
+ }
+ this._overviewFileList = new OCA.Sharing.FileList(
+ $el,
+ {
+ id: 'shares.overview',
+ scrollContainer: $('#app-content'),
+ config: OCA.Files.App.getFilesConfig(),
+ isOverview: true
+ }
+ );
+
+ this._extendFileList(this._overviewFileList);
+ this._overviewFileList.appName = t('files_sharing', 'Share overview');
+ this._overviewFileList.$el.find('#emptycontent').html('<div class="icon-share"></div>' +
+ '<h2>' + t('files_sharing', 'No shares') + '</h2>' +
+ '<p>' + t('files_sharing', 'Shares will show up here') + '</p>');
+ return this._overviewFileList;
+ },
+
removeSharingIn: function() {
if (this._inFileList) {
this._inFileList.$fileList.empty();
@@ -140,6 +163,12 @@ OCA.Sharing.App = {
}
},
+ removeSharingOverview: function() {
+ if (this._overviewFileList) {
+ this._overviewFileList.$fileList.empty();
+ }
+ },
+
/**
* Destroy the app
*/
@@ -152,6 +181,7 @@ OCA.Sharing.App = {
this._inFileList = null;
this._outFileList = null;
this._linkFileList = null;
+ this._overviewFileList = null;
delete this._globalActionsInitialized;
},
@@ -252,4 +282,10 @@ $(document).ready(function() {
$('#app-content-deletedshares').on('hide', function() {
OCA.Sharing.App.removeSharingDeleted();
});
+ $('#app-content-shareoverview').on('show', function(e) {
+ OCA.Sharing.App.initShareingOverview($(e.target));
+ });
+ $('#app-content-shareoverview').on('hide', function() {
+ OCA.Sharing.App.removeSharingOverview();
+ });
});
diff --git a/apps/files_sharing/js/sharedfilelist.js b/apps/files_sharing/js/sharedfilelist.js
index 973d2120b16..e89a061e992 100644
--- a/apps/files_sharing/js/sharedfilelist.js
+++ b/apps/files_sharing/js/sharedfilelist.js
@@ -40,6 +40,7 @@
_showDeleted: false,
_clientSideSort: true,
_allowSelection: false,
+ _isOverview: false,
/**
* @private
@@ -60,6 +61,9 @@
if (options && options.showDeleted) {
this._showDeleted = true;
}
+ if (options && options.isOverview) {
+ this._isOverview = true;
+ }
},
_renderRow: function() {
@@ -191,39 +195,92 @@
// there is only root
this._setCurrentDir('/', false);
+ if (!this._isOverview) {
+ if (this._showDeleted) {
+ var shares = $.ajax({
+ url: OC.linkToOCS('apps/files_sharing/api/v1', 2) + 'deletedshares',
+ /* jshint camelcase: false */
+ data: {
+ format: 'json',
+ include_tags: true
+ },
+ type: 'GET',
+ beforeSend: function (xhr) {
+ xhr.setRequestHeader('OCS-APIREQUEST', 'true');
+ },
+ });
+ } else {
+ var shares = $.ajax({
+ url: OC.linkToOCS('apps/files_sharing/api/v1') + 'shares',
+ /* jshint camelcase: false */
+ data: {
+ format: 'json',
+ shared_with_me: !!this._sharedWithUser,
+ include_tags: true
+ },
+ type: 'GET',
+ beforeSend: function (xhr) {
+ xhr.setRequestHeader('OCS-APIREQUEST', 'true');
+ },
+ });
+ }
+ var promises = [];
+ promises.push(shares);
+
+ if (!!this._sharedWithUser) {
+ var remoteShares = $.ajax({
+ url: OC.linkToOCS('apps/files_sharing/api/v1') + 'remote_shares',
+ /* jshint camelcase: false */
+ data: {
+ format: 'json',
+ include_tags: true
+ },
+ type: 'GET',
+ beforeSend: function (xhr) {
+ xhr.setRequestHeader('OCS-APIREQUEST', 'true');
+ },
+ });
+ promises.push(remoteShares);
+ } else {
+ //Push empty promise so callback gets called the same way
+ promises.push($.Deferred().resolve());
+ }
- if (this._showDeleted) {
- var shares = $.ajax({
- url: OC.linkToOCS('apps/files_sharing/api/v1', 2) + 'deletedshares',
+ this._reloadCall = $.when.apply($, promises);
+ var callBack = this.reloadCallback.bind(this);
+ return this._reloadCall.then(callBack, callBack);
+ } else {
+ var promises = [];
+ var sharedWith = $.ajax({
+ url: OC.linkToOCS('apps/files_sharing/api/v1') + 'shares',
/* jshint camelcase: false */
data: {
format: 'json',
+ shared_with_me: true,
include_tags: true
},
type: 'GET',
- beforeSend: function(xhr) {
+ beforeSend: function (xhr) {
xhr.setRequestHeader('OCS-APIREQUEST', 'true');
},
});
- } else {
- var shares = $.ajax({
+ promises.push(sharedWith);
+
+ var sharedBy = $.ajax({
url: OC.linkToOCS('apps/files_sharing/api/v1') + 'shares',
/* jshint camelcase: false */
data: {
format: 'json',
- shared_with_me: !!this._sharedWithUser,
+ shared_with_me: false,
include_tags: true
},
type: 'GET',
- beforeSend: function(xhr) {
+ beforeSend: function (xhr) {
xhr.setRequestHeader('OCS-APIREQUEST', 'true');
},
});
- }
- var promises = [];
- promises.push(shares);
+ promises.push(sharedBy);
- if (!!this._sharedWithUser) {
var remoteShares = $.ajax({
url: OC.linkToOCS('apps/files_sharing/api/v1') + 'remote_shares',
/* jshint camelcase: false */
@@ -232,19 +289,23 @@
include_tags: true
},
type: 'GET',
- beforeSend: function(xhr) {
+ beforeSend: function (xhr) {
xhr.setRequestHeader('OCS-APIREQUEST', 'true');
},
});
promises.push(remoteShares);
- } else {
- //Push empty promise so callback gets called the same way
- promises.push($.Deferred().resolve());
+
+ this._reloadCall = $.when.apply($, promises);
+ var callBack = this.reloadOverviewCallBack().bind(this);
+ return this._reloadCall.then(callBack, callBack, callBack);
}
+ },
+
+ reloadOverviewCallBack: function(sharedWith, sharedBy, remote) {
+ delete this._reloadCall;
+ this.hideMask();
- this._reloadCall = $.when.apply($, promises);
- var callBack = this.reloadCallback.bind(this);
- return this._reloadCall.then(callBack, callBack);
+ alert('foo');
},
reloadCallback: function(shares, remoteShares) {