Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2019-01-23 18:34:56 +0300
committerJulius Härtl <jus@bitgrid.net>2019-03-01 22:56:17 +0300
commit7843b8b1fa4dff3d3d4fac0fb81f144e5df1e34f (patch)
tree91f6d3e0ce782b439c5a0f4b77b916b0636c2359 /core
parent51057c539feace8381ab83310b307749fec60f91 (diff)
Adjust OCP.Collaboration
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Diffstat (limited to 'core')
-rw-r--r--core/js/core.json3
-rw-r--r--core/src/OCP/collaboration.js156
2 files changed, 28 insertions, 131 deletions
diff --git a/core/js/core.json b/core/js/core.json
index ae2e9a87a94..5bf6512d6a2 100644
--- a/core/js/core.json
+++ b/core/js/core.json
@@ -26,7 +26,6 @@
"systemtags/systemtagmodel.js",
"systemtags/systemtagscollection.js",
"systemtags/systemtagsmappingcollection.js",
- "systemtags/systemtagsinputfield.js",
- "collaboration.js"
+ "systemtags/systemtagsinputfield.js"
]
}
diff --git a/core/src/OCP/collaboration.js b/core/src/OCP/collaboration.js
index a4b0fc24e66..a74834e741e 100644
--- a/core/src/OCP/collaboration.js
+++ b/core/src/OCP/collaboration.js
@@ -20,144 +20,42 @@
*
*/
-let resourceSelectHandlers = {};
-
-export default {
-
- /**
- * @class
- * @param resourceType
- * @param resourceId
- * @constructor
- */
- Resource: function(resourceType, resourceId) {
- this.resourceType = '' + resourceType;
- this.resourceId = '' + resourceId;
- },
-
- /**
- * @class
- * @param id
- * @param name
- * @constructor
- */
- Collection: function(id, name) {
- this.id = '' + id;
- this.name = '' + name;
- this.resources = [];
- },
-
- /**
- *
- * @param resourceType
- * @param title
- * @param selectorCallback
- */
- registerResourceSelector: function(resourceType, title, selectorCallback) {
- if (!this.resourceSelectHandlers.hasOwnProperty(resourceType)) {
- this.resourceSelectHandlers[resourceType] = {
- title: title,
- callback: selectorCallback
- };
- }
- },
+/**
+ * @typedef TypeDefinition
+ * @method {callback} action This action is executed to let the user select a resource
+ * @param {string} icon Contains the icon css class for the type
+ * @constructor
+ */
- getResourceTypes: function() {
- return this.resourceSelectHandlers;
- },
+/**
+ * @type {TypeDefinition[]}
+ **/
+let types = {};
+export default {
/**
- * Select a resource for a given type
*
- * @param resourceType
- * @param successCallback
- * @param abortCallback
+ * @param type
+ * @param {TypeDefinition} typeDefinition
*/
- selectResource: function (resourceType, successCallback, abortCallback) {
- this.resourceSelectHandlers[resourceType].callback(successCallback, abortCallback);
+ registerType(type, typeDefinition) {
+ console.log('Type ' + type + ' registered')
+ types[type] = typeDefinition;
},
-
- getCollectionsByResource: function(resourceType, resourceId) {
- // TODO: to implement
+ trigger(type) {
+ return types[type].action()
},
-
- /**
- * Create a new collection from two resources
- *
- * @param name
- * @param resource1
- * @param resource2
- * @param successCallback
- * @param errorCallback
- */
- createCollection: function (name, resource1, resource2, successCallback, errorCallback) {
- var self = this;
- this.createCollectionOnResource(name, resource1, function (collection) {
- self.addResource(collection, resource2, function (collection) {
- successCallback(collection);
- })
- });
+ getTypes() {
+ return Object.keys(types);
},
-
- /**
- *
- * @param name
- * @param resource1
- * @param successCallback
- * @param errorCallback
- */
- createCollectionOnResource: function (name, resource1, successCallback, errorCallback) {
- var data = {
- name: name,
- resourceType: resource1.resourceType,
- resourceId: ''+resource1.resourceId,
- };
- var request = new XMLHttpRequest();
- request.open('POST', OC.linkToOCS('collaboration/resources/' + data.resourceType, 2) + data.resourceId + '?format=json', true);
- request.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
- request.setRequestHeader('oc_requesttoken', OC.requestToken);
- request.setRequestHeader('OCS-APIRequest', true);
- request.onreadystatechange = function () {
- if(request.readyState === 4 && request.status === 200) {
- var result = JSON.parse(request.responseText);
- var collection = new OCP.Collaboration.Collection(result.ocs.data.id, result.ocs.data.name);
- collection.resources.push(resource1);
- successCallback(collection);
- }
- };
- request.send(JSON.stringify(data));
+ getIcon(type) {
+ return types[type].icon;
},
-
- /**
- * Add a resource to a collection
- *
- * @param {OCP.Collaboration.Collection} collection
- * @param resource
- * @param successCallback
- * @param resource
- */
- addResource: function (collection, resource, successCallback) {
- var data = {
- resourceType: resource.resourceType,
- resourceId: '' + resource.resourceId,
- };
- var request = new XMLHttpRequest();
- request.open('POST', OC.linkToOCS('collaboration/resources/collections', 2) + collection.id + '?format=json', true);
- request.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
- request.setRequestHeader('oc_requesttoken', OC.requestToken);
- request.setRequestHeader('OCS-APIRequest', true);
- request.onreadystatechange = function () {
- if(request.readyState === 4 && request.status === 200) {
- var result = JSON.parse(request.responseText);
- collection.resources.push(resource);
- successCallback(collection);
- }
- };
- request.send(JSON.stringify(data));
+ getLabel(type) {
+ return t('files_sharing', 'Link to a {label}', { label: types[type].typeString || type }, 1)
},
-
- removeResource: function(collection, resource) {
- // TODO: to implement
+ getLink(type, id) {
+ /* TODO: Allow action to be executed instead of href as well */
+ return typeof types[type] !== 'undefined' ? types[type].link(id) : '';
}
-
};