mirror of
https://github.com/documize/community.git
synced 2025-08-09 07:25:23 +02:00
Refactor to ember-ajax
This commit is contained in:
parent
41fd9b68a2
commit
a2bf51d144
8 changed files with 387 additions and 818 deletions
|
@ -1,11 +1,11 @@
|
||||||
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
|
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
|
||||||
//
|
//
|
||||||
// This software (Documize Community Edition) is licensed under
|
// This software (Documize Community Edition) is licensed under
|
||||||
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
|
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
|
||||||
//
|
//
|
||||||
// You can operate outside the AGPL restrictions by purchasing
|
// You can operate outside the AGPL restrictions by purchasing
|
||||||
// Documize Enterprise Edition and obtaining a commercial license
|
// Documize Enterprise Edition and obtaining a commercial license
|
||||||
// by contacting <sales@documize.com>.
|
// by contacting <sales@documize.com>.
|
||||||
//
|
//
|
||||||
// https://documize.com
|
// https://documize.com
|
||||||
|
|
||||||
|
@ -14,51 +14,34 @@ import models from '../utils/model';
|
||||||
|
|
||||||
export default Ember.Service.extend({
|
export default Ember.Service.extend({
|
||||||
sessionService: Ember.inject.service('session'),
|
sessionService: Ember.inject.service('session'),
|
||||||
|
ajax: Ember.inject.service(),
|
||||||
|
|
||||||
// Returns document model for specified document id.
|
// Returns document model for specified document id.
|
||||||
getDocument(documentId) {
|
getDocument(documentId) {
|
||||||
let url = this.get('sessionService').appMeta.getUrl(`documents/${documentId}`);
|
let url = this.get('sessionService').appMeta.getUrl(`documents/${documentId}`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url).then((response) => {
|
||||||
$.ajax({
|
let doc = models.DocumentModel.create(response);
|
||||||
url: url,
|
return doc;
|
||||||
type: 'GET',
|
|
||||||
success: function(response) {
|
|
||||||
let doc = models.DocumentModel.create(response);
|
|
||||||
resolve(doc);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// Returns all documents for specified folder.
|
// Returns all documents for specified folder.
|
||||||
getAllByFolder(folderId) {
|
getAllByFolder(folderId) {
|
||||||
let appMeta = this.get('sessionService.appMeta')
|
let appMeta = this.get('sessionService.appMeta');
|
||||||
let url = appMeta.getUrl(`documents?folder=${folderId}`);
|
let url = appMeta.getUrl(`documents?folder=${folderId}`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url).then((response) => {
|
||||||
$.ajax({
|
let documents = Ember.ArrayProxy.create({
|
||||||
url: url,
|
content: Ember.A([])
|
||||||
type: 'GET',
|
|
||||||
success: function(response) {
|
|
||||||
let documents = Ember.ArrayProxy.create({
|
|
||||||
content: Ember.A([])
|
|
||||||
});
|
|
||||||
|
|
||||||
_.each(response, function(doc) {
|
|
||||||
let documentModel = models.DocumentModel.create(doc);
|
|
||||||
documents.pushObject(documentModel);
|
|
||||||
});
|
|
||||||
|
|
||||||
resolve(documents);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
_.each(response, function(doc) {
|
||||||
|
let documentModel = models.DocumentModel.create(doc);
|
||||||
|
documents.pushObject(documentModel);
|
||||||
|
});
|
||||||
|
|
||||||
|
return documents;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -66,26 +49,17 @@ export default Ember.Service.extend({
|
||||||
getAllByTag(tag) {
|
getAllByTag(tag) {
|
||||||
let url = this.get('sessionService').appMeta.getUrl(`documents?filter=tag&tag=${tag}`);
|
let url = this.get('sessionService').appMeta.getUrl(`documents?filter=tag&tag=${tag}`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url).then((response) => {
|
||||||
$.ajax({
|
let documents = Ember.ArrayProxy.create({
|
||||||
url: url,
|
content: Ember.A([])
|
||||||
type: 'GET',
|
|
||||||
success: function(response) {
|
|
||||||
let documents = Ember.ArrayProxy.create({
|
|
||||||
content: Ember.A([])
|
|
||||||
});
|
|
||||||
|
|
||||||
_.each(response, function(doc) {
|
|
||||||
let documentModel = models.DocumentModel.create(doc);
|
|
||||||
documents.pushObject(documentModel);
|
|
||||||
});
|
|
||||||
|
|
||||||
resolve(documents);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
_.each(response, function(doc) {
|
||||||
|
let documentModel = models.DocumentModel.create(doc);
|
||||||
|
documents.pushObject(documentModel);
|
||||||
|
});
|
||||||
|
|
||||||
|
return documents;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -94,371 +68,218 @@ export default Ember.Service.extend({
|
||||||
let id = doc.get('id');
|
let id = doc.get('id');
|
||||||
let url = this.get('sessionService').appMeta.getUrl(`documents/${id}`);
|
let url = this.get('sessionService').appMeta.getUrl(`documents/${id}`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url, {
|
||||||
$.ajax({
|
method: 'PUT',
|
||||||
url: url,
|
data: JSON.stringify(doc)
|
||||||
type: 'PUT',
|
}).then((response) => {
|
||||||
data: JSON.stringify(doc),
|
return response;
|
||||||
contentType: 'json',
|
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
getBatchedPages: function(documentId, payload) {
|
getBatchedPages: function(documentId, payload) {
|
||||||
var self = this;
|
let url = this.get('sessionService').appMeta.getUrl("documents/" + documentId + "/pages/batch");
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url, {
|
||||||
$.ajax({
|
method: 'POST',
|
||||||
url: self.get('sessionService').appMeta.getUrl("documents/" + documentId + "/pages/batch"),
|
data: payload
|
||||||
type: 'POST',
|
}).then((pages) => {
|
||||||
data: payload,
|
if (is.not.array(pages)) {
|
||||||
success: function(pages) {
|
pages = [];
|
||||||
if (is.not.array(pages)) {
|
}
|
||||||
pages = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
resolve(pages);
|
return pages;
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
changePageSequence: function(documentId, payload) {
|
changePageSequence: function(documentId, payload) {
|
||||||
var self = this;
|
var url = this.get('sessionService').appMeta.getUrl("documents/" + documentId + "/pages/sequence");
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').post(url, {
|
||||||
$.ajax({
|
data: JSON.stringify(payload),
|
||||||
url: self.get('sessionService').appMeta.getUrl("documents/" + documentId + "/pages/sequence"),
|
contentType: 'json'
|
||||||
type: 'POST',
|
}).then((response) => {
|
||||||
data: JSON.stringify(payload),
|
return response;
|
||||||
contentType: 'json',
|
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
changePageLevel(documentId, payload) {
|
changePageLevel(documentId, payload) {
|
||||||
var self = this;
|
let url = this.get('sessionService').appMeta.getUrl("documents/" + documentId + "/pages/level");
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').post(url, {
|
||||||
$.ajax({
|
data: JSON.stringify(payload),
|
||||||
url: self.get('sessionService').appMeta.getUrl("documents/" + documentId + "/pages/level"),
|
contentType: 'json'
|
||||||
type: 'POST',
|
}).then((response) => {
|
||||||
data: JSON.stringify(payload),
|
return response;
|
||||||
contentType: 'json',
|
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
deleteDocument: function(documentId) {
|
deleteDocument: function(documentId) {
|
||||||
var self = this;
|
let url = this.get('sessionService').appMeta.getUrl("documents/" + documentId);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url, {
|
||||||
$.ajax({
|
method: 'DELETE'
|
||||||
url: self.get('sessionService').appMeta.getUrl("documents/" + documentId),
|
}).then((response) => {
|
||||||
type: 'DELETE',
|
return response;
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
updatePage: function(documentId, pageId, payload, skipRevision) {
|
updatePage: function(documentId, pageId, payload, skipRevision) {
|
||||||
var self = this;
|
let url = this.get('sessionService').appMeta.getUrl("documents/" + documentId + "/pages/" + pageId + revision);
|
||||||
var revision = skipRevision ? "?r=true" : "?r=false";
|
var revision = skipRevision ? "?r=true" : "?r=false";
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url, {
|
||||||
$.ajax({
|
method: 'PUT',
|
||||||
url: self.get('sessionService').appMeta.getUrl("documents/" + documentId + "/pages/" + pageId + revision),
|
data: JSON.stringify(payload),
|
||||||
type: 'PUT',
|
contentType: 'json'
|
||||||
data: JSON.stringify(payload),
|
}).then((response) => {
|
||||||
contentType: 'json',
|
return response;
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// addPage inserts new page to an existing document.
|
// addPage inserts new page to an existing document.
|
||||||
addPage: function(documentId, payload) {
|
addPage: function(documentId, payload) {
|
||||||
var self = this;
|
let url = this.get('sessionService').appMeta.getUrl("documents/" + documentId + "/pages");
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').post(url, {
|
||||||
$.ajax({
|
data: JSON.stringify(payload),
|
||||||
url: self.get('sessionService').appMeta.getUrl("documents/" + documentId + "/pages"),
|
contentType: 'json'
|
||||||
type: 'POST',
|
}).then((response) => {
|
||||||
data: JSON.stringify(payload),
|
return response;
|
||||||
contentType: 'json',
|
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// Nukes multiple pages from the document.
|
// Nukes multiple pages from the document.
|
||||||
deletePages: function(documentId, pageId, payload) {
|
deletePages: function(documentId, pageId, payload) {
|
||||||
var self = this;
|
let url = this.get('sessionService').appMeta.getUrl("documents/" + documentId + "/pages/" + pageId);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').post(url, {
|
||||||
$.ajax({
|
data: JSON.stringify(payload),
|
||||||
url: self.get('sessionService').appMeta.getUrl("documents/" + documentId + "/pages/" + pageId),
|
contentType: 'json'
|
||||||
type: 'POST',
|
}).then((response) => {
|
||||||
data: JSON.stringify(payload),
|
return response;
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// Nukes a single page from the document.
|
// Nukes a single page from the document.
|
||||||
deletePage: function(documentId, pageId) {
|
deletePage: function(documentId, pageId) {
|
||||||
var self = this;
|
let url = this.get('sessionService').appMeta.getUrl("documents/" + documentId + "/pages/" + pageId);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url, {
|
||||||
$.ajax({
|
method: 'DELETE'
|
||||||
url: self.get('sessionService').appMeta.getUrl("documents/" + documentId + "/pages/" + pageId),
|
}).then((response) => {
|
||||||
type: 'DELETE',
|
return response;
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
getPageRevisions(documentId, pageId) {
|
getPageRevisions(documentId, pageId) {
|
||||||
let self = this;
|
let url = this.get('sessionService').appMeta.getUrl("documents/" + documentId + "/pages/" + pageId + "/revisions");
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url).then((response) => {
|
||||||
$.ajax({
|
return response;
|
||||||
url: self.get('sessionService').appMeta.getUrl("documents/" + documentId + "/pages/" + pageId + "/revisions"),
|
|
||||||
type: 'GET',
|
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
getPageRevisionDiff(documentId, pageId, revisionId) {
|
getPageRevisionDiff(documentId, pageId, revisionId) {
|
||||||
let self = this;
|
let url = this.get('sessionService').appMeta.getUrl("documents/" + documentId + "/pages/" + pageId + "/revisions/" + revisionId);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url, {
|
||||||
$.ajax({
|
dataType: 'text'
|
||||||
url: self.get('sessionService').appMeta.getUrl("documents/" + documentId + "/pages/" + pageId + "/revisions/" + revisionId),
|
}).then((response) => {
|
||||||
type: 'GET',
|
return response;
|
||||||
dataType: 'text',
|
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
rollbackPage(documentId, pageId, revisionId) {
|
rollbackPage(documentId, pageId, revisionId) {
|
||||||
let self = this;
|
let url = this.get('sessionService').appMeta.getUrl("documents/" + documentId + "/pages/" + pageId + "/revisions/" + revisionId);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').post(url).then((response) => {
|
||||||
$.ajax({
|
return response;
|
||||||
url: self.get('sessionService').appMeta.getUrl("documents/" + documentId + "/pages/" + pageId + "/revisions/" + revisionId),
|
|
||||||
type: 'POST',
|
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// document meta referes to number of views, edits, approvals, etc.
|
// document meta referes to number of views, edits, approvals, etc.
|
||||||
getMeta(documentId) {
|
getMeta(documentId) {
|
||||||
let self = this;
|
let url = this.get('sessionService').appMeta.getUrl(`documents/${documentId}/meta`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url).then((response) => {
|
||||||
$.ajax({
|
return response;
|
||||||
url: self.get('sessionService').appMeta.getUrl(`documents/${documentId}/meta`),
|
|
||||||
type: 'GET',
|
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// Returns all pages without the content
|
// Returns all pages without the content
|
||||||
getTableOfContents(documentId) {
|
getTableOfContents(documentId) {
|
||||||
let self = this;
|
let url = this.get('sessionService').appMeta.getUrl(`documents/${documentId}/pages?content=0`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url).then((response) => {
|
||||||
$.ajax({
|
let data = [];
|
||||||
url: self.get('sessionService').appMeta.getUrl(`documents/${documentId}/pages?content=0`),
|
_.each(response, function(obj) {
|
||||||
type: 'GET',
|
data.pushObject(models.PageModel.create(obj));
|
||||||
success: function(response) {
|
|
||||||
let data = [];
|
|
||||||
_.each(response, function(obj) {
|
|
||||||
data.pushObject(models.PageModel.create(obj));
|
|
||||||
});
|
|
||||||
resolve(data);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return data;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// Returns all document pages with content
|
// Returns all document pages with content
|
||||||
getPages(documentId) {
|
getPages(documentId) {
|
||||||
let self = this;
|
let url = this.get('sessionService').appMeta.getUrl(`documents/${documentId}/pages`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url).then((response) => {
|
||||||
$.ajax({
|
let pages = [];
|
||||||
url: self.get('sessionService').appMeta.getUrl(`documents/${documentId}/pages`),
|
|
||||||
type: 'GET',
|
|
||||||
success: function(response) {
|
|
||||||
let pages = [];
|
|
||||||
|
|
||||||
_.each(response, function(page) {
|
_.each(response, function(page) {
|
||||||
pages.pushObject(models.PageModel.create(page));
|
pages.pushObject(models.PageModel.create(page));
|
||||||
});
|
|
||||||
|
|
||||||
if (pages.length > 0) {
|
|
||||||
Ember.set(pages[0], 'firstPage', true);
|
|
||||||
}
|
|
||||||
|
|
||||||
resolve(pages);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (pages.length > 0) {
|
||||||
|
Ember.set(pages[0], 'firstPage', true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return pages;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// Returns document page with content
|
// Returns document page with content
|
||||||
getPage(documentId, pageId) {
|
getPage(documentId, pageId) {
|
||||||
let self = this;
|
let url = this.get('sessionService').appMeta.getUrl(`documents/${documentId}/pages/${pageId}`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url).then((response) => {
|
||||||
$.ajax({
|
let page = models.PageModel.create(response);
|
||||||
url: self.get('sessionService').appMeta.getUrl(`documents/${documentId}/pages/${pageId}`),
|
return page;
|
||||||
type: 'GET',
|
|
||||||
success: function(response) {
|
|
||||||
let page = models.PageModel.create(response);
|
|
||||||
resolve(page);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// Returns document page meta object
|
// Returns document page meta object
|
||||||
getPageMeta(documentId, pageId) {
|
getPageMeta(documentId, pageId) {
|
||||||
let self = this;
|
let url = this.get('sessionService').appMeta.getUrl(`documents/${documentId}/pages/${pageId}/meta`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url).then((response) => {
|
||||||
$.ajax({
|
let meta = models.PageMetaModel.create(response);
|
||||||
url: self.get('sessionService').appMeta.getUrl(`documents/${documentId}/pages/${pageId}/meta`),
|
return meta;
|
||||||
type: 'GET',
|
|
||||||
success: function(response) {
|
|
||||||
let meta = models.PageMetaModel.create(response);
|
|
||||||
resolve(meta);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// document attachments without the actual content
|
// document attachments without the actual content
|
||||||
getAttachments(documentId) {
|
getAttachments(documentId) {
|
||||||
let self = this;
|
let url = this.get('sessionService').appMeta.getUrl(`documents/${documentId}/attachments`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url).then((response) => {
|
||||||
$.ajax({
|
let data = [];
|
||||||
url: self.get('sessionService').appMeta.getUrl(`documents/${documentId}/attachments`),
|
_.each(response, function(obj) {
|
||||||
type: 'GET',
|
data.pushObject(models.AttachmentModel.create(obj));
|
||||||
success: function(response) {
|
|
||||||
let data = [];
|
|
||||||
_.each(response, function(obj) {
|
|
||||||
data.pushObject(models.AttachmentModel.create(obj));
|
|
||||||
});
|
|
||||||
resolve(data);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
return data;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// nuke an attachment
|
// nuke an attachment
|
||||||
deleteAttachment(documentId, attachmentId) {
|
deleteAttachment(documentId, attachmentId) {
|
||||||
let self = this;
|
let url = this.get('sessionService').appMeta.getUrl(`documents/${documentId}/attachments/${attachmentId}`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url, {
|
||||||
$.ajax({
|
method: 'DELETE'
|
||||||
url: self.get('sessionService').appMeta.getUrl(`documents/${documentId}/attachments/${attachmentId}`),
|
}).then((response) => {
|
||||||
type: 'DELETE',
|
return response;
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
|
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
|
||||||
//
|
//
|
||||||
// This software (Documize Community Edition) is licensed under
|
// This software (Documize Community Edition) is licensed under
|
||||||
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
|
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
|
||||||
//
|
//
|
||||||
// You can operate outside the AGPL restrictions by purchasing
|
// You can operate outside the AGPL restrictions by purchasing
|
||||||
// Documize Enterprise Edition and obtaining a commercial license
|
// Documize Enterprise Edition and obtaining a commercial license
|
||||||
// by contacting <sales@documize.com>.
|
// by contacting <sales@documize.com>.
|
||||||
//
|
//
|
||||||
// https://documize.com
|
// https://documize.com
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ import BaseService from '../services/base';
|
||||||
|
|
||||||
export default BaseService.extend({
|
export default BaseService.extend({
|
||||||
sessionService: Ember.inject.service('session'),
|
sessionService: Ember.inject.service('session'),
|
||||||
|
ajax: Ember.inject.service(),
|
||||||
|
|
||||||
// selected folder
|
// selected folder
|
||||||
currentFolder: null,
|
currentFolder: null,
|
||||||
|
@ -25,40 +26,22 @@ export default BaseService.extend({
|
||||||
let appMeta = this.get('sessionService.appMeta');
|
let appMeta = this.get('sessionService.appMeta');
|
||||||
let url = appMeta.getUrl(`folders`);
|
let url = appMeta.getUrl(`folders`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').post(url, {
|
||||||
$.ajax({
|
data: JSON.stringify(folder)
|
||||||
url: url,
|
}).then((folder)=>{
|
||||||
type: 'POST',
|
let folderModel = models.FolderModel.create(folder);
|
||||||
data: JSON.stringify(folder),
|
return folderModel;
|
||||||
contentType: 'json',
|
|
||||||
success: function(folder) {
|
|
||||||
let folderModel = models.FolderModel.create(folder);
|
|
||||||
resolve(folderModel);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// Returns folder model for specified folder id.
|
// Returns folder model for specified folder id.
|
||||||
getFolder(id) {
|
getFolder(id) {
|
||||||
let appMeta = this.get('sessionService.appMeta')
|
let appMeta = this.get('sessionService.appMeta');
|
||||||
let url = appMeta.getUrl(`folders/${id}`);
|
let url = appMeta.getUrl(`folders/${id}`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url).then((response)=>{
|
||||||
$.ajax({
|
let folder = models.FolderModel.create(response);
|
||||||
url: url,
|
return folder;
|
||||||
type: 'GET',
|
|
||||||
success: function(response) {
|
|
||||||
let folder = models.FolderModel.create(response);
|
|
||||||
resolve(folder);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -80,57 +63,31 @@ export default BaseService.extend({
|
||||||
let id = folder.get('id');
|
let id = folder.get('id');
|
||||||
let url = this.get('sessionService').appMeta.getUrl(`folders/${id}`);
|
let url = this.get('sessionService').appMeta.getUrl(`folders/${id}`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url, {
|
||||||
$.ajax({
|
method: 'PUT',
|
||||||
url: url,
|
data: JSON.stringify(folder)
|
||||||
type: 'PUT',
|
}).then((response)=>{
|
||||||
data: JSON.stringify(folder),
|
return response;
|
||||||
contentType: 'json',
|
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
remove: function(folderId, moveToId) {
|
remove: function(folderId, moveToId) {
|
||||||
var self = this;
|
var url = this.get('sessionService').appMeta.getUrl('folders/' + folderId + "/move/" + moveToId);
|
||||||
var url = self.get('sessionService').appMeta.getUrl('folders/' + folderId + "/move/" + moveToId);
|
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url, {
|
||||||
$.ajax({
|
method: 'DELETE'
|
||||||
url: url,
|
}).then((response)=>{
|
||||||
type: 'DELETE',
|
return response;
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
onboard: function(folderId, payload) {
|
onboard: function(folderId, payload) {
|
||||||
var self = this;
|
var url = this.get('sessionService').appMeta.getUrl('public/share/' + folderId);
|
||||||
var url = self.get('sessionService').appMeta.getUrl('public/share/' + folderId);
|
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').post(url, {
|
||||||
$.ajax({
|
data: payload
|
||||||
url: url,
|
}).then((response)=>{
|
||||||
type: "POST",
|
return response;
|
||||||
data: payload,
|
|
||||||
contentType: "application/json",
|
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -138,107 +95,65 @@ export default BaseService.extend({
|
||||||
getProtectedFolderInfo: function() {
|
getProtectedFolderInfo: function() {
|
||||||
var url = this.get('sessionService').appMeta.getUrl('folders?filter=viewers');
|
var url = this.get('sessionService').appMeta.getUrl('folders?filter=viewers');
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url).then((response)=>{
|
||||||
$.ajax({
|
let data = [];
|
||||||
url: url,
|
_.each(response, function(obj) {
|
||||||
type: 'GET',
|
data.pushObject(models.ProtectedFolderParticipant.create(obj));
|
||||||
success: function(response) {
|
|
||||||
let data = [];
|
|
||||||
_.each(response, function(obj) {
|
|
||||||
data.pushObject(models.ProtectedFolderParticipant.create(obj));
|
|
||||||
});
|
|
||||||
|
|
||||||
resolve(data);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return data;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// reloads and caches folders.
|
// reloads and caches folders.
|
||||||
reload() {
|
reload() {
|
||||||
let appMeta = this.get('sessionService.appMeta')
|
let appMeta = this.get('sessionService.appMeta');
|
||||||
let url = appMeta.getUrl(`folders`);
|
let url = appMeta.getUrl(`folders`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url).then((response)=>{
|
||||||
$.ajax({
|
let data = [];
|
||||||
url: url,
|
_.each(response, function(obj) {
|
||||||
type: 'GET',
|
data.pushObject(models.FolderModel.create(obj));
|
||||||
success: function(response) {
|
|
||||||
let data = [];
|
|
||||||
_.each(response, function(obj) {
|
|
||||||
data.pushObject(models.FolderModel.create(obj));
|
|
||||||
});
|
|
||||||
resolve(data);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return data;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// so who can see/edit this folder?
|
// so who can see/edit this folder?
|
||||||
getPermissions(folderId) {
|
getPermissions(folderId) {
|
||||||
let self = this;
|
let url = this.get('sessionService').appMeta.getUrl(`folders/${folderId}/permissions`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url).then((response)=>{
|
||||||
$.ajax({
|
let data = [];
|
||||||
url: self.get('sessionService').appMeta.getUrl(`folders/${folderId}/permissions`),
|
_.each(response, function(obj) {
|
||||||
type: 'GET',
|
data.pushObject(models.FolderPermissionModel.create(obj));
|
||||||
success: function(response) {
|
|
||||||
let data = [];
|
|
||||||
_.each(response, function(obj) {
|
|
||||||
data.pushObject(models.FolderPermissionModel.create(obj));
|
|
||||||
});
|
|
||||||
resolve(data);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return data;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// persist folder permissions
|
// persist folder permissions
|
||||||
savePermissions(folderId, payload) {
|
savePermissions(folderId, payload) {
|
||||||
let self = this;
|
let url = this.get('sessionService').appMeta.getUrl(`folders/${folderId}/permissions`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url, {
|
||||||
$.ajax({
|
method: 'PUT',
|
||||||
url: self.get('sessionService').appMeta.getUrl(`folders/${folderId}/permissions`),
|
data: JSON.stringify(payload)
|
||||||
type: 'PUT',
|
}).then((response) => {
|
||||||
contentType: 'json',
|
return response;
|
||||||
data: JSON.stringify(payload),
|
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// share this folder with new users!
|
// share this folder with new users!
|
||||||
share(folderId, invitation) {
|
share(folderId, invitation) {
|
||||||
let self = this;
|
let url = this.get('sessionService').appMeta.getUrl(`folders/${folderId}/invitation`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').post(url, {
|
||||||
$.ajax({
|
data: JSON.stringify(invitation)
|
||||||
url: self.get('sessionService').appMeta.getUrl(`folders/${folderId}/invitation`),
|
}).then((response) => {
|
||||||
type: 'POST',
|
return response;
|
||||||
contentType: 'json',
|
|
||||||
data: JSON.stringify(invitation),
|
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -258,43 +173,38 @@ export default BaseService.extend({
|
||||||
}
|
}
|
||||||
|
|
||||||
let url = this.get('sessionService').appMeta.getUrl('users/' + userId + "/permissions");
|
let url = this.get('sessionService').appMeta.getUrl('users/' + userId + "/permissions");
|
||||||
let self = this;
|
|
||||||
|
|
||||||
$.ajax({
|
return this.get('ajax').request(url).then((folderPermissions) => {
|
||||||
url: url,
|
// safety check
|
||||||
type: 'GET',
|
this.set('canEditCurrentFolder', false);
|
||||||
success: function(folderPermissions) {
|
|
||||||
// safety check
|
|
||||||
self.set('canEditCurrentFolder', false);
|
|
||||||
|
|
||||||
if (folderPermissions.length === 0) {
|
if (folderPermissions.length === 0) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let result = [];
|
||||||
|
let folderId = folder.get('id');
|
||||||
|
|
||||||
|
folderPermissions.forEach(function(item) {
|
||||||
|
if (item.folderId === folderId) {
|
||||||
|
result.push(item);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
let canEdit = false;
|
||||||
|
|
||||||
|
result.forEach(function(permission) {
|
||||||
|
if (permission.userId === userId) {
|
||||||
|
canEdit = permission.canEdit;
|
||||||
}
|
}
|
||||||
|
|
||||||
let result = [];
|
if (permission.userId === "" && !canEdit) {
|
||||||
let folderId = folder.get('id');
|
canEdit = permission.canEdit;
|
||||||
|
}
|
||||||
folderPermissions.forEach(function(item) {
|
});
|
||||||
if (item.folderId === folderId) {
|
Ember.run(() => {
|
||||||
result.push(item);
|
this.set('canEditCurrentFolder', canEdit && this.get('sessionService').authenticated);
|
||||||
}
|
});
|
||||||
});
|
|
||||||
|
|
||||||
let canEdit = false;
|
|
||||||
|
|
||||||
result.forEach(function(permission) {
|
|
||||||
if (permission.userId === userId) {
|
|
||||||
canEdit = permission.canEdit;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (permission.userId === "" && !canEdit) {
|
|
||||||
canEdit = permission.canEdit;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Ember.run(() => {
|
|
||||||
self.set('canEditCurrentFolder', canEdit && self.get('sessionService').authenticated);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
|
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
|
||||||
//
|
//
|
||||||
// This software (Documize Community Edition) is licensed under
|
// This software (Documize Community Edition) is licensed under
|
||||||
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
|
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
|
||||||
//
|
//
|
||||||
// You can operate outside the AGPL restrictions by purchasing
|
// You can operate outside the AGPL restrictions by purchasing
|
||||||
// Documize Enterprise Edition and obtaining a commercial license
|
// Documize Enterprise Edition and obtaining a commercial license
|
||||||
// by contacting <sales@documize.com>.
|
// by contacting <sales@documize.com>.
|
||||||
//
|
//
|
||||||
// https://documize.com
|
// https://documize.com
|
||||||
|
|
||||||
|
@ -14,23 +14,15 @@ import models from '../utils/model';
|
||||||
|
|
||||||
export default Ember.Service.extend({
|
export default Ember.Service.extend({
|
||||||
sessionService: Ember.inject.service('session'),
|
sessionService: Ember.inject.service('session'),
|
||||||
|
ajax: Ember.inject.service(),
|
||||||
|
|
||||||
// Returns attributes for specified org id.
|
// Returns attributes for specified org id.
|
||||||
getOrg(id) {
|
getOrg(id) {
|
||||||
let url = this.get('sessionService').appMeta.getUrl(`organizations/${id}`);
|
let url = this.get('sessionService').appMeta.getUrl(`organizations/${id}`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url).then((response) =>{
|
||||||
$.ajax({
|
let org = models.OrganizationModel.create(response);
|
||||||
url: url,
|
return org;
|
||||||
type: 'GET',
|
|
||||||
success: function(response) {
|
|
||||||
let org = models.OrganizationModel.create(response);
|
|
||||||
resolve(org);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -43,19 +35,11 @@ export default Ember.Service.extend({
|
||||||
this.get('sessionService').get('appMeta').setSafe('message', org.message);
|
this.get('sessionService').get('appMeta').setSafe('message', org.message);
|
||||||
this.get('sessionService').get('appMeta').setSafe('title', org.title);
|
this.get('sessionService').get('appMeta').setSafe('title', org.title);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url, {
|
||||||
$.ajax({
|
method: 'PUT',
|
||||||
url: url,
|
data: JSON.stringify(org)
|
||||||
type: 'PUT',
|
}).then((response) => {
|
||||||
data: JSON.stringify(org),
|
return response;
|
||||||
contentType: 'json',
|
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
|
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
|
||||||
//
|
//
|
||||||
// This software (Documize Community Edition) is licensed under
|
// This software (Documize Community Edition) is licensed under
|
||||||
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
|
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
|
||||||
//
|
//
|
||||||
// You can operate outside the AGPL restrictions by purchasing
|
// You can operate outside the AGPL restrictions by purchasing
|
||||||
// Documize Enterprise Edition and obtaining a commercial license
|
// Documize Enterprise Edition and obtaining a commercial license
|
||||||
// by contacting <sales@documize.com>.
|
// by contacting <sales@documize.com>.
|
||||||
//
|
//
|
||||||
// https://documize.com
|
// https://documize.com
|
||||||
|
|
||||||
|
@ -13,22 +13,14 @@ import Ember from 'ember';
|
||||||
|
|
||||||
export default Ember.Service.extend({
|
export default Ember.Service.extend({
|
||||||
sessionService: Ember.inject.service('session'),
|
sessionService: Ember.inject.service('session'),
|
||||||
|
ajax: Ember.inject.service(),
|
||||||
|
|
||||||
// getUsers returns all users for organization.
|
// getUsers returns all users for organization.
|
||||||
find(keywords) {
|
find(keywords) {
|
||||||
let url = this.get('sessionService').appMeta.getUrl("search?keywords=" + encodeURIComponent(keywords));
|
let url = this.get('sessionService').appMeta.getUrl("search?keywords=" + encodeURIComponent(keywords));
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url).then((response) => {
|
||||||
$.ajax({
|
return response;
|
||||||
url: url,
|
|
||||||
type: 'GET',
|
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
|
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
|
||||||
//
|
//
|
||||||
// This software (Documize Community Edition) is licensed under
|
// This software (Documize Community Edition) is licensed under
|
||||||
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
|
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
|
||||||
//
|
//
|
||||||
// You can operate outside the AGPL restrictions by purchasing
|
// You can operate outside the AGPL restrictions by purchasing
|
||||||
// Documize Enterprise Edition and obtaining a commercial license
|
// Documize Enterprise Edition and obtaining a commercial license
|
||||||
// by contacting <sales@documize.com>.
|
// by contacting <sales@documize.com>.
|
||||||
//
|
//
|
||||||
// https://documize.com
|
// https://documize.com
|
||||||
|
|
||||||
|
@ -15,26 +15,21 @@ import BaseService from '../services/base';
|
||||||
|
|
||||||
export default BaseService.extend({
|
export default BaseService.extend({
|
||||||
sessionService: Ember.inject.service('session'),
|
sessionService: Ember.inject.service('session'),
|
||||||
|
ajax: Ember.inject.service(),
|
||||||
|
|
||||||
// Returns all available sections.
|
// Returns all available sections.
|
||||||
getAll() {
|
getAll() {
|
||||||
let url = this.get('sessionService').appMeta.getUrl(`sections`);
|
let url = this.get('sessionService').appMeta.getUrl(`sections`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url,{
|
||||||
$.ajax({
|
method: 'GET'
|
||||||
url: url,
|
}).then((response)=>{
|
||||||
type: 'GET',
|
let data = [];
|
||||||
success: function(response) {
|
_.each(response, function(obj) {
|
||||||
let data = [];
|
data.pushObject(models.SectionModel.create(obj));
|
||||||
_.each(response, function(obj) {
|
|
||||||
data.pushObject(models.SectionModel.create(obj));
|
|
||||||
});
|
|
||||||
resolve(data);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return data;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -46,19 +41,10 @@ export default BaseService.extend({
|
||||||
let endpoint = `sections?documentID=${documentId}§ion=${section}&method=${method}`;
|
let endpoint = `sections?documentID=${documentId}§ion=${section}&method=${method}`;
|
||||||
let url = this.get('sessionService').appMeta.getUrl(endpoint);
|
let url = this.get('sessionService').appMeta.getUrl(endpoint);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').post(url, {
|
||||||
$.ajax({
|
data: JSON.stringify(data)
|
||||||
url: url,
|
}).then((response)=>{
|
||||||
type: 'POST',
|
return response;
|
||||||
data: JSON.stringify(data),
|
|
||||||
contentType: "application/json",
|
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -66,26 +52,16 @@ export default BaseService.extend({
|
||||||
refresh(documentId) {
|
refresh(documentId) {
|
||||||
let url = this.get('sessionService').appMeta.getUrl(`sections/refresh?documentID=${documentId}`);
|
let url = this.get('sessionService').appMeta.getUrl(`sections/refresh?documentID=${documentId}`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url).then((response)=>{
|
||||||
$.ajax({
|
let pages = [];
|
||||||
url: url,
|
|
||||||
type: 'GET',
|
|
||||||
success: function(response) {
|
|
||||||
// resolve(response);
|
|
||||||
let pages = [];
|
|
||||||
|
|
||||||
if (is.not.null(response) && is.array(response) && response.length > 0) {
|
if (is.not.null(response) && is.array(response) && response.length > 0) {
|
||||||
_.each(response, function(page) {
|
_.each(response, function(page) {
|
||||||
pages.pushObject(models.PageModel.create(page));
|
pages.pushObject(models.PageModel.create(page));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
resolve(pages);
|
return pages;
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -24,6 +24,7 @@ export default Ember.Service.extend({
|
||||||
authenticated: false,
|
authenticated: false,
|
||||||
folderPermissions: null,
|
folderPermissions: null,
|
||||||
currentFolder: null,
|
currentFolder: null,
|
||||||
|
ajax: Ember.inject.service(),
|
||||||
|
|
||||||
isAdmin: function() {
|
isAdmin: function() {
|
||||||
if (this.authenticated && is.not.null(this.user) && this.user.id !== "") {
|
if (this.authenticated && is.not.null(this.user) && this.user.id !== "") {
|
||||||
|
@ -50,68 +51,48 @@ export default Ember.Service.extend({
|
||||||
|
|
||||||
// Authentication
|
// Authentication
|
||||||
login: function(credentials) {
|
login: function(credentials) {
|
||||||
var self = this;
|
let url = this.appMeta.getUrl('public/authenticate');
|
||||||
var url = self.appMeta.getUrl('public/authenticate');
|
|
||||||
let domain = netUtil.getSubdomain();
|
let domain = netUtil.getSubdomain();
|
||||||
|
|
||||||
this.clearSession();
|
this.clearSession();
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
if (is.empty(credentials.email) || is.empty(credentials.password)) {
|
||||||
if (is.empty(credentials.email) || is.empty(credentials.password)) {
|
return Ember.RSVP.reject("invalid");
|
||||||
reject("invalid");
|
}
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var encoded = encodingUtil.Base64.encode(domain + ":" + credentials.email + ":" + credentials.password);
|
var encoded = encodingUtil.Base64.encode(domain + ":" + credentials.email + ":" + credentials.password);
|
||||||
var header = {
|
var headers = {
|
||||||
'Authorization': 'Basic ' + encoded
|
'Authorization': 'Basic ' + encoded
|
||||||
};
|
};
|
||||||
|
|
||||||
$.ajax({
|
return this.get('ajax').post(url, {
|
||||||
url: url,
|
headers
|
||||||
type: 'POST',
|
}).then((response)=>{
|
||||||
headers: header,
|
this.setSession(response.token, models.UserModel.create(response.user));
|
||||||
success: function(response) {
|
this.get('ready', true);
|
||||||
self.setSession(response.token, models.UserModel.create(response.user));
|
return response;
|
||||||
self.get('ready', true);
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// SSO in the form of 'domain:email:password'
|
// SSO in the form of 'domain:email:password'
|
||||||
sso: function(credentials) {
|
sso: function(credentials) {
|
||||||
var self = this;
|
let url = this.appMeta.getUrl('public/authenticate');
|
||||||
var url = self.appMeta.getUrl('public/authenticate');
|
|
||||||
this.clearSession();
|
this.clearSession();
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
if (is.empty(credentials.email) || is.empty(credentials.password)) {
|
||||||
if (is.empty(credentials.email) || is.empty(credentials.password)) {
|
return Ember.RSVP.reject("invalid");
|
||||||
reject("invalid");
|
}
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var header = {
|
var headers = {
|
||||||
'Authorization': 'Basic ' + credentials
|
'Authorization': 'Basic ' + credentials
|
||||||
};
|
};
|
||||||
|
|
||||||
$.ajax({
|
return this.get('ajax').post(url, {
|
||||||
url: url,
|
headers
|
||||||
type: 'POST',
|
}).then((response)=>{
|
||||||
headers: header,
|
this.setSession(response.token, models.UserModel.create(response.user));
|
||||||
success: function(response) {
|
this.get('ready', true);
|
||||||
self.setSession(response.token, models.UserModel.create(response.user));
|
resolve(response);
|
||||||
self.get('ready', true);
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -192,51 +173,35 @@ export default Ember.Service.extend({
|
||||||
// this.set('popupBlocked', false);
|
// this.set('popupBlocked', false);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve) {
|
let url = this.get('appMeta').getUrl("public/meta");
|
||||||
$.ajax({
|
|
||||||
url: self.get('appMeta').getUrl("public/meta"),
|
|
||||||
type: 'GET',
|
|
||||||
contentType: 'json',
|
|
||||||
success: function(response) {
|
|
||||||
self.get('appMeta').set('orgId', response.orgId);
|
|
||||||
self.get('appMeta').setSafe('title', response.title);
|
|
||||||
self.get('appMeta').set('version', response.version);
|
|
||||||
self.get('appMeta').setSafe('message', response.message);
|
|
||||||
self.get('appMeta').set('allowAnonymousAccess', response.allowAnonymousAccess);
|
|
||||||
|
|
||||||
let token = self.getSessionItem('token');
|
return this.get('ajax').request(url)
|
||||||
|
.then((response) => {
|
||||||
|
this.get('appMeta').set('orgId', response.orgId);
|
||||||
|
this.get('appMeta').setSafe('title', response.title);
|
||||||
|
this.get('appMeta').set('version', response.version);
|
||||||
|
this.get('appMeta').setSafe('message', response.message);
|
||||||
|
this.get('appMeta').set('allowAnonymousAccess', response.allowAnonymousAccess);
|
||||||
|
|
||||||
if (is.not.undefined(token)) {
|
let token = this.getSessionItem('token');
|
||||||
// We now validate current token
|
|
||||||
let tokenCheckUrl = self.get('appMeta').getUrl(`public/validate?token=${token}`);
|
|
||||||
|
|
||||||
$.ajax({
|
if (is.not.undefined(token)) {
|
||||||
url: tokenCheckUrl,
|
// We now validate current token
|
||||||
type: 'GET',
|
let tokenCheckUrl = this.get('appMeta').getUrl(`public/validate?token=${token}`);
|
||||||
contentType: 'json',
|
|
||||||
success: function(user) {
|
return this.get('ajax').request(tokenCheckUrl, {
|
||||||
self.setSession(token, models.UserModel.create(user));
|
method: 'GET',
|
||||||
self.set('ready', true);
|
contentType: 'json'
|
||||||
resolve();
|
}).then((response) => {
|
||||||
},
|
this.setSession(token, models.UserModel.create(user));
|
||||||
error: function(reason) {
|
this.set('ready', true);
|
||||||
if (reason.status === 401 || reason.status === 403) {
|
}).catch((reason) => {
|
||||||
localStorage.clear();
|
|
||||||
window.location.href = "/auth/login";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
self.set('ready', true);
|
|
||||||
resolve();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
if (reason.status === 401 || reason.status === 403) {
|
if (reason.status === 401 || reason.status === 403) {
|
||||||
window.location.href = "https://documize.com";
|
localStorage.clear();
|
||||||
|
window.location.href = "/auth/login";
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
});
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
|
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
|
||||||
//
|
//
|
||||||
// This software (Documize Community Edition) is licensed under
|
// This software (Documize Community Edition) is licensed under
|
||||||
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
|
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
|
||||||
//
|
//
|
||||||
// You can operate outside the AGPL restrictions by purchasing
|
// You can operate outside the AGPL restrictions by purchasing
|
||||||
// Documize Enterprise Edition and obtaining a commercial license
|
// Documize Enterprise Edition and obtaining a commercial license
|
||||||
// by contacting <sales@documize.com>.
|
// by contacting <sales@documize.com>.
|
||||||
//
|
//
|
||||||
// https://documize.com
|
// https://documize.com
|
||||||
|
|
||||||
|
@ -14,85 +14,55 @@ import models from '../utils/model';
|
||||||
|
|
||||||
export default Ember.Service.extend({
|
export default Ember.Service.extend({
|
||||||
sessionService: Ember.inject.service('session'),
|
sessionService: Ember.inject.service('session'),
|
||||||
|
ajax: Ember.inject.service(),
|
||||||
|
|
||||||
importStockTemplate: function(folderId, templateId) {
|
importStockTemplate: function(folderId, templateId) {
|
||||||
let self = this;
|
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
let url = this.get('sessionService').appMeta.getUrl("templates/" + templateId + "/folder/" + folderId + "?type=stock");
|
||||||
$.ajax({
|
|
||||||
url: self.get('sessionService').appMeta.getUrl("templates/" + templateId + "/folder/" + folderId + "?type=stock"),
|
return this.get('ajax').post(url).then((response)=>{
|
||||||
type: 'POST',
|
return response;
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
importSavedTemplate: function(folderId, templateId) {
|
importSavedTemplate: function(folderId, templateId) {
|
||||||
let self = this;
|
let url = this.get('sessionService').appMeta.getUrl("templates/" + templateId + "/folder/" + folderId + "?type=saved");
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').post(url).then((doc)=>{
|
||||||
$.ajax({
|
let docModel = models.DocumentModel.create(doc);
|
||||||
url: self.get('sessionService').appMeta.getUrl("templates/" + templateId + "/folder/" + folderId + "?type=saved"),
|
return docModel;
|
||||||
type: 'POST',
|
|
||||||
success: function(doc) {
|
|
||||||
let docModel = models.DocumentModel.create(doc);
|
|
||||||
resolve(docModel);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
getSavedTemplates() {
|
getSavedTemplates() {
|
||||||
let self = this;
|
let url = this.get('sessionService').appMeta.getUrl("templates");
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url, {
|
||||||
$.ajax({
|
type: 'GET'
|
||||||
url: self.get('sessionService').appMeta.getUrl("templates"),
|
}).then((response) => {
|
||||||
type: 'GET',
|
if (is.not.array(response)) {
|
||||||
success: function(response) {
|
response = [];
|
||||||
if (is.not.array(response)) {
|
}
|
||||||
response = [];
|
let templates = Ember.ArrayProxy.create({
|
||||||
}
|
content: Ember.A([])
|
||||||
let templates = Ember.ArrayProxy.create({
|
|
||||||
content: Ember.A([])
|
|
||||||
});
|
|
||||||
|
|
||||||
_.each(response, function(template) {
|
|
||||||
let templateModel = models.TemplateModel.create(template);
|
|
||||||
templates.pushObject(templateModel);
|
|
||||||
});
|
|
||||||
|
|
||||||
resolve(templates);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
_.each(response, function(template) {
|
||||||
|
let templateModel = models.TemplateModel.create(template);
|
||||||
|
templates.pushObject(templateModel);
|
||||||
|
});
|
||||||
|
|
||||||
|
return templates;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
getStockTemplates() {
|
getStockTemplates() {
|
||||||
let self = this;
|
let url = this.get('sessionService').appMeta.getUrl("templates/stock");
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url, {
|
||||||
$.ajax({
|
type: 'GET'
|
||||||
url: self.get('sessionService').appMeta.getUrl("templates/stock"),
|
}).then((response) => {
|
||||||
type: 'GET',
|
return response;
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
|
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
|
||||||
//
|
//
|
||||||
// This software (Documize Community Edition) is licensed under
|
// This software (Documize Community Edition) is licensed under
|
||||||
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
|
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
|
||||||
//
|
//
|
||||||
// You can operate outside the AGPL restrictions by purchasing
|
// You can operate outside the AGPL restrictions by purchasing
|
||||||
// Documize Enterprise Edition and obtaining a commercial license
|
// Documize Enterprise Edition and obtaining a commercial license
|
||||||
// by contacting <sales@documize.com>.
|
// by contacting <sales@documize.com>.
|
||||||
//
|
//
|
||||||
// https://documize.com
|
// https://documize.com
|
||||||
|
|
||||||
|
@ -33,17 +33,10 @@ export default Ember.Service.extend({
|
||||||
getUser(userId) {
|
getUser(userId) {
|
||||||
let url = this.get('sessionService').appMeta.getUrl(`users/${userId}`);
|
let url = this.get('sessionService').appMeta.getUrl(`users/${userId}`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url, {
|
||||||
$.ajax({
|
type: 'GET'
|
||||||
url: url,
|
}).then((response) => {
|
||||||
type: 'GET',
|
return models.UserModel.create(response);
|
||||||
success: function(response) {
|
|
||||||
resolve(models.UserModel.create(response));
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -62,22 +55,13 @@ export default Ember.Service.extend({
|
||||||
getFolderUsers(folderId) {
|
getFolderUsers(folderId) {
|
||||||
let url = this.get('sessionService').appMeta.getUrl(`users/folder/${folderId}`);
|
let url = this.get('sessionService').appMeta.getUrl(`users/folder/${folderId}`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url).then((response)=>{
|
||||||
$.ajax({
|
let data = [];
|
||||||
url: url,
|
_.each(response, function(obj) {
|
||||||
type: 'GET',
|
data.pushObject(models.UserModel.create(obj));
|
||||||
success: function(response) {
|
|
||||||
let data = [];
|
|
||||||
_.each(response, function(obj) {
|
|
||||||
data.pushObject(models.UserModel.create(obj));
|
|
||||||
});
|
|
||||||
|
|
||||||
resolve(data);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return data;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -97,18 +81,10 @@ export default Ember.Service.extend({
|
||||||
updatePassword(userId, password) {
|
updatePassword(userId, password) {
|
||||||
let url = this.get('sessionService').appMeta.getUrl(`users/${userId}/password`);
|
let url = this.get('sessionService').appMeta.getUrl(`users/${userId}/password`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').post(url, {
|
||||||
$.ajax({
|
data: password
|
||||||
url: url,
|
}).then((response)=>{
|
||||||
type: 'POST',
|
return response;
|
||||||
data: password,
|
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -116,46 +92,30 @@ export default Ember.Service.extend({
|
||||||
remove(userId) {
|
remove(userId) {
|
||||||
let url = this.get('sessionService').appMeta.getUrl(`users/${userId}`);
|
let url = this.get('sessionService').appMeta.getUrl(`users/${userId}`);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
return this.get('ajax').request(url, {
|
||||||
$.ajax({
|
method: 'DELETE'
|
||||||
url: url,
|
}).then((response) => {
|
||||||
type: 'DELETE',
|
return response;
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// Request password reset.
|
// Request password reset.
|
||||||
forgotPassword(email) {
|
forgotPassword(email) {
|
||||||
var url = this.get('sessionService').appMeta.getUrl('public/forgot');
|
let url = this.get('sessionService').appMeta.getUrl('public/forgot');
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
if (is.empty(email)) {
|
||||||
if (is.empty(email)) {
|
reject("invalid");
|
||||||
reject("invalid");
|
return;
|
||||||
return;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
var data = JSON.stringify({
|
let data = JSON.stringify({
|
||||||
Email: email
|
Email: email
|
||||||
});
|
});
|
||||||
|
|
||||||
$.ajax({
|
return this.request('ajax').post(url, {
|
||||||
url: url,
|
data: data
|
||||||
type: 'POST',
|
}).then((response)=>{
|
||||||
dataType: 'json',
|
return response;
|
||||||
data: data,
|
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -163,23 +123,14 @@ export default Ember.Service.extend({
|
||||||
resetPassword(token, password) {
|
resetPassword(token, password) {
|
||||||
var url = this.get('sessionService').appMeta.getUrl('public/reset/' + token);
|
var url = this.get('sessionService').appMeta.getUrl('public/reset/' + token);
|
||||||
|
|
||||||
return new Ember.RSVP.Promise(function(resolve, reject) {
|
if (is.empty(token) || is.empty(password)) {
|
||||||
if (is.empty(token) || is.empty(password)) {
|
return Ember.RSVP.reject("invalid");
|
||||||
reject("invalid");
|
}
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$.ajax({
|
return this.request('ajax').post(url, {
|
||||||
url: url,
|
data: password
|
||||||
type: 'POST',
|
}).then((response)=>{
|
||||||
data: password,
|
return response;
|
||||||
success: function(response) {
|
|
||||||
resolve(response);
|
|
||||||
},
|
|
||||||
error: function(reason) {
|
|
||||||
reject(reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue