/magehelp/application/views/utilities/add_packaging.php

https://bitbucket.org/jit_bec/shopifine · PHP · 378 lines · 310 code · 50 blank · 18 comment · 15 complexity · 081abc587501717954cb1b700fa91535 MD5 · raw file

  1. <html>
  2. <head>
  3. <?php $this->load->view("common/header"); ?>
  4. <!-- <script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script>-->
  5. <style>
  6. #tabs-1{
  7. height:20em;
  8. }
  9. #tabs-2{
  10. height:25em;
  11. }
  12. </style>
  13. <script>
  14. $(document).ready(function(){
  15. $.validator.addMethod('notZero', function(value, element) {
  16. return (value != '0');
  17. }, 'Please select an option.');
  18. $.validator.addMethod("greaterThanZero", function(value, element) {
  19. return this.optional(element) || (parseInt(value) > 0);
  20. }, "Denomination must be greater than zero");
  21. });
  22. </script>
  23. <script type="text/javascript">
  24. $(function() {
  25. $("#tabs").tabs({
  26. load:function (event,ui){
  27. $(".opt").change(function(event){
  28. event.preventDefault();
  29. var optionsMap =jQuery.parseJSON('<?php echo $packageMap ?>');
  30. var type = optionsMap[$(this).val()];
  31. $("#typeCon").parent().show();
  32. $("#packtype").val(type);
  33. $("#packtype").prop('disabled',true);
  34. });
  35. $("#packagingForm").validate({
  36. ignore: ":hidden",
  37. onfocusout: false,
  38. rules: {
  39. packageOptions: {
  40. notZero: true
  41. },
  42. uomOp: {
  43. notZero: true
  44. },
  45. denomIp: {
  46. number:true,
  47. greaterThanZero:true
  48. }
  49. }
  50. });
  51. $("#packagingFormNew").validate({
  52. ignore: ":hidden",
  53. onfocusout: false,
  54. rules: {
  55. packagingFormNew: {
  56. notZero: true
  57. }
  58. ,
  59. denomIp: {
  60. number:true,
  61. greaterThanZero:true
  62. }
  63. }
  64. });
  65. $( "#newTypeDefLink" )
  66. .click(function() {
  67. $( "#dialog-form" ).dialog( "open" );
  68. });
  69. $("#existingPkgBtn").click(function(){
  70. var bValid = $("#packagingForm").valid();
  71. if (bValid ){
  72. var packageOptions = $("#packageOptions").val();
  73. var packtype = $("#packtype").val();
  74. var uomOp = $("#uomOpTabOne").val();
  75. var sizeOp = $("#sizeOpTabOne").val();
  76. var uomIp = $("#uomIpTabOne").val();
  77. var denomIp = $("#denomIpTabOne").val();
  78. $.ajax({url:"index.php/utilities/testuom",
  79. type:"POST",
  80. data:{packageOptions:packageOptions,packtype:packtype,uomOp:uomOp,sizeOp:sizeOp,uomIp:uomIp,denomIp:denomIp},
  81. success:function(response)
  82. {
  83. //myGrid.trigger("reloadGrid");
  84. console.log("success");
  85. }
  86. })
  87. }
  88. });
  89. $("#newPkgBtn").click(function(){
  90. var bValid = $("#packagingFormNew").valid();
  91. if (bValid ){
  92. var namePkg = $("#namePkg").val();
  93. var desc = $("#desc").val();
  94. var typeOp = $("#typeOp").val();
  95. var uomOp = $("#uomOpTabTwo").val();
  96. var sizeOp = $("#uomOpTabTwo").val();
  97. var uomIp = $("#uomOpTabTwo").val();
  98. var denomIp = $("#uomOpTabTwo").val();
  99. $.ajax({url:"index.php/utilities/testuom",
  100. type:"POST",
  101. data:{namePkg:namePkg,desc:desc,uomOp:uomOp,typeOp:typeOp,sizeOp:sizeOp,uomIp:uomIp,denomIp:denomIp},
  102. success:function(response)
  103. {
  104. //myGrid.trigger("reloadGrid");
  105. console.log("success");
  106. }
  107. })
  108. }
  109. });
  110. $(".uomOp").change(function(){
  111. var val = $(this).val();
  112. var tabId = this.id.split("-")[1];
  113. $.ajax({type:"post",
  114. url:"index.php/utilities/loadSize/"+val,
  115. success: function(sizeHtml){
  116. $("#sizeOp-"+tabId).children().remove();
  117. $("#sizeOp-"+tabId).append(sizeHtml);
  118. }});
  119. });
  120. $("#existMeasurementTypeLinkTabOne").click (function(event){
  121. event.preventDefault();
  122. if ($("#existingUOMContainerTabOne").parent().is(":hidden")){
  123. $("#existingUOMContainerTabOne").parent().show();
  124. $("#newUOMContainerTabOne").parent().hide();
  125. $("#newMeasurementTypeLinkContainerTabOne").parent().show();
  126. $("#existingMeasurementTypeLinkContainerTabOne").parent().hide()
  127. }
  128. });
  129. $("#newMeasurementTypeLinkTabOne").click (function(event){
  130. event.preventDefault();
  131. if ($("#newUOMContainerTabOne").parent().is(":hidden")){
  132. $("#newUOMContainerTabOne").parent().show();
  133. $("#existingUOMContainerTabOne").parent().hide();
  134. $("#existingMeasurementTypeLinkContainerTabOne").parent().show();
  135. $("#newMeasurementTypeLinkContainerTabOne").parent().hide();
  136. }
  137. });
  138. $("#existMeasurementTypeLinkTabTwo").click (function(event){
  139. event.preventDefault();
  140. if ($("#existingUOMContainerTabTwo").parent().is(":hidden")){
  141. $("#existingUOMContainerTabTwo").parent().show();
  142. $("#newUOMContainerTabTwo").parent().hide();
  143. $("#newMeasurementTypeLinkContainerTabTwo").parent().show();
  144. $("#existingMeasurementTypeLinkContainerTabTwo").parent().hide()
  145. }
  146. });
  147. $("#newMeasurementTypeLinkTabTwo").click (function(event){
  148. event.preventDefault();
  149. if ($("#newUOMContainerTabTwo").parent().is(":hidden")){
  150. $("#newUOMContainerTabTwo").parent().show();
  151. $("#existingUOMContainerTabTwo").parent().hide();
  152. $("#existingMeasurementTypeLinkContainerTabTwo").parent().show();
  153. $("#newMeasurementTypeLinkContainerTabTwo").parent().hide();
  154. }
  155. });
  156. }
  157. });
  158. $( "#dialog-form" ).dialog({
  159. autoOpen: false,
  160. height: 150,
  161. width: 300,
  162. modal: true,
  163. buttons: {
  164. "Create package type": function() {
  165. var value = $("#nameType").val();
  166. if ( value!= ""){
  167. $("#typeOp").append("<OPTION VALUE=\"" + value + "\">" + value);
  168. $( this ).dialog( "close" );
  169. }
  170. },
  171. Cancel: function() {
  172. $( this ).dialog( "close" );
  173. }
  174. },
  175. close: function() {
  176. //allFields.val( "" ).removeClass( "ui-state-error" );
  177. }
  178. });
  179. //package grid
  180. function selectValueCheck(value,colname){
  181. //var success = /^\d{5}$/.test(value);
  182. if (value==0 || value =="" || value ==null)
  183. return [false,"Invalid packageType. Please enter Package Type "];
  184. else
  185. return [true,""];
  186. }
  187. var myGrid = $("#packages"),lastsel2;
  188. var editparameters = {
  189. "keys" : true,
  190. "oneditfunc" : null,
  191. "successfunc" : function(){
  192. myGrid.trigger("reloadGrid");
  193. return true;
  194. },
  195. "aftersavefunc" : null,
  196. "errorfunc": null,
  197. "afterrestorefunc" : null,
  198. "restoreAfterError" : true,
  199. "mtype" : "POST"
  200. };
  201. myGrid.jqGrid({
  202. url:'index.php/utilities/populatePackageInGrid',
  203. datatype: 'json',
  204. mtype: 'GET',
  205. colNames:['Package Name','Description','Package Type'],
  206. colModel :[
  207. {name:'package_name', index:'package_name', width:80, align:'right',editable:false},
  208. {name:'package_description', index:'package_description', width:140, align:'right',editable:true,editoptions:{size:"20",maxlength:"30"}},
  209. {name:'package_type',index:'package_type', width:80, align:'right',editrules:{custom:true,custom_func:selectValueCheck},editable:true,edittype:"select",editoptions:{dataUrl:"index.php/utilities/populatePackageTypesEdit",buildSelect:function(response)
  210. {
  211. var select = "<select name=" + "pkgOpEdit" + "id =" +"pkgOpEdit" +">" +
  212. "<option value=" + ">Select one..." + response + "</select>";
  213. return select;
  214. }}}
  215. ],
  216. pager: '#pager',
  217. rowNum:10,
  218. rowList:[5,10,20],
  219. sortname: 'package_id',
  220. sortorder: 'desc',
  221. viewrecords: true,
  222. gridview: true,
  223. ignoreCase:true,
  224. rownumbers:true,
  225. height:'auto',
  226. width:680,
  227. caption: 'Packaging',
  228. jsonReader : {
  229. root:"packagingdata",
  230. page: "page",
  231. total: "total",
  232. records: "records",
  233. cell: "dprow",
  234. id: "package_id"
  235. },
  236. onSelectRow: function(id){if(id && id!==lastsel2){
  237. myGrid.restoreRow(lastsel2);
  238. myGrid.editRow(id,editparameters);
  239. lastsel2=id;
  240. }
  241. }
  242. ,editurl:'index.php/utilities/updatePackages',
  243. subGrid:true,
  244. subGridRowExpanded: function(subgrid_id, row_id) {
  245. // we pass two parameters
  246. // subgrid_id is a id of the div tag created whitin a table data
  247. // the id of this elemenet is a combination of the "sg_" + id of the row
  248. // the row_id is the id of the row
  249. // If we wan to pass additinal parameters to the url we can use
  250. // a method getRowData(row_id) - which returns associative array in type name-value
  251. // here we can easy construct the flowing
  252. var subgrid_table_id, pager_id;
  253. subgrid_table_id = subgrid_id+"_t";
  254. pager_id = "p_"+subgrid_table_id;
  255. $("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'></table><div id='"+pager_id+"' class='scroll'></div>");
  256. jQuery("#"+subgrid_table_id).jqGrid({
  257. url:'index.php/utilities/populateUomInSubgrid?q=2&id='+row_id,
  258. datatype: 'json',
  259. colNames: ['Denomination','Unit'],
  260. colModel: [
  261. {name:"denom",index:"denom",width:80},
  262. {name:"uom",index:"uom",width:130},
  263. ],
  264. rowNum:20,
  265. pager: pager_id,
  266. sortname: 'uom',
  267. sortorder: "asc",
  268. height: '100%',
  269. jsonReader : {
  270. root:"uomdata",
  271. page: "page",
  272. total: "total",
  273. records: "records",
  274. cell: "dprow",
  275. id: "id"
  276. }
  277. });
  278. jQuery("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,{edit:false,add:false,del:false,search:false})
  279. },
  280. subGridRowColapsed: function(subgrid_id, row_id) {
  281. // this function is called before removing the data
  282. //var subgrid_table_id;
  283. //subgrid_table_id = subgrid_id+"_t";
  284. //jQuery("#"+subgrid_table_id).remove();
  285. }
  286. }).navGrid("#pager",{edit:false,add:false,del:false,search:false},{height:280,reloadAfterSubmit:false,closeAfterEdit:true,recreateForm:true,checkOnSubmit:true},{},{},{},{});
  287. myGrid.jqGrid('filterToolbar', {stringResult: true, searchOnEnter: true, defaultSearch : "cn"});
  288. });
  289. </script>
  290. <style>
  291. .ui-widget-header {height:23.5px;}
  292. </style>
  293. </head>
  294. <body onload="init()">
  295. <?php $this->load->view("common/menubar"); ?>
  296. <div style="display: block;height: auto;" class="shopifine-ui-dialog ui-widget ui-widget-content ui-corner-all" tabindex="-1" role="dialog" aria-labelledby="ui-dialog-title-dialog-form">
  297. <div class="form-container tab-container" style="height:80%">
  298. <div id="tabs">
  299. <ul>
  300. <li id="existingPkgLine"><a id="existingPkgLink" href="<?php echo site_url('utilities/loadExistingPackageFragment') ?>">Existing Package</a></li>
  301. <li id="newPkgLine"><a id="newPkgLink" href="<?php echo site_url('utilities/loadNewPackageFragment') ?>">New package</a></li>
  302. </ul>
  303. </div>
  304. </div>
  305. <div class="table-grid">
  306. <h1 id="table header">Packages</h1>
  307. <table id="packages"><tr><td/></tr></table>
  308. <div id="pager"></div>
  309. </div>
  310. </div>
  311. <div id="dialog-form" title="Create New Type">
  312. <form>
  313. <label for="nameType">Name of Type: </label>
  314. <input type="text" name="nameType" id="nameType" />
  315. </form>
  316. </div>
  317. <?php $this->load->view("partial/footer"); ?>
  318. </body>
  319. </html>
  320. <script type="text/javascript">
  321. function init(){
  322. var options = '<?php echo $options ?>';
  323. if (!options){
  324. $("#packDiv").hide();
  325. }
  326. }
  327. </script>
  328. <