diff --git a/client/core/src/directives/index.js b/client/core/src/directives/index.js
index 9a6531b1e8..02f9221499 100644
--- a/client/core/src/directives/index.js
+++ b/client/core/src/directives/index.js
@@ -5,3 +5,4 @@ import './validation';
import './acl';
import './on-error-src';
import './zoom-image';
+import './visible-by';
diff --git a/client/core/src/directives/specs/zoom-image.spec.js b/client/core/src/directives/specs/zoom-image.spec.js
index 1ee7bbd797..85787bd4b0 100644
--- a/client/core/src/directives/specs/zoom-image.spec.js
+++ b/client/core/src/directives/specs/zoom-image.spec.js
@@ -55,17 +55,17 @@ describe('Directive zoomImage', () => {
let image = getCompiledImage(`
`);
image[0].click();
findContainer = document.getElementById(idContainer);
- let findNewImage = findContainer.querySelector('img');
+ let findNewImage = findContainer.querySelector('.zoomImage-background');
- expect(findNewImage.src).toEqual(srcDefault);
+ expect(findNewImage.style.backgroundImage).toEqual(`url("${srcDefault}")`);
});
it('should create new image, into zoom container, with src likes zoomImage value', () => {
let image = getCompiledImage(`
`);
image[0].click();
findContainer = document.getElementById(idContainer);
- let findNewImage = findContainer.querySelector('img');
+ let findNewImage = findContainer.querySelector('.zoomImage-background');
- expect(findNewImage.src).toEqual(srcZoom);
+ expect(findNewImage.style.backgroundImage).toEqual(`url("${srcZoom}")`);
});
});
diff --git a/client/core/src/directives/visible-by.js b/client/core/src/directives/visible-by.js
new file mode 100644
index 0000000000..e05079fb5d
--- /dev/null
+++ b/client/core/src/directives/visible-by.js
@@ -0,0 +1,17 @@
+import ngModule from '../module';
+
+function vnVisibleBy(aclService) {
+ return {
+ restrict: 'A',
+ priority: -1,
+ link: function($scope, $element, $attrs) {
+ let acls = $attrs.vnVisibleBy.split(',');
+ if (!aclService.aclPermission(acls)) {
+ $element[0].style.visibility = 'hidden';
+ }
+ }
+ };
+}
+vnVisibleBy.$inject = ['aclService'];
+
+ngModule.directive('vnVisibleBy', vnVisibleBy);
diff --git a/client/core/src/directives/zoom-image.js b/client/core/src/directives/zoom-image.js
index dc75eda403..0bae2ef8be 100644
--- a/client/core/src/directives/zoom-image.js
+++ b/client/core/src/directives/zoom-image.js
@@ -4,7 +4,6 @@ export function directive($timeout) {
let idContainer = 'zoomImage';
let container;
let background;
- let image;
function createContainers(src) {
if (document.getElementById(idContainer)) {
@@ -15,31 +14,21 @@ export function directive($timeout) {
background = document.createElement('div');
background.className = 'zoomImage-background';
+ background.style.backgroundImage = `url(${src})`;
container.appendChild(background);
- image = document.createElement('img');
- image.src = src;
- container.appendChild(image);
-
document.body.appendChild(container);
-
- $timeout(() => {
- resizeImage();
- container.className = 'open';
- }, 250);
}
function addListeners() {
background.addEventListener('click', destroyContainers);
document.addEventListener('keydown', e => keyDownHandler(e));
- window.addEventListener('resize', resizeImage);
}
function removeListeners() {
if (container) {
background.removeEventListener('click', destroyContainers);
document.removeEventListener('keydown', e => keyDownHandler(e));
- window.removeEventListener('resize', resizeImage);
}
}
@@ -57,14 +46,6 @@ export function directive($timeout) {
container = undefined;
background = undefined;
- image = undefined;
- }
-
- function resizeImage() {
- if (image) {
- image.style.marginLeft = `-${Math.floor(image.clientWidth / 2)}px`;
- image.style.marginTop = `-${Math.floor(image.clientHeight / 2)}px`;
- }
}
return {
diff --git a/client/core/src/styles/zoom-image.css b/client/core/src/styles/zoom-image.css
index f21db8d13a..87130d918a 100644
--- a/client/core/src/styles/zoom-image.css
+++ b/client/core/src/styles/zoom-image.css
@@ -9,32 +9,11 @@ div#zoomImage, div#zoomImage .zoomImage-background {
top: 0;
z-index: 11;
}
-div#zoomImage{
- opacity: 0;
- transition: visibility 0s, opacity 0.5s linear;
-}
div#zoomImage .zoomImage-background{
- background: rgba(0, 0, 0, 0.7);
+ background-color: rgba(0, 0, 0, 0.7);
cursor: zoom-out;
-}
-div#zoomImage img{
- z-index: 12;
- position: fixed;
- max-height: 98%;
- max-width: 98%;
- left: 50%;
- top: 50%;
- opacity: 0;
- transition: visibility 0s, opacity 1s linear;
-}
-
-div#zoomImage.open {
- visibility: visible;
- opacity: 1;
-}
-
-div#zoomImage.open img{
- visibility: visible;
- opacity: 1;
+ background-repeat: no-repeat;
+ background-position: center center;
+ background-size: auto 98%;
}
\ No newline at end of file
diff --git a/client/item/routes.json b/client/item/routes.json
index 74dbe6dadb..863a8a4b90 100644
--- a/client/item/routes.json
+++ b/client/item/routes.json
@@ -80,17 +80,6 @@
"icon": "folder"
}
},{
- "url" : "/picture",
- "state": "item.card.picture",
- "component": "vn-item-picture",
- "params": {
- "item": "$ctrl.item"
- },
- "menu": {
- "description": "Picture",
- "icon": "folder"
- }
- }, {
"url" : "/barcode",
"state": "item.card.barcode",
"component": "vn-item-barcode",
diff --git a/client/item/src/descriptor/item-descriptor.html b/client/item/src/descriptor/item-descriptor.html
index 3837e838a0..b7a8c9a1f4 100644
--- a/client/item/src/descriptor/item-descriptor.html
+++ b/client/item/src/descriptor/item-descriptor.html
@@ -3,10 +3,14 @@
-
+
+ ng-src="http://verdnatura.es/vn-image-data/catalog/200x200/{{::$ctrl.item.image}}"
+ zoom-image="http://verdnatura.es/vn-image-data/catalog/900x900/{{::$ctrl.item.image}}" on-error-src/>
+
+
Id: {{$ctrl.item.id}}
diff --git a/client/item/src/item.js b/client/item/src/item.js
index 6ba7dd8cf1..9ddba12ad0 100644
--- a/client/item/src/item.js
+++ b/client/item/src/item.js
@@ -11,6 +11,5 @@ import './tags/item-tags';
import './history/item-history';
import './niche/item-niche';
import './botanical/item-botanical';
-import './picture/item-picture';
import './barcode/item-barcode';
diff --git a/client/item/src/list/list.html b/client/item/src/list/list.html
index 00f498d4ef..b3bee25709 100644
--- a/client/item/src/list/list.html
+++ b/client/item/src/list/list.html
@@ -8,8 +8,7 @@
on-search="$ctrl.search(index)"
advanced="true"
popover="vn-item-filter-panel"
- ignore-keys = "['page', 'size', 'search']"
- >
+ ignore-keys = "['page', 'size', 'search']">
diff --git a/client/item/src/locale/es.yml b/client/item/src/locale/es.yml
index a80590f67e..34b6be39a5 100644
--- a/client/item/src/locale/es.yml
+++ b/client/item/src/locale/es.yml
@@ -13,7 +13,6 @@ Item history: Historial del artículo
Item tags: Tags del artículo
Niche: Nicho
Picture: Foto
-Item pictures: Fotos del artículo
Barcode: Código barras
Item barcode: Código de barras del artículo
Changed by: Cambiado por
diff --git a/client/item/src/picture/item-picture.html b/client/item/src/picture/item-picture.html
deleted file mode 100644
index 93acec3c9a..0000000000
--- a/client/item/src/picture/item-picture.html
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- Item pictures
-
-
\ No newline at end of file
diff --git a/client/item/src/picture/item-picture.js b/client/item/src/picture/item-picture.js
deleted file mode 100644
index 20fdd84990..0000000000
--- a/client/item/src/picture/item-picture.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import ngModule from '../module';
-
-ngModule.component('vnItemPicture', {
- template: require('./item-picture.html')
-});
diff --git a/client/salix/src/components/main-menu/main-menu.html b/client/salix/src/components/main-menu/main-menu.html
index 4bd1f950f9..116aab0c91 100644
--- a/client/salix/src/components/main-menu/main-menu.html
+++ b/client/salix/src/components/main-menu/main-menu.html
@@ -1,14 +1,5 @@
-
-
+
+