Plugin Directory

Changeset 2271980


Ignore:
Timestamp:
03/31/2020 06:46:00 PM (6 years ago)
Author:
setriosoft
Message:

BizCalendar 1.0.6.0

Location:
bizcalendar-web
Files:
151 added
7 edited

Legend:

Unmodified
Added
Removed
  • bizcalendar-web/trunk/admin/bizcalendar-admin.php

    r2234098 r2271980  
    1111add_action('admin_menu', 'setrio_bizcal_setup_menu');
    1212add_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');
    1315 
    1416function setrio_bizcal_admin_init()
    15 {
     17{ 
    1618    global $bizcalAdmin;
    1719    $bizcalAdmin = new SetrioBizCalAdmin();
     
    122124    $appointmentEmailSubject = get_option('setrio_bizcal_appointment_email_subject');
    123125    $addServiceNameInObservations = (bool)get_option('setrio_bizcal_add_service_to_obs', false);
     126    $appointmentParamOrder = (int)get_option('setrio_bizcal_appointment_param_order', 0);
    124127    ?>
    125128    <div class="wrap">
     
    372375                        <br />
    373376                        <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>
    374390                    </p>
    375391                </div>
     
    572588                $allowSearchForPhysician = (isset($_POST['setrio-bizcal-allow-search-physician']) && ($_POST['setrio-bizcal-allow-search-physician'] == 1)) ? 1 : 0;
    573589                $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']);
    575592                update_option('setrio_bizcal_all_caps', $allCaps);
    576593                update_option('setrio_bizcal_autosel_speciality', $autoSelectMedicalSpeciality);
     
    583600                update_option('setrio_bizcal_max_availabilities', $maxAvailabilities);
    584601                update_option('setrio_bizcal_min_days_to_appointment', $minDaysToAppointment);
     602                update_option('setrio_bizcal_appointment_param_order', $appointmentParamOrder);
    585603            }
    586604            elseif ($active_tab == "email")
     
    937955}
    938956
     957class 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
     1062class 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
    9391209?>
  • bizcalendar-web/trunk/bizcalendar.php

    r2237845 r2271980  
    22/**
    33 * @package BizCalendarWeb
    4  * @version 1.0.5.1
     4 * @version 1.0.6.0
    55 */
    66/*
     
    99Description: Modul de programări online pentru clinicile medicale care folosesc BizMedica / Online appointments form for medical clinics using BizMedica software
    1010Author: Setrio Soft
    11 Version: 1.0.5.1
     11Version: 1.0.6.0
    1212Author URI: http://www.setrio.ro/
    1313*/
  • bizcalendar-web/trunk/css/bizcalendar.css

    r2237845 r2271980  
    788788}
    789789
     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}
    790797
    791798/* BLUELIFE */
     
    10381045    font-weight: 400 !important;
    10391046}
     1047
     1048/* NOVADERM */
     1049
     1050body._30421621_innovative_constanta .bizcal-main-box div.ui-dialog {
     1051    z-index: 1040;
     1052}
     1053
     1054body._30421621_innovative_constanta .bizcal-main-box .select2-selection__rendered {
     1055    display: block;
     1056    width: inherit;
     1057}
     1058
     1059body._30421621_innovative_constanta .bizcal-main-box .ui-widget-header {
     1060    background-color: #C4001D;
     1061    border-color: #C4001D;
     1062    background-image: none;
     1063}
     1064
     1065body._30421621_innovative_constanta .bizcal-main-box .ui-dialog-titlebar-close {
     1066    background-image: none;
     1067    background-color: #C4001D;
     1068}
     1069
     1070body._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
     1075body._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
     1080body._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}
     1084body._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
     1092body._30421621_innovative_constanta .bizcal-main-box div#bizcal-sel-time-container .ui-button {
     1093    line-height: 32px;
     1094}
     1095
     1096body._30421621_innovative_constanta .bizcal-main-box div#bizcal-sel-time-container .ui-selected,
     1097body._30421621_innovative_constanta .bizcal-main-box div#bizcal-sel-time-container li.ui-selected:hover,
     1098body._30421621_innovative_constanta .bizcal-main-box div#bizcal-sel-time-container li.ui-selected:focus {
     1099    background: #C4001D;
     1100    color: white;
     1101}
     1102
     1103body._30421621_innovative_constanta .bizcal-main-box input.setrio-bizcal-appointment-button {
     1104    white-space: normal;
     1105    text-align: center;
     1106}
     1107
     1108/* RESTARTMED */
     1109 
     1110body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box div.ui-dialog {
     1111               z-index: 1040;
     1112}
     1113 
     1114body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box .select2-selection__rendered {
     1115   display: block;
     1116    width: inherit;
     1117}
     1118 
     1119body._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 
     1125body._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 
     1130body._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 
     1135body._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 
     1140body._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}
     1144body._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 
     1152body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box div#bizcal-sel-time-container .ui-button {
     1153    line-height: 32px;
     1154}
     1155 
     1156body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box div#bizcal-sel-time-container .ui-selected,
     1157body._16576396_psiho_test_med_terapy_s_r_l_ .bizcal-main-box div#bizcal-sel-time-container li.ui-selected:hover,
     1158body._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 
     1163body._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  
    2222
    2323bizcalDefaultSpeciality = "";
     24bizcalDefaultService = "";
    2425bizcalDefaultPhysician = "";
    2526
     
    208209                if (!setrio_bizcal_ajax.autosel_speciality)
    209210                {
    210                     newItem = { "id": "", "text": ""}
     211                    newItem = { "id": "", "text": "", selected: (bizcalDefaultSpeciality == "")}
    211212                    selectData.push(newItem);
    212213                }
     
    216217                    newItem = {
    217218                        "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()
    219221                        };
    220222                    selectData.push(newItem);
     
    234236                data: selectData,
    235237            });
     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);
    236246
    237247            doOnSelectMedicalSpeciality();
     
    306316                   
    307317            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);
    308320            jQuery(".bizcal-sel-location").select2({
    309321                placeholder: setrio_bizcal_ajax.msg_location_placeholder,
     
    312324            });
    313325
     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
    314333            doOnSelectLocation();
    315334           
     
    343362    jQuery(".bizcal-sel-serv").attr("data-placeholder", "Se încarcă...");
    344363    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);
    367385               
    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
    394503                },
    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);
    399527                    }
    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>";
    408565                    }
    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);
    414612                }
    415613            });
    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    }
    454615}
    455616
     
    526687                    },
    527688                templateResult: function(result) {
    528                     if (result['price'] === undefined) {
     689                    if (typeof(result['price']) === "undefined") {
    529690                        return result.text;
    530691                    }
     
    565726            });
    566727           
     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           
    567732            //console.log("PREF_PHYS: " + getPreferredPhysicianName());
    568733            jQuery(".bizcal-sel-preferred-physician").prop("disabled", getPreferredPhysicianName() == bizcalDefaultPhysician);
     
    8981063                    + "' width='100' height='100' align='top'></div>"
    8991064                    + "<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                      : "")
    9011068                    + "<div class='setrio-bizcal-available-physician-description'>" + data[index].description + "</div>"
    9021069                    + "</li>";
     
    10131180                                    "end_date": data.Availabilities[availabilityIndex].RequestedDateAvailabilities[index].EndDate,
    10141181                                    "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].PictureURL
     1182                                    "text": data.Availabilities[availabilityIndex].PhysicianName,
     1183                                    "price": data.Availabilities[availabilityIndex].Price,
     1184                                    "description": data.Availabilities[availabilityIndex].Description,
     1185                                    "picture_url": data.Availabilities[availabilityIndex].PictureURL
    10191186                                    };
    10201187                                requestedDateAvailabilities.push(newTimeItem);
     
    10341201                                    "end_date": data.Availabilities[availabilityIndex].RecommandedDateAvailabilities[index].EndDate,
    10351202                                    "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].PictureURL
     1203                                    "text": data.Availabilities[availabilityIndex].PhysicianName,
     1204                                    "price": data.Availabilities[availabilityIndex].Price,
     1205                                    "description": data.Availabilities[availabilityIndex].Description,
     1206                                    "picture_url": data.Availabilities[availabilityIndex].PictureURL
    10401207                                    };
    10411208                                recommendedDateAvailabilities.push(newTimeItem);
     
    16051772}
    16061773
     1774function 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
     1788function 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
    16071814function getSelectedDate()
    16081815{
     
    16471854   
    16481855    var specialityCode = getSelectedMedicalSpecialityCode();
    1649     var physicianUID = "";//getSelectedPhysicianUID();
     1856   
     1857    var physicianUID = ""; //getSelectedPhysicianUID();
     1858
    16501859    if (physicianUID == "")
    16511860        wsGetMedicalServices(specialityCode)
     
    18012010    else if (paymentTypeId == 2)
    18022011    {
    1803         bizcalMedicalServicesInitialized = true;
     2012        bizcalMedicalServicesInitialized = true;
    18042013        hideMedicalServicesSelectionBox();
    18052014        if (setrio_bizcal_ajax.allow_search_physician == true)
     
    18102019    else
    18112020    {
    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        }
    18152034    }
    18162035}
     
    18792098    resetAvailability(false);
    18802099
    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    }
    18832109}
    18842110
     
    20992325}
    21002326
    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     });
     2327function 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    });
    21722421}
    21732422
     
    22482497            bizcalAppointmentDateSelected = true;
    22492498        });
    2250        
    2251     bizcalAppointmentDateSelected = true; // La Sante Vera nu se apeleaza evenimentul ready de mai sus
     2499       
     2500    bizcalAppointmentDateSelected = true; // La Sante Vera nu se apeleaza evenimentul ready de mai sus
    22522501
    22532502    $("#bizcal-sel-time").selectable();
     
    22622511   
    22632512    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");
    22642524        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;
    22792531    });
    22802532});
  • bizcalendar-web/trunk/main.php

    r2237845 r2271980  
    5858    $maxAvailabilities = (int)get_option('setrio_bizcal_max_availabilities', 0);
    5959    $minDaysToAppointment = (int)get_option('setrio_bizcal_min_days_to_appointment', 0);
     60    $appointmentParamOrder = (int)get_option('setrio_bizcal_appointment_param_order', 0);
    6061   
    6162    wp_localize_script('setrio-bizcalendar', 'setrio_bizcal_ajax', array(
     
    7576        'max_availabilities' => $maxAvailabilities,
    7677        'min_days_to_appointment' => $minDaysToAppointment,
     78        'appointment_param_order' => $appointmentParamOrder,
    7779        'msg_error' => setrio_bizcal_message('msgError'),
    7880        'msg_warning' => setrio_bizcal_message('msgWarning'),
     
    160162                                     'titlu' => 'Programează-te online',
    161163                                     'specialitate' => '',
     164                                     'serviciu' => '',
    162165                                     'medic' => '',
    163166                                     'calendar' => 'inline',
     
    174177    $setrio_bizcal_button_container = esc_html($wporg_atts['container']);
    175178    $setrio_bizcal_default_speciality = esc_html($wporg_atts['specialitate']);
     179    $setrio_bizcal_default_service = esc_html($wporg_atts['serviciu']);
    176180    $setrio_bizcal_default_physician = esc_html($wporg_atts['medic']);
    177181    $setrio_bizcal_seldate_display_mode = esc_html($wporg_atts['calendar']);
     
    179183    $allCaps = (bool)get_option('setrio_bizcal_all_caps', false);
    180184    $enableMultipleLocations = get_option('setrio_bizcal_enable_multiple_locations', false);
     185    $appointmentParamOrder = (int)get_option('setrio_bizcal_appointment_param_order', 0);
    181186
    182187    // start output
     
    194199                .(($setrio_bizcal_button_style) ? "style='$setrio_bizcal_button_style'" : "")
    195200                ."data-speciality='$setrio_bizcal_default_speciality' "
     201                ."data-service='$setrio_bizcal_default_service' "
    196202                ."data-physician='$setrio_bizcal_default_physician'>$setrio_bizcal_button_title</a>";
    197203        else
     
    200206                .(($setrio_bizcal_button_style) ? "style='$setrio_bizcal_button_style'" : "")
    201207                ."data-speciality='$setrio_bizcal_default_speciality' "
     208                ."data-service='$setrio_bizcal_default_service' "
    202209                ."data-physician='$setrio_bizcal_default_physician' />";
    203210        if ($setrio_bizcal_button_container != "")
     
    233240        $o .= "\n\t\t\t\t\t</label>";
    234241       
    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        }
    242262       
    243263        $o .= "\n\t\t\t\t</div>"; // col
     
    250270            $o .= "\n\t\t\t\t\t\t<input type=\"text\" id=\"bizcal-sel-date\" class=\"text ui-widget-content ui-corner-all\" />";
    251271        $o .= "\n\t\t\t\t\t</label>";
    252         if ($form_with_popups)
     272        if ($form_with_popups || $form_hidden)
    253273        {
    254274            $o .= "\n\t\t\t\t\t<div class=\"bizcal-sel-time-loading\" style=\"display: none\">";
  • bizcalendar-web/trunk/readme.txt

    r2237845 r2271980  
    5252== Changelog ==
    5353
     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
    5459= 1.0.5.1 =
    5560  * RO: s-au făcut unele modificări de stil pentru compatibilitate cu temele instalate la anumiți clienți
     
    117122== Upgrade Notice ==
    118123
     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
    119131= 1.0.5.1 =
    120132  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ă.
    121133  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.
    122134= 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.
    125137= 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.
    128140= 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.
    131143= 1.0.3.6 =
    132144  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  
    5353     * @param string $secret shared secret between site and ReCAPTCHA server.
    5454     */
    55     function ReCaptcha($secret)
     55    function __construct($secret)
    5656    {
    5757        if ($secret == null || $secret == "") {
Note: See TracChangeset for help on using the changeset viewer.