Changeset 2271980
- Timestamp:
- 03/31/2020 06:46:00 PM (6 years ago)
- Location:
- bizcalendar-web
- Files:
-
- 151 added
- 7 edited
-
tags/1.0.6.0 (added)
-
tags/1.0.6.0/admin (added)
-
tags/1.0.6.0/admin/bizcalendar-admin.js (added)
-
tags/1.0.6.0/admin/bizcalendar-admin.php (added)
-
tags/1.0.6.0/assets (added)
-
tags/1.0.6.0/assets/screenshot-1.png (added)
-
tags/1.0.6.0/bizcalendar.php (added)
-
tags/1.0.6.0/common.php (added)
-
tags/1.0.6.0/communication.php (added)
-
tags/1.0.6.0/css (added)
-
tags/1.0.6.0/css/bizcalendar.css (added)
-
tags/1.0.6.0/css/images (added)
-
tags/1.0.6.0/css/images/ajax-loader.gif (added)
-
tags/1.0.6.0/css/images/logo_bizmedica.png (added)
-
tags/1.0.6.0/css/images/logo_bizmedica_130.png (added)
-
tags/1.0.6.0/css/images/physician-icon-png-15327.png (added)
-
tags/1.0.6.0/css/images/physician-icon.png (added)
-
tags/1.0.6.0/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png (added)
-
tags/1.0.6.0/css/images/ui-bg_diagonals-thick_20_666666_40x40.png (added)
-
tags/1.0.6.0/css/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png (added)
-
tags/1.0.6.0/css/images/ui-bg_glass_100_e4f1fb_1x400.png (added)
-
tags/1.0.6.0/css/images/ui-bg_glass_100_f6f6f6_1x400.png (added)
-
tags/1.0.6.0/css/images/ui-bg_glass_100_fdf5ce_1x400.png (added)
-
tags/1.0.6.0/css/images/ui-bg_glass_50_3baae3_1x400.png (added)
-
tags/1.0.6.0/css/images/ui-bg_glass_65_ffffff_1x400.png (added)
-
tags/1.0.6.0/css/images/ui-bg_glass_80_d7ebf9_1x400.png (added)
-
tags/1.0.6.0/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png (added)
-
tags/1.0.6.0/css/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png (added)
-
tags/1.0.6.0/css/images/ui-bg_highlight-hard_70_000000_1x100.png (added)
-
tags/1.0.6.0/css/images/ui-bg_highlight-soft_100_deedf7_1x100.png (added)
-
tags/1.0.6.0/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png (added)
-
tags/1.0.6.0/css/images/ui-bg_highlight-soft_25_ffef8f_1x100.png (added)
-
tags/1.0.6.0/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png (added)
-
tags/1.0.6.0/css/images/ui-icons_222222_256x240.png (added)
-
tags/1.0.6.0/css/images/ui-icons_228ef1_256x240.png (added)
-
tags/1.0.6.0/css/images/ui-icons_2694e8_256x240.png (added)
-
tags/1.0.6.0/css/images/ui-icons_2e83ff_256x240.png (added)
-
tags/1.0.6.0/css/images/ui-icons_3d80b3_256x240.png (added)
-
tags/1.0.6.0/css/images/ui-icons_72a7cf_256x240.png (added)
-
tags/1.0.6.0/css/images/ui-icons_ef8c08_256x240.png (added)
-
tags/1.0.6.0/css/images/ui-icons_ffd27a_256x240.png (added)
-
tags/1.0.6.0/css/images/ui-icons_ffffff_256x240.png (added)
-
tags/1.0.6.0/css/jquery-ui.css (added)
-
tags/1.0.6.0/css/jquery-ui.min.css (added)
-
tags/1.0.6.0/css/jquery-ui.structure.css (added)
-
tags/1.0.6.0/css/jquery-ui.structure.min.css (added)
-
tags/1.0.6.0/css/jquery-ui.theme.css (added)
-
tags/1.0.6.0/css/jquery-ui.theme.min.css (added)
-
tags/1.0.6.0/js (added)
-
tags/1.0.6.0/js/bizcalendar.js (added)
-
tags/1.0.6.0/js/jquery-ui.js (added)
-
tags/1.0.6.0/js/jquery-ui.min.js (added)
-
tags/1.0.6.0/jsgrid (added)
-
tags/1.0.6.0/jsgrid/i18n (added)
-
tags/1.0.6.0/jsgrid/i18n/jsgrid-de.js (added)
-
tags/1.0.6.0/jsgrid/i18n/jsgrid-es.js (added)
-
tags/1.0.6.0/jsgrid/i18n/jsgrid-fr.js (added)
-
tags/1.0.6.0/jsgrid/i18n/jsgrid-he.js (added)
-
tags/1.0.6.0/jsgrid/i18n/jsgrid-ja.js (added)
-
tags/1.0.6.0/jsgrid/i18n/jsgrid-ka.js (added)
-
tags/1.0.6.0/jsgrid/i18n/jsgrid-pl.js (added)
-
tags/1.0.6.0/jsgrid/i18n/jsgrid-pt-br.js (added)
-
tags/1.0.6.0/jsgrid/i18n/jsgrid-pt.js (added)
-
tags/1.0.6.0/jsgrid/i18n/jsgrid-ru.js (added)
-
tags/1.0.6.0/jsgrid/i18n/jsgrid-tr.js (added)
-
tags/1.0.6.0/jsgrid/i18n/jsgrid-zh-cn.js (added)
-
tags/1.0.6.0/jsgrid/i18n/jsgrid-zh-tw.js (added)
-
tags/1.0.6.0/jsgrid/jsgrid-theme.css (added)
-
tags/1.0.6.0/jsgrid/jsgrid-theme.min.css (added)
-
tags/1.0.6.0/jsgrid/jsgrid.css (added)
-
tags/1.0.6.0/jsgrid/jsgrid.js (added)
-
tags/1.0.6.0/jsgrid/jsgrid.min.css (added)
-
tags/1.0.6.0/jsgrid/jsgrid.min.js (added)
-
tags/1.0.6.0/localdata.php (added)
-
tags/1.0.6.0/main.php (added)
-
tags/1.0.6.0/readme.txt (added)
-
tags/1.0.6.0/recaptcha (added)
-
tags/1.0.6.0/recaptcha/recaptchalib.php (added)
-
tags/1.0.6.0/select2 (added)
-
tags/1.0.6.0/select2/css (added)
-
tags/1.0.6.0/select2/css/select2-jquery-ui.css (added)
-
tags/1.0.6.0/select2/css/select2.css (added)
-
tags/1.0.6.0/select2/css/select2.min.css (added)
-
tags/1.0.6.0/select2/js (added)
-
tags/1.0.6.0/select2/js/i18n (added)
-
tags/1.0.6.0/select2/js/i18n/af.js (added)
-
tags/1.0.6.0/select2/js/i18n/ar.js (added)
-
tags/1.0.6.0/select2/js/i18n/az.js (added)
-
tags/1.0.6.0/select2/js/i18n/bg.js (added)
-
tags/1.0.6.0/select2/js/i18n/bn.js (added)
-
tags/1.0.6.0/select2/js/i18n/bs.js (added)
-
tags/1.0.6.0/select2/js/i18n/ca.js (added)
-
tags/1.0.6.0/select2/js/i18n/cs.js (added)
-
tags/1.0.6.0/select2/js/i18n/da.js (added)
-
tags/1.0.6.0/select2/js/i18n/de.js (added)
-
tags/1.0.6.0/select2/js/i18n/dsb.js (added)
-
tags/1.0.6.0/select2/js/i18n/el.js (added)
-
tags/1.0.6.0/select2/js/i18n/en.js (added)
-
tags/1.0.6.0/select2/js/i18n/es.js (added)
-
tags/1.0.6.0/select2/js/i18n/et.js (added)
-
tags/1.0.6.0/select2/js/i18n/eu.js (added)
-
tags/1.0.6.0/select2/js/i18n/fa.js (added)
-
tags/1.0.6.0/select2/js/i18n/fi.js (added)
-
tags/1.0.6.0/select2/js/i18n/fr.js (added)
-
tags/1.0.6.0/select2/js/i18n/gl.js (added)
-
tags/1.0.6.0/select2/js/i18n/he.js (added)
-
tags/1.0.6.0/select2/js/i18n/hi.js (added)
-
tags/1.0.6.0/select2/js/i18n/hr.js (added)
-
tags/1.0.6.0/select2/js/i18n/hsb.js (added)
-
tags/1.0.6.0/select2/js/i18n/hu.js (added)
-
tags/1.0.6.0/select2/js/i18n/hy.js (added)
-
tags/1.0.6.0/select2/js/i18n/id.js (added)
-
tags/1.0.6.0/select2/js/i18n/is.js (added)
-
tags/1.0.6.0/select2/js/i18n/it.js (added)
-
tags/1.0.6.0/select2/js/i18n/ja.js (added)
-
tags/1.0.6.0/select2/js/i18n/ka.js (added)
-
tags/1.0.6.0/select2/js/i18n/km.js (added)
-
tags/1.0.6.0/select2/js/i18n/ko.js (added)
-
tags/1.0.6.0/select2/js/i18n/lt.js (added)
-
tags/1.0.6.0/select2/js/i18n/lv.js (added)
-
tags/1.0.6.0/select2/js/i18n/mk.js (added)
-
tags/1.0.6.0/select2/js/i18n/ms.js (added)
-
tags/1.0.6.0/select2/js/i18n/nb.js (added)
-
tags/1.0.6.0/select2/js/i18n/ne.js (added)
-
tags/1.0.6.0/select2/js/i18n/nl.js (added)
-
tags/1.0.6.0/select2/js/i18n/pl.js (added)
-
tags/1.0.6.0/select2/js/i18n/ps.js (added)
-
tags/1.0.6.0/select2/js/i18n/pt-BR.js (added)
-
tags/1.0.6.0/select2/js/i18n/pt.js (added)
-
tags/1.0.6.0/select2/js/i18n/ro.js (added)
-
tags/1.0.6.0/select2/js/i18n/ru.js (added)
-
tags/1.0.6.0/select2/js/i18n/sk.js (added)
-
tags/1.0.6.0/select2/js/i18n/sl.js (added)
-
tags/1.0.6.0/select2/js/i18n/sq.js (added)
-
tags/1.0.6.0/select2/js/i18n/sr-Cyrl.js (added)
-
tags/1.0.6.0/select2/js/i18n/sr.js (added)
-
tags/1.0.6.0/select2/js/i18n/sv.js (added)
-
tags/1.0.6.0/select2/js/i18n/th.js (added)
-
tags/1.0.6.0/select2/js/i18n/tk.js (added)
-
tags/1.0.6.0/select2/js/i18n/tr.js (added)
-
tags/1.0.6.0/select2/js/i18n/uk.js (added)
-
tags/1.0.6.0/select2/js/i18n/vi.js (added)
-
tags/1.0.6.0/select2/js/i18n/zh-CN.js (added)
-
tags/1.0.6.0/select2/js/i18n/zh-TW.js (added)
-
tags/1.0.6.0/select2/js/select2-jquery-ui.js (added)
-
tags/1.0.6.0/select2/js/select2.full.js (added)
-
tags/1.0.6.0/select2/js/select2.full.min.js (added)
-
tags/1.0.6.0/select2/js/select2.js (added)
-
tags/1.0.6.0/select2/js/select2.min.js (added)
-
tags/1.0.6.0/setup.php (added)
-
trunk/admin/bizcalendar-admin.js (added)
-
trunk/admin/bizcalendar-admin.php (modified) (6 diffs)
-
trunk/bizcalendar.php (modified) (2 diffs)
-
trunk/css/bizcalendar.css (modified) (2 diffs)
-
trunk/js/bizcalendar.js (modified) (20 diffs)
-
trunk/main.php (modified) (9 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/recaptcha/recaptchalib.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
bizcalendar-web/trunk/admin/bizcalendar-admin.php
r2234098 r2271980 11 11 add_action('admin_menu', 'setrio_bizcal_setup_menu'); 12 12 add_action('plugins_loaded', 'setrio_bizcal_admin_init'); 13 //add_action('init', 'Setrio_Bizcal_Post_Select::init'); 14 //add_action('admin_enqueue_scripts', 'Setrio_Bizcal_Post_Select::enqueue_scripts_and_styles'); 13 15 14 16 function setrio_bizcal_admin_init() 15 { 17 { 16 18 global $bizcalAdmin; 17 19 $bizcalAdmin = new SetrioBizCalAdmin(); … … 122 124 $appointmentEmailSubject = get_option('setrio_bizcal_appointment_email_subject'); 123 125 $addServiceNameInObservations = (bool)get_option('setrio_bizcal_add_service_to_obs', false); 126 $appointmentParamOrder = (int)get_option('setrio_bizcal_appointment_param_order', 0); 124 127 ?> 125 128 <div class="wrap"> … … 372 375 <br /> 373 376 <input type="text" class="regular-text" name="setrio-bizcal-min-days-to-appointment" value="<?=$minDaysToAppointment?>" /> 377 </p> 378 </div> 379 380 <h2>Funcționalitate modul</h2> 381 382 <div class="options"> 383 <p> 384 <label>Ordine selectare parametri programare</label> 385 <br /> 386 <label><input type="radio" value="0" name="setrio-bizcal-appointment-param-order"<?=(($appointmentParamOrder==0) ? " checked ": "")?>/> 387 Specialitate, serviciu, medic preferat</label><br/> 388 <label><input type="radio" value="1" name="setrio-bizcal-appointment-param-order"<?=(($appointmentParamOrder==1) ? " checked ": "")?> /> 389 Specialitate, medic preferat, serviciu</label> 374 390 </p> 375 391 </div> … … 572 588 $allowSearchForPhysician = (isset($_POST['setrio-bizcal-allow-search-physician']) && ($_POST['setrio-bizcal-allow-search-physician'] == 1)) ? 1 : 0; 573 589 $maxAvailabilities = (int)sanitize_text_field($_POST['setrio-bizcal-max-availabilities']); 574 $minDaysToAppointment= (int)sanitize_text_field($_POST['setrio-bizcal-min-days-to-appointment']); 590 $minDaysToAppointment = (int)sanitize_text_field($_POST['setrio-bizcal-min-days-to-appointment']); 591 $appointmentParamOrder = (int)sanitize_text_field($_POST['setrio-bizcal-appointment-param-order']); 575 592 update_option('setrio_bizcal_all_caps', $allCaps); 576 593 update_option('setrio_bizcal_autosel_speciality', $autoSelectMedicalSpeciality); … … 583 600 update_option('setrio_bizcal_max_availabilities', $maxAvailabilities); 584 601 update_option('setrio_bizcal_min_days_to_appointment', $minDaysToAppointment); 602 update_option('setrio_bizcal_appointment_param_order', $appointmentParamOrder); 585 603 } 586 604 elseif ($active_tab == "email") … … 937 955 } 938 956 957 class SetrioBizCalAdminPostSelectInstance 958 { 959 private $field_id = null; 960 private $meta_key = ''; 961 private $form_field_name = ''; 962 private $form_field_label = ''; 963 private $post_post_type = 'post'; 964 private $item_post_type = 'post'; 965 private $additional_query_params = array(); 966 967 function __construct($field_id, $meta_key, $form_field_name, $form_field_label, $post_post_type='post', $item_post_type='post', $additional_query_params=array()) { 968 $this->field_id = $field_id; 969 $this->meta_key = $meta_key; 970 $this->form_field_name = $form_field_name; 971 $this->form_field_label = $form_field_label; 972 $this->post_post_type = $post_post_type; 973 $this->item_post_type = $item_post_type; 974 $this->additional_query_params = $additional_query_params; 975 } 976 977 function get_addition_query_params() { 978 return $this->additional_query_params; 979 } 980 981 /* 982 * Note that we're using Select2 which, for AJAX-powered selects uses a hidden field as starting point 983 * and that the value should be a comma-separated list 984 */ 985 function display() { 986 global $post; 987 $current_item_ids = get_post_meta( $post->ID, $this->meta_key, false ); 988 989 // Some entries may be arrays themselves! 990 $processed_item_ids = array(); 991 foreach ($current_item_ids as $this_id) { 992 if (is_array($this_id)) { 993 $processed_item_ids = array_merge( $processed_item_ids, $this_id ); 994 } else { 995 $processed_item_ids[] = $this_id; 996 } 997 } 998 999 if (is_array($processed_item_ids) && !empty($processed_item_ids)) { 1000 $processed_item_ids = implode(',', $processed_item_ids); 1001 } else { 1002 $processed_item_ids = ''; 1003 } 1004 ?> 1005 <p> 1006 <label for="<?php echo $this->form_field_name; ?>"><?php echo $this->form_field_label; ?></label> 1007 <input style="width: 400px;" type="hidden" name="<?php echo $this->form_field_name; ?>" class="setrio-bizcal-post-selector" data-post-type="<?php echo $this->item_post_type ?>" data-setrio-bizcal-post-select-field-id="<?php echo $this->field_id; ?>" value="<?php echo $processed_item_ids; ?>" /> 1008 </p> 1009 <?php 1010 } 1011 1012 function save() { 1013 global $post; 1014 // If this is an autosave, our form has not been submitted, so we don't want to do anything. 1015 if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { 1016 return; 1017 } 1018 1019 if ( isset( $_POST['post_type'] ) && $this->post_post_type == $_POST['post_type'] ) { 1020 1021 // Check the user's permissions. 1022 if ( ! current_user_can( 'edit_post', $post->ID ) ) { 1023 return; 1024 } 1025 1026 /* OK, its safe for us to save the data now. */ 1027 1028 // Make sure that it is set. 1029 if ( ! isset( $_POST[$this->form_field_name] ) ) { 1030 return; 1031 } 1032 1033 // If it's set but empty, the lists may have been deleted, so we need to delete existing meta values 1034 if ( empty( $_POST[$this->form_field_name] ) ) { 1035 delete_post_meta($post->ID, $this->meta_key); 1036 return; 1037 } 1038 1039 // The Select2 with multiple option submits a comma-separated list of vaules 1040 // but we want to store each ID as a separate meta item (for compatibility with existing 1041 // options and queries - note that this is compatible with how the meta-box 1042 // plugin handles multiple selects) 1043 if (strpos($_POST[$this->form_field_name], ',') === false) { 1044 // No comma, must be single value - still needs to be in an array for now 1045 $post_ids = array( $_POST[$this->form_field_name] ); 1046 } else { 1047 // There is a comma so it's explodable 1048 $post_ids = explode(',', $_POST[$this->form_field_name]); 1049 } 1050 // Delete all existing entries 1051 delete_post_meta($post->ID, $this->meta_key); 1052 // Add new entries 1053 if (is_array($post_ids) && !empty($post_ids)) { 1054 foreach($post_ids as $this_id) { 1055 add_post_meta($post->ID, $this->meta_key, $this_id, false ); 1056 } 1057 } 1058 } 1059 } 1060 } 1061 1062 class SetrioBizCalAdminPostSelect 1063 { 1064 private static $instances = array(); 1065 1066 public static function init() { 1067 add_action('wp_ajax_setrio_bizcal_post_select_lookup', 'SetrioBizCalAdminPostSelectInstance::post_lookup'); 1068 add_action('wp_ajax_setrio_bizcal_get_post_titles', 'SetrioBizCalAdminPostSelectInstance::get_post_titles'); 1069 add_action('save_post', 'SetrioBizCalAdminPostSelectInstance::do_saves'); 1070 } 1071 1072 public static function enqueue_scripts_and_styles() { 1073 wp_enqueue_script('setrio-bizcal-select2-script', plugins_url( '/select2/js/select2.full.js', __FILE__ ), array('jquery')); 1074 wp_enqueue_script('setrio-bizcal-select2-script-jui', plugins_url( '/select2/js/select2-jquery-ui.js', __FILE__ ), array('jquery')); 1075 1076 wp_enqueue_style('setrio-bizcal-select2-style', plugins_url('/select2/css/select2.min.css', __FILE__)); 1077 1078 wp_enqueue_script('setrio-bizcal-admin', plugins_url( '/admin/js/bizcalendar-admin.js', __FILE__ ), array('jquery', 'setrio-bizcal-select2-script'), '', true); 1079 } 1080 1081 /* 1082 This function is the AJAX call that does the search and echoes a JSON array of the results in format: 1083 array( 1084 array( 1085 'id' => <post_id>, 1086 'title' => <post_title>, 1087 ) 1088 ) 1089 1090 Originally I did this as array( post_id => post_title ), but it turns out that browsers sort 1091 AJAX results like this by the numeric ID. So I've fixed the index of each item so that it gives 1092 items in the correct order in the select2 drop-down. 1093 */ 1094 public static function post_lookup() { 1095 global $wpdb; 1096 1097 $result = array(); 1098 1099 $search = like_escape($_REQUEST['q']); 1100 1101 $post_type = $_REQUEST['post_type']; 1102 1103 $field_id = $_REQUEST['s2ps_post_select_field_id']; 1104 1105 // Don't forget that the callback here is a closure that needs to use the $search from the current scope 1106 add_filter('posts_where', function( $where ) use ($search) { 1107 $where .= (" AND post_title LIKE '%" . $search . "%'"); 1108 return $where; 1109 }); 1110 $default_query = array( 1111 'posts_per_page' => -1, 1112 'post_status' => array('publish', 'draft', 'pending', 'future', 'private'), 1113 'post_type' => $post_type, 1114 'order' => 'ASC', 1115 'orderby' => 'title', 1116 'suppress_filters' => false, 1117 ); 1118 1119 $custom_query = self::$instances[$field_id]->get_addition_query_params(); 1120 1121 $merged_query = array_merge( $default_query, $custom_query ); 1122 $posts = get_posts( $merged_query ); 1123 1124 // We'll return a JSON-encoded result. 1125 foreach ($posts as $this_post) { 1126 $post_title = $this_post->post_title; 1127 $id = $this_post->ID; 1128 1129 $result[] = array( 1130 'id' => $id, 1131 'title' => $post_title, 1132 ); 1133 } 1134 1135 echo json_encode($result); 1136 1137 die(); 1138 } 1139 1140 public static function get_post_titles() { 1141 $result = array(); 1142 1143 if (isset($_REQUEST['post_ids'])) { 1144 $post_ids = $_REQUEST['post_ids']; 1145 if (strpos($post_ids, ',') === false) { 1146 // There is no comma, so we can't explode, but we still want an array 1147 $post_ids = array( $post_ids ); 1148 } else { 1149 // There is a comma, so it must be explodable 1150 $post_ids = explode(',', $post_ids); 1151 } 1152 } else { 1153 $post_ids = array(); 1154 } 1155 1156 if (is_array($post_ids) && ! empty($post_ids)) { 1157 1158 $posts = get_posts(array( 1159 'posts_per_page' => -1, 1160 'post_status' => array('publish', 'draft', 'pending', 'future', 'private'), 1161 'post__in' => $post_ids, 1162 'post_type' => 'any' 1163 )); 1164 foreach ($posts as $this_post) { 1165 $result[] = array( 1166 'id' => $this_post->ID, 1167 'title' => $this_post->post_title, 1168 ); 1169 } 1170 } 1171 1172 echo json_encode($result); 1173 1174 die; 1175 } 1176 1177 /* 1178 * This creates a new instance, stores it, and prints the form field. It returns the instance ID. 1179 * 1180 * Parameters: 1181 * $field_id - this is the 'name' of the field - used to identify it for printing or saving - it must be unique! 1182 * $meta_key - the meta_key fo fetch/save data to/from 1183 * $form_field_name - the name attribute of the form field to be created 1184 * $form_field_label - the label text for the form field 1185 * $post_post_type - the post type of the post we're creating the field for 1186 * $item_post_type - the post type of the things to appear in the list 1187 * $additional_query_params - any additional query params for generating the list 1188 * 1189 * Returns the id of the created instance as passed in 1190 */ 1191 public static function create( $field_id, $meta_key, $form_field_name, $form_field_label, $post_post_type='post', $item_post_type='post', $additional_query_params=array() ) { 1192 $new_instance = new S2PS_Post_Select_Instance($field_id, $meta_key, $form_field_name, $form_field_label, $post_post_type, $item_post_type, $additional_query_params); 1193 self::$instances[$field_id] = $new_instance; 1194 1195 return $field_id; 1196 } 1197 1198 public static function display( $field_id ) { 1199 self::$instances[$field_id]->display(); 1200 } 1201 1202 public static function do_saves( ) { 1203 foreach (self::$instances as $this_instance) { 1204 $this_instance->save(); 1205 } 1206 } 1207 } 1208 939 1209 ?> -
bizcalendar-web/trunk/bizcalendar.php
r2237845 r2271980 2 2 /** 3 3 * @package BizCalendarWeb 4 * @version 1.0. 5.14 * @version 1.0.6.0 5 5 */ 6 6 /* … … 9 9 Description: Modul de programări online pentru clinicile medicale care folosesc BizMedica / Online appointments form for medical clinics using BizMedica software 10 10 Author: Setrio Soft 11 Version: 1.0. 5.111 Version: 1.0.6.0 12 12 Author URI: http://www.setrio.ro/ 13 13 */ -
bizcalendar-web/trunk/css/bizcalendar.css
r2237845 r2271980 788 788 } 789 789 790 @media (max-width: 768px) { 791 body._37155047_sofimed_iasi_srl .bizcal-sel-appointment-date-container, 792 body._37155047_sofimed_iasi_srl .col-md-12, 793 body._37155047_sofimed_iasi_srl div.bizcal-sel-appointment-date-container { 794 width: 100% !important; 795 } 796 } 790 797 791 798 /* BLUELIFE */ … … 1038 1045 font-weight: 400 !important; 1039 1046 } 1047 1048 /* NOVADERM */ 1049 1050 body._30421621_innovative_constanta .bizcal-main-box div.ui-dialog { 1051 z-index: 1040; 1052 } 1053 1054 body._30421621_innovative_constanta .bizcal-main-box .select2-selection__rendered { 1055 display: block; 1056 width: inherit; 1057 } 1058 1059 body._30421621_innovative_constanta .bizcal-main-box .ui-widget-header { 1060 background-color: #C4001D; 1061 border-color: #C4001D; 1062 background-image: none; 1063 } 1064 1065 body._30421621_innovative_constanta .bizcal-main-box .ui-dialog-titlebar-close { 1066 background-image: none; 1067 background-color: #C4001D; 1068 } 1069 1070 body._30421621_innovative_constanta .bizcal-main-box .ui-widget-header .ui-icon { 1071 background-image: url("images/ui-icons_ffffff_256x240.png"); 1072 background-color: #D4102D; 1073 } 1074 1075 body._30421621_innovative_constanta .bizcal-main-box .ui-dialog-titlebar-close, body._30421621_innovative_constanta .bizcal-main-box .ui-datepicker-prev, 1076 body._30421621_innovative_constanta .bizcal-main-box .ui-datepicker-next { 1077 background-color: #D4102D; 1078 } 1079 1080 body._112121_30421621_innovative_constanta .bizcal-main-box .ui-dialog-titlebar-close { 1081 background-image: url("images/ui-icons_ffffff_256x240.png"); 1082 background-position: -94px -126px; 1083 } 1084 body._30421621_innovative_constanta .bizcal-main-box .ui-dialog-titlebar-close:hover, 1085 body._30421621_innovative_constanta .bizcal-main-box .ui-datepicker-prev:hover, 1086 body._30421621_innovative_constanta .bizcal-main-box .ui-datepicker-next:hover, 1087 body._30421621_innovative_constanta #bizcal-sel-date .ui-state-hover { 1088 background-color: #D4102D !important; 1089 background-image: none; 1090 } 1091 1092 body._30421621_innovative_constanta .bizcal-main-box div#bizcal-sel-time-container .ui-button { 1093 line-height: 32px; 1094 } 1095 1096 body._30421621_innovative_constanta .bizcal-main-box div#bizcal-sel-time-container .ui-selected, 1097 body._30421621_innovative_constanta .bizcal-main-box div#bizcal-sel-time-container li.ui-selected:hover, 1098 body._30421621_innovative_constanta .bizcal-main-box div#bizcal-sel-time-container li.ui-selected:focus { 1099 background: #C4001D; 1100 color: white; 1101 } 1102 1103 body._30421621_innovative_constanta .bizcal-main-box input.setrio-bizcal-appointment-button { 1104 white-space: normal; 1105 text-align: center; 1106 } 1107 1108 /* RESTARTMED */ 1109 1110 body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box div.ui-dialog { 1111 z-index: 1040; 1112 } 1113 1114 body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box .select2-selection__rendered { 1115 display: block; 1116 width: inherit; 1117 } 1118 1119 body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box .ui-widget-header { 1120 background-color: #10a585; 1121 border-color: #10a585; 1122 background-image: none; 1123 } 1124 1125 body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box .ui-dialog-titlebar-close { 1126 background-image: none; 1127 background-color: #10a585; 1128 } 1129 1130 body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box .ui-widget-header .ui-icon { 1131 background-image: url("images/ui-icons_ffffff_256x240.png"); 1132 background-color: #10a585; 1133 } 1134 1135 body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box .ui-dialog-titlebar-close, body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box .ui-datepicker-prev, 1136 body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box .ui-datepicker-next { 1137 background-color: #10a585; 1138 } 1139 1140 body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box .ui-dialog-titlebar-close { 1141 background-image: url("images/ui-icons_ffffff_256x240.png"); 1142 background-position: -94px -126px; 1143 } 1144 body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box .ui-dialog-titlebar-close:hover, 1145 body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box .ui-datepicker-prev:hover, 1146 body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box .ui-datepicker-next:hover, 1147 body._16576396_psiho_test_med_terapy_s_r_l_ #bizcal-sel-date .ui-state-hover { 1148 background-color: #10a585 !important; 1149 background-image: none; 1150 } 1151 1152 body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box div#bizcal-sel-time-container .ui-button { 1153 line-height: 32px; 1154 } 1155 1156 body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box div#bizcal-sel-time-container .ui-selected, 1157 body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box div#bizcal-sel-time-container li.ui-selected:hover, 1158 body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box div#bizcal-sel-time-container li.ui-selected:focus { 1159 background: #10a585; 1160 color: white; 1161 } 1162 1163 body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box input.setrio-bizcal-appointment-button { 1164 white-space: normal; 1165 text-align: center; 1166 } -
bizcalendar-web/trunk/js/bizcalendar.js
r2234098 r2271980 22 22 23 23 bizcalDefaultSpeciality = ""; 24 bizcalDefaultService = ""; 24 25 bizcalDefaultPhysician = ""; 25 26 … … 208 209 if (!setrio_bizcal_ajax.autosel_speciality) 209 210 { 210 newItem = { "id": "", "text": "" }211 newItem = { "id": "", "text": "", selected: (bizcalDefaultSpeciality == "")} 211 212 selectData.push(newItem); 212 213 } … … 216 217 newItem = { 217 218 "id": data.Specialities[medSpeciality].Code, 218 "text": data.Specialities[medSpeciality].Name 219 "text": data.Specialities[medSpeciality].Name, 220 "selected": data.Specialities[medSpeciality].Code.toUpperCase().trim() == bizcalDefaultSpeciality.toUpperCase().trim() 219 221 }; 220 222 selectData.push(newItem); … … 234 236 data: selectData, 235 237 }); 238 239 console.log("SELECTED SPECIALITY", getSelectedMedicalSpecialityCode().toUpperCase().trim()); 240 console.log(bizcalDefaultSpeciality.toUpperCase().trim()); 241 242 if ((bizcalDefaultSpeciality.length > 0) && (getSelectedMedicalSpecialityCode().toUpperCase().trim() == bizcalDefaultSpeciality.toUpperCase().trim())) 243 jQuery(".bizcal-sel-spec").prop("disabled", true); 244 else 245 jQuery(".bizcal-sel-spec").prop("disabled", false); 236 246 237 247 doOnSelectMedicalSpeciality(); … … 306 316 307 317 jQuery(".bizcal-sel-location").html(""); 318 jQuery(".bizcal-sel-location").val(null).trigger("change"); 319 jQuery(".bizcal-sel-location").attr("data-placeholder", setrio_bizcal_ajax.msg_location_placeholder); 308 320 jQuery(".bizcal-sel-location").select2({ 309 321 placeholder: setrio_bizcal_ajax.msg_location_placeholder, … … 312 324 }); 313 325 326 if (!setrio_bizcal_ajax.autosel_location) 327 { 328 jQuery(".bizcal-sel-location").val(null).trigger('change'); 329 jQuery(".bizcal-sel-location").attr("data-placeholder", setrio_bizcal_ajax.msg_location_placeholder); 330 jQuery("span#select2-bizcal-sel-location-container span.select2-selection__placeholder").text(setrio_bizcal_ajax.msg_location_placeholder); 331 } 332 314 333 doOnSelectLocation(); 315 334 … … 343 362 jQuery(".bizcal-sel-serv").attr("data-placeholder", "Se încarcă..."); 344 363 jQuery(".bizcal-sel-serv").select2(); 345 346 bizcalReqGetMedicalServices = jQuery.post({ 347 url: setrio_bizcal_ajax.ajax_url, 348 data: { 349 _ajax_nonce: setrio_bizcal_ajax.nonce, 350 action: "get_medical_services", 351 speciality_code: speciality_code, 352 location_uid: selectedLocationUID 353 }, 354 dataType: "json" 355 }) 356 .done(function(data){ 357 var selectData = []; 358 data = JSON.parse(data); 359 360 if ((data.ErrorCode == 0) && (data.ErrorMessage == "")) 361 { 362 if (!setrio_bizcal_ajax.autosel_service) 363 { 364 newItem = { "id": "", "text": "", "price": "" }; 365 selectData.push(newItem); 366 } 364 365 var selectedPhysicianUID = getPreferredPhysicianUID(); 366 367 if ((setrio_bizcal_ajax.appointment_param_order == 0) || (selectedPhysicianUID == "")) 368 { 369 console.log('varianta 1...'); 370 bizcalReqGetMedicalServices = jQuery.post({ 371 url: setrio_bizcal_ajax.ajax_url, 372 data: { 373 _ajax_nonce: setrio_bizcal_ajax.nonce, 374 action: "get_medical_services", 375 speciality_code: speciality_code, 376 location_uid: selectedLocationUID 377 }, 378 dataType: "json" 379 }) 380 .done(function(data){ 381 var selectData = []; 382 data = JSON.parse(data); 383 384 console.log("DEFAULT SERVICE", bizcalDefaultService); 367 385 368 for (var index in data.MedicalServices) 369 { 370 newItem = { 371 "id": data.MedicalServices[index].UID, 372 "text": setrio_bizcal_ajax.med_serv_all_caps ? data.MedicalServices[index].Name.toUpperCase() : data.MedicalServices[index].Name, 373 "price": data.MedicalServices[index].Price 374 }; 375 selectData.push(newItem); 376 } 377 } 378 else 379 { 380 showErrorMessage(data.ErrorMessage, setrio_bizcal_ajax.msg_error); 381 } 382 383 selectData.sort(compareMedicalSpecialities); 384 385 selected_service_uid = getSelectedMedicalServiceUID(); 386 jQuery(".bizcal-sel-serv").html(""); 387 jQuery(".bizcal-sel-serv").attr("data-placeholder", setrio_bizcal_ajax.msg_medical_service_placeholder); 388 jQuery(".bizcal-sel-serv").select2({ 389 data: selectData, 390 placeholder: setrio_bizcal_ajax.msg_medical_service_placeholder, 391 minimumResultsForSearch: bizcalIsMobileVersion ? -1 : 0, 392 escapeMarkup: function(markup) { 393 return markup; 386 if ((data.ErrorCode == 0) && (data.ErrorMessage == "")) 387 { 388 if (!setrio_bizcal_ajax.autosel_service) 389 { 390 newItem = { "id": "", "text": "", "price": "", selected: (bizcalDefaultService == "") }; 391 selectData.push(newItem); 392 } 393 394 for (var index in data.MedicalServices) 395 { 396 newItem = { 397 "id": data.MedicalServices[index].UID, 398 "text": setrio_bizcal_ajax.med_serv_all_caps ? data.MedicalServices[index].Name.toUpperCase() : data.MedicalServices[index].Name, 399 "price": data.MedicalServices[index].Price, 400 "selected": data.MedicalServices[index].Name.toUpperCase().trim() == bizcalDefaultService.toUpperCase().trim() 401 }; 402 selectData.push(newItem); 403 } 404 } 405 else 406 { 407 showErrorMessage(data.ErrorMessage, setrio_bizcal_ajax.msg_error); 408 } 409 410 selectData.sort(compareMedicalSpecialities); 411 412 selected_service_uid = getSelectedMedicalServiceUID(); 413 jQuery(".bizcal-sel-serv").html(""); 414 jQuery(".bizcal-sel-serv").attr("data-placeholder", setrio_bizcal_ajax.msg_medical_service_placeholder); 415 jQuery(".bizcal-sel-serv").select2({ 416 data: selectData, 417 placeholder: setrio_bizcal_ajax.msg_medical_service_placeholder, 418 minimumResultsForSearch: bizcalIsMobileVersion ? -1 : 0, 419 escapeMarkup: function(markup) { 420 return markup; 421 }, 422 dropdownCssClass: setrio_bizcal_ajax.custom_dropdown_class, 423 templateResult: function(result) { 424 if (result['price'] === undefined) { 425 return result.text; 426 } 427 return "<div style='width: 100%; display: inline-table'><div style='width:100%; display: table-row'><div style='display: table-cell; width: 100%;'>" + result.text 428 + "</div><div style='display: table-cell; white-space: nowrap' class='price'>" 429 + result['price'] 430 + "</div></div></div>"; 431 }, 432 templateSelection: function(result) { 433 if (result['price'] === undefined) { 434 return result.text; 435 } 436 return "<div style='width: 100%; display: inline-table'><div style='width:100%; display: table-row'>" 437 + "<div style='display: block; width: 100%; overflow: hidden; white-space: pre-line; max-height: 34px;'>" + result.text 438 + "</div><div style='display: table-cell; white-space: nowrap' class='bizcal-sel-serv-selected-price'>" 439 + result['price'] 440 + "</div></div></div>"; 441 } 442 }); 443 444 if (selected_service_uid != "") 445 { 446 var itemService = jQuery('.bizcal-sel-serv option[value="' + selected_service_uid + '"]'); 447 if (itemService.length > 0) 448 jQuery(".bizcal-sel-serv").val(selected_service_uid).trigger('change'); 449 } 450 else 451 { 452 jQuery(".bizcal-sel-serv").attr("data-placeholder", setrio_bizcal_ajax.msg_medical_service_placeholder); 453 //console.log('place-1'); 454 jQuery("span#select2-bizcal-sel-serv-container span.select2-selection__placeholder").text(setrio_bizcal_ajax.msg_medical_service_placeholder); 455 //console.log('place0'); 456 /*jQuery(".bizcal-sel-serv").select2({ 457 placeholder: setrio_bizcal_ajax.msg_medical_service_placeholder, 458 }).val("").trigger('change');*/ 459 //console.log('place1'); 460 //jQuery('.bizcal-sel-serv').val("").trigger('change'); 461 //console.log('place2'); 462 } 463 464 if ( 465 (getSelectedMedicalServiceName().toUpperCase().trim() == bizcalDefaultService.toUpperCase().trim()) 466 && 467 (bizcalDefaultService.toUpperCase().trim().length > 0) 468 ) 469 jQuery("#bizcal-sel-serv").prop("disabled", true); 470 else 471 jQuery("#bizcal-sel-serv").prop("disabled", false); 472 473 if ( (!isFormWithPopups()) && (!bizcalDisableAutoRefreshAppointmentAvailability) ) 474 { 475 checkAvailability(true); 476 } 477 478 bizcalDisableAutoRefreshAppointmentAvailability = false; 479 480 bizcalMedicalServicesInitialized = true; 481 482 bizcalReqGetMedicalServices = null; 483 }) 484 .fail(function(req){ 485 if ((req.status !== 0) || (req.statusText !== "abort")) 486 { 487 showErrorMessage(setrio_bizcal_ajax.msg_service_unknown_error, setrio_bizcal_ajax.msg_error); 488 } 489 }); 490 } 491 else 492 { 493 494 console.log('varianta 2...'); 495 bizcalReqGetMedicalServices = jQuery.post({ 496 url: setrio_bizcal_ajax.ajax_url, 497 data: { 498 _ajax_nonce: setrio_bizcal_ajax.nonce, 499 action: "get_prices", 500 speciality_code: speciality_code, 501 physician_uid: selectedPhysicianUID, 502 location_uid: selectedLocationUID 394 503 }, 395 dropdownCssClass: setrio_bizcal_ajax.custom_dropdown_class, 396 templateResult: function(result) { 397 if (result['price'] === undefined) { 398 return result.text; 504 dataType: "json" 505 }) 506 .done(function(data){ 507 var selectData = []; 508 data = JSON.parse(data); 509 510 if ((data.ErrorCode == 0) && (data.ErrorMessage == "")) 511 { 512 if (!setrio_bizcal_ajax.autosel_service) 513 { 514 newItem = { "id": "", "text": "", "price": "", "selected": (bizcalDefaultService == "") }; 515 selectData.push(newItem); 516 } 517 518 for (var index in data.MedicalServices) 519 { 520 newItem = { 521 "id": data.MedicalServices[index].UID, 522 "text": setrio_bizcal_ajax.med_serv_all_caps ? data.MedicalServices[index].Name.toUpperCase() : data.MedicalServices[index].Name, 523 "price": data.MedicalServices[index].Price, 524 "selected": data.MedicalServices[index].Name.toUpperCase().trim() == bizcalDefaultService.toUpperCase().trim() 525 }; 526 selectData.push(newItem); 399 527 } 400 return "<div style='width: 100%; display: inline-table'><div style='width:100%; display: table-row'><div style='display: table-cell; width: 100%;'>" + result.text 401 + "</div><div style='display: table-cell; white-space: nowrap' class='price'>" 402 + result['price'] 403 + "</div></div></div>"; 404 }, 405 templateSelection: function(result) { 406 if (result['price'] === undefined) { 407 return result.text; 528 } 529 else 530 { 531 showErrorMessage(data.ErrorMessage, setrio_bizcal_ajax.msg_error); 532 } 533 534 selectData.sort(compareMedicalSpecialities); 535 536 selected_service_uid = getSelectedMedicalServiceUID(); 537 jQuery(".bizcal-sel-serv").html(""); 538 jQuery(".bizcal-sel-serv").attr("data-placeholder", setrio_bizcal_ajax.msg_medical_service_placeholder); 539 jQuery(".bizcal-sel-serv").select2({ 540 data: selectData, 541 placeholder: setrio_bizcal_ajax.msg_medical_service_placeholder, 542 minimumResultsForSearch: bizcalIsMobileVersion ? -1 : 0, 543 escapeMarkup: function(markup) { 544 return markup; 545 }, 546 dropdownCssClass: setrio_bizcal_ajax.custom_dropdown_class, 547 templateResult: function(result) { 548 if (result['price'] === undefined) { 549 return result.text; 550 } 551 return "<div style='width: 100%; display: inline-table'><div style='width:100%; display: table-row'><div style='display: table-cell; width: 100%;'>" + result.text 552 + "</div><div style='display: table-cell; white-space: nowrap' class='price'>" 553 + result['price'] 554 + "</div></div></div>"; 555 }, 556 templateSelection: function(result) { 557 if (result['price'] === undefined) { 558 return result.text; 559 } 560 return "<div style='width: 100%; display: inline-table'><div style='width:100%; display: table-row'>" 561 + "<div style='display: block; width: 100%; overflow: hidden; white-space: pre-line; max-height: 34px;'>" + result.text 562 + "</div><div style='display: table-cell; white-space: nowrap' class='bizcal-sel-serv-selected-price'>" 563 + result['price'] 564 + "</div></div></div>"; 408 565 } 409 return "<div style='width: 100%; display: inline-table'><div style='width:100%; display: table-row'>" 410 + "<div style='display: block; width: 100%; overflow: hidden; white-space: pre-line; max-height: 34px;'>" + result.text 411 + "</div><div style='display: table-cell; white-space: nowrap' class='bizcal-sel-serv-selected-price'>" 412 + result['price'] 413 + "</div></div></div>"; 566 }); 567 568 if (selected_service_uid != "") 569 { 570 var itemService = jQuery('.bizcal-sel-serv option[value="' + selected_service_uid + '"]'); 571 if (itemService.length > 0) 572 jQuery(".bizcal-sel-serv").val(selected_service_uid).trigger('change'); 573 } 574 else 575 { 576 jQuery(".bizcal-sel-serv").attr("data-placeholder", setrio_bizcal_ajax.msg_medical_service_placeholder); 577 //console.log('place-1'); 578 jQuery("span#select2-bizcal-sel-serv-container span.select2-selection__placeholder").text(setrio_bizcal_ajax.msg_medical_service_placeholder); 579 //console.log('place0'); 580 /*jQuery(".bizcal-sel-serv").select2({ 581 placeholder: setrio_bizcal_ajax.msg_medical_service_placeholder, 582 }).val("").trigger('change');*/ 583 //console.log('place1'); 584 //jQuery('.bizcal-sel-serv').val("").trigger('change'); 585 //console.log('place2'); 586 } 587 588 if ( 589 (getSelectedMedicalServiceName().toUpperCase().trim() == bizcalDefaultService.toUpperCase().trim()) 590 && 591 (bizcalDefaultService.toUpperCase().trim().length > 0) 592 ) 593 jQuery("#bizcal-sel-serv").prop("disabled", true); 594 else 595 jQuery("#bizcal-sel-serv").prop("disabled", false); 596 597 if ( (!isFormWithPopups()) && (!bizcalDisableAutoRefreshAppointmentAvailability) ) 598 { 599 checkAvailability(true); 600 } 601 602 bizcalDisableAutoRefreshAppointmentAvailability = false; 603 604 bizcalMedicalServicesInitialized = true; 605 606 bizcalReqGetMedicalServices = null; 607 }) 608 .fail(function(req){ 609 if ((req.status !== 0) || (req.statusText !== "abort")) 610 { 611 showErrorMessage(setrio_bizcal_ajax.msg_service_unknown_error, setrio_bizcal_ajax.msg_error); 414 612 } 415 613 }); 416 417 if (selected_service_uid != "") 418 { 419 var itemService = jQuery('.bizcal-sel-serv option[value="' + selected_service_uid + '"]'); 420 if (itemService.length > 0) 421 jQuery(".bizcal-sel-serv").val(selected_service_uid).trigger('change'); 422 } 423 else 424 { 425 jQuery(".bizcal-sel-serv").attr("data-placeholder", setrio_bizcal_ajax.msg_medical_service_placeholder); 426 //console.log('place-1'); 427 jQuery("span#select2-bizcal-sel-serv-container span.select2-selection__placeholder").text(setrio_bizcal_ajax.msg_medical_service_placeholder); 428 //console.log('place0'); 429 /*jQuery(".bizcal-sel-serv").select2({ 430 placeholder: setrio_bizcal_ajax.msg_medical_service_placeholder, 431 }).val("").trigger('change');*/ 432 //console.log('place1'); 433 //jQuery('.bizcal-sel-serv').val("").trigger('change'); 434 //console.log('place2'); 435 } 436 437 if ( (!isFormWithPopups()) && (!bizcalDisableAutoRefreshAppointmentAvailability) ) 438 { 439 checkAvailability(true); 440 } 441 442 bizcalDisableAutoRefreshAppointmentAvailability = false; 443 444 bizcalMedicalServicesInitialized = true; 445 446 bizcalReqGetMedicalServices = null; 447 }) 448 .fail(function(req){ 449 if ((req.status !== 0) || (req.statusText !== "abort")) 450 { 451 showErrorMessage(setrio_bizcal_ajax.msg_service_unknown_error, setrio_bizcal_ajax.msg_error); 452 } 453 }); 614 } 454 615 } 455 616 … … 526 687 }, 527 688 templateResult: function(result) { 528 if ( result['price'] === undefined) {689 if (typeof(result['price']) === "undefined") { 529 690 return result.text; 530 691 } … … 565 726 }); 566 727 728 jQuery(".bizcal-sel-preferred-physician").val("0").trigger('change'); 729 jQuery(".bizcal-sel-preferred-physician").attr("data-placeholder", setrio_bizcal_ajax.msg_location_placeholder); 730 jQuery("span#select2-bizcal-sel-preferred-physician-container span.select2-selection__placeholder").text("Alegeti medicul dorit"); 731 567 732 //console.log("PREF_PHYS: " + getPreferredPhysicianName()); 568 733 jQuery(".bizcal-sel-preferred-physician").prop("disabled", getPreferredPhysicianName() == bizcalDefaultPhysician); … … 898 1063 + "' width='100' height='100' align='top'></div>" 899 1064 + "<div class='setrio-bizcal-available-physician-name'>" + data[index].text + "</div>" 900 + "<div class='setrio-bizcal-available-physician-price'><span class='label'>Tarif: </span>" + data[index].price + "</div>" 1065 + ((typeof(data[index].price) != "undefined") 1066 ? "<div class='setrio-bizcal-available-physician-price'><span class='label'>Tarif: </span>" + data[index].price + "</div>" 1067 : "") 901 1068 + "<div class='setrio-bizcal-available-physician-description'>" + data[index].description + "</div>" 902 1069 + "</li>"; … … 1013 1180 "end_date": data.Availabilities[availabilityIndex].RequestedDateAvailabilities[index].EndDate, 1014 1181 "id": data.Availabilities[availabilityIndex].PhysicianUID, 1015 "text": data.Availabilities[availabilityIndex].PhysicianName,1016 "price": data.Availabilities[availabilityIndex].Price,1017 "description": data.Availabilities[availabilityIndex].Description,1018 "picture_url": data.Availabilities[availabilityIndex].PictureURL1182 "text": data.Availabilities[availabilityIndex].PhysicianName, 1183 "price": data.Availabilities[availabilityIndex].Price, 1184 "description": data.Availabilities[availabilityIndex].Description, 1185 "picture_url": data.Availabilities[availabilityIndex].PictureURL 1019 1186 }; 1020 1187 requestedDateAvailabilities.push(newTimeItem); … … 1034 1201 "end_date": data.Availabilities[availabilityIndex].RecommandedDateAvailabilities[index].EndDate, 1035 1202 "id": data.Availabilities[availabilityIndex].PhysicianUID, 1036 "text": data.Availabilities[availabilityIndex].PhysicianName,1037 "price": data.Availabilities[availabilityIndex].Price,1038 "description": data.Availabilities[availabilityIndex].Description,1039 "picture_url": data.Availabilities[availabilityIndex].PictureURL1203 "text": data.Availabilities[availabilityIndex].PhysicianName, 1204 "price": data.Availabilities[availabilityIndex].Price, 1205 "description": data.Availabilities[availabilityIndex].Description, 1206 "picture_url": data.Availabilities[availabilityIndex].PictureURL 1040 1207 }; 1041 1208 recommendedDateAvailabilities.push(newTimeItem); … … 1605 1772 } 1606 1773 1774 function getSelectedMedicalServiceName() 1775 { 1776 var medicalServiceControls = jQuery("#bizcal-sel-serv"); 1777 if (medicalServiceControls.length > 0) 1778 { 1779 var selectedServiceName = jQuery("#bizcal-sel-serv").select2('data')[0].text; 1780 if ((selectedServiceName == "-") || (selectedServiceName == " ")) 1781 selectedServiceName = ""; 1782 return selectedServiceName; 1783 } 1784 else 1785 return ""; 1786 } 1787 1788 function setSelectedMedicalServiceName(name, disable_selection) 1789 { 1790 var serviceControls = jQuery("#bizcal-sel-serv"); 1791 if (serviceControls.length > 0) 1792 { 1793 if (jQuery('#bizcal-sel-serv').find("option[text='" + name + "']").length) 1794 { 1795 var desiredUID = jQuery('#bizcal-sel-serv').find("option[text='" + name + "']")[0].val(); 1796 jQuery('#bizcal-sel-serv').val(desiredUID).trigger('change'); 1797 if (disable_selection) 1798 jQuery('#bizcal-sel-serv').prop("disabled", true); 1799 doOnSelectMedicalService(); 1800 } 1801 else 1802 { 1803 jQuery('#bizcal-sel-serv').val(null).trigger('change'); 1804 jQuery('#bizcal-sel-serv').prop("disabled", false); 1805 } 1806 1807 var selectedMedicalServiceName = serviceControls[0].value; 1808 if ((selectedMedicalServiceName == "-") || (selectedMedicalServiceName == "0") || (selectedMedicalServiceName == " ")) 1809 selectedMedicalServiceName = ""; 1810 return selectedMedicalServiceName; 1811 } 1812 } 1813 1607 1814 function getSelectedDate() 1608 1815 { … … 1647 1854 1648 1855 var specialityCode = getSelectedMedicalSpecialityCode(); 1649 var physicianUID = "";//getSelectedPhysicianUID(); 1856 1857 var physicianUID = ""; //getSelectedPhysicianUID(); 1858 1650 1859 if (physicianUID == "") 1651 1860 wsGetMedicalServices(specialityCode) … … 1801 2010 else if (paymentTypeId == 2) 1802 2011 { 1803 bizcalMedicalServicesInitialized = true;2012 bizcalMedicalServicesInitialized = true; 1804 2013 hideMedicalServicesSelectionBox(); 1805 2014 if (setrio_bizcal_ajax.allow_search_physician == true) … … 1810 2019 else 1811 2020 { 1812 showMedicalServicesSelectionBox(); 1813 if (setrio_bizcal_ajax.allow_search_physician == true) 1814 showPreferredPhysicianSelectionBox(); 2021 if (setrio_bizcal_ajax.appointment_param_order == 0) 2022 { 2023 showMedicalServicesSelectionBox(); 2024 if (setrio_bizcal_ajax.allow_search_physician == true) 2025 showPreferredPhysicianSelectionBox(); 2026 } 2027 else 2028 { 2029 if (setrio_bizcal_ajax.allow_search_physician == true) 2030 showPreferredPhysicianSelectionBox(); 2031 2032 showMedicalServicesSelectionBox(); 2033 } 1815 2034 } 1816 2035 } … … 1879 2098 resetAvailability(false); 1880 2099 1881 if ( (!isFormWithPopups()) && (!bizcalDisableAutoRefreshAppointmentAvailability) ) 1882 checkAvailability(true); 2100 if (setrio_bizcal_ajax.appointment_param_order == 0) 2101 { 2102 if ( (!isFormWithPopups()) && (!bizcalDisableAutoRefreshAppointmentAvailability) ) 2103 checkAvailability(true); 2104 } 2105 else 2106 { 2107 showMedicalServicesSelectionBox(); 2108 } 1883 2109 } 1884 2110 … … 2099 2325 } 2100 2326 2101 function setrioBizcalPopupShow() 2102 { 2103 jQuery("#setrio-bizcal-page-1").show(); 2104 jQuery("#setrio-bizcal-page-2").hide(); 2105 jQuery("#setrio-bizcal-page-3").hide(); 2106 2107 var wpAdminBarHeight = 0; 2108 if (jQuery("div#wpadminbar").length > 0) 2109 wpAdminBarHeight = jQuery("div#wpadminbar").height(); 2110 2111 var defaultSpeciality = jQuery(this).attr("data-speciality"); 2112 var defaultPhysician = jQuery(this).attr("data-physician"); 2113 2114 bizcalDefaultSpeciality = defaultSpeciality; 2115 bizcalDefaultPhysician = defaultPhysician; 2116 //console.log("DEF-PHYS - " + bizcalDefaultPhysician); 2117 2118 if (defaultSpeciality != "") 2119 { 2120 if (defaultSpeciality != getSelectedMedicalSpecialityCode()) 2121 { 2122 setSelectedMedicalSpecialityCode(defaultSpeciality, true); 2123 } 2124 } 2125 2126 if (defaultPhysician != "") 2127 { 2128 if (defaultPhysician != getSelectedPhysicianName()) 2129 { 2130 doOnSelectMedicalSpeciality(); 2131 setPreferredPhysicianName(defaultPhysician, true); 2132 } 2133 } 2134 else 2135 { 2136 if (defaultPhysician != getSelectedPhysicianName()) 2137 { 2138 doOnSelectMedicalSpeciality(); 2139 } 2140 } 2141 2142 jQuery("#setrio-bizcal-main-box-content").dialog({ 2143 modal: true, 2144 title: 'Solicită o programare', 2145 appendTo: '.bizcal-main-box', 2146 height: bizcalIsMobileVersion ? Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - wpAdminBarHeight : 600, 2147 maxHeight: bizcalIsMobileVersion ? Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - wpAdminBarHeight : 600, 2148 width: bizcalIsMobileVersion ? document.body.clientWidth : 900, 2149 maxWidth: 900, 2150 position: { 2151 my: ((bizcalIsMobileVersion == true) && (wpAdminBarHeight > 0)) ? "bottom" : "center", 2152 at: ((bizcalIsMobileVersion == true) && (wpAdminBarHeight > 0)) ? "bottom" : "center", 2153 of: window 2154 }, 2155 buttons: [ 2156 { 2157 id: "setrio-bizcal-popup-btn-back", 2158 text: "Înapoi", 2159 icon: "ui-icon-back", 2160 disabled: true, 2161 click: setrioBizcalPopupGoBack 2162 }, 2163 { 2164 id: "setrio-bizcal-popup-btn-next", 2165 text: "Continuă", 2166 icon: "ui-icon-next", 2167 disabled: true, 2168 click: setrioBizcalPopupContinue 2169 } 2170 ] 2171 }); 2327 function setrioBizcalPopupShow(button) 2328 { 2329 jQuery("#setrio-bizcal-page-1").show(); 2330 jQuery("#setrio-bizcal-page-2").hide(); 2331 jQuery("#setrio-bizcal-page-3").hide(); 2332 2333 var wpAdminBarHeight = 0; 2334 if (jQuery("div#wpadminbar").length > 0) 2335 wpAdminBarHeight = jQuery("div#wpadminbar").height(); 2336 2337 var defaultSpeciality = jQuery(button).attr("data-speciality"); 2338 var defaultService = jQuery(button).attr("data-service"); 2339 var defaultPhysician = jQuery(button).attr("data-physician"); 2340 2341 if (typeof(defaultSpeciality) == "undefined") 2342 defaultSpeciality = ""; 2343 if (typeof(defaultService) == "undefined") 2344 defaultService = ""; 2345 if (typeof(defaultPhysician) == "undefined") 2346 defaultPhysician = ""; 2347 2348 bizcalDefaultSpeciality = defaultSpeciality; 2349 bizcalDefaultService = defaultService; 2350 bizcalDefaultPhysician = defaultPhysician; 2351 2352 console.log("DEFAULT SERVICE INIT", bizcalDefaultService); 2353 2354 if (defaultSpeciality != "") 2355 { 2356 if (defaultSpeciality != getSelectedMedicalSpecialityCode()) 2357 { 2358 setSelectedMedicalSpecialityCode(defaultSpeciality, true); 2359 } 2360 } 2361 else 2362 jQuery(".bizcal-sel-spec").prop("disabled", false); 2363 2364 if (defaultService != "") 2365 { 2366 if (defaultService != getSelectedMedicalServiceName()) 2367 { 2368 setSelectedMedicalServiceName(defaultService, true); 2369 } 2370 } 2371 else 2372 jQuery('#bizcal-sel-serv').prop("disabled", false); 2373 2374 if (defaultPhysician != "") 2375 { 2376 if (defaultPhysician != getSelectedPhysicianName()) 2377 { 2378 doOnSelectMedicalSpeciality(); 2379 setPreferredPhysicianName(defaultPhysician, true); 2380 } 2381 } 2382 else 2383 { 2384 jQuery('.bizcal-sel-preferred-physician').prop("disabled", false); 2385 if (defaultPhysician != getSelectedPhysicianName()) 2386 { 2387 doOnSelectMedicalSpeciality(); 2388 } 2389 } 2390 2391 jQuery("#setrio-bizcal-main-box-content").dialog({ 2392 modal: true, 2393 title: 'Solicită o programare', 2394 appendTo: '.bizcal-main-box', 2395 height: bizcalIsMobileVersion ? Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - wpAdminBarHeight : 600, 2396 maxHeight: bizcalIsMobileVersion ? Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - wpAdminBarHeight : 600, 2397 width: bizcalIsMobileVersion ? document.body.clientWidth : 900, 2398 maxWidth: 900, 2399 position: { 2400 my: ((bizcalIsMobileVersion == true) && (wpAdminBarHeight > 0)) ? "bottom" : "center", 2401 at: ((bizcalIsMobileVersion == true) && (wpAdminBarHeight > 0)) ? "bottom" : "center", 2402 of: window 2403 }, 2404 buttons: [ 2405 { 2406 id: "setrio-bizcal-popup-btn-back", 2407 text: "Înapoi", 2408 icon: "ui-icon-back", 2409 disabled: true, 2410 click: setrioBizcalPopupGoBack 2411 }, 2412 { 2413 id: "setrio-bizcal-popup-btn-next", 2414 text: "Continuă", 2415 icon: "ui-icon-next", 2416 disabled: true, 2417 click: setrioBizcalPopupContinue 2418 } 2419 ] 2420 }); 2172 2421 } 2173 2422 … … 2248 2497 bizcalAppointmentDateSelected = true; 2249 2498 }); 2250 2251 bizcalAppointmentDateSelected = true; // La Sante Vera nu se apeleaza evenimentul ready de mai sus2499 2500 bizcalAppointmentDateSelected = true; // La Sante Vera nu se apeleaza evenimentul ready de mai sus 2252 2501 2253 2502 $("#bizcal-sel-time").selectable(); … … 2262 2511 2263 2512 jQuery(".setrio-bizcal-appointment-button").on("click", function (e) { 2513 console.log("Showing popup..."); 2514 console.log(this); 2515 setrioBizcalPopupShow(this); 2516 e.preventDefault(); 2517 console.log("Popup shown!"); 2518 }); 2519 2520 jQuery("a.bt_2").attr("onClick", ""); 2521 jQuery("a.bt_2").unbind("click"); 2522 jQuery("a.bt_2").click(function (e) { 2523 console.log("click start"); 2264 2524 setrioBizcalPopupShow(); 2265 e.preventDefault(); 2266 }); 2267 2268 jQuery("a.bt_2").attr("onClick", ""); 2269 jQuery("a.bt_2").unbind("click"); 2270 jQuery("a.bt_2").click(function (e) { 2271 console.log("click start"); 2272 setrioBizcalPopupShow(); 2273 //e.stopPropagation(); 2274 //e.preventDefault(); 2275 jQuery("#buttonizer-sys").removeClass("opened"); 2276 jQuery("#buttonizer-sys").addClass("closed"); 2277 console.log("click end"); 2278 //return false; 2525 //e.stopPropagation(); 2526 //e.preventDefault(); 2527 jQuery("#buttonizer-sys").removeClass("opened"); 2528 jQuery("#buttonizer-sys").addClass("closed"); 2529 console.log("click end"); 2530 //return false; 2279 2531 }); 2280 2532 }); -
bizcalendar-web/trunk/main.php
r2237845 r2271980 58 58 $maxAvailabilities = (int)get_option('setrio_bizcal_max_availabilities', 0); 59 59 $minDaysToAppointment = (int)get_option('setrio_bizcal_min_days_to_appointment', 0); 60 $appointmentParamOrder = (int)get_option('setrio_bizcal_appointment_param_order', 0); 60 61 61 62 wp_localize_script('setrio-bizcalendar', 'setrio_bizcal_ajax', array( … … 75 76 'max_availabilities' => $maxAvailabilities, 76 77 'min_days_to_appointment' => $minDaysToAppointment, 78 'appointment_param_order' => $appointmentParamOrder, 77 79 'msg_error' => setrio_bizcal_message('msgError'), 78 80 'msg_warning' => setrio_bizcal_message('msgWarning'), … … 160 162 'titlu' => 'Programează-te online', 161 163 'specialitate' => '', 164 'serviciu' => '', 162 165 'medic' => '', 163 166 'calendar' => 'inline', … … 174 177 $setrio_bizcal_button_container = esc_html($wporg_atts['container']); 175 178 $setrio_bizcal_default_speciality = esc_html($wporg_atts['specialitate']); 179 $setrio_bizcal_default_service = esc_html($wporg_atts['serviciu']); 176 180 $setrio_bizcal_default_physician = esc_html($wporg_atts['medic']); 177 181 $setrio_bizcal_seldate_display_mode = esc_html($wporg_atts['calendar']); … … 179 183 $allCaps = (bool)get_option('setrio_bizcal_all_caps', false); 180 184 $enableMultipleLocations = get_option('setrio_bizcal_enable_multiple_locations', false); 185 $appointmentParamOrder = (int)get_option('setrio_bizcal_appointment_param_order', 0); 181 186 182 187 // start output … … 194 199 .(($setrio_bizcal_button_style) ? "style='$setrio_bizcal_button_style'" : "") 195 200 ."data-speciality='$setrio_bizcal_default_speciality' " 201 ."data-service='$setrio_bizcal_default_service' " 196 202 ."data-physician='$setrio_bizcal_default_physician'>$setrio_bizcal_button_title</a>"; 197 203 else … … 200 206 .(($setrio_bizcal_button_style) ? "style='$setrio_bizcal_button_style'" : "") 201 207 ."data-speciality='$setrio_bizcal_default_speciality' " 208 ."data-service='$setrio_bizcal_default_service' " 202 209 ."data-physician='$setrio_bizcal_default_physician' />"; 203 210 if ($setrio_bizcal_button_container != "") … … 233 240 $o .= "\n\t\t\t\t\t</label>"; 234 241 235 $o .= "\n\t\t\t\t\t<label for=\"bizcal-sel-serv\" style=\"display: none\" class=\"col-12 bizcal-sel-serv-box\">".setrio_bizcal_message('lblMedicalService'); 236 $o .= "\n\t\t\t\t\t\t<select id=\"bizcal-sel-serv\" class=\"bizcal-sel-serv\" style=\"width: 100%\"></select>"; 237 $o .= "\n\t\t\t\t\t</label>"; 238 239 $o .= "\n\t\t\t\t\t<label for=\"bizcal-sel-preferred-physician\" style=\"display: none\" class=\"col-12 bizcal-sel-preferred-physician-box\">".setrio_bizcal_message('lblPreferredPhysician'); 240 $o .= "\n\t\t\t\t\t\t<select id=\"bizcal-sel-preferred-physician\" class=\"bizcal-sel-preferred-physician\" style=\"width: 100%\"></select>"; 241 $o .= "\n\t\t\t\t\t</label>"; 242 if ($appointmentParamOrder == 0) 243 { 244 $o .= "\n\t\t\t\t\t<label for=\"bizcal-sel-serv\" style=\"display: none\" class=\"col-12 bizcal-sel-serv-box\">".setrio_bizcal_message('lblMedicalService'); 245 $o .= "\n\t\t\t\t\t\t<select id=\"bizcal-sel-serv\" class=\"bizcal-sel-serv\" style=\"width: 100%\"></select>"; 246 $o .= "\n\t\t\t\t\t</label>"; 247 248 $o .= "\n\t\t\t\t\t<label for=\"bizcal-sel-preferred-physician\" style=\"display: none\" class=\"col-12 bizcal-sel-preferred-physician-box\">".setrio_bizcal_message('lblPreferredPhysician'); 249 $o .= "\n\t\t\t\t\t\t<select id=\"bizcal-sel-preferred-physician\" class=\"bizcal-sel-preferred-physician\" style=\"width: 100%\"></select>"; 250 $o .= "\n\t\t\t\t\t</label>"; 251 } 252 else 253 { 254 $o .= "\n\t\t\t\t\t<label for=\"bizcal-sel-preferred-physician\" style=\"display: none\" class=\"col-12 bizcal-sel-preferred-physician-box\">".setrio_bizcal_message('lblPreferredPhysician'); 255 $o .= "\n\t\t\t\t\t\t<select id=\"bizcal-sel-preferred-physician\" class=\"bizcal-sel-preferred-physician\" style=\"width: 100%\"></select>"; 256 $o .= "\n\t\t\t\t\t</label>"; 257 258 $o .= "\n\t\t\t\t\t<label for=\"bizcal-sel-serv\" style=\"display: none\" class=\"col-12 bizcal-sel-serv-box\">".setrio_bizcal_message('lblMedicalService'); 259 $o .= "\n\t\t\t\t\t\t<select id=\"bizcal-sel-serv\" class=\"bizcal-sel-serv\" style=\"width: 100%\"></select>"; 260 $o .= "\n\t\t\t\t\t</label>"; 261 } 242 262 243 263 $o .= "\n\t\t\t\t</div>"; // col … … 250 270 $o .= "\n\t\t\t\t\t\t<input type=\"text\" id=\"bizcal-sel-date\" class=\"text ui-widget-content ui-corner-all\" />"; 251 271 $o .= "\n\t\t\t\t\t</label>"; 252 if ($form_with_popups )272 if ($form_with_popups || $form_hidden) 253 273 { 254 274 $o .= "\n\t\t\t\t\t<div class=\"bizcal-sel-time-loading\" style=\"display: none\">"; -
bizcalendar-web/trunk/readme.txt
r2237845 r2271980 52 52 == Changelog == 53 53 54 = 1.0.6.0 = 55 * RO: s-a adaugat posibilitatea de a preselecta serviciul dorit in fereastra de programare 56 s-a adaugat posibilitatea de a modifica ordinea de selectare a campurilor in fereastra de programare 57 * EN: we added the posibility to preselect the medical service 58 we added the posibility to change the display order for the appointment filters 54 59 = 1.0.5.1 = 55 60 * RO: s-au făcut unele modificări de stil pentru compatibilitate cu temele instalate la anumiți clienți … … 117 122 == Upgrade Notice == 118 123 124 = 1.0.6.0 = 125 RO: În această versiune s-au implementat modificările de mai jos, actualizați modulul dacă doriți aceste modificări: 126 * S-a adaugat posibilitatea de a preselecta serviciul dorit in fereastra de programare 127 * S-a adaugat posibilitatea de a modifica ordinea de selectare a campurilor in fereastra de programare 128 EN: This version contains the following changes, please upgrade if you wish to implement them: 129 * We added the posibility to preselect the medical service 130 * We added the posibility to change the display order for the appointment filters 119 131 = 1.0.5.1 = 120 132 RO: S-au făcut unele modificări de stil pentru compatibilitate cu temele instalate la anumiți clienți. Actualizați la această versiune dacă aveți probleme cu afișarea anumitor elemente in pagină. 121 133 EN: We made some changes to the stylesheet for compatibility with some templates our customers are using. Please update if you are having display issues with some elements in our module. 122 134 = 1.0.5.0 = 123 *RO: s-a adăugat posibilitatea de a selecta locația pentru care se face programarea (pentru clinicile cu mai multe locații). Faceți actualizarea dacă doriți această funcționalitate.124 *EN: we added the possibility to select the location for which the appointment is done (for clinics with several locations). Please update if you need this feature.135 RO: s-a adăugat posibilitatea de a selecta locația pentru care se face programarea (pentru clinicile cu mai multe locații). Faceți actualizarea dacă doriți această funcționalitate. 136 EN: we added the possibility to select the location for which the appointment is done (for clinics with several locations). Please update if you need this feature. 125 137 = 1.0.4.1 = 126 *RO: S-a remediat problema care apărea la utilizarea mai multor butoane de programare cu preselectare medic în aceeași pagină. Actualizați dacă folosiți deja versiunea 1.0.4.0.127 *EN: We fixed an issue when using multiple physician programming buttons on the same page. This update is mandatory if you are using the version 1.0.4.0.138 RO: S-a remediat problema care apărea la utilizarea mai multor butoane de programare cu preselectare medic în aceeași pagină. Actualizați dacă folosiți deja versiunea 1.0.4.0. 139 EN: We fixed an issue when using multiple physician programming buttons on the same page. This update is mandatory if you are using the version 1.0.4.0. 128 140 = 1.0.4.0 = 129 *RO: S-a adăugat posibilitatea de a adăuga mai multe butoane de programare pe aceeași pagină, cu posibilitatea de preselectare a specialității medicale și a medicului preferat. Actualizați modulul dacă doriți aceste functionalități.130 *EN: We added the possibility to add more than one appointment button on the same page, and the possibility to preselect the medical specialty and the preferred physician. You should upgrade if you need these features.141 RO: S-a adăugat posibilitatea de a adăuga mai multe butoane de programare pe aceeași pagină, cu posibilitatea de preselectare a specialității medicale și a medicului preferat. Actualizați modulul dacă doriți aceste functionalități. 142 EN: We added the possibility to add more than one appointment button on the same page, and the possibility to preselect the medical specialty and the preferred physician. You should upgrade if you need these features. 131 143 = 1.0.3.6 = 132 144 RO: S-au făcut unele modificări de stil pentru compatibilitate cu temele instalate la anumiți clienți. Actualizați la această versiune dacă aveți probleme cu afișarea anumitor elemente in pagină. -
bizcalendar-web/trunk/recaptcha/recaptchalib.php
r1901838 r2271980 53 53 * @param string $secret shared secret between site and ReCAPTCHA server. 54 54 */ 55 function ReCaptcha($secret)55 function __construct($secret) 56 56 { 57 57 if ($secret == null || $secret == "") {
Note: See TracChangeset
for help on using the changeset viewer.