PageRenderTime 27ms CodeModel.GetById 0ms RepoModel.GetById 0ms app.codeStats 0ms

/magehelp/application/views/products/product_category_grid.php

https://bitbucket.org/jit_bec/shopifine
PHP | 240 lines | 199 code | 36 blank | 5 comment | 7 complexity | 7e437068e925bc518584e922566eefab MD5 | raw file
Possible License(s): LGPL-3.0
  1. <html>
  2. <head>
  3. <?php $this->load->view("common/header"); ?>
  4. <script src="<?php echo base_url();?>js/jquery.jstree.js" type="text/javascript" language="javascript" charset="UTF-8"></script>
  5. <style>
  6. .ui-combobox > input{
  7. width:20em;
  8. }
  9. .ui-combobox > a{
  10. left:170px;
  11. }
  12. .column {width:400px;}
  13. .field {width:45em;}
  14. </style>
  15. <script>
  16. $(document).ready(function(){
  17. $.validator.addMethod('treerequired', function(value, element) {
  18. var selArray = $('#treeViewDiv').jstree('get_selected');
  19. console.log(selArray.length);
  20. alert (selArray.length);
  21. if (selArray.length == 0){
  22. return false;
  23. }
  24. return true;
  25. }, 'Please select a category');
  26. $( "#productForm" ).validate({
  27. errorPlacement: function(error, element) {
  28. error.appendTo( element.parent());
  29. }//,
  30. // rules: {
  31. // mfrOp: {
  32. // comboBoxrequired: true
  33. // }
  34. // }
  35. }
  36. );
  37. $( "#dialog:ui-dialog" ).dialog( "destroy" );
  38. $("#productOp").combobox();
  39. $( "#dialog-form" ).dialog({
  40. autoOpen: false,
  41. height: 'auto',
  42. width: '40%',
  43. position:[350,25],
  44. modal: true,
  45. buttons: {
  46. "Add Category To Products": function() {
  47. var bValid = $("#productForm").valid();
  48. if (bValid ){
  49. var selectedIds = [];
  50. $('#treeViewDiv').jstree('get_selected').each(function(){
  51. selectedIds.push($(this).attr('id'));
  52. });
  53. $.ajax({
  54. url:"index.php/products/addcategoryToProduct",
  55. data: {
  56. productOp : $("#productOp").val(),
  57. productIp: $("#productOp-input").val(),
  58. category:JSON.stringify(selectedIds)
  59. },
  60. type:"POST",
  61. success:function(serverresponse)
  62. {
  63. showSuccessMessage("Product Suceessfully Added To category");
  64. $("#resources").trigger("reloadGrid");
  65. }
  66. });
  67. $( this ).dialog( "close" );
  68. }
  69. },
  70. Cancel: function() {
  71. $( this ).dialog( "close" );
  72. }
  73. },
  74. close: function() {
  75. $("#productForm").data('validator').resetForm();
  76. $('#productForm')[0].reset();
  77. }
  78. });
  79. var myGrid = $("#resources");
  80. myGrid.jqGrid({
  81. url:'index.php/products/populateProductCategoryMapping',
  82. datatype: 'json',
  83. mtype: 'GET',
  84. colNames:['Product','Barcode','Product ID','Category ID','Category'],
  85. colModel :[
  86. {name:'product_name', index:'product_name', width:140, align:'right',editable:false,search:false},
  87. {name:'barcode', index:'barcode', width:140, align:'right',editable:false},
  88. {name:'product_id', index:'product_id', width:100, align:'right',hidden:true},
  89. {name:'category_id', index:'category_id', width:100, align:'right',hidden:true},
  90. {name:'category_name', index:'category_name', width:140, align:'right',editable:false},
  91. ],
  92. pager: '#pager',
  93. rowNum:10,
  94. rowList:[5,10,20],
  95. sortname: 'id',
  96. sortorder: 'desc',
  97. viewrecords: true,
  98. gridview: true,
  99. ignoreCase:true,
  100. rownumbers:true,
  101. height:'auto',
  102. width:'auto',
  103. multiselect:true,
  104. caption: 'Product Category Mapping',
  105. jsonReader : {
  106. root:"productcategorydata",
  107. page: "page",
  108. total: "total",
  109. records: "records",
  110. cell: "dprow",
  111. id: "id"
  112. }
  113. }).navGrid("#pager",{edit:false,add:false,del:false,search:false},
  114. /* edit Option*/ {},
  115. /* Add Option*/ {reloadAfterSubmit:true,recreateForm:true},
  116. {},{},{});
  117. myGrid.jqGrid('filterToolbar', {stringResult: true, searchOnEnter: true, defaultSearch : "cn"});
  118. var settingsObj ={grid_id:'resources',pager:'pager'};
  119. var buttons = {add_cat:true,del_cat:true};
  120. addCustomButtonsInProductsGrid(settingsObj, buttons);
  121. $("#add_resources").insertBefore("#del_resources")
  122. $("#treeViewDiv")
  123. .jstree({
  124. "plugins" : ["themes", "json_data", "ui"],
  125. "json_data" : {
  126. "ajax" : {
  127. "type": 'GET',
  128. "url": function (node) {
  129. var nodeId = "";
  130. var url = ""
  131. if (node == -1)
  132. {
  133. url = "index.php/utilities/renderParents";
  134. }
  135. else
  136. {
  137. nodeId = node.attr('id');
  138. url = "index.php/utilities/renderChildren";
  139. }
  140. return url;
  141. },
  142. data : function(node) {
  143. if (node != -1){
  144. return {
  145. "nodeid":$.trim(node.attr('id'))
  146. }
  147. }
  148. },
  149. "success": function (new_data) {
  150. return new_data;
  151. }
  152. }
  153. }});
  154. });
  155. $(window).load(function(){
  156. var warningDialogs={one:true,none:true,status:true,exactlyone:true,morethanone:true};
  157. initDialogs(warningDialogs);
  158. initDeleteDialog();
  159. });
  160. </script>
  161. </head>
  162. <body>
  163. <?php $this->load->view("common/menubar"); ?>
  164. <?php $this->load->view("common/dialogs"); ?>
  165. <div id ="dialog-form">
  166. <h1 id="formHeader">Add Category</h1>
  167. <form id="productForm">
  168. <fieldset>
  169. <div class="row">
  170. <div class="column">
  171. <div class="field">
  172. <label for="productOp">Products:</label>
  173. <select name="productOp" id ="productOp" class="required">
  174. <option value="">Choose
  175. <?= $productOptions ?>
  176. </select>
  177. <!--<button id="test"> test</button>-->
  178. </div>
  179. </div>
  180. </div>
  181. <div class="row">
  182. <div class="column">
  183. <div class="field">
  184. <label for="categoryOp">Category:</label>
  185. <div id="treeViewDiv" style="display:inline-block">
  186. </div>
  187. <input id="treeViewHidden" name ="treeViewHidden" style="display:inline-block" class="treerequired" type="hidden"/>
  188. </div>
  189. </div>
  190. </div>
  191. </fieldset>
  192. </form>
  193. </div>
  194. <div style="display: block;height: 100%;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">
  195. <?php $this->load->view("common/message"); ?>
  196. <div class="table-grid">
  197. <h1 id="table header">Products And Categories</h1>
  198. <table id="resources"><tr><td/></tr></table>
  199. <div id="pager"></div>
  200. </div>
  201. </div>
  202. <?php $this->load->view("partial/footer"); ?>
  203. </body>
  204. </html>