You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.5 KiB
JavaScript
82 lines
2.5 KiB
JavaScript
import _Item from "./_Item.js";
|
|
import _Image from './_Image.js';
|
|
import _Modal from './_Modal.js';
|
|
import _User from './_User.js';
|
|
//import _LargeImage from './_LargeImage.js';
|
|
|
|
var _chosen_image = {
|
|
item: null,
|
|
chosen_image: null
|
|
};
|
|
|
|
var ItemModalView = function(){
|
|
return {
|
|
view: function(vnode){
|
|
var item = vnode.attrs.item;
|
|
if(_chosen_image.item !== item){
|
|
_chosen_image.item = item;
|
|
_chosen_image.chosen_image = item.image_ids[0];
|
|
}
|
|
var chosen_image = _chosen_image.chosen_image;
|
|
var thumbnail_path = ( chosen_image ? _Image.thumbnailPath(_DB.getRecord(chosen_image), '960') : false );
|
|
/*
|
|
return [
|
|
m('.modal-header', [
|
|
m('a.btn.btn-clear.float-right', {'aria-label':"Close", onclick: function(){ _Modal.close(); }}),
|
|
m('.modal-title.h4', item.name)
|
|
]),
|
|
m('.modal-body', [
|
|
m("img.img-responsive", {src: thumbnail_path || _Image.placeholder_img_960_path })
|
|
]),
|
|
m('.modal-footer', [
|
|
m('div', '$'+_Item.priceOf(item)),
|
|
m('button.btn.btn-primary', 'Add to Cart')
|
|
])
|
|
];
|
|
*/
|
|
return m('.item-modal-view', [
|
|
m('a.btn.btn-clear.float-right', {'aria-label':"Close", onclick: function(){ _Modal.close(); }}),
|
|
m('.h4.text-center', item.name),
|
|
m("img.img-responsive", {
|
|
src: thumbnail_path || _Image.placeholder_img_960_path,
|
|
onclick: function(e){
|
|
e.stopPropagation();
|
|
if(thumbnail_path !== false){
|
|
window.open(_Image.thumbnailPath(_DB.getRecord(chosen_image), 'original'), '_blank');
|
|
}
|
|
//_LargeImage.src = (thumbnail_path ? _Image.thumbnailPath(_DB.getRecord(item.image_ids[0]), 'original') : null);
|
|
}
|
|
}),
|
|
m('.form-group.text-center',
|
|
item.image_ids.map(function(image_id){
|
|
return m('label.form-radio.label-sm.form-inline', [
|
|
m('input.input-sm', {
|
|
type:'radio',
|
|
name: item.id.toString()+'modal', // to distinguish from 'ItemListingEntry' radio buttons
|
|
value: image_id, // is this converted to string?
|
|
checked: chosen_image===image_id,
|
|
onchange: function(e){
|
|
_chosen_image.chosen_image = image_id;
|
|
}
|
|
}),
|
|
m('i.form-icon',"")
|
|
]);
|
|
})
|
|
),
|
|
m('ul', [
|
|
m('li', 'Color: '+item.color+' ('+item.color_description+')'),
|
|
m('li', 'Size: '+(item.size || 'N/A')),
|
|
m('li', 'Material: '+(item.material || 'N/A'))
|
|
]),
|
|
m('p', item.description_short),
|
|
( _User.isLoggedIn() ? [
|
|
m('div', '$'+_Item.priceOf(item) ),
|
|
m('button.btn.btn-primary', 'Add to Cart')
|
|
]
|
|
: null )
|
|
]);
|
|
}
|
|
};
|
|
};
|
|
|
|
export default ItemModalView; |