mirror of
https://git.rwth-aachen.de/acs/public/villas/web/
synced 2025-03-23 00:00:02 +01:00
105 lines
2.7 KiB
JavaScript
105 lines
2.7 KiB
JavaScript
/**
|
|
* File: widget-image.js
|
|
* Author: Markus Grigull <mgrigull@eonerc.rwth-aachen.de>
|
|
* Date: 05.12.2016
|
|
* Copyright: 2016, Institute for Automation of Complex Power Systems, EONERC
|
|
* This file is part of VILLASweb. All Rights Reserved. Proprietary and confidential.
|
|
* Unauthorized copying of this file, via any medium is strictly prohibited.
|
|
**********************************************************************************/
|
|
|
|
import WidgetAbstract from './widget-abstract';
|
|
import Ember from 'ember';
|
|
import ENV from '../config/environment';
|
|
import EmberUploader from 'ember-uploader';
|
|
|
|
const {
|
|
inject: { service }
|
|
} = Ember;
|
|
|
|
export default WidgetAbstract.extend({
|
|
classNames: [ 'widgetImage' ],
|
|
|
|
session: service('session'),
|
|
sessionUser: Ember.inject.service('session-user'),
|
|
store: service(),
|
|
|
|
url: 'http://' + ENV.APP.API_HOST,
|
|
namespace: 'api/v1',
|
|
|
|
doubleClick() {
|
|
if (this.get('editing') === true) {
|
|
// prepare modal
|
|
this.set('name', this.get('widget.name'));
|
|
|
|
// show modal
|
|
this.set('isShowingModal', true);
|
|
}
|
|
},
|
|
|
|
actions: {
|
|
submitModal() {
|
|
// verify properties
|
|
let properties = this.getProperties('name');
|
|
properties.widgetData = { path: this.get('image.path') };
|
|
|
|
this.get('widget').setProperties(properties);
|
|
|
|
let self = this;
|
|
|
|
this.get('widget').save().then(function() {
|
|
self.set('isShowingModal', false);
|
|
});
|
|
},
|
|
|
|
cancelModal() {
|
|
this.set('isShowingModal', false);
|
|
},
|
|
|
|
selectImage(image) {
|
|
// get image by path
|
|
var self = this;
|
|
|
|
this.get('widget.visualization').then((visualization) => {
|
|
visualization.get('project').then((project) => {
|
|
project.get('owner').then((user) => {
|
|
user.get('files').then((files) => {
|
|
files.forEach(function(file) {
|
|
if (file.get('name') === image) {
|
|
// set image
|
|
self.set('image', file);
|
|
}
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
},
|
|
|
|
upload() {
|
|
// check if any files to upload
|
|
let files = this.get('uploadFiles');
|
|
|
|
if (!Ember.isEmpty(files)) {
|
|
var uploadURL = this.get('url') + '/' + this.get('namespace') + '/upload';
|
|
|
|
const uploader = EmberUploader.Uploader.create({
|
|
multiple: true,
|
|
url: uploadURL,
|
|
ajaxSettings: {
|
|
headers: {
|
|
'x-access-token': this.get('session.data.authenticated.token')
|
|
}
|
|
}
|
|
});
|
|
|
|
var self = this;
|
|
|
|
uploader.upload(files).then(function() {
|
|
// reload user
|
|
var user = self.get('sessionUser.user');
|
|
self.get('store').findRecord('user', user.get('id'));
|
|
});
|
|
}
|
|
}
|
|
}
|
|
});
|