Advertisement
Guest User

jqgrid example

a guest
Dec 9th, 2010
2,419
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <script type="text/javascript">
  2.   {% if sub_show_hr_flag %}
  3.     jQuery(document).ready(function(){
  4.       var last_selected_row;
  5.       last_selected_row = -99;
  6.       jQuery("#grid").jqGrid({
  7.           url:'{{ json_data_handler }}?year={{ get_param_year }}&month={{ get_param_month }}&project_id={{ get_param_project_id }}',
  8.           datatype: "json",
  9.           mtype: 'GET',
  10.           colNames:['hour_record_pk', 'project_pk', 'WD', 'date', 'sum', 'description', 'WP'],
  11.           colModel:[
  12.                     {name:'hour_record_pk',index:'hour_record_pk', width:25, hidden:true, sortable:false, editable:true, editoptions:{readonly:true,size:10}},
  13.                     {name:'project_pk',index:'project_pk', width:25, hidden:true, sortable:false, editable:true, editoptions:{readonly:true,size:10}},
  14.                     {name:'weekday',index:'weekday', width:40, editable:false, sortable:false},
  15.                     {name:'date_str',index:'date_str', width:90, editable:true, sortable:false, editoptions:{readonly:true}},
  16.                     {name:'sum',index:'sum', width:45, editable: true, sortable:false, editrules:{number:true, minValue:0, maxValue:24, required:true}},
  17.                    //{name:'sum',index:'sum', width:90, editable: true, sortable:false, edittype:"select", editoptions:{required:true,value:"0:0;0.5:0.5;1:1;1.5:1.5;2:2;2.5:2.5;3:3;3.5:3.5;4:4;4.5:4.5;5:5;5.5:5.5;6:6;6.5:6.5;7:7;7.5:7.5;8:8;8.5:8.5;9:9;9.5:9.5;10:10;10.5:10.5;11:11;11.5:11.5;12:12;12.5:12.5;13:13;13.5:13.5;14:14;14.5:14.5;15:15;15.5:15.5;16:16"}},
  18.                     {name:'description',index:'description', width:990, editable:true, sortable:false, editoptions: {required:true, maxlength: 200}},
  19.                     {name:'work_place',index:'work_place', width:50, editable: true, sortable:false, edittype:"select", editoptions:{required:true,value:"{{ work_place_dropdown }}"}},
  20.                ],
  21.           jsonReader : {
  22.               repeatitems:false
  23.           },
  24.  
  25.           rowNum:{{ row_num }},
  26.           //pager: jQuery('#gridpager'),
  27.           sortname: 'id',
  28.           viewrecords: true,
  29.           cellsubmit: 'remote', //this is new. check if it works!!!
  30.           checkInput: true, //this is new. check if it works!!!
  31.           sortorder: "asc",
  32.           width: 975,
  33.           //autowidth: true,
  34.           height: {{ height }},
  35.           caption:"Hour Record Overview for {{ project.projectclassification.is_internal|yesno:"internal,external" }} project: {{ project }} - in Month: {{ get_param_month }} - in Year: {{ get_param_year }} ",
  36.           reloadAfterEdit: true, //seems to have no effect
  37.           reloadAfterSave: true, //seems to have no effect
  38.  
  39.          {% ifequal is_active_param 1 %}
  40.             {% ifequal state 0 %}
  41.  
  42.              onSelectRow: function(row_id){ //if hour records already part of an invoice hide this lines
  43.                  if(row_id != null) {
  44.                     var date_str = jQuery('#grid').getCell(row_id, 'date_str');
  45.                     //var sum = jQuery('#grid').getCell(row_id, 'sum');
  46.                     var description = jQuery('#grid').getCell(row_id, 'description');
  47.                     if(date_str != "Total"){
  48.                         if(row_id !== last_selected_row) {
  49.                             if(row_id == -99){
  50.                                 //thats the first click of the user after initial load of the grid
  51.                                 jQuery('#grid').jqGrid('saveRow',row_id)
  52.                                    .editRow(row_id, true,true,reload);
  53.                                 last_selected_row = row_id;
  54.                             }
  55.                             else{
  56.                                  //after user jumps from one cell to another using the mouse
  57.                                 jQuery('#grid').jqGrid('saveRow',last_selected_row,reload);
  58.  
  59.                                 jQuery('#grid').jqGrid('restoreRow',last_selected_row);
  60.                                 last_selected_row = row_id;
  61.  
  62.                             }
  63.                         } else {
  64.                                 //if the user clicks in another cell save the last edited cell - does not work yet
  65.                                
  66.                                 //jQuery('#grid').jqGrid('saveRow',last_selected_row,reload);
  67.                                 //jQuery('#grid').jqGrid('editRow',row_id, true,false,reload);
  68.                                 jQuery('#grid').jqGrid('saveRow',row_id)
  69.                                    .editRow(row_id, true,true,reload);
  70.                                 last_selected_row=row_id;
  71.                         }
  72.                     }
  73.                   }
  74.                  else{
  75.                       alert("row id == null");
  76.                       }
  77.                 },
  78.                editurl:"{% url set_hour_record_json_set %}",
  79.              {% endifequal %}
  80.           {% endifequal %}
  81.  
  82.           afterInsertRow:function (rowid, aData){
  83.                     var currentTime = new Date();
  84.                     var month = currentTime.getMonth() + 1;
  85.                     if(month < 10){
  86.                         month = "0" + month;
  87.                     }
  88.                     var day = currentTime.getDate();
  89.                     if(day < 10){
  90.                         day = "0" + day;
  91.                     }
  92.                     var year = currentTime.getFullYear();
  93.                     var actual_date_str = year + "-" + month + "-" + day;
  94.  
  95.                     var cont = jQuery('#grid').getCell(rowid, 'weekday');
  96.                     var date_str = jQuery('#grid').getCell(rowid, 'date_str');
  97.  
  98.                     if(cont == "Sa" || cont == "Su"){
  99.                         jQuery('#grid').setCell(rowid,"description",'',{background:'#DCDCDC', 'border-color':'#808080'})
  100.                         jQuery('#grid').setCell(rowid,"date_str",'',{background:'#DCDCDC', 'border-color':'#808080'})
  101.                         jQuery('#grid').setCell(rowid,"sum",'',{background:'#DCDCDC', 'border-color':'#808080'})
  102.                         jQuery('#grid').setCell(rowid,"weekday",'',{background:'#DCDCDC', 'border-color':'#808080'})
  103.                         jQuery('#grid').setCell(rowid,"work_place",'',{background:'#DCDCDC', 'border-color':'#808080'})
  104.                     }
  105.                     if(cont == "Fr"){
  106.                         jQuery('#grid').setCell(rowid,"description",'',{'border-bottom-color':'#808080'})
  107.                         jQuery('#grid').setCell(rowid,"date_str",'',{'border-bottom-color':'#808080'})
  108.                         jQuery('#grid').setCell(rowid,"sum",'',{'border-bottom-color':'#808080'})
  109.                         jQuery('#grid').setCell(rowid,"weekday",'',{'border-bottom-color':'#808080'})
  110.                         jQuery('#grid').setCell(rowid,"work_place",'',{'border-bottom-color':'#808080'})
  111.                     }
  112.                     if(date_str == "Total"){
  113.                         jQuery('#grid').setCell(rowid,"date_str",'',{background:'#DCDCDC', 'color':'#000000', 'font-weight':'bold', 'vertical-align':'middle'})
  114.                         jQuery('#grid').setCell(rowid,"sum",'',{background:'#DCDCDC', 'color':'#00BFFF', 'font-weight':'bold', 'vertical-align':'middle' })
  115.                         jQuery('#grid').setCell(rowid,"description",'',{background:'#DCDCDC', 'color':'#000000', 'font-weight':'bold', 'vertical-align':'middle' })
  116.                         jQuery('#grid').setCell(rowid,"weekday",'',{background:'#DCDCDC', 'color':'#000000', 'font-weight':'bold', 'vertical-align':'middle' })
  117.                         jQuery('#grid').setCell(rowid,"work_place",'',{background:'#DCDCDC', 'color':'#000000', 'font-weight':'bold', 'vertical-align':'middle' })
  118.                     }
  119.                     if(date_str == actual_date_str){
  120.                         jQuery('#grid').setCell(rowid,"date_str",'',{'color':'#FF3300', 'vertical-align':'middle'})
  121.                         jQuery('#grid').setCell(rowid,"sum",'',{'color':'#FF3300', 'vertical-align':'middle' })
  122.                         jQuery('#grid').setCell(rowid,"description",'',{'color':'#FF3300', 'vertical-align':'middle' })
  123.                         jQuery('#grid').setCell(rowid,"weekday",'',{'color':'#FF3300', 'vertical-align':'middle' })
  124.                         jQuery('#grid').setCell(rowid,"work_place",'',{'color':'#FF3300', 'vertical-align':'middle' })
  125.                     }
  126.                     jQuery('#grid').setCell(rowid,"date_str",'',{'text-align':'center', 'vertical-align':'middle'})
  127.                     jQuery('#grid').setCell(rowid,"sum",'',{'text-align':'center', 'vertical-align':'middle'})
  128.                     jQuery('#grid').setCell(rowid,"weekday",'',{'text-align':'center', 'vertical-align':'middle'})
  129.                     jQuery('#grid').setCell(rowid,"work_place",'',{'text-align':'center', 'vertical-align':'middle'})
  130.                     jQuery('#grid').setCell(rowid,"description",'',{'text-align':'left', 'vertical-align':'middle'})
  131.                 },
  132.         beforeSaveCell : function(rowid,celname,value,iRow,iCol){
  133.                     alert('heyyyy');
  134.                     return "new value";
  135.  
  136.             },
  137.         beforeSubmitCell : function(rowid,celname,value,iRow,iCol){
  138.                     alert('heyyyy2');
  139.                     return "new value";
  140.  
  141.             },
  142.         beforeEditCell : function(rowid,celname,value,iRow,iCol){
  143.                     alert('heyyyy3');
  144.                     return "new value";
  145.  
  146.             },
  147.                
  148.      }).navGrid('#gridpager');
  149.     });
  150.    
  151.     function reload() {
  152.         $("#grid").trigger("reloadGrid");
  153.         }
  154.     {% endif %}
  155. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement