Advertisement
Guest User

Untitled

a guest
Dec 1st, 2015
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.86 KB | None | 0 0
  1. frappe.provide('frappe.pages');
  2. frappe.provide('frappe.views');
  3. frappe.provide('sample_register');
  4. frappe.require("assets/frappe/js/lib/slickgrid/slick.grid.js");
  5. frappe.require("assets/frappe/js/lib/slickgrid/slick.grid.css");
  6. frappe.require("assets/frappe/js/lib/slickgrid/slick.core.js");
  7. frappe.require("assets/frappe/js/lib/slickgrid/slick.editors.js");
  8. frappe.require("assets/frappe/js/lib/slickgrid/slick.formatters.js");
  9. frappe.require("assets/frappe/js/lib/slickgrid/plugins/slick.checkboxselectcolumn.js");
  10. frappe.require("assets/frappe/js/lib/slickgrid/plugins/slick.rowselectionmodel.js");
  11. frappe.require("assets/frappe/js/lib/slickgrid/plugins/slick.autotooltips.js");
  12. frappe.require("assets/frappe/js/lib/slickgrid/plugins/slick.cellrangedecorator.js");
  13. frappe.require("assets/frappe/js/lib/slickgrid/plugins/slick.cellrangeselector.js");
  14. frappe.require("assets/frappe/js/lib/slickgrid/plugins/slick.cellcopymanager.js");
  15. frappe.require("assets/frappe/js/lib/slickgrid/plugins/slick.cellexternalcopymanager.js");
  16. frappe.require("assets/frappe/js/lib/slickgrid/plugins/slick.cellselectionmodel.js");
  17. frappe.require("assets/frappe/js/lib/slickgrid/plugins/slick.rowselectionmodel.js");
  18. frappe.require("assets/frappe/js/lib/slickgrid/plugins/slick.cellselectionmodel.js");
  19.  
  20. var cur_page = null;
  21. frappe.pages['jobboard'].on_page_load = function(wrapper) {
  22. var page = frappe.ui.make_app_page({
  23. parent: wrapper,
  24. title: 'Job Card Creation',
  25. single_column: true
  26. });
  27. var options = {
  28. doctype: "Sample Entry Register",
  29. parent: page
  30. };
  31. $("<table width='100%>\
  32. <tr>\
  33. <td valign='top' width='50%'>\
  34. <div id='myGrid' style='width:600px;height:500px;''></div>\
  35. </td>\
  36. </tr>\
  37. </table>").appendTo($(wrapper).find('.layout-main-section'));
  38. setTimeout(function(){
  39. new new sample_register.JobCard(options, wrapper, page);
  40. }, 1)
  41. frappe.breadcrumbs.add("Sample Register");
  42.  
  43. }
  44.  
  45. sample_register.JobCard = Class.extend({
  46. init: function(opts, wrapper,page) {
  47. $.extend(this, opts);
  48. this.make_filters(wrapper);
  49. this.prepare_data();
  50. this.page.main.find(".page").css({"padding-top": "0px"});
  51. },
  52. make_fun: function(){
  53. this.page.set_title(__("Dashboard") + " - " + __("Job Card Creation"));
  54.  
  55. },
  56. make: function(){
  57. this._super();
  58. this.make_fun();
  59. },
  60. make_filters: function(wrapper){
  61. var me = this;
  62. this.page = wrapper.page;
  63.  
  64. this.page.set_primary_action(__("Refresh"),
  65. function() { me.refresh(); }, "icon-refresh")
  66.  
  67. this.department = this.page.add_field({fieldtype:"Link", label:"Sample Entry Register",
  68. fieldname:"sample_entry_register", options:"Sample Entry Register"});
  69. },
  70. create_job: function(){
  71. frappe.msgprint("Creating job in JobCard")
  72. },
  73.  
  74. check_formatter: function(row, cell, value, columnDef, dataContext) {
  75. return repl('<input type="checkbox" data-id="%(id)s" \
  76. class="plot-check" %(checked)s>', {
  77. "id": dataContext.id,
  78. "checked": dataContext.checked ? 'checked="checked"' : ""
  79. })
  80. },
  81. refresh: function(){
  82. var me = this;
  83. msgprint("refresh clicked");
  84. msgprint(this.page.fields_dict.sample_entry_register.get_parsed_value());
  85.  
  86. //print selected rows data
  87. var selectedData = [],
  88. selectedIndexes;
  89.  
  90. selectedIndexes = grid.getSelectedRows();
  91. jQuery.each(selectedIndexes, function (index, value) {
  92. selectedData.push(grid.getData()[value]);
  93. });
  94. msgprint(selectedData); //selected data contains row data of currently selected checkbox
  95. //print selected rows data end
  96. var rows = grid.getData();
  97. //msgprint(rows[0]["sampleid"]);
  98. // msgprint(rows[1]["sampleid"]);
  99. msgprint(rows[2]["sampleid"]);
  100.  
  101. for (r in rows) {
  102. var row = rows[r]
  103. for (i = 1; i < 4; ++i) {
  104. msgprint(rows[r][i]);
  105. }
  106. }
  107. },
  108.  
  109. prepare_data: function() {
  110. var me = this;
  111. function requiredFieldValidator(value) {
  112. if (value == null || value == undefined || !value.length) {
  113. return {valid: false, msg: "This is a required field"};
  114. } else {
  115. return {valid: true, msg: null};
  116. }
  117. }
  118. var columns = [ ];
  119. var options = {
  120. enableCellNavigation: true,
  121. enableColumnReorder: false
  122. };
  123.  
  124. var grid;
  125. var data=[];
  126. frappe.call({
  127. method: "sample_register.sample_register.page.dashboard.dashboard.get_sample_data",
  128. type: "GET",
  129. args: {
  130. args:{
  131.  
  132. }
  133. },
  134. callback: function(r){
  135. if(r.message){
  136. me.data = r.message;
  137. me.make_grid(r.message,columns,options)
  138. }
  139. }
  140. });
  141. },
  142. make_grid:function(data1,columns,options){
  143. $(function () {
  144. var data = [];
  145.  
  146. for (var i = 0; i<data1.get_sample_data.length; i++) {
  147. data[i] = {
  148. checked:true,
  149. sampleid: data1.get_sample_data[i][1],
  150. customer: data1.get_sample_data[i][2],
  151. type: data1.get_sample_data[i][3],
  152. priority: 1,
  153. standard: "1",
  154. test_group: 1
  155. };
  156. }
  157. grid = new Slick.Grid("#myGrid", data, columns, options);
  158.  
  159. var checkboxSelector = new Slick.CheckboxSelectColumn({
  160. cssClass: "slick-cell-checkboxsel"
  161. });
  162. columns.push(checkboxSelector.getColumnDefinition());
  163. columns.push(
  164. {id: "sample_id", name: "Sample Id", field: "sampleid"},
  165. {id: "customer", name: "Customer", field: "customer"},
  166. {id: "type", name: "Type", field: "type"},
  167. {id: "priority", name: "Priority", field: "priority"},
  168. {id: "standard", name: "Standard", field: "standard"},
  169. {id: "test_group", name: "Test Group", field: "test_group"}
  170. );
  171.  
  172. grid = new Slick.Grid("#myGrid", data, columns, options);
  173. grid.setSelectionModel(new Slick.RowSelectionModel({selectActiveRow: false}));
  174. grid.registerPlugin(checkboxSelector);
  175.  
  176. var columnpicker = new Slick.Controls.ColumnPicker(columns, grid, options);
  177.  
  178.  
  179. })
  180.  
  181.  
  182. },
  183. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement