diff --git a/front/salix/components/user-popover/index.js b/front/salix/components/user-popover/index.js
index e4d7b44664..0d35d89950 100644
--- a/front/salix/components/user-popover/index.js
+++ b/front/salix/components/user-popover/index.js
@@ -78,10 +78,6 @@ class Controller {
this.$.companies.refresh();
this.$.popover.show(event.target);
}
-
- getImageUrl(userId) {
- return '/api/Images/user/160x160/' + userId + '/download?access_token=' + this.vnToken.token;
- }
}
Controller.$inject = ['$scope', '$translate', 'vnConfig', 'vnAuth', 'vnToken'];
diff --git a/front/salix/module.js b/front/salix/module.js
index 2c61af4d1d..a8de61ae07 100644
--- a/front/salix/module.js
+++ b/front/salix/module.js
@@ -7,9 +7,14 @@ export const appName = 'salix';
const ngModule = ng.module('salix', ['vnCore']);
export default ngModule;
-run.$inject = ['$window', '$rootScope', 'vnAuth', 'vnApp', '$state'];
-export function run($window, $rootScope, vnAuth, vnApp, $state) {
- $rootScope.imagePath = appConfig.imagePath;
+run.$inject = ['$window', '$rootScope', 'vnAuth', 'vnApp', 'vnToken', '$state'];
+export function run($window, $rootScope, vnAuth, vnApp, vnToken, $state) {
+ $rootScope.imagePath = (collection, size, id) => {
+ if (!collection || !size || !id) return;
+
+ const basePath = `/api/Images/${collection}/${size}/${id}`;
+ return `${basePath}/download?access_token=${vnToken.token}`;
+ };
$window.validations = {};
vnApp.name = appName;
diff --git a/loopback/locale/es.json b/loopback/locale/es.json
index f75b1778eb..0080228aec 100644
--- a/loopback/locale/es.json
+++ b/loopback/locale/es.json
@@ -160,5 +160,6 @@
"The social name cannot be empty": "La razón social no puede quedar en blanco",
"The nif cannot be empty": "El NIF no puede quedar en blanco",
"You need to fill sage information before you check verified data": "Debes rellenar la información de sage antes de marcar datos comprobados",
- "ASSIGN_ZONE_FIRST": "Asigna una zona primero"
+ "ASSIGN_ZONE_FIRST": "Asigna una zona primero",
+ "You can't upload images on the test environment": "No puedes subir imágenes en el entorno de pruebas"
}
\ No newline at end of file
diff --git a/loopback/server/boot/storage.js b/loopback/server/boot/storage.js
index 12662ab73f..7559a7dec5 100644
--- a/loopback/server/boot/storage.js
+++ b/loopback/server/boot/storage.js
@@ -2,7 +2,7 @@ const uuid = require('uuid/v1');
const md5 = require('md5');
module.exports = app => {
- const storageConnector = app.dataSources.storage.connector;
+ const storageConnector = app.dataSources.dmsStorage.connector;
storageConnector.getFilename = function(file) {
return `${uuid()}.${storageConnector.getFileExtension(file.name)}`;
@@ -15,4 +15,17 @@ module.exports = app => {
storageConnector.getPathHash = function(id) {
return md5(id.toString()).substring(0, 3);
};
+
+ const imageStorageConnector = app.dataSources.imageStorage.connector;
+ imageStorageConnector.getFilename = function(file) {
+ return `${uuid()}.png`;
+ };
+
+ /* imageStorageConnector.getFileExtension = function(fileName) {
+ return fileName.split('.').pop().toLowerCase();
+ };
+
+ imageStorageConnector.getPathHash = function(id) {
+ return md5(id.toString()).substring(0, 3);
+ }; */
};
diff --git a/loopback/server/datasources.json b/loopback/server/datasources.json
index 0ea6344848..793dcaea8e 100644
--- a/loopback/server/datasources.json
+++ b/loopback/server/datasources.json
@@ -17,11 +17,11 @@
"connectTimeout": 40000,
"acquireTimeout": 20000
},
- "storage": {
- "name": "storage",
+ "dmsStorage": {
+ "name": "dmsStorage",
"connector": "loopback-component-storage",
"provider": "filesystem",
- "root": "./e2e/dms",
+ "root": "./storage/dms",
"maxFileSize": "262144000",
"allowedContentTypes": [
"application/x-7z-compressed",
@@ -36,5 +36,17 @@
"image/jpeg",
"image/jpg"
]
+ },
+ "imageStorage": {
+ "name": "imageStorage",
+ "connector": "loopback-component-storage",
+ "provider": "filesystem",
+ "root": "./storage/image",
+ "maxFileSize": "52428800",
+ "allowedContentTypes": [
+ "image/png",
+ "image/jpeg",
+ "image/jpg"
+ ]
}
}
diff --git a/modules/claim/back/methods/claim-dms/allowedContentTypes.js b/modules/claim/back/methods/claim-dms/allowedContentTypes.js
index 2f5183f926..3d4b908767 100644
--- a/modules/claim/back/methods/claim-dms/allowedContentTypes.js
+++ b/modules/claim/back/methods/claim-dms/allowedContentTypes.js
@@ -13,7 +13,7 @@ module.exports = Self => {
});
Self.allowedContentTypes = async() => {
- const storageConnector = Self.app.dataSources.storage.connector;
+ const storageConnector = Self.app.dataSources.dmsStorage.connector;
const allowedContentTypes = storageConnector.allowedContentTypes;
const modelAllowedContentTypes = Self.definition.settings.allowedContentTypes;
diff --git a/modules/client/back/methods/client-dms/allowedContentTypes.js b/modules/client/back/methods/client-dms/allowedContentTypes.js
index 2f5183f926..3d4b908767 100644
--- a/modules/client/back/methods/client-dms/allowedContentTypes.js
+++ b/modules/client/back/methods/client-dms/allowedContentTypes.js
@@ -13,7 +13,7 @@ module.exports = Self => {
});
Self.allowedContentTypes = async() => {
- const storageConnector = Self.app.dataSources.storage.connector;
+ const storageConnector = Self.app.dataSources.dmsStorage.connector;
const allowedContentTypes = storageConnector.allowedContentTypes;
const modelAllowedContentTypes = Self.definition.settings.allowedContentTypes;
diff --git a/modules/entry/front/latest-buys/index.html b/modules/entry/front/latest-buys/index.html
index 4e0c6ded84..6ab675d76b 100644
--- a/modules/entry/front/latest-buys/index.html
+++ b/modules/entry/front/latest-buys/index.html
@@ -70,8 +70,8 @@
diff --git a/modules/item/back/methods/item-image-queue/downloadImages.js b/modules/item/back/methods/item-image-queue/downloadImages.js
index d953d19383..ec9177505a 100644
--- a/modules/item/back/methods/item-image-queue/downloadImages.js
+++ b/modules/item/back/methods/item-image-queue/downloadImages.js
@@ -57,7 +57,7 @@ module.exports = Self => {
writeStream.on('finish', async function() {
try {
- await models.Image.registerImage('catalog', fileName, filePath);
+ await models.Image.registerImage('catalog', filePath, image.itemFk);
await image.destroy();
} catch (error) {
await errorHandler(image.itemFk, error, filePath);
diff --git a/modules/item/front/card/index.html b/modules/item/front/card/index.html
index f547a9e7a4..b7513a42a5 100644
--- a/modules/item/front/card/index.html
+++ b/modules/item/front/card/index.html
@@ -1,5 +1,5 @@
-
+
diff --git a/modules/item/front/descriptor/index.html b/modules/item/front/descriptor/index.html
index 8363a652f2..168325a103 100644
--- a/modules/item/front/descriptor/index.html
+++ b/modules/item/front/descriptor/index.html
@@ -16,19 +16,15 @@
-
-
![]()
-
-
-
-
+
+
![]()
+
+
@@ -102,4 +98,10 @@
-
\ No newline at end of file
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/item/front/descriptor/index.js b/modules/item/front/descriptor/index.js
index 2791e960a6..195a97d13a 100644
--- a/modules/item/front/descriptor/index.js
+++ b/modules/item/front/descriptor/index.js
@@ -3,6 +3,11 @@ import Descriptor from 'salix/components/descriptor';
import './style.scss';
class Controller extends Descriptor {
+ constructor($element, $, $rootScope) {
+ super($element, $);
+ this.$rootScope = $rootScope;
+ }
+
get item() {
return this.entity;
}
@@ -65,13 +70,27 @@ class Controller extends Descriptor {
this.$http.post(`Items/${this.item.id}/clone`)
.then(res => this.$state.go('item.card.tags', {id: res.data.id}));
}
+
+ onUploadResponse() {
+ const timestamp = new Date().getTime();
+ const src = this.$rootScope.imagePath('catalog', '200x200', this.item.id);
+ const zoomSrc = this.$rootScope.imagePath('catalog', '1600x900', this.item.id);
+ const newSrc = `${src}&t=${timestamp}`;
+ const newZoomSrc = `${zoomSrc}&t=${timestamp}`;
+
+ this.$.photo.setAttribute('src', newSrc);
+ this.$.photo.setAttribute('zoom-image', newZoomSrc);
+ }
}
+Controller.$inject = ['$element', '$scope', '$rootScope'];
+
ngModule.vnComponent('vnItemDescriptor', {
template: require('./index.html'),
controller: Controller,
bindings: {
item: '<',
- dated: '<'
+ dated: '<',
+ cardReload: '&'
}
});
diff --git a/modules/item/front/index/index.html b/modules/item/front/index/index.html
index 0d4ae61f34..8b03bc0d6b 100644
--- a/modules/item/front/index/index.html
+++ b/modules/item/front/index/index.html
@@ -35,8 +35,8 @@
ui-sref="item.card.summary({id: item.id})">
@@ -44,7 +44,7 @@
- {{::item.id | zeroFill:6}}
+ {{::item.id}}
{{::item.grouping | dashIfEmpty}}
diff --git a/modules/item/front/summary/index.html b/modules/item/front/summary/index.html
index e9c835dac9..5fb556bd46 100644
--- a/modules/item/front/summary/index.html
+++ b/modules/item/front/summary/index.html
@@ -11,8 +11,8 @@
+ ng-src="{{$root.imagePath('catalog', '200x200', $ctrl.item.id)}}"
+ zoom-image="{{$root.imagePath('catalog', '1600x900', $ctrl.item.id)}}" on-error-src/>
Visible
diff --git a/modules/order/front/catalog-view/index.html b/modules/order/front/catalog-view/index.html
index 2d7492d87d..25d84db759 100644
--- a/modules/order/front/catalog-view/index.html
+++ b/modules/order/front/catalog-view/index.html
@@ -5,11 +5,11 @@
diff --git a/modules/order/front/line/index.html b/modules/order/front/line/index.html
index 1ba6e3f9c6..51702e16ed 100644
--- a/modules/order/front/line/index.html
+++ b/modules/order/front/line/index.html
@@ -32,8 +32,8 @@
diff --git a/modules/ticket/back/methods/ticket-dms/allowedContentTypes.js b/modules/ticket/back/methods/ticket-dms/allowedContentTypes.js
index 2f5183f926..3d4b908767 100644
--- a/modules/ticket/back/methods/ticket-dms/allowedContentTypes.js
+++ b/modules/ticket/back/methods/ticket-dms/allowedContentTypes.js
@@ -13,7 +13,7 @@ module.exports = Self => {
});
Self.allowedContentTypes = async() => {
- const storageConnector = Self.app.dataSources.storage.connector;
+ const storageConnector = Self.app.dataSources.dmsStorage.connector;
const allowedContentTypes = storageConnector.allowedContentTypes;
const modelAllowedContentTypes = Self.definition.settings.allowedContentTypes;
diff --git a/modules/ticket/front/picture/index.html b/modules/ticket/front/picture/index.html
index 52cab5b31b..c95e604dd0 100644
--- a/modules/ticket/front/picture/index.html
+++ b/modules/ticket/front/picture/index.html
@@ -19,8 +19,8 @@
diff --git a/modules/ticket/front/sale/index.html b/modules/ticket/front/sale/index.html
index 90cfa39d13..ed3cbc02b9 100644
--- a/modules/ticket/front/sale/index.html
+++ b/modules/ticket/front/sale/index.html
@@ -93,8 +93,8 @@
diff --git a/modules/travel/back/methods/travel-thermograph/allowedContentTypes.js b/modules/travel/back/methods/travel-thermograph/allowedContentTypes.js
index 2f5183f926..3d4b908767 100644
--- a/modules/travel/back/methods/travel-thermograph/allowedContentTypes.js
+++ b/modules/travel/back/methods/travel-thermograph/allowedContentTypes.js
@@ -13,7 +13,7 @@ module.exports = Self => {
});
Self.allowedContentTypes = async() => {
- const storageConnector = Self.app.dataSources.storage.connector;
+ const storageConnector = Self.app.dataSources.dmsStorage.connector;
const allowedContentTypes = storageConnector.allowedContentTypes;
const modelAllowedContentTypes = Self.definition.settings.allowedContentTypes;
diff --git a/modules/travel/front/thermograph/create/index.js b/modules/travel/front/thermograph/create/index.js
index 4b4cebb9f0..df8d0fe687 100644
--- a/modules/travel/front/thermograph/create/index.js
+++ b/modules/travel/front/thermograph/create/index.js
@@ -46,7 +46,7 @@ class Controller extends Section {
warehouseId: warehouseId,
companyId: companyId,
dmsTypeId: dmsTypeId,
- description: this.$t('FileDescription', {
+ description: this.$t('TravelFileDescription', {
travelId: this.travel.id
}).toUpperCase()
};
diff --git a/modules/travel/front/thermograph/locale/es.yml b/modules/travel/front/thermograph/locale/es.yml
index 0e3bc99fc7..1fdb98c8e7 100644
--- a/modules/travel/front/thermograph/locale/es.yml
+++ b/modules/travel/front/thermograph/locale/es.yml
@@ -8,7 +8,7 @@ Upload file: Subir fichero
Edit file: Editar fichero
Upload: Subir
File: Fichero
-FileDescription: Travel id {{travelId}}
+TravelFileDescription: Travel id {{travelId}}
ContentTypesInfo: 'Tipos de archivo permitidos: {{allowedContentTypes}}'
Are you sure you want to continue?: ¿Seguro que quieres continuar?
Add thermograph: Añadir termógrafo
diff --git a/modules/worker/back/methods/worker-dms/allowedContentTypes.js b/modules/worker/back/methods/worker-dms/allowedContentTypes.js
index 2f5183f926..3d4b908767 100644
--- a/modules/worker/back/methods/worker-dms/allowedContentTypes.js
+++ b/modules/worker/back/methods/worker-dms/allowedContentTypes.js
@@ -13,7 +13,7 @@ module.exports = Self => {
});
Self.allowedContentTypes = async() => {
- const storageConnector = Self.app.dataSources.storage.connector;
+ const storageConnector = Self.app.dataSources.dmsStorage.connector;
const allowedContentTypes = storageConnector.allowedContentTypes;
const modelAllowedContentTypes = Self.definition.settings.allowedContentTypes;
diff --git a/modules/worker/front/descriptor/index.html b/modules/worker/front/descriptor/index.html
index fb22644941..bceadff333 100644
--- a/modules/worker/front/descriptor/index.html
+++ b/modules/worker/front/descriptor/index.html
@@ -1,6 +1,18 @@
+
+
+
![]()
+
+
+
+
-
\ No newline at end of file
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/worker/front/descriptor/index.js b/modules/worker/front/descriptor/index.js
index 98f8f2f723..c5dc1ea2c8 100644
--- a/modules/worker/front/descriptor/index.js
+++ b/modules/worker/front/descriptor/index.js
@@ -2,6 +2,11 @@ import ngModule from '../module';
import Descriptor from 'salix/components/descriptor';
class Controller extends Descriptor {
+ constructor($element, $, $rootScope) {
+ super($element, $);
+ this.$rootScope = $rootScope;
+ }
+
get worker() {
return this.entity;
}
@@ -48,8 +53,21 @@ class Controller extends Descriptor {
return this.getData(`Workers/${this.id}`, {filter})
.then(res => this.entity = res.data);
}
+
+ onUploadResponse() {
+ const timestamp = new Date().getTime();
+ const src = this.$rootScope.imagePath('user', '520x520', this.worker.id);
+ const zoomSrc = this.$rootScope.imagePath('user', '1600x900', this.worker.id);
+ const newSrc = `${src}&t=${timestamp}`;
+ const newZoomSrc = `${zoomSrc}&t=${timestamp}`;
+
+ this.$.photo.setAttribute('src', newSrc);
+ this.$.photo.setAttribute('zoom-image', newZoomSrc);
+ }
}
+Controller.$inject = ['$element', '$scope', '$rootScope'];
+
ngModule.vnComponent('vnWorkerDescriptor', {
template: require('./index.html'),
controller: Controller,