123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454 |
- <%var cssParam = {%>
- <%};%>
- <%var jsParam = {%>
- <script type="text/javascript">
-
- jQuery(function($) {
- var grid_selector = "#grid-table";
- var pager_selector = "#grid-pager";
- var auths="";
- $.ajax({
- url: $path_base+'/auths/getalldatetotext',
- async: false,
- cache: false,
- dataType: "text",
- success: function(data) {
- if (data != null) {
- auths=data;
- }
- }
- });
-
- jQuery(grid_selector).jqGrid({
- //direction: "rtl",
- url: $path_base+"/roles/getdatetojson",
- mtype: 'post',
- datatype: "json",
- height: "auto",
- colNames:[' ','名称','ID'],
- colModel:[
- {name:'myac',index:'', width:80, fixed:true, sortable:false, resize:false,
- formatter:'actions',
- formatoptions:{
- keys:true,
- //editformbutton:true, editOptions:{recreateForm: true, beforeShowForm:beforeEditCallback},
- delOptions:{recreateForm: true, beforeShowForm:beforeDeleteCallback}
- }
- },
- {name:'name',index:'name', width:60, editable: true, sortable:false, sorttype:"string",editrules:{required:true}},
- {name:'id',index:'id', hidden:true, editable: true, sortable:false, key:true}
- ],
- viewrecords : true,
- rowNum:10,
- rowList:[10,15,20],
- pager : pager_selector,
- altRows: true,
- //toppager: true,
- // multiselect: true,
- //multikey: "ctrlKey",
- multiboxonly: true,
- loadComplete : function() {
- var table = this;
- setTimeout(function(){
- styleCheckbox(table);
- updateActionIcons(table);
- updatePagerIcons(table);
- enableTooltips(table);
- }, 0);
- },
- editurl: $path_base+"/roles/editfromgrid",//nothing is saved
- // caption: "角色信息",
- jsonReader:{root:"list",
- page:"page",
- total:"totalPage",
- records:"totalRecords",
- repeatitems : false
- },
- autowidth: true,
- subGrid: true,
- subGridOptions:{plusicon: "icon-plus blue",
- minusicon: "icon-minus blue",
- openicon: "icon-chevron-right center orange",
- },
- subGridRowExpanded: function(subgrid_id, row_id) {
- var subgrid_table_id, pager_id;
- subgrid_table_id = subgrid_id+"_t";
- pager_id = "p_"+subgrid_table_id;
- $("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'></table><div id='"+pager_id+"' class='scroll'></div>");
- jQuery("#"+subgrid_table_id).jqGrid({
- url: $path_base+"/roleAuths/getdatetojson?rowid="+row_id,
- mtype: 'post',
- datatype: "json",
- editurl: $path_base+"/roleAuths/editfromgrid?roleId="+row_id,
- colNames: [' ','权限','ID'],
- colModel: [
- {name:'myac',index:'', width:80, fixed:true, sortable:false, resize:false,
- formatter:'actions',
- formatoptions:{
- keys:true,
- editbutton:false, editformbutton:false, editOptions:{recreateForm: false, beforeShowForm:beforeEditCallback},
- delbutton:true, delOptions:{recreateForm: true, beforeShowForm:beforeDeleteCallback}
- }
- },
- {name:"authid",index:"authid",width:180, sortable:false,
- editable: true, edittype: 'select', formatter: 'select',editrules:{required:true},
- editoptions: {
- value: auths
- }
- },
- {name:'id',index:'id', hidden:true, editable: true, sortable:false, key:true}
- ],
- loadComplete : function() {
- var table = this;
- setTimeout(function(){
- styleCheckbox(table);
- updateActionIcons(table);
- updatePagerIcons(table);
- enableTooltips(table);
- }, 0);
- },
- jsonReader:{root:"list",
- page:"page",
- total:"totalPage",
- records:"totalRecords",
- repeatitems : false
- },
- rowNum:20,
- pager: pager_id,
- autowidth: true,
- height: "auto"
- });
- jQuery("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,
- { //navbar options
- edit: false,
- editicon : 'icon-pencil blue',
- add: true,
- addicon : 'icon-plus-sign purple',
- del: false,
- delicon : 'icon-trash red',
- search: false,
- searchicon : 'icon-search orange',
- refresh: true,
- refreshicon : 'icon-refresh green',
- view: false,
- viewicon : 'icon-zoom-in grey',
- },
- {
- //edit record form
- closeAfterEdit: true,
- recreateForm: true,
- beforeShowForm : function(e) {
- var form = $(e[0]);
- form.closest('.ui-jqdialog').find('.ui-jqdialog-titlebar').wrapInner('<div class="widget-header" />')
- style_edit_form(form);
- }
- },
- {
- //new record form
- closeAfterAdd: true,
- recreateForm: true,
- viewPagerButtons: false,
- beforeShowForm : function(e) {
- var form = $(e[0]);
- form.closest('.ui-jqdialog').find('.ui-jqdialog-titlebar').wrapInner('<div class="widget-header" />')
- style_edit_form(form);
-
- var roles = $.ajax({ type: "POST",
- url: $path_base+'/auths/getselectdatetotext',
- async: false,
- cache: false,
- dataType: "text",
- data:{
- rowid:row_id // 传入值,到后台获取json
- },
- success: function(data) {
- }
- }).responseText;
- var rolename = $("select#authid");// 获取下面下拉框unit对象
- rolename.html(roles);// 然后绑定下拉框
- }
- },
- {
- //delete record form
- recreateForm: true,
- beforeShowForm : function(e) {
- var form = $(e[0]);
- if(form.data('styled')) return false;
-
- form.closest('.ui-jqdialog').find('.ui-jqdialog-titlebar').wrapInner('<div class="widget-header" />')
- style_delete_form(form);
-
- form.data('styled', true);
- },
- onClick : function(e) {
- alert(1);
- }
- },
- {
- //search form
- recreateForm: true,
- afterShowSearch: function(e){
- var form = $(e[0]);
- form.closest('.ui-jqdialog').find('.ui-jqdialog-title').wrap('<div class="widget-header" />')
- style_search_form(form);
- },
- afterRedraw: function(){
- style_search_filters($(this));
- }
- ,
- multipleSearch: true,
- /**
- multipleGroup:true,
- showQuery: true
- */
- },
- {
- //view record form
- recreateForm: true,
- beforeShowForm: function(e){
- var form = $(e[0]);
- form.closest('.ui-jqdialog').find('.ui-jqdialog-title').wrap('<div class="widget-header" />')
- }
- }
- )
- }
-
- });
-
- //enable search/filter toolbar
- //jQuery(grid_selector).jqGrid('filterToolbar',{defaultSearch:true,stringResult:true})
-
- //switch element when editing inline
- function aceSwitch( cellvalue, options, cell ) {
- setTimeout(function(){
- $(cell) .find('input[type=checkbox]')
- .wrap('<label class="inline" />')
- .addClass('ace ace-switch ace-switch-5')
- .after('<span class="lbl"></span>');
- }, 0);
- }
- //enable datepicker
- function pickDate( cellvalue, options, cell ) {
- setTimeout(function(){
- $(cell) .find('input[type=text]')
- .datepicker({format:'yyyy-mm-dd' , autoclose:true});
- }, 0);
- }
-
-
- //navButtons
- jQuery(grid_selector).jqGrid('navGrid',pager_selector,
- { //navbar options
- edit: false,
- editicon : 'icon-pencil blue',
- add: true,
- addicon : 'icon-plus-sign purple',
- del: false,
- delicon : 'icon-trash red',
- search: false,
- searchicon : 'icon-search orange',
- refresh: true,
- refreshicon : 'icon-refresh green',
- view: false,
- viewicon : 'icon-zoom-in grey'
- },
- {
- //edit record form
- closeAfterEdit: true,
- recreateForm: true,
- beforeShowForm : function(e) {
- var form = $(e[0]);
- form.closest('.ui-jqdialog').find('.ui-jqdialog-titlebar').wrapInner('<div class="widget-header" />')
- style_edit_form(form);
- }
- },
- {
- //new record form
- closeAfterAdd: true,
- recreateForm: true,
- viewPagerButtons: false,
- beforeShowForm : function(e) {
- var form = $(e[0]);
- form.closest('.ui-jqdialog').find('.ui-jqdialog-titlebar').wrapInner('<div class="widget-header" />')
- style_edit_form(form);
- }
- },
- {
- //delete record form
- recreateForm: true,
- beforeShowForm : function(e) {
- var form = $(e[0]);
- if(form.data('styled')) return false;
-
- form.closest('.ui-jqdialog').find('.ui-jqdialog-titlebar').wrapInner('<div class="widget-header" />')
- style_delete_form(form);
-
- form.data('styled', true);
- },
- onClick : function(e) {
- alert(1);
- }
- },
- {
- //search form
- recreateForm: true,
- afterShowSearch: function(e){
- var form = $(e[0]);
- form.closest('.ui-jqdialog').find('.ui-jqdialog-title').wrap('<div class="widget-header" />')
- style_search_form(form);
- },
- afterRedraw: function(){
- style_search_filters($(this));
- }
- ,
- multipleSearch: true,
- /**
- multipleGroup:true,
- showQuery: true
- */
- },
- {
- //view record form
- recreateForm: true,
- beforeShowForm: function(e){
- var form = $(e[0]);
- form.closest('.ui-jqdialog').find('.ui-jqdialog-title').wrap('<div class="widget-header" />')
- }
- }
- )
-
- function style_edit_form(form) {
- //enable datepicker on "sdate" field and switches for "stock" field
- form.find('input[name=sdate]').datepicker({format:'yyyy-mm-dd' , autoclose:true})
- .end().find('input[name=stock]')
- .addClass('ace ace-switch ace-switch-5').wrap('<label class="inline" />').after('<span class="lbl"></span>');
-
- //update buttons classes
- var buttons = form.next().find('.EditButton .fm-button');
- buttons.addClass('btn btn-sm').find('[class*="-icon"]').remove();//ui-icon, s-icon
- buttons.eq(0).addClass('btn-primary').prepend('<i class="icon-ok"></i>');
- buttons.eq(1).prepend('<i class="icon-remove"></i>')
-
- buttons = form.next().find('.navButton a');
- buttons.find('.ui-icon').remove();
- buttons.eq(0).append('<i class="icon-chevron-left"></i>');
- buttons.eq(1).append('<i class="icon-chevron-right"></i>');
- }
-
- function style_delete_form(form) {
- var buttons = form.next().find('.EditButton .fm-button');
- buttons.addClass('btn btn-sm').find('[class*="-icon"]').remove();//ui-icon, s-icon
- buttons.eq(0).addClass('btn-danger').prepend('<i class="icon-trash"></i>');
- buttons.eq(1).prepend('<i class="icon-remove"></i>')
- }
-
- function style_search_filters(form) {
- form.find('.delete-rule').val('X');
- form.find('.add-rule').addClass('btn btn-xs btn-primary');
- form.find('.add-group').addClass('btn btn-xs btn-success');
- form.find('.delete-group').addClass('btn btn-xs btn-danger');
- }
- function style_search_form(form) {
- var dialog = form.closest('.ui-jqdialog');
- var buttons = dialog.find('.EditTable')
- buttons.find('.EditButton a[id*="_reset"]').addClass('btn btn-sm btn-info').find('.ui-icon').attr('class', 'icon-retweet');
- buttons.find('.EditButton a[id*="_query"]').addClass('btn btn-sm btn-inverse').find('.ui-icon').attr('class', 'icon-comment-alt');
- buttons.find('.EditButton a[id*="_search"]').addClass('btn btn-sm btn-purple').find('.ui-icon').attr('class', 'icon-search');
- }
-
- function beforeDeleteCallback(e) {
- var form = $(e[0]);
- if(form.data('styled')) return false;
-
- form.closest('.ui-jqdialog').find('.ui-jqdialog-titlebar').wrapInner('<div class="widget-header" />')
- style_delete_form(form);
-
- form.data('styled', true);
- }
-
- function beforeEditCallback(e) {
- var form = $(e[0]);
- form.closest('.ui-jqdialog').find('.ui-jqdialog-titlebar').wrapInner('<div class="widget-header" />')
- style_edit_form(form);
- }
-
-
-
- //it causes some flicker when reloading or navigating grid
- //it may be possible to have some custom formatter to do this as the grid is being created to prevent this
- //or go back to default browser checkbox styles for the grid
- function styleCheckbox(table) {
- /**
- $(table).find('input:checkbox').addClass('ace')
- .wrap('<label />')
- .after('<span class="lbl align-top" />')
-
-
- $('.ui-jqgrid-labels th[id*="_cb"]:first-child')
- .find('input.cbox[type=checkbox]').addClass('ace')
- .wrap('<label />').after('<span class="lbl align-top" />');
- */
- }
-
-
- //unlike navButtons icons, action icons in rows seem to be hard-coded
- //you can change them like this in here if you want
- function updateActionIcons(table) {
- /**
- var replacement =
- {
- 'ui-icon-pencil' : 'icon-pencil blue',
- 'ui-icon-trash' : 'icon-trash red',
- 'ui-icon-disk' : 'icon-ok green',
- 'ui-icon-cancel' : 'icon-remove red'
- };
- $(table).find('.ui-pg-div span.ui-icon').each(function(){
- var icon = $(this);
- var $class = $.trim(icon.attr('class').replace('ui-icon', ''));
- if($class in replacement) icon.attr('class', 'ui-icon '+replacement[$class]);
- })
- */
- }
-
- //replace icons with FontAwesome icons like above
- function updatePagerIcons(table) {
- var replacement =
- {
- 'ui-icon-seek-first' : 'icon-double-angle-left bigger-140',
- 'ui-icon-seek-prev' : 'icon-angle-left bigger-140',
- 'ui-icon-seek-next' : 'icon-angle-right bigger-140',
- 'ui-icon-seek-end' : 'icon-double-angle-right bigger-140'
- };
- $('.ui-pg-table:not(.navtable) > tbody > tr > .ui-pg-button > .ui-icon').each(function(){
- var icon = $(this);
- var $class = $.trim(icon.attr('class').replace('ui-icon', ''));
-
- if($class in replacement) icon.attr('class', 'ui-icon '+replacement[$class]);
- })
- }
-
- function enableTooltips(table) {
- $('.navtable .ui-pg-button').tooltip({container:'body'});
- $(table).find('.ui-pg-div').tooltip({container:'body'});
- }
-
- //var selr = jQuery(grid_selector).jqGrid('getGridParam','selrow');
-
-
- });
- </script>
- <%};%>
- <%layout("/ace/commonPage/_layout.html", {nav: "角色管理",meunsel:"roles",jsParam:jsParam,cssParam:cssParam}) {%>
- <!-- PAGE CONTENT BEGINS -->
- <table id="grid-table" class="table table-striped table-bordered table-hover"></table>
- <div id="grid-pager"></div>
- <script type="text/javascript">
- var $path_base = "${contextPath}";//this will be used in gritter alerts containing images
- </script>
- <!-- PAGE CONTENT ENDS -->
- <%}%>
|