PageRenderTime 48ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/opensourcepos/application/views/products/products_grid_bkup.php

https://bitbucket.org/jit_bec/shopifine
PHP | 953 lines | 762 code | 118 blank | 73 comment | 45 complexity | 6a3b55cc95c64012fcce53fa8eaca19f MD5 | raw file
Possible License(s): LGPL-3.0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Product Details</title>
  5. <?php $this->load->view("common/header"); ?>
  6. <!-- <link rel="stylesheet" rev="stylesheet" href="<?php echo base_url();?>css/shopifine.css" />
  7. <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/ui-lightness/jquery-ui.css">
  8. <link rel="stylesheet" type="text/css" media="screen" href="<?php echo base_url(); ?>css/ui.jqgrid.css" />
  9. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  10. <script src="<?php echo base_url(); ?>js/i18n/grid.locale-en.js" type="text/javascript"></script>
  11. <script src="<?php echo base_url(); ?>js/jquery.jqGrid.min.js" type="text/javascript" language="javascript" charset="UTF-8"></script>-->
  12. <script type="text/javascript" src="http://static.jstree.com/v.1.0pre/jquery.jstree.js"></script>
  13. <style type="text/css">
  14. #menubar_admin_navigation {
  15. top:49px;
  16. }
  17. #content_area{
  18. width:95%;
  19. }
  20. html {
  21. overflow-x:hidden;
  22. }
  23. </style>
  24. <!-- <style type="text/css">
  25. html {height:100%}
  26. body { font-size: 62.5%; height:100%}
  27. #content_area { left:-80px;top:30px; }
  28. #content_area_wrapper{height:100%;}
  29. label, input { display:inline; }
  30. input.text { margin-bottom:12px; width:95%; padding: .4em; }
  31. fieldset { padding:0; border:0; margin-top:25px; }
  32. h1 { font-size: 1.2em; margin: .6em 0; }
  33. div#users-contain { width: 350px; margin: 20px 0; }
  34. div#users-contain table { margin: 1em 0; border-collapse: collapse; width: 100%; }
  35. div#users-contain table td, div#users-contain table th { border: 1px solid #eee; padding: .6em 10px; text-align: left; }
  36. .ui-dialog .ui-state-error { padding: .3em; }
  37. .validateTips { border: 1px solid transparent; padding: 0.3em; }
  38. .reqBarcodeAC { position:absolute;left:230px;}
  39. * { font-family: Verdana; font-size: 96%; }
  40. label { width: 10em; float: left; }
  41. label.error { float: right; color: red; padding-left: .5em; vertical-align: top; position: relative;width:130px;}
  42. p , .column{ clear: both; padding: 1em; }
  43. .submit { margin-left: 12em; }
  44. em { font-weight: bold; padding-right: 1em; vertical-align: top; }
  45. .ui-combobox {
  46. position: relative;
  47. display: inline-block;
  48. }
  49. .ui-combobox-toggle {
  50. position: absolute;
  51. top: 0;
  52. bottom: 0;
  53. margin-left: -1px;
  54. padding: 0;
  55. }
  56. .ui-combobox-input {
  57. margin: 0;
  58. padding: 0.3em;
  59. }
  60. </style>-->
  61. <script>
  62. (function( $ ) {
  63. $.widget( "ui.combobox", {
  64. options: {
  65. strict: false,
  66. customChange:null
  67. },
  68. _create: function() {
  69. var input,
  70. self = this,
  71. id = this.element[0].id + "-input",
  72. select = this.element.hide(),
  73. selected = select.children( ":selected" ),
  74. value = selected.val() ? selected.text() : "",
  75. strict = this.options.strict,
  76. wrapper = this.wrapper = $( "<span>" )
  77. .addClass( "ui-combobox" )
  78. .insertAfter( select );
  79. input = $( "<input>" ).attr("id",id)
  80. .appendTo( wrapper )
  81. .val( value )
  82. .addClass( "ui-state-default ui-combobox-input" )
  83. .autocomplete({
  84. delay: 0,
  85. minLength: 0,
  86. source: function( request, response ) {
  87. var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
  88. response( select.children( "option" ).map(function() {
  89. var text = $( this ).text();
  90. if ( this.value && ( !request.term || matcher.test(text) ) )
  91. return {
  92. label: text.replace(
  93. new RegExp(
  94. "(?![^&;]+;)(?!<[^<>]*)(" +
  95. $.ui.autocomplete.escapeRegex(request.term) +
  96. ")(?![^<>]*>)(?![^&;]+;)", "gi"
  97. ), "<strong>$1</strong>" ),
  98. value: text,
  99. option: this
  100. };
  101. }) );
  102. },
  103. select: function( event, ui ) {
  104. ui.item.option.selected = true;
  105. self._trigger( "selected", event, {
  106. item: ui.item.option
  107. });
  108. },
  109. change: function( event, ui ) {
  110. //self.off();
  111. console.log( "change");
  112. console.log( event);
  113. if ( !ui.item ) {
  114. var matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( $(this).val() ) + "$", "i" ),
  115. valid = false;
  116. select.children( "option" ).each(function() {
  117. if ( $( this ).text().match( matcher ) ) {
  118. this.selected = valid = true;
  119. return false;
  120. }
  121. });
  122. if ( !valid ) {
  123. // remove invalid value, as it didn't match anything
  124. select.val( "" );
  125. if (!strict) {
  126. callback = self.options.customChange;
  127. if ($.isFunction(callback)){
  128. callback();
  129. }
  130. return;
  131. }
  132. $( this ).val( "" );
  133. input.data( "autocomplete" ).term = "";
  134. return false;
  135. }
  136. }
  137. callback = self.options.customChange;
  138. if ($.isFunction(callback)){
  139. callback();
  140. }
  141. }
  142. })
  143. .addClass( "ui-widget ui-widget-content ui-corner-left" ).keypress(function (e){
  144. //console.log(e.which);
  145. if (e.which== 13){
  146. //$(".ui.combobox").trigger("autocompletechange");
  147. //autocomplete
  148. //$("#mfrOp").combobox().trigger("comboboxkeypress","");
  149. //console.log($("#mfrOp").combobox());
  150. //console.log( $(this).data( "autocomplete" ));
  151. $(this).data( "autocomplete" )._trigger("change");
  152. //$("#mfrOp").combobox("keypress");
  153. }
  154. });
  155. input.data( "autocomplete" )._renderItem = function( ul, item ) {
  156. return $( "<li></li>" )
  157. .data( "item.autocomplete", item )
  158. .append( "<a style>" + item.label + "</a>" )
  159. .appendTo( ul );
  160. };
  161. $( "<a>" )
  162. .css("left", "100px")
  163. .attr( "tabIndex", -1 )
  164. .attr( "title", "Show All Items" )
  165. .appendTo( wrapper )
  166. .button({
  167. icons: {
  168. primary: "ui-icon-triangle-1-s"
  169. },
  170. text: false
  171. })
  172. .removeClass( "ui-corner-all" )
  173. .addClass( "ui-corner-right ui-combobox-toggle" )
  174. .click(function() {
  175. // close if already visible
  176. if ( input.autocomplete( "widget" ).is( ":visible" ) ) {
  177. input.autocomplete( "close" );
  178. return;
  179. }
  180. // work around a bug (likely same cause as #5265)
  181. $( this ).blur();
  182. // pass empty string as value to search for, displaying all results
  183. input.autocomplete( "search", "" );
  184. input.focus();
  185. });
  186. },
  187. keypress: function (e){
  188. //console.log(e.which);
  189. console.log('test');
  190. },
  191. destroy: function() {
  192. this.wrapper.remove();
  193. this.element.show();
  194. $.Widget.prototype.destroy.call( this );
  195. }
  196. });
  197. })( jQuery );
  198. </script>
  199. <script type="text/javascript">
  200. $(function(){
  201. $.validator.addMethod('comboBoxrequired', function(value, element) {
  202. var selectId = element.id;
  203. var inputIdSelector = "#" + selectId + "-input";
  204. if (value == ""){
  205. inputVal = $(inputIdSelector).val();
  206. if (inputVal == "" || inputVal == null){
  207. return false;
  208. }
  209. }
  210. return true;
  211. }, 'Please select from the dropdown or add new element in box');
  212. $( "#dialog:ui-dialog" ).dialog( "destroy" );
  213. $( "#productForm" ).validate({
  214. errorPlacement: function(error, element) {
  215. error.appendTo( element.parent());
  216. }//,
  217. // rules: {
  218. // mfrOp: {
  219. // comboBoxrequired: true
  220. // }
  221. // }
  222. }
  223. );
  224. $( "#dialog-form" ).dialog({
  225. autoOpen: false,
  226. height: 'auto',
  227. width: '55%',
  228. position:[300,25],
  229. modal: true,
  230. buttons: {
  231. "Create the Product": function() {
  232. var bValid = $("#productForm").valid();
  233. if (bValid ){
  234. $.ajax({
  235. url:"index.php/products/createBarcodeAndProduct",
  236. data: {barcodeData :{
  237. scannedBarcode : $("#productbarcode").val(),
  238. mfrOp : $("#mfrOp").val(),
  239. mfrIp: $("#mfrOp-input").val(),
  240. modelOp: $("#modelOp").val(),
  241. modelIp: $("#modelOp-input").val(),
  242. newModelIp: $("#newModelIp").val(),
  243. name: $("#name").val(),
  244. desc: $("#desc").val(),
  245. // categoryOp: $("#categoryOp").val(),
  246. // categoryIp: $("#categoryOp-input").val(),
  247. category:$('#treeViewDiv').jstree('get_selected').attr('id'),
  248. supplierOp: $("#supplierOp").val(),
  249. uomOp: $("#uomOp").val(),
  250. sizeOp: $("#sizeOp").val(),
  251. packageOp: $("#packageOp").val() }},
  252. type:"POST",
  253. success:function(response)
  254. {
  255. $("#product").trigger("reloadGrid");
  256. }
  257. });
  258. $( this ).dialog( "close" );
  259. }
  260. },
  261. Cancel: function() {
  262. $( this ).dialog( "close" );
  263. }
  264. },
  265. close: function() {
  266. //allFields.val( "" ).removeClass( "ui-state-error" );
  267. $("#productForm").data('validator').resetForm();
  268. $('#productForm')[0].reset();
  269. }
  270. });
  271. // $( "#create-product" )
  272. // .button()
  273. // .click(function() {
  274. // //if (!$("#newModelCtnr").parent().is(':hidden')){
  275. // $("#newModelCtnr").parent().css("display","none");
  276. // //}
  277. // //if (!$("#modelCtnr").parent().is(':hidden')){
  278. // $("#modelCtnr").parent().css("display","none");
  279. // //}
  280. // $( "#dialog-form" ).dialog( "open" );
  281. // });
  282. $("#mfrOp").combobox({
  283. customChange: function () {
  284. if ($("#mfrOp").val()!="") {
  285. $.ajax({
  286. type:"post",
  287. data:{mfrName:$("#mfrOp-input").val(),mfr: $("#mfrOp").val()},
  288. url:"index.php/products/populateModel",
  289. success: function(data){
  290. $("#modelOp").children('option:not(:first)').remove();
  291. $("#modelOp").append(data);
  292. $("#modelOp").combobox();
  293. $("#modelCtnr").parent().slideDown(50);
  294. if (!$("#newModelCtnr").parent().is(':hidden')){
  295. $("#newModelCtnr").parent().slideUp(50);
  296. }
  297. }
  298. });
  299. }
  300. else {
  301. $("#newModelCtnr").parent().slideDown(50);
  302. if (!$("#modelCtnr").parent().is(':hidden')){
  303. $("#modelCtnr").parent().slideUp(50);
  304. }
  305. }
  306. }
  307. });
  308. $("#categoryOp").combobox();
  309. var myGrid = $("#product"),lastsel2,selectedMfrId,selectedModelId,selectedPkgId,selectUom,selectedDenom;
  310. var editparameters = {
  311. "keys" : false,
  312. "oneditfunc" : null,
  313. "successfunc" : null,
  314. "url" : 'edittest',
  315. "extraparam" : {},
  316. "aftersavefunc" : null,
  317. "errorfunc": null,
  318. "afterrestorefunc" : null,
  319. "restoreAfterError" : true,
  320. "mtype" : "POST"
  321. };
  322. myGrid.jqGrid({
  323. url:'index.php/products/populateProductsInGrid',
  324. datatype: 'json',
  325. mtype: 'GET',
  326. colNames:['Barcode',/*'System Name',*/'Product','Description','manufacturer_id','model_id','Manufacturer','Model','Supplier','package_id','Package Type','Category','Unit','Size/Quantity','Action'],
  327. colModel :[
  328. //{name:'id', index:'id', width:55},
  329. {name:'barcode',index:'barcode',width:120,align:'right',editable:false},
  330. // {name:'system_name',index:'system_name',width:90,align:'right',editable:false},
  331. {name:'product_name', index:'product_name', width:80, align:'right',editable:true,editoptions:{size:"20",maxlength:"30"}},
  332. {name:'description', index:'description', width:80, align:'right',editable:true,editoptions:{size:"20",maxlength:"30"}},
  333. {name:'manufacturer_id', index:'manufacturer_id', hidden:true},
  334. {name:'model_id', index:'model_id', hidden:true},
  335. {name:'manufacturer', index:'manufacturer', width:80, align:'right',editable:true,edittype:"select",editoptions:{dataEvents: [
  336. { type: 'change',
  337. fn: function(e) {
  338. var val = $("#manufacturer").val();
  339. $.ajax({type:'post',
  340. data:{mfr:val},
  341. url:'index.php/products/populateModel',
  342. success: function(modelHtml){
  343. //console.log ("change mfr");
  344. $("#model").children('option:not(:first)').remove();
  345. $("#model").append(modelHtml);
  346. }
  347. });
  348. }
  349. }
  350. ],dataUrl:"index.php/products/populateMfrs",buildSelect:function(response)
  351. {
  352. var select = "<select name=" + "mfrOpEdit" + "id =" +"mfrOpEdit" +">" +
  353. "<option value=" + ">Select one..." + response + "</select>";
  354. $.ajax({type:'post',
  355. data:{mfr:selectedMfrId},
  356. url:'index.php/products/populateModel',
  357. success: function(modelHtml){
  358. //console.log("ajax mfr" + selectedModelId );
  359. $("#model").children('option:not(:first)').remove();
  360. $("#model").append(modelHtml);
  361. $("#model").val(selectedModelId);
  362. }
  363. });
  364. return select;
  365. }}},
  366. {name:'model', index:'model', width:80, align:'right',editable:true,edittype:"select",editoptions:{dataUrl:"index.php/products/doNothing",buildSelect:function(response)
  367. {
  368. //console.log("build select");
  369. var select = "<select name=" + "modelOpEdit" + "id =" +"modelOpEdit" +">" +
  370. "<option value=" + ">Select one..." + "</select>";
  371. return select;
  372. }}},
  373. {name:'supplier', index:'supplier', width:80, align:'right',editable:true,editoptions:{size:"20",maxlength:"30"}},
  374. {name:'package_id', index:'package_id', hidden:true},
  375. {name:'package_name', index:'package_name', width:80, align:'right',editable:true,edittype:"select",editoptions:{dataEvents: [
  376. { type: 'change',
  377. fn: function(e) {
  378. var val = $("#package_name").val();
  379. //console.log ("while changing" + val)
  380. $.ajax({type:"post",
  381. url:"index.php/products/populateMeasurementDropDowns",
  382. data: {pkgId : val},
  383. success: function(uomHtml){
  384. //console.log ("in success " + val);
  385. //console.log ("in success uomHtml " + uomHtml);
  386. $("#uom").children('option:not(:first)').remove();
  387. $("#uom").append(uomHtml);
  388. }
  389. });
  390. }
  391. }
  392. ],dataUrl:"index.php/products/populatePackages",buildSelect:function(response)
  393. {
  394. var select = "<select name=" + "mfrPkEdit" + "id =" +"mfrPkEdit" +">" +
  395. "<option value=" + ">Select one..." + response + "</select>";
  396. //console.log ("package type val " + selectedPkgId);
  397. $.ajax({type:"post",
  398. url:"index.php/products/populateMeasurementDropDowns",
  399. data: {pkgId : selectedPkgId},
  400. success: function(uomHtml){
  401. $("#uom").children('option:not(:first)').remove();
  402. $("#uom").append(uomHtml);
  403. //console.log ("before setting uom val " + selectUom);
  404. $("#uom").val(selectUom);
  405. }
  406. });
  407. return select;
  408. }}},
  409. {name:'category', index:'category', width:100, align:'right',editable:false,editoptions:{size:"20",maxlength:"30"}},
  410. {name:'uom', index:'uom', width:40, align:'right',editable:true,edittype:"select",editoptions:{dataEvents: [
  411. { type: 'change',
  412. fn: function(e) {
  413. var val = $("#uom").val();
  414. //console.log ("while changing uom" + val)
  415. $.ajax({type:"post",
  416. url:"index.php/products/populateDenomDropdown",
  417. data: {uom : val},
  418. success: function(sizeHtml){
  419. if (sizeHtml!=null && sizeHtml!="") {
  420. if ($("#measurement_denomination").is(':disabled')){
  421. $("#measurement_denomination").attr('disabled','false');
  422. }
  423. $("#measurement_denomination").children('option:not(:first)').remove();
  424. $("#measurement_denomination").append(sizeHtml);
  425. }
  426. else {
  427. if (!$("#measurement_denomination").is(':disabled')){
  428. $("#measurement_denomination").attr('disabled','true');
  429. }
  430. }
  431. }
  432. });
  433. }
  434. }
  435. ],dataUrl:"index.php/products/populateMeasurementDropDowns",buildSelect:function(response)
  436. {
  437. var val = selectUom;
  438. //console.log("build uom" + val);
  439. var select = "<select name=" + "modelOpEdit" + "id =" +"modelOpEdit" +">" +
  440. "<option value=" + ">Select one..." + "</select>";
  441. return select;
  442. }}},
  443. {name:'measurement_denomination', index:'measurement_denomination', width:60, align:'right',editable:true,edittype:"select",editoptions:{dataUrl:"index.php/products/doNothing",buildSelect:function(response)
  444. {
  445. var val = selectUom;
  446. //console.log("build size" + val);
  447. var select = "<select name=" + "modelOpEdit" + "id =" +"modelOpEdit" +">" +
  448. "<option value=" + ">Select one..." + "</select>";
  449. $.ajax({type:"post",
  450. url:"index.php/products/populateDenomDropdown",
  451. data: {uom : val},
  452. success: function(sizeHtml){
  453. if (sizeHtml!=null && sizeHtml!="") {
  454. if ($("#measurement_denomination").is(':disabled')){
  455. $("#measurement_denomination").attr('disabled','false');
  456. }
  457. //console.log ("measurement denom " + sizeHtml);
  458. //console.log ("measurement denom sel " + selectedDenom);
  459. $("#measurement_denomination").children('option:not(:first)').remove();
  460. $("#measurement_denomination").append(sizeHtml);
  461. $("#measurement_denomination").val(selectedDenom);
  462. }
  463. else {
  464. if (!$("#measurement_denomination").is(':disabled')){
  465. $("#measurement_denomination").attr('disabled','true');
  466. }
  467. }
  468. }
  469. });
  470. return select;
  471. }}},
  472. //{name:'isactive', index:'isactive', width:30, align:'right',editable:true,edittype:"select", formatter:'select', editoptions:{value:"1:Yes;0:No"}}
  473. {name:'generate', index:'generate', width:80, align:'right',editable:false,search:false,formatter:'showlink', formatoptions:{baseLinkUrl:'index.php/products/printBarcode'},cellattr: function (rowId, val, rawObject, cm, rdata)
  474. {
  475. //console.log(rawObject[0]);
  476. return 'title="' + rawObject[0]+'"';
  477. }}
  478. ],
  479. pager: '#pager',
  480. rowNum:10,
  481. rowList:[5,10,20],
  482. sortname: 'id',
  483. sortorder: 'desc',
  484. viewrecords: true,
  485. gridview: true,
  486. ignoreCase:true,
  487. rownumbers:true,
  488. caption: 'Products',
  489. multiselect:true,
  490. height: '100%',
  491. width:'90%',
  492. jsonReader : {
  493. root:"productdata",
  494. page: "page",
  495. total: "total",
  496. records: "records",
  497. cell: "dprow",
  498. id: "id"
  499. },
  500. onSelectRow: function(id){
  501. lastsel2 = id;
  502. selectedMfrId = myGrid.jqGrid("getCell",id,"manufacturer_id");
  503. selectedModelId = myGrid.jqGrid("getCell",id,"model_id");
  504. selectedPkgId = myGrid.jqGrid("getCell",id,"package_id");
  505. selectUom = myGrid.jqGrid("getCell",id,"uom");
  506. selectedDenom = myGrid.jqGrid("getCell",id,"measurement_denomination");
  507. //console.log("sel mfr " + selectedMfrId);
  508. //console.log("sel model " + selectedModelId);
  509. //console.log("sel pkg " + selectedPkgId);
  510. //console.log("sel uom " + selectUom);
  511. //console.log("sel denom " + selectedDenom);
  512. },
  513. editurl:'index.php/products/editProduct',
  514. postData:{"test":"val"}
  515. }).navGrid("#pager",{edit:true,add:false,del:false,search:false},{height:280,reloadAfterSubmit:false,closeAfterEdit:true,recreateForm:true,checkOnSubmit:true},{},{},{},{});
  516. myGrid.jqGrid('navButtonAdd','#pager',{
  517. caption:"",
  518. title:"Export as csv",
  519. id:"export_product",
  520. onClickButton : function () {
  521. myGrid.jqGrid('excelExport',{tag:"csv","url":"index.php/products/exportProductsInGrid"});
  522. }
  523. });
  524. myGrid.jqGrid('navButtonAdd','#pager',{
  525. caption:"",
  526. title:"Create Product",
  527. buttonicon:"ui-icon-plus",
  528. id:"add_product",
  529. onClickButton : function () {
  530. //if (!$("#newModelCtnr").parent().is(':hidden')){
  531. $("#newModelCtnr").parent().css("display","none");
  532. //}
  533. //if (!$("#modelCtnr").parent().is(':hidden')){
  534. $("#modelCtnr").parent().css("display","none");
  535. //}
  536. $( "#dialog-form" ).dialog( "open" );
  537. }
  538. });
  539. myGrid.jqGrid('navButtonAdd','#pager',{
  540. caption:"",
  541. title:"Mark as inactive",
  542. id:"inactive_product",
  543. buttonicon:"ui-icon-locked",
  544. onClickButton : function (id) {
  545. var rowid = myGrid.jqGrid('getGridParam', 'selarrrow');
  546. $.ajax({type:"post",
  547. url:"index.php/products/deactivate",
  548. data: {ids : rowid},
  549. success: function(){
  550. $("#product").trigger("reloadGrid");
  551. }
  552. });
  553. }
  554. });
  555. myGrid.jqGrid('navButtonAdd','#pager',{
  556. caption:"",
  557. title:"Mark as active",
  558. id:"active_product",
  559. buttonicon:"ui-icon-unlocked",
  560. onClickButton : function (id) {
  561. var rowid = myGrid.jqGrid('getGridParam', 'selarrrow');
  562. var rowid = myGrid.jqGrid('getGridParam', 'selarrrow');
  563. $.ajax({type:"post",
  564. url:"index.php/products/activate",
  565. data: {ids : rowid},
  566. success: function(){
  567. $("#product").trigger("reloadGrid");
  568. }
  569. });
  570. }
  571. });
  572. myGrid.jqGrid('navButtonAdd','#pager',{
  573. caption:"",
  574. title:"Load all ",
  575. id:"load_product",
  576. buttonicon:"ui-icon-arrow-4-diag",
  577. onClickButton : function (id) {
  578. var rowid = myGrid.jqGrid('getGridParam', 'selarrrow');
  579. var rowid = myGrid.jqGrid('getGridParam', 'selarrrow');
  580. $.ajax({type:"post",
  581. url:"index.php/products/populateProductsInGrid",
  582. data: {loadall : true},
  583. success: function(response){
  584. //$("#product").trigger("reloadGrid");
  585. var grid = jQuery("#product")[0];
  586. var myjsongrid = eval("("+response+")");
  587. grid.addJSONData(myjsongrid);
  588. }
  589. });
  590. }
  591. });
  592. myGrid.jqGrid ('navButtonAdd', '#pager',
  593. { caption: "", buttonicon: "ui-icon-calculator",
  594. title: "Choose Columns",
  595. onClickButton: function() {
  596. myGrid.jqGrid('columnChooser');
  597. }
  598. });
  599. $("#add_product").insertBefore("#edit_product");
  600. myGrid.jqGrid('filterToolbar', {stringResult: true, searchOnEnter: true, defaultSearch : "cn"});
  601. $("#treeViewDiv")
  602. .jstree({
  603. "plugins" : ["themes", "json_data", "ui"],
  604. "json_data" : {
  605. "ajax" : {
  606. "type": 'GET',
  607. "url": function (node) {
  608. var nodeId = "";
  609. var url = ""
  610. if (node == -1)
  611. {
  612. url = "index.php/utilities/renderParents";
  613. }
  614. else
  615. {
  616. nodeId = node.attr('id');
  617. url = "index.php/utilities/renderChildren";
  618. }
  619. return url;
  620. },
  621. data : function(node) {
  622. if (node != -1){
  623. return {
  624. "nodeid":$.trim(node.attr('id'))
  625. }
  626. }
  627. },
  628. "success": function (new_data) {
  629. return new_data;
  630. }
  631. }
  632. }})
  633. });
  634. </script>
  635. </head>
  636. <body>
  637. <?php $this->load->view("common/menubar"); ?>
  638. <!-- <button id="create-product">Create New Product</button> -->
  639. <!--<button id="inv-management" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"><span class="ui-button-text"> Manage Inventory</span></button>-->
  640. <div id ="dialog-form">
  641. <h1 id="formHeader">Add New Product Entity</h1>
  642. <form id="productForm">
  643. <fieldset>
  644. <div class="row">
  645. <div class="column">
  646. <div class="field">
  647. <label for="hasBarcode">Product Do Not Have Barcode</label>
  648. <input id="hasBarcode" name ="hasBarcode" type="checkbox"/>
  649. </div>
  650. </div>
  651. <div class="column">
  652. <div class="field">
  653. <label for="productbarcode" >Scan/ Type Barcode:</label>
  654. <input id="productbarcode" name ="productbarcode" type="text" class="required"/>
  655. </div>
  656. </div>
  657. </div>
  658. <div class="row">
  659. <div class="column">
  660. <div class="field">
  661. <label for="name">Name of Product Entity:</label>
  662. <input id="name" name ="name" type="text" class="required"/>
  663. </div>
  664. </div>
  665. <div class="column">
  666. <div class="field">
  667. <label for="desc">Description:</label>
  668. <input id="desc" name ="desc" type="text"/>
  669. </div>
  670. </div>
  671. </div>
  672. <div class="row">
  673. <div class="column">
  674. <div id="mfrCtnr">
  675. <div class="ui-widget field">
  676. <label for="mfrOp">Manufacturer:</label>
  677. <select name="mfrOp" id ="mfrOp" class="comboBoxrequired">
  678. <option value="">Select one...
  679. <?= $mfrOptions?>
  680. </select>
  681. <input id="reqBarcodeMfr" name ="reqBarcodeMfr" type="checkbox" class="reqBarcode reqBarcodeAC"/>
  682. </div>
  683. </div>
  684. </div>
  685. <div class="column" style="display:none">
  686. <div id="modelCtnr">
  687. <div class="ui-widget field">
  688. <label for="modelOp">Model :</label>
  689. <select name="modelOp" id ="modelOp" >
  690. <option value="">Select one...
  691. <?= $modelOptions?>
  692. </select>
  693. <input id="reqBarcodeModel" name ="reqBarcodeModel" type="checkbox" class="reqBarcode reqBarcodeAC"/>
  694. </div>
  695. </div>
  696. </div>
  697. <div class="column" style="display:none">
  698. <div id="newModelCtnr">
  699. <div class="field">
  700. <label for="newModelIp">Specify New Model Type :</label>
  701. <input id="newModelIp" name ="newModelIp" type="text"/>
  702. </div>
  703. </div>
  704. </div>
  705. </div>
  706. <div class="row">
  707. <div class="column">
  708. <div class="field">
  709. <label for="categoryOp">Category:</label>
  710. <!-- <select name="categoryOp" id ="categoryOp" >
  711. <option value="">Choose
  712. <?= $categoryOptions ?>
  713. </select>-->
  714. <div id="treeViewDiv" style="display:inline-block">
  715. </div>
  716. <!--<input id="categoryReq" name ="reqBarcodeCat" type="checkbox" class="reqBarcodeAC "/>-->
  717. </div>
  718. </div>
  719. <div class="column">
  720. <div class="field">
  721. <label for="supplierOp">Supplier:</label>
  722. <select name="supplierOp" id ="supplierOp" class="opt required">
  723. <option value=0>Choose
  724. <?= $supplierOptions ?>
  725. </select>
  726. <input id="reqBarcodeSupp" name ="reqBarcodeSupp" type="checkbox" class="reqBarcode"/>
  727. </div>
  728. </div>
  729. </div>
  730. <div class="row">
  731. <div class="column">
  732. <div class="field">
  733. <label for="packageOp">Package:</label>
  734. <select name="packageOp" id ="packageOp" class="required">
  735. <option value="">Choose
  736. <?= $pkgOptions ?>
  737. </select>
  738. </div>
  739. </div>
  740. </div>
  741. <div class="row">
  742. <div class="column">
  743. <div class="field">
  744. <label for="uomOp">Unit Of Measurement:</label>
  745. <select name="uomOp" id ="uomOp" class="required">
  746. <option value="">Choose
  747. </select>
  748. </div>
  749. </div>
  750. <div class="column">
  751. <div class="field" style="display:none">
  752. <label for="sizeOp">Measurement Denomination:</label>
  753. <select name="sizeOp" id ="sizeOp" class="required">
  754. <option value="">Choose
  755. </select>
  756. </div>
  757. </div>
  758. </div>
  759. </fieldset>
  760. </form>
  761. </div>
  762. <div style="display: block;height: 100%;width:90%;left:0em;" class="shopifine-ui-dialog ui-widget ui-widget-content ui-corner-all" tabindex="-1" role="dialog" aria-labelledby="ui-dialog-title-dialog-form">
  763. <table id="product"><tr><td/></tr></table>
  764. <div id="pager"></div>
  765. </div>
  766. <!-- <button id="create-product">Create New Product</button>-->
  767. <!-- <div id="feedback_bar"></div>-->
  768. <?php $this->load->view("partial/footer"); ?>
  769. </body>
  770. </html>
  771. <script type="text/javascript">
  772. $("#packageOp").change(function(){
  773. var val = $(this).val();
  774. $.ajax({type:"post",
  775. url:"index.php/products/populateMeasurementDropDowns",
  776. data: {pkgId : val},
  777. success: function(uomHtml){
  778. $("#uomOp").children('option:not(:first)').remove();
  779. $("#uomOp").append(uomHtml);
  780. }
  781. });
  782. });
  783. $("#uomOp").change(function(){
  784. var val = $(this).val();
  785. $.ajax({type:"post",
  786. url:"index.php/products/populateDenomDropdown",
  787. data: {uom : val},
  788. success: function(uomHtml){
  789. if (uomHtml!=null && uomHtml!="") {
  790. if ($("#sizeOp").parent().is(':hidden')){
  791. $("#sizeOp").parent().slideDown(50);
  792. }
  793. $("#sizeOp").children('option:not(:first)').remove();
  794. $("#sizeOp").append(uomHtml);
  795. }
  796. else {
  797. if (!$("#sizeOp").parent().is(':hidden')){
  798. $("#sizeOp").parent().slideUp(50);
  799. }
  800. }
  801. }
  802. });
  803. });
  804. $(".reqBarcodeAC").change(function (){
  805. var checked = $(this).is(':checked');
  806. if (checked){
  807. $(this).parent().find('select').addClass("comboBoxrequired");
  808. }
  809. else {
  810. $(this).parent().find('select').removeClass("comboBoxrequired");
  811. }
  812. })
  813. // $(".reqBarcodetree").change(function (){
  814. // var checked = $(this).is(':checked');
  815. // if (checked){
  816. // $(this).parent().find('select').addClass("comboBoxrequired");
  817. //
  818. // }
  819. // else {
  820. // $(this).parent().find('select').removeClass("comboBoxrequired");
  821. // }
  822. // })
  823. $("#hasBarcode").change(function (){
  824. var checked = $(this).is(':checked');
  825. if (checked){
  826. $("#productbarcode").attr('disabled',true)
  827. }
  828. else {
  829. $("#productbarcode").attr('disabled',false)
  830. }
  831. })
  832. $("#inv-management").click(function (){
  833. document.location.href="index.php/products/loadInventory";
  834. })
  835. </script>