diff options
author | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-04-05 13:48:38 +0000 |
---|---|---|
committer | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-04-05 13:48:38 +0000 |
commit | cd1c62734e8764107414b3fa3f44f6f9901aa8ad (patch) | |
tree | 9900a99b00f521fde294abecadf8e68608795b93 /frontends/php/screenconf.php | |
parent | ab9582df4faf46795b9a0c17b418fd244625f077 (diff) | |
download | zabbix-cd1c62734e8764107414b3fa3f44f6f9901aa8ad.tar.gz zabbix-cd1c62734e8764107414b3fa3f44f6f9901aa8ad.tar.xz zabbix-cd1c62734e8764107414b3fa3f44f6f9901aa8ad.zip |
- developed slideshow configuration (Eugene)
git-svn-id: svn://svn.zabbix.com/trunk@3977 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/screenconf.php')
-rw-r--r-- | frontends/php/screenconf.php | 289 |
1 files changed, 232 insertions, 57 deletions
diff --git a/frontends/php/screenconf.php b/frontends/php/screenconf.php index c673cb44..928c3d7e 100644 --- a/frontends/php/screenconf.php +++ b/frontends/php/screenconf.php @@ -30,96 +30,271 @@ include_once "include/page_header.php"; ?> <?php + $_REQUEST['config'] = get_request('config',get_profile('web.screens.config',0)); // VAR TYPE OPTIONAL FLAGS VALIDATION EXCEPTION $fields=array( - "screenid"=> array(T_ZBX_INT, O_NO, P_SYS, DB_ID, '{form}=="update"'), - "name"=> array(T_ZBX_STR, O_OPT, NULL, NOT_EMPTY, 'isset({save})'), - "hsize"=> array(T_ZBX_INT, O_OPT, NULL, BETWEEN(1,100), 'isset({save})'), - "vsize"=> array(T_ZBX_INT, O_OPT, NULL, BETWEEN(1,100), 'isset({save})'), - - "save"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, NULL, NULL), - "delete"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, NULL, NULL), - "cancel"=> array(T_ZBX_STR, O_OPT, P_SYS, NULL, NULL), - "form"=> array(T_ZBX_STR, O_OPT, P_SYS, NULL, NULL), - "form_refresh"=> array(T_ZBX_INT, O_OPT, NULL, NULL, NULL) + "config"=> array(T_ZBX_INT, O_OPT, P_SYS, IN("0,1"), null), // 0 - screens, 1 - slides + + "screenid"=> array(T_ZBX_INT, O_NO, P_SYS, DB_ID, '{config}==0&&{form}=="update"'), + "name"=> array(T_ZBX_STR, O_OPT, null, NOT_EMPTY, '{config}==0&&isset({save})'), + "hsize"=> array(T_ZBX_INT, O_OPT, null, BETWEEN(1,100), '{config}==0&&isset({save})'), + "vsize"=> array(T_ZBX_INT, O_OPT, null, BETWEEN(1,100), '{config}==0&&isset({save})'), + + "slideshowid"=> array(T_ZBX_INT, O_NO, P_SYS, DB_ID, '{config}==1&&{form}=="update"'), + "name"=> array(T_ZBX_STR, O_OPT, null, NOT_EMPTY, '{config}==1&&isset({save})'), + "delay"=> array(T_ZBX_INT, O_OPT, null, BETWEEN(1,86400),'{config}==1&&isset({save})'), + + "steps"=> array(null, O_OPT, null, null, null), + "new_step"=> array(null, O_OPT, null, null, null), + + "move_up"=> array(T_ZBX_INT, O_OPT, P_ACT, BETWEEN(0,65534), null), + "move_down"=> array(T_ZBX_INT, O_OPT, P_ACT, BETWEEN(0,65534), null), + + "edit_step"=> array(T_ZBX_INT, O_OPT, P_ACT, BETWEEN(0,65534), null), + "add_step"=> array(T_ZBX_STR, O_OPT, P_ACT, null, null), + "cancel_step"=> array(T_ZBX_STR, O_OPT, P_ACT, null, null), + + "sel_step"=> array(T_ZBX_INT, O_OPT, P_ACT, BETWEEN(0,65534), null), + "del_sel_step"=> array(T_ZBX_STR, O_OPT, P_ACT, null, null), + + "clone"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null), + "save"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null), + "delete"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null), + "cancel"=> array(T_ZBX_STR, O_OPT, P_SYS, null, null), + "form"=> array(T_ZBX_STR, O_OPT, P_SYS, null, null), + "form_refresh"=> array(T_ZBX_INT, O_OPT, null, null, null) ); check_fields($fields); + + $config = $_REQUEST['config'] = get_request('config', 0); + + update_profile('web.screens.config', $_REQUEST['config']); ?> <?php - if(isset($_REQUEST["screenid"])) - { - if(!screen_accessiable($_REQUEST["screenid"], PERM_READ_WRITE)) - access_deny(); - } - - if(isset($_REQUEST["save"])) + if( 0 == $config ) { if(isset($_REQUEST["screenid"])) { - // TODO check permission by new value. - $result=update_screen($_REQUEST["screenid"], - $_REQUEST["name"],$_REQUEST["hsize"],$_REQUEST["vsize"]); - $audit_action = AUDIT_ACTION_UPDATE; - show_messages($result, S_SCREEN_UPDATED, S_CANNOT_UPDATE_SCREEN); - } else { - if(count(get_accessible_nodes_by_user($USER_DETAILS,PERM_READ_WRITE,PERM_MODE_LT,PERM_RES_IDS_ARRAY,$ZBX_CURNODEID))) + if(!screen_accessiable($_REQUEST["screenid"], PERM_READ_WRITE)) access_deny(); + } - $result=add_screen($_REQUEST["name"],$_REQUEST["hsize"],$_REQUEST["vsize"]); - $audit_action = AUDIT_ACTION_ADD; - show_messages($result,S_SCREEN_ADDED,S_CANNOT_ADD_SCREEN); + if(isset($_REQUEST['clone']) && isset($_REQUEST['screenid'])) + { + unset($_REQUEST['screenid']); + $_REQUEST['form'] = 'clone'; } - if($result){ - add_audit($audit_action,AUDIT_RESOURCE_SCREEN," Name [".$_REQUEST['name']."] "); - unset($_REQUEST["form"]); + else if(isset($_REQUEST['save'])) + { + if(isset($_REQUEST["screenid"])) + { + // TODO check permission by new value. + $result=update_screen($_REQUEST["screenid"], + $_REQUEST["name"],$_REQUEST["hsize"],$_REQUEST["vsize"]); + $audit_action = AUDIT_ACTION_UPDATE; + show_messages($result, S_SCREEN_UPDATED, S_CANNOT_UPDATE_SCREEN); + } else { + if(count(get_accessible_nodes_by_user($USER_DETAILS,PERM_READ_WRITE,PERM_MODE_LT,PERM_RES_IDS_ARRAY,$ZBX_CURNODEID))) + access_deny(); + + $result=add_screen($_REQUEST["name"],$_REQUEST["hsize"],$_REQUEST["vsize"]); + $audit_action = AUDIT_ACTION_ADD; + show_messages($result,S_SCREEN_ADDED,S_CANNOT_ADD_SCREEN); + } + if($result){ + add_audit($audit_action,AUDIT_RESOURCE_SCREEN," Name [".$_REQUEST['name']."] "); + unset($_REQUEST["form"]); + unset($_REQUEST["screenid"]); + } + } + if(isset($_REQUEST["delete"])&&isset($_REQUEST["screenid"])) + { + if($screen = get_screen_by_screenid($_REQUEST["screenid"])) + { + $result = delete_screen($_REQUEST["screenid"]); + show_messages($result, S_SCREEN_DELETED, S_CANNOT_DELETE_SCREEN); + add_audit_if($result, AUDIT_ACTION_DELETE,AUDIT_RESOURCE_SCREEN," Name [".$screen['name']."] "); + } unset($_REQUEST["screenid"]); + unset($_REQUEST["form"]); } } - if(isset($_REQUEST["delete"])&&isset($_REQUEST["screenid"])) + else { - if($screen = get_screen_by_screenid($_REQUEST["screenid"])) + if(isset($_REQUEST['slideshowid'])) { - $result = delete_screen($_REQUEST["screenid"]); - show_messages($result, S_SCREEN_DELETED, S_CANNOT_DELETE_SCREEN); - add_audit_if($result, AUDIT_ACTION_DELETE,AUDIT_RESOURCE_SCREEN," Name [".$screen['name']."] "); + if(!slideshow_accessiable($_REQUEST['slideshowid'], PERM_READ_WRITE)) + access_deny(); + } + + if(isset($_REQUEST['clone']) && isset($_REQUEST['slideshowid'])) + { + unset($_REQUEST['slideshowid']); + $_REQUEST['form'] = 'clone'; + } + else if(isset($_REQUEST['save'])) + { + $slides = get_request('steps', array()); + + if(isset($_REQUEST['slideshowid'])) + { /* update */ + $result=update_slideshow($_REQUEST['slideshowid'],$_REQUEST['name'],$_REQUEST['delay'],$slides); + $audit_action = AUDIT_ACTION_UPDATE; + show_messages($result, S_SLIDESHOW_UPDATED, S_CANNOT_UPDATE_SLIDESHOW); + } + else + { /* add */ + $result=add_slideshow($_REQUEST['name'],$_REQUEST['delay'],$slides); + $audit_action = AUDIT_ACTION_ADD; + show_messages($result, S_SLIDESHOW_ADDED, S_CANNOT_ADD_SLIDESHOW); + } + if($result){ + add_audit($audit_action,AUDIT_RESOURCE_SLIDESHOW," Name [".$_REQUEST['name']."] "); + unset($_REQUEST['form'], $_REQUEST['slideshowid']); + } + } + else if(isset($_REQUEST['cancel_step'])) + { + unset($_REQUEST['add_step'], $_REQUEST['new_step']); + } + else if(isset($_REQUEST['add_step'])) + { + if(isset($_REQUEST['new_step'])) + { + if(isset($_REQUEST['new_step']['sid'])) + $_REQUEST['steps'][$_REQUEST['new_step']['sid']] = $_REQUEST['new_step']; + else + $_REQUEST['steps'][] = $_REQUEST['new_step']; + + unset($_REQUEST['add_step'], $_REQUEST['new_step']); + } + else + { + $_REQUEST['new_step'] = array(); + } + } + else if(isset($_REQUEST['edit_step'])) + { + $_REQUEST['new_step'] = $_REQUEST['steps'][$_REQUEST['edit_step']]; + $_REQUEST['new_step']['sid'] = $_REQUEST['edit_step']; + } + else if(isset($_REQUEST['del_sel_step'])&&isset($_REQUEST['sel_step'])&&is_array($_REQUEST['sel_step'])) + { + foreach($_REQUEST['sel_step'] as $sid) + if(isset($_REQUEST['steps'][$sid])) + unset($_REQUEST['steps'][$sid]); + } + else if(isset($_REQUEST['move_up']) && isset($_REQUEST['steps'][$_REQUEST['move_up']])) + { + $new_id = $_REQUEST['move_up'] - 1; + + if(isset($_REQUEST['steps'][$new_id])) + { + $tmp = $_REQUEST['steps'][$new_id]; + $_REQUEST['steps'][$new_id] = $_REQUEST['steps'][$_REQUEST['move_up']]; + $_REQUEST['steps'][$_REQUEST['move_up']] = $tmp; + } + } + else if(isset($_REQUEST['move_down']) && isset($_REQUEST['steps'][$_REQUEST['move_down']])) + { + $new_id = $_REQUEST['move_down'] + 1; + + if(isset($_REQUEST['steps'][$new_id])) + { + $tmp = $_REQUEST['steps'][$new_id]; + $_REQUEST['steps'][$new_id] = $_REQUEST['steps'][$_REQUEST['move_down']]; + $_REQUEST['steps'][$_REQUEST['move_down']] = $tmp; + } + } + else if(isset($_REQUEST['delete'])&&isset($_REQUEST['slideshowid'])) + { + if($slideshow = get_slideshow_by_slideshowid($_REQUEST['slideshowid'])) + { + $result = delete_slideshow($_REQUEST['slideshowid']); + show_messages($result, S_SLIDESHOW_DELETED, S_CANNOT_DELETE_SLIDESHOW); + add_audit_if($result, AUDIT_ACTION_DELETE,AUDIT_RESOURCE_SLIDESHOW," Name [".$slideshow['name']."] "); + } + unset($_REQUEST['slideshowid']); + unset($_REQUEST["form"]); } - unset($_REQUEST["screenid"]); - unset($_REQUEST["form"]); } ?> <?php - $form = new CForm("screenconf.php"); - $form->AddItem(new CButton("form",S_CREATE_SCREEN)); - show_table_header(S_CONFIGURATION_OF_SCREENS_BIG, $form); + $form = new CForm(); + + $cmbConfig = new CComboBox('config', $config, 'submit()'); + $cmbConfig->AddItem(0, S_SCREENS); + $cmbConfig->AddItem(1, S_SLIDESHOWS); + + $form->AddItem($cmbConfig); + $form->AddItem(new CButton("form", 0 == $config ? S_CREATE_SCREEN : S_SLIDESHOW)); + + show_table_header(0 == $config ? S_CONFIGURATION_OF_SCREENS_BIG : S_CONFIGURATION_OF_SLIDESHOWS_BIG, $form); echo BR; - if(isset($_REQUEST["form"])) + if( 0 == $config ) { - insert_screen_form(); + if(isset($_REQUEST["form"])) + { + insert_screen_form(); + } + else + { + show_table_header(S_SCREENS_BIG); + + $table = new CTableInfo(S_NO_SCREENS_DEFINED); + $table->SetHeader(array(S_NAME,S_DIMENSION_COLS_ROWS,S_SCREEN)); + + $result=DBselect("select screenid,name,hsize,vsize from screens where ".DBid2nodeid("screenid")."=".$ZBX_CURNODEID. + " order by name"); + while($row=DBfetch($result)) + { + if(!screen_accessiable($row["screenid"], PERM_READ_WRITE)) continue; + + $table->AddRow(array( + new CLink($row["name"],"?config=1&form=update&screenid=".$row["screenid"], + 'action'), + $row["hsize"]." x ".$row["vsize"], + new CLink(S_EDIT,"screenedit.php?screenid=".$row["screenid"]) + )); + } + $table->Show(); + } } else { - show_table_header(S_SCREENS_BIG); + if(isset($_REQUEST["form"])) + { + insert_slideshow_form(); + } + else + { + show_table_header(S_SLIDESHOWS_BIG); - $table = new CTableInfo(S_NO_SCREENS_DEFINED); - $table->SetHeader(array(S_NAME,S_DIMENSION_COLS_ROWS,S_SCREEN)); + $table = new CTableInfo(S_NO_SLIDESHOWS_DEFINED); + $table->SetHeader(array(S_NAME,S_DELAY,S_COUNT_OF_SLIDES)); - $result=DBselect("select screenid,name,hsize,vsize from screens where ".DBid2nodeid("screenid")."=".$ZBX_CURNODEID. - " order by name"); - while($row=DBfetch($result)) - { - if(!screen_accessiable($row["screenid"], PERM_READ_WRITE)) continue; + $db_slides = DBselect('select s.slideshowid, s.name, s.delay, count(*) as cnt '. + ' from slideshows s left join slides sl on sl.slideshowid=s.slideshowid '. + ' where '.DBid2nodeid('s.slideshowid').'='.$ZBX_CURNODEID. + ' group by s.slideshowid,s.name,s.delay '. + ' order by s.name,s.slideshowid'); + while($slide_data = DBfetch($db_slides)) + { + if(!slideshow_accessiable($slide_data['slideshowid'], PERM_READ_WRITE)) continue; - $table->AddRow(array( - new CLink($row["name"],"screenconf.php?form=update&screenid=".$row["screenid"], - 'action'), - $row["hsize"]." x ".$row["vsize"], - new CLink(S_EDIT,"screenedit.php?screenid=".$row["screenid"]) - )); + $table->AddRow(array( + new CLink($slide_data['name'],'?config=1&form=update&slideshowid='.$slide_data['slideshowid'], + 'action'), + $slide_data['delay'], + $slide_data['cnt'] + )); + } + $table->Show(); } - $table->Show(); + } ?> |