define(['jquery', 'underscore', 'backbone', 'text!modules/addingr/addingrViewTemplate.html', 'modules/base/baseView', 'jqx'], function ($, _, Backbone, addingrViewTemplate, BaseView) { var AddIngrView = BaseView.extend({ dataAdapter: undefined, //initialize template template: _.template(addingrViewTemplate), modifyItem: null, ingrIndex: null, initialize: function () { AddIngrView.__super__.initialize.call(this); //this.header.title = "pippo"; }, openDlg: function (ingrIndex, item) { this.ingrIndex = typeof ingrIndex !== 'undefined' ? ingrIndex : null; this.modifyItem = typeof item !== 'undefined' ? item : { "id_tipo_ingredienti": -1, "nome_ingrediente": '', "quantita": '', "id_tipo_quantita": -1, "unita": null, "note": '' }; $("#addIngrWindow").jqxWindow('open'); this._updateUI(this.modifyItem); }, validate: function () { if ($("#ingrediente").val() === "22" && $("#nota").val() !== "") return true; if ($("#ingrediente").val() === "152" && $("#nota").val() !== "") return true; if ($("#ingrediente").val() > 0 && ($("#ingrediente").val() !== "22" || $("#ingrediente").val() !== "152") && $("#qty").val() != "" && $("#unitMis").val() > 0) return true; return false; }, addBtnFn: undefined, _updateUI: function (item) { if(item.id_tipo_ingredienti == "22"){ $("#isHeading").jqxCheckBox({ checked:false }); $("#isNote").jqxCheckBox({ checked:true }); $("#ingrediente").jqxDropDownList({disabled: true}); }else if (item.id_tipo_ingredienti == "152"){ $("#isNote").jqxCheckBox({ checked:false }); $("#isHeading").jqxCheckBox({ checked:true }); $("#ingrediente").jqxDropDownList({disabled: true}); }else{ var itemIngr = $("#ingrediente").jqxDropDownList('getItemByValue', parseInt(item.id_tipo_ingredienti)); if (itemIngr !== undefined) { $("#ingrediente").jqxDropDownList({selectedIndex: itemIngr.index}); }else{ $("#ingrediente").jqxDropDownList({selectedIndex: -1}); } } var itemUnMis = $("#unitMis").jqxDropDownList('getItemByValue', parseInt(item.id_tipo_quantita)); if (itemUnMis !== undefined) { $("#unitMis").jqxDropDownList({selectedIndex: itemUnMis.index}); } else { $("#unitMis").jqxDropDownList({selectedIndex: -1}); } $("#qty").jqxInput('val', this.modifyItem.quantita); $("#nota").val(this.modifyItem.note); }, //render the content into div of view render: function () { //this.header.title = "pippo"; AddIngrView.__super__.render.call(this); var self = this; this.$el.append(this.template()); this.$el.find("#addIngrWindow").jqxWindow({ width: 350, height: 300, resizable: false, isModal: true, autoOpen: false, cancelButton: this.$el.find("#cancelIngrBtn"), modalOpacity: 0.01, initContent: function () { var source = { datatype: "jsonp", datafields: [ {name: 'tipo_ingredienti_id'}, {name: 'name'} ], url: myManifest.Settings.DefaultURL + "/backend/typeingredients", data: { } }; var dataAdapter = new $.jqx.dataAdapter(source); $("#ingrediente").jqxDropDownList( { width: 175, height: 25, source: dataAdapter, displayMember: "name", valueMember: "tipo_ingredienti_id", renderer: function (index, label, value){return unescape(label);}, selectionRenderer: function () { var item = $('#ingrediente').jqxDropDownList('getSelectedItem'); if (item) { return unescape(item.label); } return "Please Choose:"; } }); $("#isNote").jqxCheckBox( { width: 75, height: 16 }); $("#isNote").on('change', function (event) { var checked = event.args.checked; if(checked) { $("#isHeading").jqxCheckBox({ checked:false }); var item = $("#ingrediente").jqxDropDownList('getItemByValue', 22); $("#ingrediente").jqxDropDownList({selectedIndex: item.index}); $("#ingrediente").jqxDropDownList({disabled: true}); } else{ $("#ingrediente").jqxDropDownList({selectedIndex: -1}); $("#ingrediente").jqxDropDownList({disabled: false}); } }); $("#isHeading").jqxCheckBox( { width: 75, height: 16 }); $("#isHeading").on('change', function (event) { var checked = event.args.checked; if(checked) { $("#isNote").jqxCheckBox({ checked:false }); var item = $("#ingrediente").jqxDropDownList('getItemByValue', 152); $("#ingrediente").jqxDropDownList({selectedIndex: item.index}); $("#ingrediente").jqxDropDownList({disabled: true}); } else{ $("#ingrediente").jqxDropDownList({selectedIndex: -1}); $("#ingrediente").jqxDropDownList({disabled: false}); } }); $("#ingrediente").on('bindingComplete', function (event) { var item = $("#ingrediente").jqxDropDownList('getItemByValue', parseInt(self.modifyItem.id_tipo_ingredienti)); if(item) $("#ingrediente").jqxDropDownList({selectedIndex: item.index}); }); var sourceunitMis ={ datatype: "jsonp", datafields: [ {name: 'tipo_quantita_id'}, {name: 'name'} ], url: myManifest.Settings.DefaultURL + "/backend/typeqtys", data: { } }; var dataAdapterunitMis = new $.jqx.dataAdapter(sourceunitMis); $("#unitMis").jqxDropDownList( { width: 200, height: 25, source: dataAdapterunitMis, displayMember: "name", valueMember: "tipo_quantita_id", disabled: true }); $("#unitMis").on('bindingComplete', function (event) { var item = $("#unitMis").jqxDropDownList('getItemByValue', parseInt(self.modifyItem.id_tipo_quantita)); if(item) $("#unitMis").jqxDropDownList({selectedIndex: item.index}); }); $("#ingrediente").on('select', {scope: self}, function (event) { if (event.args) { var item = event.args.item; if (item) { if (item.value === "22" || item.value === "152") { $("#qty").jqxInput({disabled: true}); $("#qty").parents("tr").hide(); $("#unitMis").jqxDropDownList({disabled: true}); $("#unitMis").parents("tr").hide() } else { $("#qty").parents("tr").show(); $("#qty").jqxInput({disabled: false}); $("#unitMis").parents("tr").show(); $("#unitMis").jqxDropDownList({disabled: false}); } } else { $("#qty").parents("tr").show(); $("#qty").jqxInput({disabled: false}); $("#unitMis").parents("tr").show(); $("#unitMis").jqxDropDownList({disabled: false}); } } }); $("#qty").jqxInput({placeHolder: "Quantità:", width: '250px', height: 25, minLength: 1, disabled: true}); $("#nota").jqxInput({placeHolder: "Nota:", width: '250px', height: 25}); $("#addTypeIngr").jqxButton({width: '100%'}); $("#addTypeIngr").on('click', function () { }); $("#addIngrBtn").jqxButton({width: '48%', height: 40}); $("#cancelIngrBtn").jqxButton({width: '48%', height: 40}); $("#addIngrBtn").on('click', function () { if (self.validate()) { var newItem = { "id_tipo_ingredienti": $("#ingrediente").jqxDropDownList('getSelectedItem').value, "nome_ingrediente": $("#ingrediente").jqxDropDownList('getSelectedItem').label, "quantita": $("#qty").jqxInput('val'), "id_tipo_quantita": null, "unita": null, "note": $("#nota").val() }; if ($("#unitMis").jqxDropDownList('getSelectedItem') !== null) newItem.unita = $("#unitMis").jqxDropDownList('getSelectedItem').label; if ($("#unitMis").jqxDropDownList('getSelectedItem') !== null) newItem.id_tipo_quantita = $("#unitMis").jqxDropDownList('getSelectedItem').value; if (self.addBtnFn) self.addBtnFn(self.ingrIndex, newItem); $('#addIngrWindow').jqxWindow('close'); } else alert("Inserire correttamente i dati"); }); self._updateUI(self.modifyItem); } }); return this; } }); return AddIngrView; });