import _Image from './_Image.js'; import _Item from './_Item.js'; import _DB from './_DB.js'; import _FullscreenImage from './_FullscreenImage.js'; import isObject from './util/isObject.js'; function ItemImageController(ivnode){ return { view: function(vnode){ var item = vnode.attrs.item; if(item === null){ return m('.msg', 'No item chosen.'); } if(typeof item.image_ids === 'undefined'){ item.image_ids=[]; } var images = item.image_ids.map(function(image_id){ if(isObject(image_id)){ return image_id; } else{ return _DB.getRecord(image_id); } }); var no_images = (images.length === 0); return m('.item-image-controller.bg-secondary.text-center', { style: 'height: 500px;', ondragover: function(e){ e.preventDefault(); }, ondrop: function(e){ e.preventDefault(); // don't open the file in the browser var files = []; // some browsers use `.items` and some use `.files`, so check for both: if (e.dataTransfer.items) { for (var i = 0; i < e.dataTransfer.items.length; i++) { if (e.dataTransfer.items[i].kind === 'file') { // If dropped items aren't files, reject them files.push( e.dataTransfer.items[i].getAsFile() ); } } } else { for (var i = 0; i < e.dataTransfer.files.length; i++) { files.push( e.dataTransfer.files[i] ); } } for(var i=0; i