From 9b3e5a6eb6cbdcfb9804518d2a45ade604195109 Mon Sep 17 00:00:00 2001 From: mattf Date: Wed, 30 Mar 2016 20:03:21 +0000 Subject: [PATCH] Redesign of Admin sub-menu and added icons for web admin Fixed issues with missing navigation elements git-svn-id: svn://192.168.202.10@2500 3d104415-ff17-0410-8863-d5cf3c621b8a --- www/vicidial/admin.php | 189 +++++++++++++----- www/vicidial/admin_email_accounts.php | 15 +- www/vicidial/admin_header.php | 50 +++-- www/vicidial/admin_languages.php | 9 +- www/vicidial/audio_store.php | 22 +- www/vicidial/callcard_admin.php | 29 ++- www/vicidial/images/icon_audioavatars.png | Bin 0 -> 957 bytes www/vicidial/images/icon_audiostore.png | Bin 0 -> 696 bytes www/vicidial/images/icon_callcard.png | Bin 0 -> 1532 bytes www/vicidial/images/icon_calltimes.png | Bin 0 -> 1434 bytes www/vicidial/images/icon_carriers.png | Bin 0 -> 717 bytes www/vicidial/images/icon_conferences.png | Bin 0 -> 1332 bytes www/vicidial/images/icon_contacts.png | Bin 0 -> 1050 bytes www/vicidial/images/icon_email.png | Bin 0 -> 932 bytes www/vicidial/images/icon_languages.png | Bin 0 -> 1649 bytes www/vicidial/images/icon_musiconhold.png | Bin 0 -> 1490 bytes www/vicidial/images/icon_phones.png | Bin 0 -> 1770 bytes www/vicidial/images/icon_screenlabels.png | Bin 0 -> 907 bytes www/vicidial/images/icon_servers.png | Bin 0 -> 1650 bytes www/vicidial/images/icon_settings.png | Bin 0 -> 1500 bytes .../images/icon_settingscontainer.png | Bin 0 -> 1566 bytes www/vicidial/images/icon_shifts.png | Bin 0 -> 1400 bytes www/vicidial/images/icon_statuses.png | Bin 0 -> 479 bytes www/vicidial/images/icon_statusgroups.png | Bin 0 -> 1088 bytes www/vicidial/images/icon_templates.png | Bin 0 -> 643 bytes www/vicidial/images/icon_texttospeech.png | Bin 0 -> 1097 bytes www/vicidial/images/icon_voicemail.png | Bin 0 -> 963 bytes 27 files changed, 214 insertions(+), 100 deletions(-) create mode 100644 www/vicidial/images/icon_audioavatars.png create mode 100644 www/vicidial/images/icon_audiostore.png create mode 100644 www/vicidial/images/icon_callcard.png create mode 100644 www/vicidial/images/icon_calltimes.png create mode 100644 www/vicidial/images/icon_carriers.png create mode 100644 www/vicidial/images/icon_conferences.png create mode 100644 www/vicidial/images/icon_contacts.png create mode 100644 www/vicidial/images/icon_email.png create mode 100644 www/vicidial/images/icon_languages.png create mode 100644 www/vicidial/images/icon_musiconhold.png create mode 100644 www/vicidial/images/icon_phones.png create mode 100644 www/vicidial/images/icon_screenlabels.png create mode 100644 www/vicidial/images/icon_servers.png create mode 100644 www/vicidial/images/icon_settings.png create mode 100644 www/vicidial/images/icon_settingscontainer.png create mode 100644 www/vicidial/images/icon_shifts.png create mode 100644 www/vicidial/images/icon_statuses.png create mode 100644 www/vicidial/images/icon_statusgroups.png create mode 100644 www/vicidial/images/icon_templates.png create mode 100644 www/vicidial/images/icon_texttospeech.png create mode 100644 www/vicidial/images/icon_voicemail.png diff --git a/www/vicidial/admin.php b/www/vicidial/admin.php index 04d57963..44752979 100644 --- a/www/vicidial/admin.php +++ b/www/vicidial/admin.php @@ -3747,12 +3747,13 @@ else # 160325-1435 - Changes for sidebar, added callback_useronly_move_minutes campaign feature # 160327-0145 - Reworked System Summary Screen # 160328-0316 - Added links to the real-time report from the summary screen +# 160330-1559 - Redesign of Admin sub-menu and added icons # # make sure you have added a user to the vicidial_users MySQL table with at least user_level 9 to access this page the first time -$admin_version = '2.12-546a'; -$build = '160328-0316'; +$admin_version = '2.12-547a'; +$build = '160330-1559'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -31924,7 +31925,7 @@ if ($ADD==311111111111111) $modify_footer_refresh=1; } echo "
\n"; - echo ""; + echo " "; $stmt="SELECT count(*) from vicidial_phone_codes;"; $rslt=mysql_to_mysqli($stmt, $link); @@ -32632,11 +32633,11 @@ if ($ADD==321111111111111) $modify_footer_refresh=1; } echo "
\n"; - echo ""; + echo " "; - echo "
\n"; + echo "
\n"; echo ""._QXZ("STATUSES WITHIN THIS SYSTEM").":   $NWB#system_statuses$NWE
\n"; - echo "\n"; + echo "
\n"; echo "\n"; echo "\n"; echo "\n"; @@ -32768,7 +32769,7 @@ if ($ADD==331111111111111) $modify_footer_refresh=1; } echo "
"._QXZ("STATUS").""._QXZ("DESCRIPTION").""._QXZ("CATEGORY")."
\n"; - echo ""; + echo " "; echo "
\n"; echo ""._QXZ("STATUS CATEGORIES").":   $NWB#status_categories$NWE
\n"; @@ -32915,7 +32916,7 @@ if ($ADD==341111111111111) $modify_footer_refresh=1; } echo "
\n"; - echo ""; + echo " "; echo "
\n"; echo ""._QXZ("QC STATUS CODES WITHIN THIS SYSTEM").":   $NWB#vicidial_qc_status_codes$NWE
\n"; @@ -34181,7 +34182,7 @@ if ($ADD==10000000) if ($ADD==100000000) { echo "
\n"; - echo ""; + echo " "; if (strlen($whereLOGadmin_viewable_groupsSQL) > 0) {$tempLOGadmin_viewable_call_timesSQL = $LOGadmin_viewable_call_timesSQL;} else {$tempLOGadmin_viewable_call_timesSQL = $whereLOGadmin_viewable_call_timesSQL;} @@ -34227,7 +34228,7 @@ if ($ADD==100000000) if ($ADD==1000000000) { echo "
\n"; - echo ""; + echo " "; $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,sct_default_start,sct_default_stop,user_group from vicidial_state_call_times $whereLOGadmin_viewable_groupsSQL order by state_call_time_id;"; $rslt=mysql_to_mysqli($stmt, $link); @@ -34272,7 +34273,7 @@ if ($ADD==1000000000) if ($ADD==1200000000) { echo "
\n"; - echo ""; + echo " "; $stmt="SELECT holiday_id,holiday_date,holiday_name,holiday_status,ct_default_start,ct_default_stop,user_group from vicidial_call_time_holidays $whereLOGadmin_viewable_groupsSQL order by holiday_date,holiday_id;"; $rslt=mysql_to_mysqli($stmt, $link); @@ -34319,7 +34320,7 @@ if ($ADD==1200000000) if ($ADD==130000000) { echo "
\n"; - echo ""; + echo " "; $stmt="SELECT shift_id,shift_name,shift_start_time,shift_length,shift_weekdays,user_group from vicidial_shifts $whereLOGadmin_viewable_groupsSQL order by shift_id;"; $rslt=mysql_to_mysqli($stmt, $link); @@ -34364,7 +34365,7 @@ if ($ADD==130000000) if ($ADD==10000000000) { echo "
\n"; - echo ""; + echo " "; $EXTENlink='stage=EXTENDOWN'; $EXTENNUMlink='stage=EXTENNUMDOWN'; @@ -34434,7 +34435,7 @@ if ($ADD==10000000000) if ($ADD==12000000000) { echo "
\n"; - echo ""; + echo " "; $stmt="SELECT alias_id,alias_name,logins_list,user_group from phones_alias $whereLOGadmin_viewable_groupsSQL order by alias_id;"; $rslt=mysql_to_mysqli($stmt, $link); @@ -34475,7 +34476,7 @@ if ($ADD==12000000000) if ($ADD==13000000000) { echo "
\n"; - echo ""; + echo " "; $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active,user_group from groups_alias $whereLOGadmin_viewable_groupsSQL order by group_alias_id;"; $rslt=mysql_to_mysqli($stmt, $link); @@ -34520,7 +34521,7 @@ if ($ADD==13000000000) if ($ADD==100000000000) { echo "
\n"; - echo ""; + echo " "; $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,local_gmt,active_agent_login_server from servers $whereLOGadmin_viewable_groupsSQL order by server_id"; $rslt=mysql_to_mysqli($stmt, $link); @@ -34569,7 +34570,7 @@ if ($ADD==100000000000) if ($ADD==130000000000) { echo "
\n"; - echo ""; + echo " "; $stmt="SELECT template_id,template_name,user_group from vicidial_conf_templates $whereLOGadmin_viewable_groupsSQL order by template_id"; $rslt=mysql_to_mysqli($stmt, $link); @@ -34608,7 +34609,7 @@ if ($ADD==130000000000) if ($ADD==140000000000) { echo "
\n"; - echo ""; + echo " "; $stmt="SELECT carrier_id,carrier_name,server_ip,protocol,registration_string,active,user_group from vicidial_server_carriers $whereLOGadmin_viewable_groupsSQL order by carrier_id"; $rslt=mysql_to_mysqli($stmt, $link); @@ -34661,7 +34662,7 @@ if ($ADD==140000000000) if ($ADD==150000000000) { echo "
\n"; - echo ""; + echo " "; $stmt="SELECT tts_id,tts_name,active,tts_text,tts_voice,user_group from vicidial_tts_prompts $whereLOGadmin_viewable_groupsSQL order by tts_id"; $rslt=mysql_to_mysqli($stmt, $link); @@ -34710,7 +34711,7 @@ if ($ADD==150000000000) if ($ADD==160000000000) { echo "
\n"; - echo ""; + echo " "; $stmt="SELECT moh_id,moh_name,active,random,user_group from vicidial_music_on_hold where remove='N' $LOGadmin_viewable_groupsSQL order by moh_id"; $rslt=mysql_to_mysqli($stmt, $link); @@ -34757,7 +34758,7 @@ if ($ADD==160000000000) if ($ADD==170000000000) { echo "
\n"; - echo ""; + echo " "; $stmt="SELECT voicemail_id,fullname,active,messages,old_messages,delete_vm_after_email,user_group from vicidial_voicemail $whereLOGadmin_viewable_groupsSQL order by voicemail_id"; $rslt=mysql_to_mysqli($stmt, $link); @@ -34805,7 +34806,7 @@ if ($ADD==170000000000) if ($ADD==180000000000) { echo "
\n"; - echo ""; + echo " "; $stmt="SELECT label_id,label_name,active,user_group from vicidial_screen_labels $whereLOGadmin_viewable_groupsSQL order by label_id"; $rslt=mysql_to_mysqli($stmt, $link); @@ -34847,7 +34848,7 @@ if ($ADD==180000000000) if ($ADD==190000000000) { echo "
\n"; - echo ""; + echo " "; if ( (preg_match("/contact_information/",$SStables_use_alt_log_db)) and (strlen($SSalt_log_server_ip)>4) and (strlen($SSalt_log_dbname)>0) ) { @@ -34910,7 +34911,7 @@ if ($ADD==190000000000) if ($ADD==192000000000) { echo "
\n"; - echo ""; + echo " "; $stmt="SELECT container_id,container_notes,container_type,user_group,container_entry from vicidial_settings_containers $whereLOGadmin_viewable_groupsSQL order by container_type,container_id"; $rslt=mysql_to_mysqli($stmt, $link); @@ -34954,7 +34955,7 @@ if ($ADD==192000000000) if ($ADD==193000000000) { echo "
\n"; - echo ""; + echo " "; $stmt="SELECT status_group_id,status_group_notes,user_group from vicidial_status_groups $whereLOGadmin_viewable_groupsSQL order by status_group_id;"; $rslt=mysql_to_mysqli($stmt, $link); @@ -35010,7 +35011,7 @@ if ($ADD==193000000000) if ($ADD==1000000000000) { echo "
\n"; - echo ""; + echo " "; $stmt="SELECT conf_exten,server_ip,extension from conferences order by conf_exten"; $rslt=mysql_to_mysqli($stmt, $link); @@ -35049,7 +35050,7 @@ if ($ADD==1000000000000) if ($ADD==10000000000000) { echo "
\n"; - echo ""; + echo " "; $stmt="SELECT conf_exten,server_ip,extension from vicidial_conferences order by conf_exten"; $rslt=mysql_to_mysqli($stmt, $link); @@ -36145,6 +36146,7 @@ if ($ADD==999999) ###################### if ($ADD==999998) { + $subhead_font = "style=\"font-family:HELVETICA;font-size:14;color:BLACK;font-weight:bold;\""; ?> @@ -36153,52 +36155,135 @@ if ($ADD==999998) <?php echo _QXZ("Administration: Admin"); ?> Admin
-
-
    + \n"; + echo "\n"; + echo "\n"; - echo "
  • "._QXZ("Call Times")." \n"; - echo "
  • "._QXZ("Shifts")." \n"; - echo "
  • "._QXZ("Phones")." \n"; - echo "
  • "._QXZ("Templates")." \n"; - echo "
  • "._QXZ("Carriers")." \n"; - echo "
  • "._QXZ("Servers")." \n"; - echo "
  • "._QXZ("Conferences")." \n"; - echo "
  • "._QXZ("System Settings")." \n"; - echo "
  • "._QXZ("Agent Screen Labels")." \n"; - echo "
  • "._QXZ("System Statuses")." \n"; - echo "
  • "._QXZ("Status Groups")." \n"; - echo "
  • "._QXZ("Voicemail")." \n"; + echo "
  • \n"; + echo "\n"; + + echo "
     \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    "._QXZ("Call Times")."
    "._QXZ("Shifts")."
    "._QXZ("Phones")."
    "._QXZ("Templates")."
    "._QXZ("Carriers")."
    "._QXZ("Servers")."
    \n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    "._QXZ("Conferences")."
    "._QXZ("System Settings")."
    "._QXZ("Agent Screen Labels")."
    "._QXZ("System Statuses")."
    "._QXZ("Status Groups")."
    "._QXZ("Voicemail")."
    \n"; + echo "
    \n"; + echo "\n"; if ($SSemail_enabled > 0) { - echo "
  • "._QXZ("Email Accounts")." \n"; + echo "
  • \n"; + echo "\n"; + echo "\n"; + echo "\n"; } if ( ($sounds_central_control_active > 0) or ($SSsounds_central_control_active > 0) ) { - echo "
  • "._QXZ("Audio Store")." \n"; - echo "
  • "._QXZ("Music On Hold")." \n"; + echo "
  • \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; } if ($SSenable_languages > 0) { - echo "
  • "._QXZ("Languages")." \n"; + echo "
  • \n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + if (preg_match("/avatar/",$SSactive_modules) ) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; } if ($SSenable_tts_integration > 0) { - echo "
  • "._QXZ("Text To Speech")." \n"; + echo "
  • \n"; + echo "\n"; + echo "\n"; + echo "\n"; } + echo "
    "._QXZ("Email Accounts")."
    "._QXZ("Audio Store")."
    "._QXZ("Music On Hold")."
    "._QXZ("Languages")."
    "._QXZ("Audio Avatars")."
    "._QXZ("Text To Speech")."
    \n"; + echo "
    \n"; + echo "\n"; if ($SScallcard_enabled > 0) { - echo "
  • "._QXZ("CallCard Admin")." \n"; + echo "
  • \n"; + echo "\n"; + echo "\n"; + echo "\n"; } if ($SScontacts_enabled > 0) { - echo "
  • "._QXZ("Contacts")." \n"; + echo "
  • \n"; + echo "\n"; + echo "\n"; + echo "\n"; } - - echo "
  • "._QXZ("Settings Containers")." \n"; - echo "\n"; - echo "
  • \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    "._QXZ("CallCard Admin")."
    "._QXZ("Contacts")."
      \n"; + echo "
    "._QXZ("Settings Containers")."
    \n"; + echo "
      \n"; } ##### END admin links ##### diff --git a/www/vicidial/admin_email_accounts.php b/www/vicidial/admin_email_accounts.php index 6495723f..b75b2833 100644 --- a/www/vicidial/admin_email_accounts.php +++ b/www/vicidial/admin_email_accounts.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2016 Joe Johnson, Matt Florell LICENSE: AGPLv2 # # This page manages the inbound email accounts in ViciDial # @@ -17,10 +17,11 @@ # 150421-2255 - Fixed links to default list ID and default_list_id issue # 150422-1229 - Changed Default List ID # 150513-2310 - Added POP3 Auth Mode +# 160330-1552 - navigation changes and fixes # -$admin_version = '2.12-11'; -$build = '150513-2310'; +$admin_version = '2.12-12'; +$build = '160330-1552'; $sh="emails"; @@ -87,7 +88,7 @@ if (isset($_GET["agent_search_method"])) {$agent_search_method=$_GET["agent_ ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active,custom_fields_enabled,admin_web_directory,webphone_url,first_login_trigger,hosted_settings,default_phone_registration_password,default_phone_login_password,default_server_password,test_campaign_calls,active_voicemail_server,voicemail_timezones,default_voicemail_timezone,default_local_gmt,campaign_cid_areacodes_enabled,pllb_grouping_limit,did_ra_extensions_enabled,expanded_list_stats,contacts_enabled,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,allow_emails,allow_emails,level_8_disable_add,enable_languages,language_method FROM system_settings;"; +$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active,custom_fields_enabled,admin_web_directory,webphone_url,first_login_trigger,hosted_settings,default_phone_registration_password,default_phone_login_password,default_server_password,test_campaign_calls,active_voicemail_server,voicemail_timezones,default_voicemail_timezone,default_local_gmt,campaign_cid_areacodes_enabled,pllb_grouping_limit,did_ra_extensions_enabled,expanded_list_stats,contacts_enabled,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,allow_emails,allow_emails,level_8_disable_add,enable_languages,language_method,active_modules FROM system_settings;"; $rslt=mysql_to_mysqli($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysqli_num_rows($rslt); @@ -130,6 +131,7 @@ if ($qm_conf_ct > 0) $SSlevel_8_disable_add = $row[33]; $SSenable_languages = $row[34]; $SSlanguage_method = $row[35]; + $SSactive_modules = $row[36]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -195,13 +197,14 @@ if ($auth < 1) exit; } -$stmt="SELECT full_name,user_level,user_group,modify_email_accounts from vicidial_users where user='$PHP_AUTH_USER';"; +$stmt="SELECT full_name,user_level,user_group,modify_email_accounts,qc_enabled from vicidial_users where user='$PHP_AUTH_USER';"; $rslt=mysql_to_mysqli($stmt, $link); $row=mysqli_fetch_row($rslt); $LOGfullname = $row[0]; $LOGuser_level = $row[1]; $LOGuser_group = $row[2]; $LOGemails_modify = $row[3]; +$qc_auth = $row[4]; if ($LOGemails_modify < 1) { @@ -830,7 +833,7 @@ else if (($eact=="DELETE" || $eact=="UPDATE") && $email_account_id) } else { - echo ""; + echo " "; if ($message) {echo "$message
    ";} echo "
    "._QXZ("INBOUND EMAIL ACCOUNT LISTINGS").":\n"; echo "
    \n"; diff --git a/www/vicidial/admin_header.php b/www/vicidial/admin_header.php index 82e010fa..220f9ae1 100644 --- a/www/vicidial/admin_header.php +++ b/www/vicidial/admin_header.php @@ -60,6 +60,7 @@ # 160325-1428 - Changed layout of sidebar links # 160327-0146 - Changes to design # 160328-1930 - Fixed display bugs +# 160330-1600 - Redesign of Admin sub-menu and added icons # @@ -1195,6 +1196,12 @@ echo "\n"; } .subhead_style_selected:hover{background-color: ;} +.adminmenu_style_selected + { + background-color: white; + } +.adminmenu_style_selected:hover{background-color: #E6E6E6;} + .horiz_line { height: 0px; @@ -1216,6 +1223,7 @@ echo "\n"; font-size:11; color:BLACK; { + --> @@ -1795,57 +1803,57 @@ if ($subcamp_font_size < 4) {$subcamp_font_size='11';} ?> onclick="window.document.location='?ADD=100000000';"> +   \"Users\" onclick="window.document.location='?ADD=130000000';"> +   \"Users\" onclick="window.document.location='?ADD=10000000000';"> +   \"Users\" onclick="window.document.location='?ADD=130000000000';"> +   \"Users\" onclick="window.document.location='?ADD=140000000000';"> +   \"Users\" onclick="window.document.location='?ADD=100000000000';"> +   \"Users\" onclick="window.document.location='?ADD=1000000000000';"> +   \"Users\" onclick="window.document.location='?ADD=311111111111111';"> +   \"Users\" onclick="window.document.location='?ADD=180000000000';"> +   \"Users\" onclick="window.document.location='?ADD=321111111111111';"> +   \"Users\" onclick="window.document.location='?ADD=193000000000';"> +   \"Users\" onclick="window.document.location='?ADD=170000000000';"> +   \"Users\" 0) { ?> onclick="window.document.location='admin_email_accounts.php';"> +   \"Users\" 0) or ($SSsounds_central_control_active > 0) ) { ?> onclick="window.document.location='audio_store.php';"> +   \"Users\" onclick="window.document.location='?ADD=160000000000';"> +   \"Users\" 0) { ?> onclick="window.document.location='admin_languages.php?ADD=163000000000';"> +   \"Users\" onclick="window.document.location='admin_avatar.php?ADD=162000000000';"> +   \"Users\" 0) { ?> onclick="window.document.location='?ADD=150000000000';"> +   \"Users\" 0) { ?> onclick="window.document.location='callcard_admin.php';"> +   \"Users\" 0) { ?> onclick="window.document.location='?ADD=190000000000';"> +   \"Users\" onclick="window.document.location='?ADD=192000000000';"> +   \"Users\" LICENSE: AGPLv2 +# Copyright (C) 2016 Matt Florell LICENSE: AGPLv2 # # this screen manages the optional language tables in ViciDial # @@ -11,10 +11,11 @@ # 141212-0923 - Added active setting # 141227-1041 - Added flags next to country code and active column on list # 141229-1531 - Added code for on-the-fly language translations display +# 160330-1553 - navigation changes and fixes # -$admin_version = '2.10-5'; -$build = '141229-1531'; +$admin_version = '2.12-6'; +$build = '160330-1553'; require("dbconnect_mysqli.php"); require("functions.php"); @@ -1410,7 +1411,7 @@ if ($ADD==363111111111) if ($ADD==163000000000) { echo "
    COLSPAN=2>   -
    >   -
    >   -
    >   -
    >   -
    >   -
    >   -
    >   -
    >   -
    >   -
    >   -
    >   -
    >   -
    >   -
    >   -
    >   -
    >   -
    >   -
    >   -
    >   -
    >   -
    \n"; - echo ""; + echo " "; $stmt="SELECT language_id,language_description,language_code,user_group,modify_date,active from vicidial_languages $whereLOGadmin_viewable_groupsSQL order by language_id;"; if ($DB) {echo "$stmt\n";} diff --git a/www/vicidial/audio_store.php b/www/vicidial/audio_store.php index 4722c743..ca7a2540 100644 --- a/www/vicidial/audio_store.php +++ b/www/vicidial/audio_store.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2016 Matt Florell LICENSE: AGPLv2 # # Central Audio Storage script # @@ -21,10 +21,11 @@ # 130901-2001 - Changed to mysqli PHP functions # 141007-2042 - Finalized adding QXZ translation to all admin files # 141229-2052 - Added code for on-the-fly language translations display +# 160330-1550 - navigation changes and fixes, added force_allow var # -$version = '2.10-15'; -$build = '141229-2052'; +$version = '2.12-16'; +$build = '160330-1550'; $MT[0]=''; @@ -55,6 +56,8 @@ if (isset($_GET["audiofile_name"])) {$audiofile_name=$_GET["audiofile_name"]; if (isset($_FILES["audiofile"])) {$audiofile_name=$_FILES["audiofile"]['name'];} if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} +if (isset($_GET["force_allow"])) {$force_allow=$_GET["force_allow"];} + elseif (isset($_POST["force_allow"])) {$force_allow=$_POST["force_allow"];} header ("Content-type: text/html; charset=utf-8"); @@ -63,7 +66,7 @@ header ("Pragma: no-cache"); // HTTP/1.0 ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory,outbound_autodial_active,enable_languages,language_method FROM system_settings;"; +$stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory,outbound_autodial_active,enable_languages,language_method,active_modules,contacts_enabled,email_enabled,qc_features_active FROM system_settings;"; $rslt=mysql_to_mysqli($stmt, $link); if ($DB) {echo "$stmt\n";} $ss_conf_ct = mysqli_num_rows($rslt); @@ -77,13 +80,17 @@ if ($ss_conf_ct > 0) $SSoutbound_autodial_active = $row[4]; $SSenable_languages = $row[5]; $SSlanguage_method = $row[6]; + $SSactive_modules = $row[7]; + $SScontacts_enabled = $row[8]; + $SSemail_enabled = $row[9]; + $SSqc_features_active = $row[10]; } ##### END SETTINGS LOOKUP ##### ########################################### ### check if sounds server matches this server IP, if not then exit with an error -if ( ( (strlen($sounds_web_server)) != (strlen($server_name)) ) or (!preg_match("/$sounds_web_server/i",$server_name) ) ) +if ( ( ( (strlen($sounds_web_server)) != (strlen($server_name)) ) or (!preg_match("/$sounds_web_server/i",$server_name) ) ) and ($force_allow!='FORCED') ) { echo _QXZ("ERROR").": "._QXZ("server")."($server_name) "._QXZ("does not match sounds web server ip")."($sounds_web_server)\n"; exit; @@ -157,7 +164,7 @@ if ( (!preg_match("/\|$ip\|/", $server_ips)) and ($formIPvalid < 1) ) } $delete_file = preg_replace('/[^-\._0-9a-zA-Z]/','',$delete_file); - $stmt="SELECT selected_language from vicidial_users where user='$PHP_AUTH_USER';"; + $stmt="SELECT selected_language,qc_enabled from vicidial_users where user='$PHP_AUTH_USER';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_to_mysqli($stmt, $link); $sl_ct = mysqli_num_rows($rslt); @@ -165,6 +172,7 @@ if ( (!preg_match("/\|$ip\|/", $server_ips)) and ($formIPvalid < 1) ) { $row=mysqli_fetch_row($rslt); $VUselected_language = $row[0]; + $qc_auth = $row[1]; } $auth=0; @@ -367,7 +375,7 @@ require("admin_header.php");   \n"; +echo "
      \n"; $STARTtime = date("U"); $TODAY = date("Y-m-d"); diff --git a/www/vicidial/callcard_admin.php b/www/vicidial/callcard_admin.php index ed29da4d..18153b04 100644 --- a/www/vicidial/callcard_admin.php +++ b/www/vicidial/callcard_admin.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2016 Matt Florell LICENSE: AGPLv2 # # This callcard script is to administer the callcard accounts in ViciDial # it is separate from the standard admin.php script. callcard_enabled in @@ -18,10 +18,11 @@ # 130901-1939 - Changed to mysqli PHP functions # 141007-2040 - Finalized adding QXZ translation to all admin files # 141229-2044 - Added code for on-the-fly language translations display +# 160330-1551 - navigation changes and fixes # -$version = '2.10-10'; -$build = '141229-2044'; +$version = '2.12-11'; +$build = '160330-1551'; $MT[0]=''; @@ -83,17 +84,24 @@ $SEARCHONLY=0; ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,callcard_enabled,enable_languages,language_method FROM system_settings;"; +$stmt = "SELECT use_non_latin,callcard_enabled,enable_languages,language_method,active_modules,contacts_enabled,email_enabled,outbound_autodial_active,enable_tts_integration,sounds_central_control_active,qc_features_active FROM system_settings;"; $rslt=mysql_to_mysqli($stmt, $link); if ($DB) {echo "$stmt\n";} $ss_conf_ct = mysqli_num_rows($rslt); if ($ss_conf_ct > 0) { $row=mysqli_fetch_row($rslt); - $non_latin = $row[0]; - $callcard_enabled = $row[1]; - $SSenable_languages = $row[2]; - $SSlanguage_method = $row[3]; + $non_latin = $row[0]; + $callcard_enabled = $row[1]; + $SSenable_languages = $row[2]; + $SSlanguage_method = $row[3]; + $SSactive_modules = $row[4]; + $SScontacts_enabled = $row[5]; + $SSemail_enabled = $row[6]; + $SSoutbound_autodial_active = $row[7]; + $SSenable_tts_integration = $row[8]; + $SSsounds_central_control_active = $row[9]; + $SSqc_features_active = $row[10]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -205,12 +213,13 @@ else exit; } -$stmt="SELECT callcard_admin,user_group,full_name from vicidial_users where user='$USER';"; +$stmt="SELECT callcard_admin,user_group,full_name,qc_enabled from vicidial_users where user='$USER';"; $rslt=mysql_to_mysqli($stmt, $link); $row=mysqli_fetch_row($rslt); $LOGcallcard_admin = $row[0]; $LOGuser_group = $row[1]; $LOGfullname = $row[2]; +$qc_auth = $row[3]; if($reports_only_user > 0) { @@ -535,7 +544,7 @@ if ($action == "CALLCARD_DETAIL") if ($action == "CALLCARD_SUMMARY") { echo "
    \n"; - echo ""; + echo " "; echo "
    "._QXZ("CallCard Summary").":\n"; echo "
    \n"; echo ""; diff --git a/www/vicidial/images/icon_audioavatars.png b/www/vicidial/images/icon_audioavatars.png new file mode 100644 index 0000000000000000000000000000000000000000..60690ce03aa983fedbe2179990e3e338ff979d3f GIT binary patch literal 957 zcmV;u148_XP)WFU8GbZ8()Nlj2>E@cM*00SXOL_t(o!{yn_i`#V+ z1@KR15}g^VownK*-;V7R#mixiEcnE)>mZ&#H4a;~RyHH*WlCyXOi!J0% z6kp@!wP=<*@MoJWc8Wc?bd*H5;18Ckhh196Jg$NCnqp{V0f*Fo)9$ ze#!H(aa0*Sy~xiOOh;!&LiA8%rwFPzG76$~d>2tKg72diBgyDzcsHc`!6M!q;7b<5 zt(fmaqH1_KjW|-w;C}qwBgqeN!&=Syjo2NBw9+!~8_$>UI&K=E)Cx;X0}FT$U*vfu zWRBthKE#u8Q129|=~eNgr{XMZPG&d7i=G+6RqRiPAI#%?N@ZmfL}zeq>g{Trmnl{0 zAZH8s2Vdb0yn=5A$#6H!;Q@Rb!LRkuM2k4q^!iB1?#h%}bzFvLlbv4W=yyDp`dn#w zZy)YiZL(+MiKfhSi)DO-yKw=YX(8H({kVM)HE30ayHaDlWbt3Tni`(Mx(-C^(bpZ_ zNc6J9Y{xBeOzj$_+SC-k;YB=!FGGA?m+N1V73K3z+iEXFuZvM`hj~1TAM^Sbd=d%j z6=mFr$76O15uL_09SXjh`TcQIhKt}LT+)eXw<4bE!9+CITTx8m!cMy0jc6rn@vu?O zL@Vq^Cv%ZupK_GCttS)yCm8gIrIG`MiPY$!oIlmZjp#XeFq5br)A2N3iXw~+(Q@|m zR+-s~=Q8WZf@rH%oQ#~^hb!?s-X0gC?TBy5*xi|lvuW7PwmGx=aF718ok=;6daa${ z{pEOsJ3Gl>FZ#GG?q+A=Vr+=3pUgE%T_#uKUJY``;s<`fTQSmmIyGRa&obGN)nhJ% zx5sbJ#$CVr3CpZ2Bl}j=={LQko00000NkvXXu0mjfh0ebk literal 0 HcmV?d00001 diff --git a/www/vicidial/images/icon_audiostore.png b/www/vicidial/images/icon_audiostore.png new file mode 100644 index 0000000000000000000000000000000000000000..5ccf7f115f9bc227d924dc26a51ac6fd83b71ed7 GIT binary patch literal 696 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 literal 0 HcmV?d00001 diff --git a/www/vicidial/images/icon_carriers.png b/www/vicidial/images/icon_carriers.png new file mode 100644 index 0000000000000000000000000000000000000000..1af2354702c77713fd1d5da1b4102b692df8dce8 GIT binary patch literal 717 zcmeAS@N?(olHy`uVBq!ia0vp^S|H591|*LjJ{b+9*pj^6T^Rm@;DWu&Cj&(|3p^r= z85p>QL70(Y)*K0-AbW|YuPgflW;t#%mi3ncF9U^SGeaUuobz*YQ}arITm}Z`qSVBa z)D(sC%#sWRcTeAd6une-1_mZWPZ!6Kh{JDhoXipl6gl=WKHZ@Ch=gn4!BCkCtvdt+ zMOhBc-Bs}L5PQLE>z@pIcUE^;Jlqf@VyMxv`Iw=s^~-~;@y>!)8z*{L1+eRd#+IJ9 z{a?Lom0noqm*+c#e_uEt_~(F+_^<2&j@KI{t3R5()>+MyAh5hpBD|1G{No1hznpW9 zXP-&7p7-ePe}=gSRLT-$q6-;AYuqLcEJAIC28nyx z-B*Z~uoWs4lpBQJIHPkfo%wQi&Zqf~)+a6clEWR|Khk!aJbAKbFZ&Ap3vUk}n^VvI zrJgxg{MJ8_aPIRPbie04FE8#ay{>Atf0EEz*5bCL#r8*UXZC))F=Ktn#+kVm?UQ%3 zc~?v|xc)!r;bMu?b8b4A7yV@^TQ2tQ`Hg8|Sqb%4rx!QsIoy9>cuws~@W(3^hhn-v z{_I&ay*|}A`Not-Ym-%ey=JP`x%Z6?7Ms>-h6V)=iKT>nZAz;CGy+X z*haMmYL_&rt$Q5y>1RgQmr|R^gJ&ytbyjU((0eGrAnYwexMs=ZXG}M~z0f{W+4}sY zO8TW+ddnl8ch#0yF1fleV%ns%gN%>fN@sTKe=wT2R;{U*aj){%l6LeMxFUC zlwoMpD{|3iRo#;74%Us=171h#uCG+h;EZaTwg67C&y0IBJ6wNn|G9^!n)aWy`vA(Z)cyn>)EV38lY6=>FVdQ&MBb@0M#lx2mk;8 literal 0 HcmV?d00001 diff --git a/www/vicidial/images/icon_conferences.png b/www/vicidial/images/icon_conferences.png new file mode 100644 index 0000000000000000000000000000000000000000..26cd582fb2ea78645cfcf5f380eb33aeeafdabb8 GIT binary patch literal 1332 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 literal 0 HcmV?d00001 diff --git a/www/vicidial/images/icon_musiconhold.png b/www/vicidial/images/icon_musiconhold.png new file mode 100644 index 0000000000000000000000000000000000000000..01e2177d981216dac049d688da5fa58c33ecb654 GIT binary patch literal 1490 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 M07*qoM6N<$g6wlYC;$Ke literal 0 HcmV?d00001 diff --git a/www/vicidial/images/icon_screenlabels.png b/www/vicidial/images/icon_screenlabels.png new file mode 100644 index 0000000000000000000000000000000000000000..cc6e883b7be50f6adbe48b67ca1e813b932b31d5 GIT binary patch literal 907 zcmV;619bd}P)WFU8GbZ8()Nlj2>E@cM*00QqxL_t(o!|m9;k5qLO z#_`WAcV(4jF)JE_29-!*f-zWGXknwV)J79p8{HML!I}mkc7ln~5G{NyjESxBFHmWS zg)zoxi~+>O6>tY|8JlO4o6EQ}bMFkh33HO0o%v<&o$s7;p7SzHY+@6;xvZ7HQ+Nz_ zm(JGPF5@JAFN5BPkMPI_a^e*n!dp<}u!uLeUN){##~$2@JCp#+wu%pNqycC- zom!Ra3Oar6--GwCt9)1my@ua#W`GCwvROQVd$BFoT+UbVF23#ajGysO^{^OW$hKku zi9K2QxU0uM?qGQfW&B^7OFPWfY*>N|1Nu zYz4=#FRHzSc09Ekn}_|7rlG$bFXL6*SrJr$=~C!d0y>Sqht)vQ5ON`q+bf}*!7F$w z9=t6AX<<{J{2VFh9A3iy9*|v+?#R`O_m&d!4ldpZ(77o4!2dv2>uCpn;Hz}NR&v%j z#nctff#hUA<#uou$FUr7EsxuyvlYle>@40+16hcW-tP_?;{x4~u=hpGlQl z@CH6fml|8>f4~X+G9cvf2xu`PI)abW?~T)=m+?Vfzg`kXubezqf}D;gYeUu%Q#-J4 z;@3*i?j#qhkVl(B)-6x%2m%gbXI`I4xX%T$DCJ}$$R-7UC9s{q&Qydmjl=kK6p&3@ zXczXcOhrZ7=BAP-N46z2ou1nG3}52moE=V1j&zkNdbGXy>?_06y5&sopW~Z2U~^5T z`Cj)HJ>I{N($lW_LHio6?>q3|ARfIxpzHZtL#rCmVvT>?P}T+gH@nSz&CRn|b^CcOXv002ovPDHLkV1k>ZqW}N^ literal 0 HcmV?d00001 diff --git a/www/vicidial/images/icon_servers.png b/www/vicidial/images/icon_servers.png new file mode 100644 index 0000000000000000000000000000000000000000..d731553be33b34be06abeef3a6f5cb7ac5bdd3cc GIT binary patch literal 1650 zcmV-&295cNP)WFU8GbZ8()Nlj2>E@cM*00q`bL_t(o!_}DCZ&g(k z#(%dhoqNmB3R0l81GGw+DkW%)4-WOg7k%@^XnZpUhako$6$BJS{{k>38quKfMFYmf zAyF|#Q4=*X2?_!oX@Nr9JNWWD$mR4+E!x&or_X zxZh`X0B>cZeKJF1KnHLqa0hTsqq~9m8rY?`M}XD9BA@93mT35D;1=;p;4WaT-tPwP zGh~v$VLjOgB=R-18h8bGOln600UR)iX7cC@cDlSp$s&vOOpB5e*+fY$ zk5&OsTSI43l>7rcZ>h@5(3oOjRj>ySnx(Vc%d5@Qeiv45qD0$iufH{hP^IN;0{AbG zlBL1C@r?fki;{N~9OLfSn=D7Cygr~T3a(9j)@bvm2en~eI|o{?g2RAWZCF2METra*f}*J}bCSBw7U94ov( z=Dj-OG*yTwc?o!2<5K>vQW?#0l4cjvDdlrbjy5M=u6U^tw_6<=424P^Q4HK_vVAXW zd1w8jz8Hy;Z7!e}cvUur#c4gU-T1u{XwZa8Yz(;954YW_q`36QEOBYz!>MF_Lm)zC z2f|~4xWx%0JYPZ5mVsjmkHb1(NaJGHy0KIPA3Ipuj5;&NL9+>Xqj7lqSQ4+Ie*3PgfN%*ZcUWh1p@;Y=%PC9QvostFaDoyS< z13q6NPFr3EjJ@&zSBn#tra^I|9Pm#f>J`>7Y|`DiAA~oswr1 zDC-nB2Y{d4`&Uf0Q$nznm0RR1bKoky9$hc9j8zBMt2FFz&?z~V(J7(OPDydlDOu>u;FyDGo$R)DdaQ=$atCtu7?$l=K3B_+DpV=%nQ--%iP8V|3I+$;6j3@K_F<)U%g7 wr=?T!so&W%xrO%Y)q*-DMO>dF#f^OY4?Z&CacURRzW@LL07*qoM6N<$g2X85&Hw-a literal 0 HcmV?d00001 diff --git a/www/vicidial/images/icon_settings.png b/www/vicidial/images/icon_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..70182b5c49895ffc210c8ac9da2e20002d478b7a GIT binary patch literal 1500 zcmV<21ta>2P)WFU8GbZ8()Nlj2>E@cM*00lrvL_t(o!|j=CjGR*( z#((q9bZ@$4?TS@)!?smrcZ+@?EOAYPE-Eew)lU*t5(z;n!UqyXXc}ZcX^2o#O9&!a zw>0z?ns%#}>{KVTw8dUJcH7z6d0$_ilboKMncZ14t%QH_=AE7Q%sKz_zdX-#-i80I zv=%FJ{Fy)-Pyvhq+kjpFwoM%eyaWsbY28-=)kkCTpun@!fjK~23%q4*{=fBXdjb=qdsEn6qdOcuP>_vlD@LJ*be?hM!cE zmaIl+ihbO4g}_gOAfFA3Msv=531y(cnKPz!D%89q#X1@lsN3oS^%e(e3OtXTxfTJp zY6IJVXMsWMc{Guu{lEcrvF%s@ED)vkd*)~X&htRs0Ps7oQ&};3;YQ#N%|8#=D5N<> z4Y(cH?Td!7?}0Bh=v+m~?DAx#woi3zzHb8V1+Ev@8#@3z4!kJm+7zi9fSZLHF<=I8 zK5&7eyj&Yk0l!XE4l{vIJk5~?)&Y0Rv1LHFsMDp?4}eA?MN+@rsk@JgbGl3uKIf`3 zAK+&+VdT`^bl@i7T8*g$syr#rDdn}mQbow5Ip)-E%)^iwV2|#3DKr2U16SmcfPqS) zPWK>Bb1eiq6wREY)J%3#qUwy*K#|~a$ZaYgfM2PF;!fAbCg687##}w>>Z_CuGj0>G z5_kc4AJ`||YpA$Vexxm@y>BI%m_> zzzWS{lf@svD-$(TixzuTV!2g9dcWmts7>4_Sm^}bR~K|)+$7C1F>Z? zWKgSGG}Z)cb{2l!S-4(*FZJk!ao}Y!l50&;TcI=lt3q9GEbaU~2z)I@i7Ta>)l@aA zr9YL{QI8f4BnwZH$g%A#!I>$EL%=(NxhYwLWZ-(IIBC zQD#7AwP>nJ>n?R}N(cK6Yp;c)F*RI;qs}5V z>Lz_|lcwmlRM(^(4HU`QmRK0jsbHO)xg2=dYJz$#v{IXF6pn^E@?5BS59?J?mqj>9 zAxP2IA$eiY*vp`6qA`^7rR$)4HE@ecn4;A%NLs8U$0XCH|!Yjr^U zSdDbd|3MMxy;HBQC02&wWFU8GbZ8()Nlj2>E@cM*00n|cL_t(o!|j+`h*f16 zhM)i6YwtCC?-|BC%#6p(?4UM*q(!5pL< zY3~p~#(*1vL^Us6O)=F2e*kNTC@CX=4a1Wu8tR7Qfln35`TeCaolZAZqlcF?kvD*&z``h^c@kJ%M*O~r zjy1-tH^zKstzD+`u`1HE!U?&hXHa1S~>FHTeDwWOxQ=D^4fHBUw zgtfK=j4;M@1VQjQP^tjveqawUQyQJAC7MZK6Yv8t8E7!Zye!>21$3#aIDtA1Tmbgh z)z!_dLQS3rjsdsS8c{2f=VTxP=UiM)szCs|b*%vyt>4vG+7`7(mvAI&1!@G=>3?4| z=!@bWU<=TpuJtf*1rX$NxrFY|R{%CF3rtO`9(W)4CYemmGRCY2e$&Q(0?Wz@tQmMq z6et3_;_>*>vg>AmtUUp=tLqJz-a%J99v@|lxkttXrR!jsp*SO%DGA(cpmplhsUFah zNF)|{o;OF=YVrydiFdJB>@>z~6F(;@#j}7Pfr9V*6Z84}bnRC##_Vv;wP!M!W?*rl zP>PXjSs8UuUA=XTdcLG^7(ulaJMp)F~)2Og5W;j zK`F*qpb3}}hGEh<_XY5jyhEg>1R!sWX>`u@rEXdnhHJtwEUIGr&L_h#951<9FB-~`@X*+m&;`&Nmt2Gj0QdeHUblXG;ljGO%31^U{|qNbg@{hAqawnz&K!u z=Xqb|^LZ0BP;$B4abUBeGC`Ja67ZE~pxsLE3VF>C7^5OA20_rGEc7_%ww6kz3~+tq zK(+cLsY5#349o={RaE;-#v*Csaz!~Omo!p({9!(y|9v=8f6+>%Qcc-x_HpN2n^Yhr zDs%(y>P4I)_MHCqfdbGFi^WC-L12d+Xm4+Cy`tGaZcMt@7tMCMswNO3y-&vxuafC5u9dOPVv(NLq*+5-99)CpDeh7FBxJev-N#0g?fWHn?RdgRGH2>YpwNzAcz5>F{Y&US<>&)*4knih6i+Rz1;kXevC@2>{&Gd z4Wx;wOJ|y{uC7ktRp18a+|9*e@de;Wu~?k1Xl)L|@Pjh*d`3rqIzCeO_0}r*1>jdr ziP!W;Q)5gI@E33w@T9c0$69+zmT=IT6sIruA{T{ypwuTNDIu^+;Qwg=p64A2!*IK( zkpkAmVzIZ=>GaM*p>Vnap!0y08g;g+&DK1FZ&U@ZyqpV9Bofnn-@miDxj9|MaMvnu z8DK#a)qg9nT{Kv$R3&Qs;MT{<2h>_m>LWy5RA2LM16HYr9|gVzz8CmT@i8bHTgrhY zWL(ApGk`W3>kH~&o78?I`|LOYxL0XvRa?xf6XnXJ>CzfVh`(u_YnSMMB5zO;FRT65 zY1J;L0N2TYj1dU0pZx;8%y|JktfQmC!LMeZ{Y|N6kiA^l5lPGZe?_tW20W6~f9uM) QU;qFB07*qoM6N<$g62lhR{#J2 literal 0 HcmV?d00001 diff --git a/www/vicidial/images/icon_shifts.png b/www/vicidial/images/icon_shifts.png new file mode 100644 index 0000000000000000000000000000000000000000..0be5c89a5c01785c7820638a5e9736c09f375dd6 GIT binary patch literal 1400 zcmV-;1&8{HP)WFU8GbZ8()Nlj2>E@cM*00i7gL_t(o!^N0gh*V`5 z$A2?tX4i3cQ*&Llwb*pkN^{dNjY_Q0zJ$6c5+ewr1QEIk6uOF_pg;=xu#3J6?Iyb_ z(?F#NHEUID3vyev)y;Lw-F0^M>&%>P{sS+=%sKBlXSN=AnUC|HbDsD4`v0HD!CsO; z8mQB6kN;2-mI}@RRs-$8RNw;e1MmxwGxj<7dumfS9-{{b!nCxQ2X$AG!=P9$-B zu1y1;1~&QZO9QRIVW1lr0DcFK1AplmtATrfdB7zdq)_Pv8K7USBUp1z+&K8 z;2SBpA9xU`uce|ZffJUBz8UcHrN9m);UVDO0B=^z=xX8u&0Zfqt!otTC(=B!fEqHL`Ap0HHUkMO%a> z8-N8u9>?GZ9NV z>s^t`QzNhy*aFN5S>~GM&Mv`dxm+y|Z3Z?1%Yh~(R$tiSzg92tA}$x$C5$(v6?j8T zDzA_k6E`>jJRAn8>VX%8Fi{mPszR(Wp4$Yxs)AqbzQe#OKYnc1zbtUGC7Jdk;xmAo zjNi*;v8>O1tANKv$^#XxR~*F^M^-F7vt9K!NbWT5^Hnq%meKfFHErfxgz99`;<_5eM`z8>JTzE2fJyewmez#Y?*;;S$8tKPK1r8Q*QCt&BZIk!C6CR8#bdf_aq6O)W4A_G-sO-Z%a55y$kCH&v5a17+1Lqd!ZG4=Ht?zXC*Z&Vo>R@h9M zqBd?i54@{(_)($ERw+LqRM`Q1VZ>>oMy?MXPlFnfcPJZI=yR?@VB8=t<0{(em|34Q z2~m`jJBr(^RziFrZ?wi66e8^+BhxL7GN`;b0(>dsxYWo+m8?-GIyXymrUg>CN#!eR z5R@T7b`S7})&*JAjbqU$vF7NrP9c#r-t7viUDfG|9Qa>-8K_4h6mVGp0000QL70(Y)*K0-AbW|YuPgflW;tGVzTWGH&jN*HGeaUuobz*YQ}arITm}Z`qSVBa z)D(sC%#sWRcTeAd6une-1_nlFPZ!6Kh{JDh?DmRvlsNkFzKkkYl7Nr$Hl?J*ODx`= zsT0dLY}+QVriNKs`(xl0FVBfuQzsnqUfLn_cxvY|lJ>FXi`yUh$b!=E3i& zynXk?cN=={fD0_uzh#dnRdnh;gInr3~NM z<=$~elUB#;iu~#-k!_b8Fn{utTWgI@e{WsgyS>gqCSh@~y#mmqRxR#XLdA3Y Sr^#r5!r9Z+&t;ucLK6TKUc<8h literal 0 HcmV?d00001 diff --git a/www/vicidial/images/icon_statusgroups.png b/www/vicidial/images/icon_statusgroups.png new file mode 100644 index 0000000000000000000000000000000000000000..0c6641d4206f15f773f6b66822eb2c5fe46aa40a GIT binary patch literal 1088 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 literal 0 HcmV?d00001