Version Description
- Changes in all versions:
- New. calendar skin with dark colors: "Black 2"
- New. Ability to define using Pending days as Selectable days - its means that such days have the colors the same as Pending days, but visitor still can select and submit new booking, until you do not approve some booking. Its useful in case, if you need to show that at some days already exist bookings, but visitors still can submit the booking. Please note, such feature will not work correctly if you will make bookings for specific time-slots (its will show warning). How to Use ? In the page, where you are having Booking Calendar shortcode, you need to define the js, like this: <script type="text/javascript"> wpbc_settings.set_option( 'pending_days_selectable', true ); </script> booking type=4 nummonths=2
- Compatibility. Support WordPress 5.3 - update of admin panel styles.
- Translation German translation [99% completed] by Markus Neumann.
- Translation Slovenian translation [99% completed] by Klemen Gaber.
- Improvement. Ability to auto fill "nickname" of user, when user logged in, and checked this option "Auto-fill fields". In booking form have to be field with name "nickname". (8.6.1.2)
- Deprecated. Removing deprecated Timeline v.1. Currently available only new Flex Timeline (Calendar Overview) (8.6.1.13)
- Fix. Issue Undefined index: name in ../core/admin/wpbc-class-timeline.php on line 2137
- Fix. Issue of not ability to enter new value of CAPTCHA without page reloading, if previous entered value was incorrect. (8.6.1.8)
- Fix. Order of week days in Arabic translation for calendar
- Changes in Personal / Business Small / Business Medium / Business Large / MultiUser versions:
- New. Ability to define dates format for search availability form at the Booking > Settings > Search page. (8.6.1.21) (Business Large, MultiUser)
- New. updated iPay88 - Payment Gateway integration v1.6.4 (For Malaysia Only) (8.6.1.3) (Business Small/Medium/Large, MultiUser)
- New. Added log of approving or set as pending bookings to notes section. You can activate this option "Logging of booking approving or rejection" at the Booking > Settings General page in "Booking Admin panel" section. (8.6.1.10) (Personal, Business Small/Medium/Large, MultiUser)
- Improvement. Usage of new Wizard style booking form, where possible to configure several steps in booking form - more than 2 steps (8.6.1.15) (Personal, Business Small/Medium/Large, MultiUser)
- Improvement. Ability to use option "Use check in/out time", for adding check in/out times to use change over days, when importing events via Google Calendar API (using Google API Key) (8.6.1.1) (Business Small/Medium/Large, MultiUser)
- Improvement. Ability to use option "Append check out day", for adding check out day, when importing events via Google Calendar API (using Google API Key) (8.6.1.4) (Business Small/Medium/Large, MultiUser)
- Improvement. Disable the edit / cancel / payment request links in the "Booking Customer Listing" view for "Approved bookings", in case, if you have activated this option " Change hash after the booking is approved " at the Booking > Settings General page in Advanced section. (8.6.1.6) (Personal, Business Small/Medium/Large, MultiUser)
- Improvement. Replace non standard symbols (like: . or , or ' ) in options for ability correct saving Advanced cost. Otherwise sometimes was not possible to save "Advanced cost" at Booking > Resources > Advanced cost page. (8.6.1.7) (Business Medium/Large, MultiUser)
- Improvement. Added filter hook 'wpbc_booking_resources_selection_class' for controlling CSS class in dropdown element of booking resource selections (8.6.1.9) (Personal, Business Small/Medium/Large, MultiUser)
- Improvement. Update booking hash during moving booking to trash or restore bookings, for do not ability to edit or cancel such bookings by visitor (8.6.1.11) (Personal, Business Small/Medium/Large, MultiUser)
- Improvement. Add ability to use only labels in shortcode for showing one payment method (its works only with these exact options): select payment-method "All payment methods@@" "Stripe" "PayPal" "Authorize.Net" "Sage Pay" "Bank Transfer" "Pay in Cash" "iPay88" "iDEAL" (Business Small/Medium/Large, MultiUser)
- Improvement. Ability to activate updating booking cost after editing booking in admin panel, based on new booking data. You can activate this option at the Booking > Settings > Payment page (8.6.1.24) (Business Small/Medium/Large, MultiUser)
- Deprecated. Removing deprecated Stripe v.1 integration. Now available only Stripe v.3 integration that support SCA (8.6.1.12) (Business Small/Medium/Large, MultiUser)
- Fix. Show payment description about the booking in Stripe dashboard in Metadata section for Stripe v.3 integration (8.6.1.20) (Business Small/Medium/Large, MultiUser)
- Fix. Issue of showing negative balance hint, during using deposit feature with zero cost (8.6.1.5) (Business Medium/Large, MultiUser)
- Fix. Issue of incorrectly showing available results in "Advanced search results" (while using the shortcode like this [additional_search "3"] at the Booking > Settings > Search page), and if dates in some resources was marked as unavailable via season filters. (8.6.1.14) (Business Large, MultiUser)
- Fix. Issue of incorrectly showing available results, when searching only for 1 specific day (check in/out dates the same in availability form), and we have booked (as full day), this day in specific booking resource. (8.6.1.19) (Business Large, MultiUser)
- Fix. Issue of incorrectly disabling end time options in select-box (8.6.1.17) (Business Small/Medium/Large, MultiUser)
- Fix. Issue of slow loading calendar (executing too many sql requests), when season filter was deleted at the Booking > Resources > Filters page, but reference relative (Rates) still exist at Booking > Resources > Cost and rates page. Its means that the Rates was not updated (re-saved) relative specific booking resource at the Booking > Resources > Cost and rates page. (8.6.1.22) (Business Medium/Large, MultiUser)
- Fix. Issue of possible showing status of Stripe v.3 payment as successful at the Booking Listing page, even when its was not completed yet. (8.6.1.23) (Business Small/Medium/Large, MultiUser)
Download this release
Release Info
Developer | wpdevelop |
Plugin | Booking Calendar |
Version | 8.7 |
Comparing to | |
See all releases |
Code changes from version 8.6 to 8.7
- core/admin/api-settings.php +1 -12
- core/admin/page-form-free.php +1 -1
- core/admin/page-form-timeslots.php +1 -1
- core/admin/page-ics-import.php +8 -3
- core/admin/page-timeline.php +4 -16
- core/admin/wpbc-class-listing.php +1 -1
- core/admin/wpbc-class-timeline.php +0 -2459
- core/admin/wpbc-sql.php +1 -1
- core/any/css/admin-br-table.css +8 -3
- core/any/css/admin-listing-table.css +2 -1
- core/any/css/admin-support.css +6 -1
- core/any/css/admin-toolbar.css +2 -2
- core/class/wpbc-class-welcome.php +77 -0
- core/lib/wpbc-ajax.php +15 -1
- core/lib/wpbc-booking-new.php +27 -8
- core/lib/wpdev-booking-class.php +10 -78
- core/lib/wpdev-booking-widget.php +1 -1
- core/sync/wpbc-gcal-class.php +38 -3
- core/timeline/v2/wpbc-class-timeline_v2.php +5 -10
- core/wpbc-activation.php +6 -2
- core/wpbc-constants.php +1 -1
- core/wpbc-css.php +19 -7
- core/wpbc-dev-api.php +1 -3
- core/wpbc-functions.php +25 -4
- core/wpbc-include.php +2 -7
- css/admin-skin.css +3 -1
- css/admin.css +142 -1
- css/skins/black-2.css +234 -0
- css/timeline.css +0 -846
- js/client.js +136 -27
- js/datepick/jquery.datepick-ar.js +3 -3
- js/wpbc_times.js +14 -3
- languages/booking-de_DE.mo +0 -0
- languages/booking-sl_SI.mo +0 -0
- readme.txt +42 -8
- wpdev-booking.php +2 -2
core/admin/api-settings.php
CHANGED
@@ -607,18 +607,7 @@ class WPBC_Settings_API_General extends WPBC_Settings_API {
|
|
607 |
// Divider ///////////////////////////////////////////////////////////
|
608 |
$this->fields['hr_booking_listing_before_view_days_num'] = array( 'type' => 'hr', 'group' => 'booking_listing' );
|
609 |
|
610 |
-
|
611 |
-
$this->fields['booking_timeline_load'] = array(
|
612 |
-
'type' => 'select'
|
613 |
-
, 'default' => $default_options_values['booking_view_days_num'] //'30'
|
614 |
-
, 'title' => __('Timeline type', 'booking')
|
615 |
-
, 'description' => __('Select type of timeline to load' ,'booking')
|
616 |
-
, 'options' => array(
|
617 |
-
'timeline_v2_flex' => __( 'Flex Timeline', 'booking' )
|
618 |
-
, 'timeline_v1' => __( 'Old Timeline', 'booking' )
|
619 |
-
)
|
620 |
-
, 'group' => 'booking_timeline' //FixIn: 8.5.2.20
|
621 |
-
);
|
622 |
|
623 |
// Calendar Default View mode
|
624 |
if ( class_exists( 'wpdev_bk_personal' ) )
|
607 |
// Divider ///////////////////////////////////////////////////////////
|
608 |
$this->fields['hr_booking_listing_before_view_days_num'] = array( 'type' => 'hr', 'group' => 'booking_listing' );
|
609 |
|
610 |
+
//FixIn: 8.6.1.13
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
611 |
|
612 |
// Calendar Default View mode
|
613 |
if ( class_exists( 'wpdev_bk_personal' ) )
|
core/admin/page-form-free.php
CHANGED
@@ -505,7 +505,7 @@ class WPBC_Page_SettingsFormFieldsFree extends WPBC_Page_Structure {
|
|
505 |
|
506 |
if ( $form_field['type'] == 'email' )
|
507 |
$my_form.=' <input type="text" name="'. $form_field['name'] . $my_boook_type.'" id="'. $form_field['name'] . $my_boook_type.'" class="input-xlarge wpdev-validates-as-email'
|
508 |
-
. ( ( $form_field['required'] == 'On' ) ? ' wpdev-validates-as-required' : '' )
|
509 |
. ' wpdev-validates-as-required' //FixIn: 7.0.1.22
|
510 |
.'" />';
|
511 |
|
505 |
|
506 |
if ( $form_field['type'] == 'email' )
|
507 |
$my_form.=' <input type="text" name="'. $form_field['name'] . $my_boook_type.'" id="'. $form_field['name'] . $my_boook_type.'" class="input-xlarge wpdev-validates-as-email'
|
508 |
+
. ( ( $form_field['required'] == 'On' ) ? ' wpdev-validates-as-required' : '' )
|
509 |
. ' wpdev-validates-as-required' //FixIn: 7.0.1.22
|
510 |
.'" />';
|
511 |
|
core/admin/page-form-timeslots.php
CHANGED
@@ -243,7 +243,7 @@ add_action( 'wpbc_settings_form_page_after_values', 'wpbc_settings_form_page_aft
|
|
243 |
padding: 0;
|
244 |
}
|
245 |
.wpbc_table_form_free_timeslots.sortable select {
|
246 |
-
padding: 0 10px
|
247 |
}
|
248 |
.wpbc_time_divider {
|
249 |
padding: 0 10px 6px;
|
243 |
padding: 0;
|
244 |
}
|
245 |
.wpbc_table_form_free_timeslots.sortable select {
|
246 |
+
/*padding: 0 10px;*/
|
247 |
}
|
248 |
.wpbc_time_divider {
|
249 |
padding: 0 10px 6px;
|
core/admin/page-ics-import.php
CHANGED
@@ -253,9 +253,10 @@ class WPBC_Page_SettingsImportFeeds extends WPBC_Page_Structure {
|
|
253 |
.wpbc_import_ics_bar .wpbc_import_url {
|
254 |
float:left;
|
255 |
width:28%;
|
256 |
-
height: 2em
|
|
|
257 |
padding: 2px;
|
258 |
-
border-radius: 0
|
259 |
margin:10px 5px 10px 1px;
|
260 |
}
|
261 |
.wpbc_import_ics_bar .wpbc_import_url {
|
@@ -297,7 +298,11 @@ class WPBC_Page_SettingsImportFeeds extends WPBC_Page_Structure {
|
|
297 |
width: 360px;
|
298 |
display:none;
|
299 |
}
|
300 |
-
@media (max-width: 782px) {
|
|
|
|
|
|
|
|
|
301 |
.wpbc_import_ics_bar .wpbc_import_br_selection,
|
302 |
.wpbc_import_ics_bar .wpbc_import_div {
|
303 |
float:none;
|
253 |
.wpbc_import_ics_bar .wpbc_import_url {
|
254 |
float:left;
|
255 |
width:28%;
|
256 |
+
/*height: 2em;*/
|
257 |
+
line-height: 1.4;
|
258 |
padding: 2px;
|
259 |
+
/*border-radius: 0;*/
|
260 |
margin:10px 5px 10px 1px;
|
261 |
}
|
262 |
.wpbc_import_ics_bar .wpbc_import_url {
|
298 |
width: 360px;
|
299 |
display:none;
|
300 |
}
|
301 |
+
@media (max-width: 782px) {
|
302 |
+
.wpbc_import_ics_bar .wpbc_import_br_selection,
|
303 |
+
.wpbc_import_ics_bar .wpbc_import_url {
|
304 |
+
line-height: 1.74;
|
305 |
+
}
|
306 |
.wpbc_import_ics_bar .wpbc_import_br_selection,
|
307 |
.wpbc_import_ics_bar .wpbc_import_div {
|
308 |
float:none;
|
core/admin/page-timeline.php
CHANGED
@@ -103,25 +103,13 @@ class WPBC_Page_CalendarOverview extends WPBC_Page_Structure {
|
|
103 |
|
104 |
// Show T i m e L i n e ///////////////////////////////////////
|
105 |
|
106 |
-
|
107 |
-
$
|
108 |
|
109 |
-
|
110 |
|
111 |
-
|
112 |
|
113 |
-
$this->timeline->admin_init(); // Define all REQUEST parameters and get bookings
|
114 |
-
|
115 |
-
$this->timeline->show_timeline();
|
116 |
-
|
117 |
-
} else {
|
118 |
-
|
119 |
-
$this->timeline = new WPBC_TimelineFlex();
|
120 |
-
|
121 |
-
$this->timeline->admin_init(); // Define all REQUEST parameters and get bookings
|
122 |
-
|
123 |
-
$this->timeline->show_timeline();
|
124 |
-
}
|
125 |
|
126 |
////////////////////////////////////////////////////////////////////
|
127 |
|
103 |
|
104 |
// Show T i m e L i n e ///////////////////////////////////////
|
105 |
|
106 |
+
//FixIn: 8.6.1.13
|
107 |
+
$this->timeline = new WPBC_TimelineFlex();
|
108 |
|
109 |
+
$this->timeline->admin_init(); // Define all REQUEST parameters and get bookings
|
110 |
|
111 |
+
$this->timeline->show_timeline();
|
112 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
|
114 |
////////////////////////////////////////////////////////////////////
|
115 |
|
core/admin/wpbc-class-listing.php
CHANGED
@@ -387,7 +387,7 @@ class WPBC_Booking_Listing_Table {
|
|
387 |
// Change Locale
|
388 |
make_bk_action( 'wpbc_booking_listing_button_locale', $row_data );
|
389 |
|
390 |
-
wpbc_btn_add_booking_to_google_calendar( $row_data ); //FixIn: 7.1.2.5
|
391 |
|
392 |
?><span class="wpbc-buttons-separator"></span><?php
|
393 |
|
387 |
// Change Locale
|
388 |
make_bk_action( 'wpbc_booking_listing_button_locale', $row_data );
|
389 |
|
390 |
+
wpbc_btn_add_booking_to_google_calendar( $row_data ); //FixIn: 7.1.2.5
|
391 |
|
392 |
?><span class="wpbc-buttons-separator"></span><?php
|
393 |
|
core/admin/wpbc-class-timeline.php
DELETED
@@ -1,2459 +0,0 @@
|
|
1 |
-
<?php /**
|
2 |
-
* @version 1.1
|
3 |
-
* @package Booking Calendar
|
4 |
-
* @category Timeline for Admin Panel
|
5 |
-
* @author wpdevelop
|
6 |
-
*
|
7 |
-
* @web-site https://wpbookingcalendar.com/
|
8 |
-
* @email info@wpbookingcalendar.com
|
9 |
-
*
|
10 |
-
* @modified 2016-01-18
|
11 |
-
*/
|
12 |
-
|
13 |
-
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
14 |
-
|
15 |
-
|
16 |
-
class WPBC_Timeline {
|
17 |
-
|
18 |
-
|
19 |
-
public $bookings; // Booking objects from external function
|
20 |
-
public $booking_types; // Resources objects from external function
|
21 |
-
|
22 |
-
public $dates_array; // Dates for Timeline format
|
23 |
-
public $time_array_new; // Times for Timeline format
|
24 |
-
|
25 |
-
public $request_args; // Parsed paramaters
|
26 |
-
|
27 |
-
private $is_frontend; // Client ot Admin sides.
|
28 |
-
|
29 |
-
public $timeline_titles;
|
30 |
-
|
31 |
-
private $week_days_titles;
|
32 |
-
private $current_user_id;
|
33 |
-
|
34 |
-
private $html_client_id; // ID of border element at client side.
|
35 |
-
public $options; //FixIn:7.0.1.50
|
36 |
-
|
37 |
-
public function __construct(){// $bookings, $booking_types ) {
|
38 |
-
|
39 |
-
$this->options = array(); //FixIn:7.0.1.50
|
40 |
-
|
41 |
-
$this->html_client_id = false;
|
42 |
-
|
43 |
-
$this->current_user_id = 0;
|
44 |
-
|
45 |
-
$this->is_frontend = false;
|
46 |
-
|
47 |
-
//FixIn: 8.1.3.31
|
48 |
-
$calendar_overview_start_time = get_bk_option( 'booking_calendar_overview_start_time' );
|
49 |
-
$calendar_overview_end_time = get_bk_option( 'booking_calendar_overview_end_time' );
|
50 |
-
$hours_limit = ( empty( $calendar_overview_start_time ) ? '0' : $calendar_overview_start_time )
|
51 |
-
. ','
|
52 |
-
. ( empty( $calendar_overview_end_time ) ? '24' : $calendar_overview_end_time );
|
53 |
-
$this->request_args = array(
|
54 |
-
'wh_booking_type' => '1'
|
55 |
-
, 'is_matrix' => false
|
56 |
-
, 'view_days_num' => '90'
|
57 |
-
, 'scroll_start_date' => ''
|
58 |
-
, 'scroll_day' => 0
|
59 |
-
, 'scroll_month' => 0
|
60 |
-
, 'wh_trash' => ''
|
61 |
-
, 'limit_hours' => $hours_limit // '0,24' //FixIn: 7.0.1.14 if ( ! ( ( $tt >= $start_hour_for_1day_view ) && ( $tt <= $end_hour_for_1day_view ) ) ) continue;
|
62 |
-
, 'only_booked_resources' => ( isset( $_REQUEST['only_booked_resources'] ) ) ? 1 : 0 //FixIn: 7.0.1.51
|
63 |
-
, 'booking_hash' => ( isset( $_REQUEST['booking_hash'] ) ) ? $_REQUEST['booking_hash'] : '' //FixIn: 8.1.3.5
|
64 |
-
|
65 |
-
);
|
66 |
-
|
67 |
-
$this->timeline_titles = array(
|
68 |
-
'header_column1' => __('Resources', 'booking')
|
69 |
-
, 'header_column2' => __('Dates', 'booking')
|
70 |
-
, 'header_title' => __('Bookings', 'booking')
|
71 |
-
);
|
72 |
-
|
73 |
-
|
74 |
-
$this->week_days_titles = array(
|
75 |
-
'full' => array(
|
76 |
-
1 => __( 'Monday', 'booking' )
|
77 |
-
, 2 => __( 'Tuesday', 'booking' )
|
78 |
-
, 3 => __( 'Wednesday', 'booking' )
|
79 |
-
, 4 => __( 'Thursday', 'booking' )
|
80 |
-
, 5 => __( 'Friday', 'booking' )
|
81 |
-
, 6 => __( 'Saturday', 'booking' )
|
82 |
-
, 7 => __( 'Sunday', 'booking' )
|
83 |
-
)
|
84 |
-
, '3' => array( //FixIn: 7.0.1.11
|
85 |
-
1 => __( 'Mon', 'booking' )
|
86 |
-
, 2 => __( 'Tue', 'booking' )
|
87 |
-
, 3 => __( 'Wed', 'booking' )
|
88 |
-
, 4 => __( 'Thu', 'booking' )
|
89 |
-
, 5 => __( 'Fri', 'booking' )
|
90 |
-
, 6 => __( 'Sat', 'booking' )
|
91 |
-
, 7 => __( 'Sun', 'booking' )
|
92 |
-
)
|
93 |
-
, '1' => array( //FixIn: 7.0.1.11
|
94 |
-
1 => substr( __( 'Mon', 'booking' ), 0, -1 )
|
95 |
-
, 2 => substr( __( 'Tue', 'booking' ), 0, -1 )
|
96 |
-
, 3 => substr( __( 'Wed', 'booking' ), 0, -1 )
|
97 |
-
, 4 => substr( __( 'Thu', 'booking' ), 0, -1 )
|
98 |
-
, 5 => substr( __( 'Fri', 'booking' ), 0, -1 )
|
99 |
-
, 6 => substr( __( 'Sat', 'booking' ), 0, -1 )
|
100 |
-
, 7 => substr( __( 'Sun', 'booking' ), 0, -1 )
|
101 |
-
)
|
102 |
-
);
|
103 |
-
|
104 |
-
|
105 |
-
}
|
106 |
-
|
107 |
-
////////////////////////////////////////////////////////////////////////////
|
108 |
-
|
109 |
-
/**
|
110 |
-
* Init Timeline From page shortcode
|
111 |
-
*
|
112 |
-
* @param array $attr = array(
|
113 |
-
'wh_booking_type' => ''
|
114 |
-
, 'is_matrix' => false
|
115 |
-
, 'view_days_num' => '30'
|
116 |
-
, 'scroll_start_date' => ''
|
117 |
-
, 'scroll_day' => 0
|
118 |
-
, 'scroll_month' => 0
|
119 |
-
);
|
120 |
-
*/
|
121 |
-
public function client_init( $attr ) {
|
122 |
-
|
123 |
-
$this->is_frontend = true;
|
124 |
-
|
125 |
-
//FixIn:7.0.1.50
|
126 |
-
if ( isset( $attr['options'] ) ) {
|
127 |
-
|
128 |
-
$bk_otions = $attr['options'];
|
129 |
-
$custom_params = array();
|
130 |
-
if (! empty($bk_otions)) {
|
131 |
-
$param ='\s*([^\s]+)=[\'"]{1}([^\'"]+)[\'"]{1}\s*'; // Find all possible options
|
132 |
-
$pattern_to_search='%\s*{([^\s]+)' . $param .'}\s*[,]?\s*%';
|
133 |
-
preg_match_all($pattern_to_search, $bk_otions, $matches, PREG_SET_ORDER);
|
134 |
-
//debuge($matches);
|
135 |
-
/**
|
136 |
-
* [bookingtimeline ... options='{resource_link 3="http://beta/resource-apartment3-id3/"},{resource_link 4="http://beta/resource-3-id4/"}' ... ]
|
137 |
-
[0] => {resource_link 3="http://beta/resource-apartment3-id3/"},
|
138 |
-
[1] => resource_link // Name
|
139 |
-
[2] => 3 // ID
|
140 |
-
[3] => http://beta/resource-apartment3-id3/ // Value
|
141 |
-
*/
|
142 |
-
foreach ( $matches as $matche_value ) {
|
143 |
-
|
144 |
-
if ( ! isset( $this->options[ $matche_value[1] ] ) ) {
|
145 |
-
$this->options[ $matche_value[1] ] = array();
|
146 |
-
}
|
147 |
-
$this->options[ $matche_value[1] ][ $matche_value[2] ] = $matche_value[3];
|
148 |
-
}
|
149 |
-
}
|
150 |
-
|
151 |
-
//debuge($this->options);
|
152 |
-
}
|
153 |
-
//FixIn:7.0.1.50
|
154 |
-
|
155 |
-
|
156 |
-
//Ovverride some parameters
|
157 |
-
if ( isset( $attr['type'] ) ) {
|
158 |
-
$attr['wh_booking_type'] = $attr['type']; //Instead of 'wh_booking_type' paramter in shortcode is used 'type' parameter
|
159 |
-
}
|
160 |
-
|
161 |
-
// Get paramaters from shortcode paramaters
|
162 |
-
$this->define_request_view_params_from_params( $attr );
|
163 |
-
|
164 |
-
if ( ! $this->request_args['is_matrix'] )
|
165 |
-
$this->timeline_titles['header_column1'] = '';
|
166 |
-
|
167 |
-
//Override any possible titles from shortcode paramaters
|
168 |
-
$this->timeline_titles = wp_parse_args( $attr, $this->timeline_titles );
|
169 |
-
|
170 |
-
// Get clean parameters to request booking data
|
171 |
-
$args = $this->wpbc_get_clean_paramas_from_request_for_timeline();
|
172 |
-
|
173 |
-
|
174 |
-
//FixIn: 8.1.3.5
|
175 |
-
/** Client - Page first load
|
176 |
-
*
|
177 |
-
* If provided valid request_args['booking_hash']
|
178 |
-
* - Firstly defined in constructor in $_REQUEST['booking_hash']
|
179 |
-
* - or overwrited in define_request_view_params_from_params from parameters in shortcode 'booking_hash'
|
180 |
-
* then check, if exist booking for this hash.
|
181 |
-
* If exist, get Email of this booking, and
|
182 |
-
* filter getting all other bookings by email keyword.
|
183 |
-
* Addtionly set param ['only_booked_resources'] for showing only booking resources with exist bookings.
|
184 |
-
*/
|
185 |
-
if ( isset( $this->request_args['booking_hash'] ) ) {
|
186 |
-
|
187 |
-
// Get booking details by HASH, and then return Email (or other data of booking, or false if error
|
188 |
-
$booking_details_email = wpbc_check_hash_get_booking_details( $this->request_args['booking_hash'] , 'email' );
|
189 |
-
|
190 |
-
if ( ! empty( $booking_details_email ) ) {
|
191 |
-
|
192 |
-
// Do not show booking resources with no bookings
|
193 |
-
$this->request_args['only_booked_resources'] = 1;
|
194 |
-
|
195 |
-
//Set keyword for showing bookings ony relative to this email
|
196 |
-
$args['wh_keyword'] = $booking_details_email; // 'jo@wpbookingcalendar.com';
|
197 |
-
}
|
198 |
-
}
|
199 |
-
//FixIn: 8.1.3.5 - End
|
200 |
-
|
201 |
-
|
202 |
-
// Get booking data
|
203 |
-
$bk_listing = wpbc_get_bookings_objects( $args );
|
204 |
-
$this->bookings = $bk_listing['bookings'];
|
205 |
-
$this->booking_types = $bk_listing['resources'];
|
206 |
-
|
207 |
-
//Get Dates and Times for Timeline format
|
208 |
-
//debuge($this->bookings[84]);
|
209 |
-
$bookings_date_time = $this->wpbc_get_dates_and_times_for_timeline( $this->bookings );
|
210 |
-
$this->dates_array = $bookings_date_time[0];
|
211 |
-
$this->time_array_new = $bookings_date_time[1];
|
212 |
-
//debuge($this->time_array_new['2017-01-13']);
|
213 |
-
|
214 |
-
|
215 |
-
//$milliseconds = round(microtime(true) * 1000); //FixIn: 7.0.Beta.18
|
216 |
-
$milliseconds = rand( 10000, 99999 );
|
217 |
-
|
218 |
-
$this->html_client_id = 'wpbc_timeline_' . $milliseconds;
|
219 |
-
|
220 |
-
return $this->html_client_id;
|
221 |
-
}
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
/**
|
226 |
-
* Init parameters after Ajax Navigation actions
|
227 |
-
*
|
228 |
-
* @param array $attr
|
229 |
-
* @return string html_client_id - exist from input parameters
|
230 |
-
*/
|
231 |
-
public function ajax_init( $attr ) {
|
232 |
-
|
233 |
-
if ( ! defined( 'WPBC_TIMELINE_AJAX' ) ) { define( 'WPBC_TIMELINE_AJAX', true ); } //FixIn: 8.4.7.13
|
234 |
-
|
235 |
-
$this->is_frontend = (bool) $attr['is_frontend'];;
|
236 |
-
|
237 |
-
//Ovverride some parameters
|
238 |
-
if ( isset( $attr['type'] ) ) {
|
239 |
-
$attr['wh_booking_type'] = $attr['type']; //Instead of 'wh_booking_type' paramter in shortcode is used 'type' parameter
|
240 |
-
}
|
241 |
-
//debuge($this->request_args, $attr);
|
242 |
-
// Get paramaters from shortcode paramaters
|
243 |
-
$this->define_request_view_params_from_params( $attr );
|
244 |
-
|
245 |
-
//debuge($this->request_args);
|
246 |
-
if ( ! $this->request_args['is_matrix'] ) {
|
247 |
-
|
248 |
-
switch ( $this->request_args['view_days_num'] ) {
|
249 |
-
case '90':
|
250 |
-
case '30':
|
251 |
-
if ( isset( $this->request_args['scroll_day'] ) ) $scroll_day = intval( $this->request_args['scroll_day'] );
|
252 |
-
else $scroll_day = 0;
|
253 |
-
|
254 |
-
if ( $attr['nav_step'] == '-1' ) $this->request_args['scroll_day'] = intval( $scroll_day - 7 );
|
255 |
-
if ( $attr['nav_step'] == '1' ) $this->request_args['scroll_day'] = intval( $scroll_day + 7 );
|
256 |
-
|
257 |
-
/*
|
258 |
-
$scroll_params = array( '&scroll_day='.intval($scroll_day-4*7),
|
259 |
-
'&scroll_day='.intval($scroll_day-7),
|
260 |
-
'&scroll_day=0',
|
261 |
-
'&scroll_day='.intval($scroll_day+7 ),
|
262 |
-
'&scroll_day='.intval($scroll_day+4*7) );
|
263 |
-
$scroll_titles = array( __('Previous 4 weeks' ,'booking'),
|
264 |
-
__('Previous week' ,'booking'),
|
265 |
-
__('Current week' ,'booking'),
|
266 |
-
__('Next week' ,'booking'),
|
267 |
-
__('Next 4 weeks' ,'booking') ); */
|
268 |
-
break;
|
269 |
-
default: // 365
|
270 |
-
if ( !isset( $this->request_args['scroll_month'] ) ) $this->request_args['scroll_month'] = 0;
|
271 |
-
$scroll_month = intval( $this->request_args['scroll_month'] );
|
272 |
-
|
273 |
-
if ( $attr['nav_step'] == '-1' ) $this->request_args['scroll_month'] = intval( $scroll_month - 1 );
|
274 |
-
if ( $attr['nav_step'] == '1' ) $this->request_args['scroll_month'] = intval( $scroll_month + 1 );
|
275 |
-
/*
|
276 |
-
$scroll_params = array( '&scroll_month='.intval($scroll_month-3),
|
277 |
-
'&scroll_month='.intval($scroll_month-1),
|
278 |
-
'&scroll_month=0',
|
279 |
-
'&scroll_month='.intval($scroll_month+1 ),
|
280 |
-
'&scroll_month='.intval($scroll_month+3) );
|
281 |
-
$scroll_titles = array( __('Previous 3 months' ,'booking'),
|
282 |
-
__('Previous month' ,'booking'),
|
283 |
-
__('Current month' ,'booking'),
|
284 |
-
__('Next month' ,'booking'),
|
285 |
-
__('Next 3 months' ,'booking') );*/
|
286 |
-
break;
|
287 |
-
}
|
288 |
-
} else { // Matrix
|
289 |
-
|
290 |
-
switch ( $this->request_args['view_days_num'] ) {
|
291 |
-
case '1': //Day
|
292 |
-
if ( isset( $this->request_args['scroll_day'] ) ) $scroll_day = intval( $this->request_args['scroll_day'] );
|
293 |
-
else $scroll_day = 0;
|
294 |
-
|
295 |
-
if ( $attr['nav_step'] == '-1' ) $this->request_args['scroll_day'] = intval( $scroll_day - 1 );
|
296 |
-
if ( $attr['nav_step'] == '1' ) $this->request_args['scroll_day'] = intval( $scroll_day + 1 );
|
297 |
-
/*
|
298 |
-
$scroll_params = array( '&scroll_day='.intval($scroll_day-7),
|
299 |
-
'&scroll_day='.intval($scroll_day-1),
|
300 |
-
'&scroll_day=0',
|
301 |
-
'&scroll_day='.intval($scroll_day+1 ),
|
302 |
-
'&scroll_day='.intval($scroll_day+7) );
|
303 |
-
$scroll_titles = array( __('Previous 7 days' ,'booking'),
|
304 |
-
__('Previous day' ,'booking'),
|
305 |
-
__('Current day' ,'booking'),
|
306 |
-
__('Next day' ,'booking'),
|
307 |
-
__('Next 7 days' ,'booking') );*/
|
308 |
-
break;
|
309 |
-
|
310 |
-
case '7': //Week
|
311 |
-
|
312 |
-
if ( isset( $this->request_args['scroll_day'] ) ) $scroll_day = intval( $this->request_args['scroll_day'] );
|
313 |
-
else $scroll_day = 0;
|
314 |
-
|
315 |
-
if ( $attr['nav_step'] == '-1' ) $this->request_args['scroll_day'] = intval( $scroll_day - 7 );
|
316 |
-
if ( $attr['nav_step'] == '1' ) $this->request_args['scroll_day'] = intval( $scroll_day + 7 );
|
317 |
-
/*
|
318 |
-
$scroll_params = array( '&scroll_day='.intval($scroll_day-4*7),
|
319 |
-
'&scroll_day='.intval($scroll_day-7),
|
320 |
-
'&scroll_day=0',
|
321 |
-
'&scroll_day='.intval($scroll_day+7 ),
|
322 |
-
'&scroll_day='.intval($scroll_day+4*7) );
|
323 |
-
$scroll_titles = array( __('Previous 4 weeks' ,'booking'),
|
324 |
-
__('Previous week' ,'booking'),
|
325 |
-
__('Current week' ,'booking'),
|
326 |
-
__('Next week' ,'booking'),
|
327 |
-
__('Next 4 weeks' ,'booking') );*/
|
328 |
-
break;
|
329 |
-
|
330 |
-
case '30':
|
331 |
-
case '60':
|
332 |
-
case '90': //3 months
|
333 |
-
|
334 |
-
if ( !isset( $this->request_args['scroll_month'] ) ) $this->request_args['scroll_month'] = 0;
|
335 |
-
$scroll_month = intval( $this->request_args['scroll_month'] );
|
336 |
-
|
337 |
-
if ( $attr['nav_step'] == '-1' ) $this->request_args['scroll_month'] = intval( $scroll_month - 1 );
|
338 |
-
if ( $attr['nav_step'] == '1' ) $this->request_args['scroll_month'] = intval( $scroll_month + 1 );
|
339 |
-
/*
|
340 |
-
$scroll_params = array( '&scroll_month='.intval($scroll_month-3),
|
341 |
-
'&scroll_month='.intval($scroll_month-1),
|
342 |
-
'&scroll_month=0',
|
343 |
-
'&scroll_month='.intval($scroll_month+1 ),
|
344 |
-
'&scroll_month='.intval($scroll_month+3) );
|
345 |
-
$scroll_titles = array( __('Previous 3 months' ,'booking'),
|
346 |
-
__('Previous month' ,'booking'),
|
347 |
-
__('Current month' ,'booking'),
|
348 |
-
__('Next month' ,'booking'),
|
349 |
-
__('Next 3 months' ,'booking') );*/
|
350 |
-
break;
|
351 |
-
|
352 |
-
default: // 30, 60, 90...
|
353 |
-
if ( !isset( $this->request_args['scroll_month'] ) ) $this->request_args['scroll_month'] = 0;
|
354 |
-
$scroll_month = intval( $this->request_args['scroll_month'] );
|
355 |
-
|
356 |
-
if ( $attr['nav_step'] == '-1' ) $this->request_args['scroll_month'] = intval( $scroll_month - 1 );
|
357 |
-
if ( $attr['nav_step'] == '1' ) $this->request_args['scroll_month'] = intval( $scroll_month + 1 );
|
358 |
-
/*
|
359 |
-
$scroll_params = array( '&scroll_month='.intval($scroll_month-3),
|
360 |
-
'&scroll_month='.intval($scroll_month-1),
|
361 |
-
'&scroll_month=0',
|
362 |
-
'&scroll_month='.intval($scroll_month+1 ),
|
363 |
-
'&scroll_month='.intval($scroll_month+3) );
|
364 |
-
$scroll_titles = array( __('Previous 3 months' ,'booking'),
|
365 |
-
__('Previous month' ,'booking'),
|
366 |
-
__('Current month' ,'booking'),
|
367 |
-
__('Next month' ,'booking'),
|
368 |
-
__('Next 3 months' ,'booking') );
|
369 |
-
*/
|
370 |
-
break;
|
371 |
-
}
|
372 |
-
}
|
373 |
-
|
374 |
-
// Titles
|
375 |
-
if ( ! $this->request_args['is_matrix'] )
|
376 |
-
$this->timeline_titles['header_column1'] = '';
|
377 |
-
|
378 |
-
//Override any possible titles from shortcode paramaters
|
379 |
-
$this->timeline_titles = wp_parse_args( $attr, $this->timeline_titles );
|
380 |
-
|
381 |
-
|
382 |
-
// Get clean parameters to request booking data
|
383 |
-
$args = $this->wpbc_get_clean_paramas_from_request_for_timeline();
|
384 |
-
|
385 |
-
|
386 |
-
//FixIn: 8.1.3.5
|
387 |
-
/**
|
388 |
-
* If provided valid ['booking_hash'] in timeline_obj in JavaScript param during Ajax request,
|
389 |
-
* then check, if exist booking for this hash. If exist, get Email of this booking, and
|
390 |
-
* filter getting all other bookings by email keyword.
|
391 |
-
* Addtionly set param ['only_booked_resources'] for showing only booking resources with exist bookings
|
392 |
-
*/
|
393 |
-
if ( isset( $attr['booking_hash'] ) ) {
|
394 |
-
|
395 |
-
// Get booking details by HASH, and then return Email (or other data of booking, or false if error
|
396 |
-
$booking_details_email = wpbc_check_hash_get_booking_details( $attr['booking_hash'] , 'email' );
|
397 |
-
//debuge($attr, $booking_details_email);
|
398 |
-
if ( ! empty( $booking_details_email ) ) {
|
399 |
-
|
400 |
-
// Do not show booking resources with no bookings
|
401 |
-
$this->request_args['only_booked_resources'] = 1;
|
402 |
-
|
403 |
-
//Set keyword for showing bookings ony relative to this email
|
404 |
-
$args['wh_keyword'] = $booking_details_email; // 'jo@wpbookingcalendar.com';
|
405 |
-
}
|
406 |
-
if ( ( empty( $booking_details_email ) ) && ( ! empty( $attr['booking_hash'] ) ) ) { //FixIn: 8.4.6.1
|
407 |
-
//FixIn: 8.4.5.13
|
408 |
-
$this->request_args['only_booked_resources'] = 1;
|
409 |
-
$args['wh_keyword'] = '``^`````^^````^`````````';
|
410 |
-
}
|
411 |
-
}
|
412 |
-
//FixIn: 8.1.3.5 - End
|
413 |
-
|
414 |
-
|
415 |
-
// Get booking data
|
416 |
-
$bk_listing = wpbc_get_bookings_objects( $args );
|
417 |
-
|
418 |
-
$this->bookings = $bk_listing['bookings'];
|
419 |
-
$this->booking_types = $bk_listing['resources'];
|
420 |
-
|
421 |
-
//Get Dates and Times for Timeline format
|
422 |
-
$bookings_date_time = $this->wpbc_get_dates_and_times_for_timeline( $this->bookings );
|
423 |
-
$this->dates_array = $bookings_date_time[0];
|
424 |
-
$this->time_array_new = $bookings_date_time[1];
|
425 |
-
|
426 |
-
|
427 |
-
$this->html_client_id = $attr['html_client_id'];
|
428 |
-
|
429 |
-
return $this->html_client_id;
|
430 |
-
}
|
431 |
-
|
432 |
-
|
433 |
-
/** Define initial REQUEST parameters for Admin Panel and Get bookings and resources */
|
434 |
-
public function admin_init() {
|
435 |
-
|
436 |
-
// User ////////////////////////////////////////////////////////////////
|
437 |
-
$user = wp_get_current_user();
|
438 |
-
$this->current_user_id = $user->ID;
|
439 |
-
|
440 |
-
$this->is_frontend = false;
|
441 |
-
|
442 |
-
// Get paramaters from REQUEST
|
443 |
-
$this->define_request_view_params();
|
444 |
-
|
445 |
-
if ( ! $this->request_args['is_matrix'] )
|
446 |
-
$this->timeline_titles['header_column1'] = '';
|
447 |
-
|
448 |
-
// debuge($this->request_args);
|
449 |
-
|
450 |
-
// Get clean parameters to request booking data
|
451 |
-
$args = $this->wpbc_get_clean_paramas_from_request_for_timeline();
|
452 |
-
|
453 |
-
// Get booking data
|
454 |
-
$bk_listing = wpbc_get_bookings_objects( $args );
|
455 |
-
$this->bookings = $bk_listing['bookings'];
|
456 |
-
$this->booking_types = $bk_listing['resources'];
|
457 |
-
|
458 |
-
//Get Dates and Times for Timeline format
|
459 |
-
$bookings_date_time = $this->wpbc_get_dates_and_times_for_timeline( $this->bookings );
|
460 |
-
$this->dates_array = $bookings_date_time[0];
|
461 |
-
$this->time_array_new = $bookings_date_time[1];
|
462 |
-
}
|
463 |
-
|
464 |
-
|
465 |
-
public function client_navigation( $param ) {
|
466 |
-
?>
|
467 |
-
<script type="text/javascript">
|
468 |
-
wpbc_timeline_obj["<?php echo $this->html_client_id; ?>"] = {
|
469 |
-
is_frontend: "<?php echo ( $this->is_frontend ? '1' : '0' ); ?>"
|
470 |
-
, html_client_id: "<?php echo $this->html_client_id; ?>"
|
471 |
-
, wh_booking_type: "<?php echo $this->request_args['wh_booking_type']; ?>"
|
472 |
-
, is_matrix: "<?php echo ( $this->request_args['is_matrix'] ? '1' : '0' ); ?>"
|
473 |
-
, view_days_num: "<?php echo $this->request_args['view_days_num']; ?>"
|
474 |
-
, scroll_start_date: "<?php echo $this->request_args['scroll_start_date']; ?>"
|
475 |
-
, scroll_day: "<?php echo $this->request_args['scroll_day']; ?>"
|
476 |
-
, scroll_month: "<?php echo $this->request_args['scroll_month']; ?>"
|
477 |
-
, 'header_column1': "<?php echo esc_js( $this->timeline_titles['header_column1'] ); ?>"
|
478 |
-
, 'header_column2': "<?php echo esc_js( $this->timeline_titles['header_column2'] ); ?>"
|
479 |
-
, 'header_title': "<?php echo esc_js( $this->timeline_titles['header_title'] ); ?>"
|
480 |
-
, 'wh_trash': "<?php echo esc_js( $this->request_args['wh_trash'] ); ?>"
|
481 |
-
, 'limit_hours': "<?php echo esc_js( $this->request_args['limit_hours'] ); ?>" //FixIn: 7.0.1.14
|
482 |
-
, 'only_booked_resources': "<?php echo esc_js( $this->request_args['only_booked_resources'] ); ?>" //FixIn: 7.0.1.51
|
483 |
-
, 'options': '<?php echo maybe_serialize( $this->options ) ; ?>' //FixIn: 7.2.1.14
|
484 |
-
, 'booking_hash': "<?php echo esc_js( $this->request_args['booking_hash'] ); ?>" //FixIn: 8.1.3.5
|
485 |
-
};
|
486 |
-
</script>
|
487 |
-
<div class="wpbc_tl_nav">
|
488 |
-
<div class="wpbc_tl_prev" href="javascript:void(0)" onclick="javascript:wpbc_timeline_nav( wpbc_timeline_obj['<?php echo $this->html_client_id; ?>'], -1 );"><a>«</a></div>
|
489 |
-
<div class="wpbc_tl_title"><?php echo $param['title'] ?></div>
|
490 |
-
<div class="wpbc_tl_next" href="javascript:void(0)" onclick="javascript:wpbc_timeline_nav( wpbc_timeline_obj['<?php echo $this->html_client_id; ?>'], 1 );"><a>»</a></div>
|
491 |
-
</div>
|
492 |
-
<?php
|
493 |
-
}
|
494 |
-
|
495 |
-
////////////////////////////////////////////////////////////////////////////
|
496 |
-
// S u p p o r t
|
497 |
-
////////////////////////////////////////////////////////////////////////////
|
498 |
-
|
499 |
-
/**
|
500 |
-
* Get array of cleaned (limited number) paramas from request for getting bookings by "wpbc_get_bookings_objects"
|
501 |
-
*
|
502 |
-
* @return array
|
503 |
-
*/
|
504 |
-
public function wpbc_get_clean_paramas_from_request_for_timeline() {
|
505 |
-
|
506 |
-
//FixIn: 7.0.1.15 - replacing in this file from date( to date_i18n(
|
507 |
-
$start_year = intval( date_i18n( "Y" ) );
|
508 |
-
$start_month = intval( date_i18n( "m" ) );
|
509 |
-
$start_day = 1;
|
510 |
-
//debuge( '1.( $start_year, $start_month, $start_day , $this->request_args ', $start_year, $start_month, $start_day , $this->request_args );
|
511 |
-
if ( ! empty( $this->request_args['scroll_start_date'] ) ) { // scroll_start_date=2013-07-01
|
512 |
-
|
513 |
-
list( $start_year, $start_month, $start_day ) = explode( '-', $this->request_args['scroll_start_date'] );
|
514 |
-
$start_year = intval( $start_year );
|
515 |
-
$start_month = intval( $start_month );
|
516 |
-
$start_day = intval( $start_day );
|
517 |
-
}
|
518 |
-
//debuge( '2.( $start_year, $start_month, $start_day )', $start_year, $start_month, $start_day );
|
519 |
-
$scroll_day = 0;
|
520 |
-
$scroll_month = 0;
|
521 |
-
|
522 |
-
if ( ( isset( $this->request_args['view_days_num'] ) )
|
523 |
-
//&& ($this->request_args['view_days_num'] != '30')
|
524 |
-
)
|
525 |
-
$view_days_num = $this->request_args['view_days_num'];
|
526 |
-
else
|
527 |
-
$view_days_num = get_bk_option( 'booking_view_days_num' );
|
528 |
-
|
529 |
-
$view_days_num = intval( $view_days_num );
|
530 |
-
//debuge( '2.1( $view_days_num )', $view_days_num );
|
531 |
-
$is_matrix = (bool) $this->request_args['is_matrix'];
|
532 |
-
|
533 |
-
if ( $is_matrix ) {
|
534 |
-
|
535 |
-
switch ( $view_days_num ) {
|
536 |
-
|
537 |
-
case '1':
|
538 |
-
if ( empty( $this->request_args['scroll_start_date'] ) )
|
539 |
-
$start_day = intval( date_i18n( "d" ) ); // Today date
|
540 |
-
|
541 |
-
if ( isset( $this->request_args['scroll_day'] ) )
|
542 |
-
$scroll_day = intval( $this->request_args['scroll_day'] );
|
543 |
-
|
544 |
-
$real_date = mktime( 0, 0, 0, $start_month, ($start_day + $scroll_day ), $start_year );
|
545 |
-
$wh_booking_date = date_i18n( "Y-m-d", $real_date );
|
546 |
-
|
547 |
-
$real_date = mktime( 0, 0, 0, $start_month, ($start_day + 0 + $scroll_day ), $start_year );
|
548 |
-
$wh_booking_date2 = date_i18n( "Y-m-d", $real_date );
|
549 |
-
break;
|
550 |
-
|
551 |
-
case '7':
|
552 |
-
if ( empty( $this->request_args['scroll_start_date'] ) )
|
553 |
-
$start_day = intval( date_i18n( "d" ) ); //Today date
|
554 |
-
$start_week_day_num = intval( date_i18n( "w" ) );
|
555 |
-
$start_day_weeek = intval( get_bk_option( 'booking_start_day_weeek' ) ); //[0]:Sun .. [6]:Sut
|
556 |
-
if ( $start_week_day_num != $start_day_weeek ) {
|
557 |
-
for ( $d_inc = 1; $d_inc < 8; $d_inc++ ) { // Just get week back
|
558 |
-
$real_date = mktime( 0, 0, 0, $start_month, ($start_day - $d_inc ), $start_year );
|
559 |
-
$start_week_day_num = intval( date_i18n( "w", $real_date ) );
|
560 |
-
if ( $start_week_day_num == $start_day_weeek ) {
|
561 |
-
$start_day = intval( date_i18n( "d", $real_date ) );
|
562 |
-
$start_year = intval( date_i18n( "Y", $real_date ) );
|
563 |
-
$start_month = intval( date_i18n( "m", $real_date ) );
|
564 |
-
$d_inc = 9;
|
565 |
-
}
|
566 |
-
}
|
567 |
-
}
|
568 |
-
|
569 |
-
if ( isset( $this->request_args['scroll_day'] ) )
|
570 |
-
$scroll_day = intval( $this->request_args['scroll_day'] );
|
571 |
-
|
572 |
-
$real_date = mktime( 0, 0, 0, $start_month, ( $start_day + $scroll_day ), $start_year );
|
573 |
-
$wh_booking_date = date_i18n( "Y-m-d", $real_date );
|
574 |
-
|
575 |
-
$real_date = mktime( 0, 0, 0, $start_month, ($start_day + 7 + $scroll_day ), $start_year );
|
576 |
-
$wh_booking_date2 = date_i18n( "Y-m-d", $real_date );
|
577 |
-
break;
|
578 |
-
|
579 |
-
case '30':
|
580 |
-
if ( isset( $this->request_args['scroll_month'] ) )
|
581 |
-
$scroll_month = intval( $this->request_args['scroll_month'] );
|
582 |
-
|
583 |
-
//debuge('3.$scroll_month, $start_month, $start_day, $start_year', $scroll_month, $start_month, $start_day, $start_year );
|
584 |
-
$real_date = mktime( 0, 0, 0, ($start_month + $scroll_month ), ( $start_day ), $start_year );
|
585 |
-
//debuge('4.$real_date',$real_date);
|
586 |
-
$wh_booking_date = date_i18n( "Y-m-d", $real_date );
|
587 |
-
//debuge('5.$wh_booking_date',$wh_booking_date);
|
588 |
-
$real_date = mktime( 0, 0, 0, ($start_month + 1 + $scroll_month ), ($start_day - 1 ), $start_year );
|
589 |
-
//debuge('6.$real_date',$real_date);
|
590 |
-
$wh_booking_date2 = date_i18n( "Y-m-d", $real_date );
|
591 |
-
//debuge('7.$wh_booking_date2', $wh_booking_date2);
|
592 |
-
break;
|
593 |
-
|
594 |
-
case '60':
|
595 |
-
if ( isset( $this->request_args['scroll_month'] ) )
|
596 |
-
$scroll_month = intval( $this->request_args['scroll_month'] );
|
597 |
-
|
598 |
-
$real_date = mktime( 0, 0, 0, ($start_month + $scroll_month ), ( $start_day ), $start_year );
|
599 |
-
$wh_booking_date = date_i18n( "Y-m-d", $real_date ); // '2012-12-01';
|
600 |
-
|
601 |
-
$real_date = mktime( 0, 0, 0, ($start_month + 2 + $scroll_month ), ($start_day - 1 ), $start_year );
|
602 |
-
$wh_booking_date2 = date_i18n( "Y-m-d", $real_date ); // '2013-02-31';
|
603 |
-
break;
|
604 |
-
|
605 |
-
////////////////////////////////////////////////////////////////////////////////
|
606 |
-
default: // 30 - default
|
607 |
-
if ( isset( $this->request_args['scroll_month'] ) )
|
608 |
-
$scroll_month = intval( $this->request_args['scroll_month'] );
|
609 |
-
|
610 |
-
$real_date = mktime( 0, 0, 0, ($start_month + $scroll_month ), ( $start_day ), $start_year );
|
611 |
-
$wh_booking_date = date_i18n( "Y-m-d", $real_date ); // '2012-12-01';
|
612 |
-
|
613 |
-
$real_date = mktime( 0, 0, 0, ($start_month + 1 + $scroll_month ), ($start_day - 1 ), $start_year );
|
614 |
-
$wh_booking_date2 = date_i18n( "Y-m-d", $real_date ); // '2012-12-31';
|
615 |
-
break;
|
616 |
-
}
|
617 |
-
|
618 |
-
} else { // Single resource
|
619 |
-
|
620 |
-
switch ( $view_days_num ) {
|
621 |
-
|
622 |
-
case '90':
|
623 |
-
|
624 |
-
if ( empty( $this->request_args['scroll_start_date'] ) )
|
625 |
-
$start_day = intval( date_i18n( "d" ) ); //Today Date
|
626 |
-
$start_week_day_num = intval( date_i18n( "w" ) );
|
627 |
-
$start_day_weeek = intval( get_bk_option( 'booking_start_day_weeek' ) ); //[0]:Sun .. [6]:Sut
|
628 |
-
|
629 |
-
if ( $start_week_day_num != $start_day_weeek ) {
|
630 |
-
for ( $d_inc = 1; $d_inc < 8; $d_inc++ ) { // Just get week back
|
631 |
-
$real_date = mktime( 0, 0, 0, $start_month, ($start_day - $d_inc ), $start_year );
|
632 |
-
$start_week_day_num = intval( date_i18n( "w", $real_date ) );
|
633 |
-
if ( $start_week_day_num == $start_day_weeek ) {
|
634 |
-
$start_day = intval( date_i18n( "d", $real_date ) );
|
635 |
-
$start_year = intval( date_i18n( "Y", $real_date ) );
|
636 |
-
$start_month = intval( date_i18n( "m", $real_date ) );
|
637 |
-
$d_inc = 9;
|
638 |
-
}
|
639 |
-
}
|
640 |
-
}
|
641 |
-
|
642 |
-
if ( isset( $this->request_args['scroll_day'] ) )
|
643 |
-
$scroll_day = intval( $this->request_args['scroll_day'] );
|
644 |
-
|
645 |
-
$real_date = mktime( 0, 0, 0, $start_month, ( $start_day + $scroll_day ), $start_year );
|
646 |
-
$wh_booking_date = date_i18n( "Y-m-d", $real_date ); // '2012-12-01';
|
647 |
-
|
648 |
-
$real_date = mktime( 0, 0, 0, $start_month, ($start_day + 7 * 12 + 7 + $scroll_day ), $start_year );
|
649 |
-
$wh_booking_date2 = date_i18n( "Y-m-d", $real_date ); // '2013-12-31';
|
650 |
-
break;
|
651 |
-
|
652 |
-
case '30':
|
653 |
-
if ( empty( $this->request_args['scroll_start_date'] ) )
|
654 |
-
$start_day = intval( date_i18n( "d" ) ); //Today Date
|
655 |
-
|
656 |
-
if ( isset( $this->request_args['scroll_day'] ) )
|
657 |
-
$scroll_day = intval( $this->request_args['scroll_day'] );
|
658 |
-
|
659 |
-
$real_date = mktime( 0, 0, 0, $start_month, ( $start_day + $scroll_day ), $start_year );
|
660 |
-
$wh_booking_date = date_i18n( "Y-m-d", $real_date ); // '2012-12-01';
|
661 |
-
|
662 |
-
$real_date = mktime( 0, 0, 0, $start_month, ($start_day + 31 + $scroll_day ), $start_year );
|
663 |
-
$wh_booking_date2 = date_i18n( "Y-m-d", $real_date ); // '2013-12-31';
|
664 |
-
break;
|
665 |
-
|
666 |
-
default: // 365
|
667 |
-
|
668 |
-
if ( isset( $this->request_args['scroll_month'] ) )
|
669 |
-
$scroll_month = intval( $this->request_args['scroll_month'] );
|
670 |
-
else
|
671 |
-
$scroll_month = 0;
|
672 |
-
|
673 |
-
$real_date = mktime( 0, 0, 0, ($start_month + $scroll_month ), $start_day, $start_year );
|
674 |
-
$wh_booking_date = date_i18n( "Y-m-d", $real_date ); // '2012-12-01';
|
675 |
-
|
676 |
-
$real_date = mktime( 0, 0, 0, ($start_month + $scroll_month + 13 ), ($start_day - 1 ), $start_year );
|
677 |
-
$wh_booking_date2 = date_i18n( "Y-m-d", $real_date ); // '2013-12-31';
|
678 |
-
|
679 |
-
break;
|
680 |
-
}
|
681 |
-
}
|
682 |
-
|
683 |
-
$or_sort = get_bk_option( 'booking_sort_order' );
|
684 |
-
|
685 |
-
$args = array(
|
686 |
-
'wh_booking_type' => $this->request_args['wh_booking_type'],
|
687 |
-
'wh_approved' => '',
|
688 |
-
'wh_booking_id' => '',
|
689 |
-
'wh_is_new' => '',
|
690 |
-
'wh_pay_status' => 'all',
|
691 |
-
'wh_keyword' => '',
|
692 |
-
'wh_booking_date' => $wh_booking_date,
|
693 |
-
'wh_booking_date2' => $wh_booking_date2,
|
694 |
-
'wh_modification_date' => '3',
|
695 |
-
'wh_modification_date2' => '',
|
696 |
-
'wh_cost' => '',
|
697 |
-
'wh_cost2' => '',
|
698 |
-
'or_sort' => $or_sort,
|
699 |
-
'page_num' => '1',
|
700 |
-
'wh_trash' => $this->request_args['wh_trash'],
|
701 |
-
'limit_hours' => $this->request_args['limit_hours'],
|
702 |
-
'only_booked_resources' => $this->request_args['only_booked_resources'], //FixIn: 7.0.1.51
|
703 |
-
'page_items_count' => '100000'
|
704 |
-
);
|
705 |
-
//debuge('8.',$args);
|
706 |
-
return $args;
|
707 |
-
}
|
708 |
-
|
709 |
-
|
710 |
-
/** Define View Params from $_REQUEST */
|
711 |
-
public function define_request_view_params() {
|
712 |
-
|
713 |
-
if ( isset( $_REQUEST['wh_booking_type'] ) ) {
|
714 |
-
$this->request_args['wh_booking_type'] = $_REQUEST['wh_booking_type']; // Used once for comma seperated resources only.
|
715 |
-
} elseif ( isset( $_GET['booking_type'] ) ) { $this->request_args['wh_booking_type'] = $_GET['booking_type'];
|
716 |
-
}
|
717 |
-
|
718 |
-
if ( ( isset( $_REQUEST['wh_booking_type'] ) ) && ( strpos( $_REQUEST['wh_booking_type'], ',' ) !== false ) )
|
719 |
-
$this->request_args['is_matrix'] = true;
|
720 |
-
if ( isset( $_REQUEST['view_days_num'] ) ) $this->request_args['view_days_num'] = $_REQUEST['view_days_num'];
|
721 |
-
if ( isset( $_REQUEST['scroll_start_date'] ) ) $this->request_args['scroll_start_date'] = $_REQUEST['scroll_start_date'];
|
722 |
-
if ( isset( $_REQUEST['scroll_day'] ) ) $this->request_args['scroll_day'] = $_REQUEST['scroll_day'];
|
723 |
-
if ( isset( $_REQUEST['scroll_month'] ) ) $this->request_args['scroll_month'] = $_REQUEST['scroll_month'];
|
724 |
-
if ( isset( $_REQUEST['wh_trash'] ) ) $this->request_args['wh_trash'] = $_REQUEST['wh_trash'];
|
725 |
-
|
726 |
-
if ( isset( $_REQUEST['limit_hours'] ) ) $this->request_args['limit_hours'] = $_REQUEST['limit_hours']; //FixIn: 7.0.1.14
|
727 |
-
if ( isset( $_REQUEST['only_booked_resources'] ) ) $this->request_args['only_booked_resources'] = 1;//$_REQUEST['only_booked_resources']; //FixIn: 7.0.1.51
|
728 |
-
}
|
729 |
-
|
730 |
-
|
731 |
-
/**
|
732 |
-
* Define Request View Params
|
733 |
-
*
|
734 |
-
* @param array $param = = array(
|
735 |
-
'wh_booking_type' => ''
|
736 |
-
, 'is_matrix' => false
|
737 |
-
, 'view_days_num' => '30'
|
738 |
-
, 'scroll_start_date' => ''
|
739 |
-
, 'scroll_day' => 0
|
740 |
-
, 'scroll_month' => 0
|
741 |
-
);
|
742 |
-
*/
|
743 |
-
public function define_request_view_params_from_params( $param ) {
|
744 |
-
//debuge( $param , $this->options , maybe_unserialize( wp_unslash( $param['options'] ) ) );die;
|
745 |
-
if ( isset( $param['wh_booking_type'] ) ) $this->request_args['wh_booking_type'] = $param['wh_booking_type']; // Used once for comma seperated resources only.
|
746 |
-
|
747 |
-
if ( ( isset( $param['wh_booking_type'] ) ) && ( strpos( $param['wh_booking_type'], ',' ) !== false ) )
|
748 |
-
$this->request_args['is_matrix'] = true;
|
749 |
-
if ( isset( $param['view_days_num'] ) ) $this->request_args['view_days_num'] = $param['view_days_num'];
|
750 |
-
if ( isset( $param['scroll_start_date'] ) ) $this->request_args['scroll_start_date'] = $param['scroll_start_date'];
|
751 |
-
if ( isset( $param['scroll_day'] ) ) $this->request_args['scroll_day'] = $param['scroll_day'];
|
752 |
-
if ( isset( $param['scroll_month'] ) ) $this->request_args['scroll_month'] = $param['scroll_month'];
|
753 |
-
if ( isset( $param['wh_trash'] ) ) $this->request_args['wh_trash'] = $param['wh_trash'];
|
754 |
-
if ( isset( $param['limit_hours'] ) ) $this->request_args['limit_hours'] = $param['limit_hours']; //FixIn: 7.0.1.14
|
755 |
-
if ( isset( $param['only_booked_resources'] ) ) $this->request_args['only_booked_resources'] = $param['only_booked_resources']; //FixIn: 7.0.1.14
|
756 |
-
if ( isset( $param['booking_hash'] ) ) $this->request_args['booking_hash'] = $param['booking_hash']; //FixIn: 8.1.3.5
|
757 |
-
if ( ( empty( $this->options ) ) && ( isset( $param['options'] ) ) ) {
|
758 |
-
$this->options = maybe_unserialize( wp_unslash( $param['options'] ) ); //FixIn: 7.2.1.14
|
759 |
-
}
|
760 |
-
|
761 |
-
}
|
762 |
-
|
763 |
-
|
764 |
-
/**
|
765 |
-
* Get D A T E S and T I M E S from B o o k i n g s
|
766 |
-
*
|
767 |
-
* @param array $bookings - Booking input array
|
768 |
-
* @return array - array( $dates_array, $time_array_new )
|
769 |
-
*/
|
770 |
-
public function wpbc_get_dates_and_times_for_timeline( $bookings ) {
|
771 |
-
|
772 |
-
// Generate: Array ( [0] => array(), [3600] => array(), [7200] => array(), ..... [43200] => array(),.... [82800] => array() )
|
773 |
-
$fixed_time_hours_array = array();
|
774 |
-
for ( $tt = 0; $tt < 24; $tt++ ) {
|
775 |
-
$fixed_time_hours_array[$tt * 60 * 60] = array();
|
776 |
-
}
|
777 |
-
|
778 |
-
// Dates array: { '2012-12-24' => array( Booking ID 1, Booking ID 2, ....), ... }
|
779 |
-
$dates_array = $time_array = array();
|
780 |
-
foreach ( $bookings as $bk ) {
|
781 |
-
foreach ( $bk->dates as $dt ) {
|
782 |
-
|
783 |
-
// Transform from MySQL date to PHP date
|
784 |
-
$dt->booking_date = trim( $dt->booking_date );
|
785 |
-
$dta = explode( ' ', $dt->booking_date );
|
786 |
-
$tms = $dta[1];
|
787 |
-
//FixIn: 8.2.1.21
|
788 |
-
//if ( substr( $dta[1], - 1 ) == '2' ) { continue; }
|
789 |
-
$tms = explode( ':', $tms ); // array('13','30','40')
|
790 |
-
$dta = $dta[0];
|
791 |
-
$dta = explode( '-', $dta ); // array('2012','12','30')
|
792 |
-
$php_dt = mktime( $tms[0], $tms[1], $tms[2], $dta[1], $dta[2], $dta[0] );
|
793 |
-
|
794 |
-
if ( ( isset( $dt->type_id ) ) && (!empty( $dt->type_id )) )
|
795 |
-
$date_bk_res_id = $dt->type_id;
|
796 |
-
else
|
797 |
-
$date_bk_res_id = $bk->booking_type;
|
798 |
-
|
799 |
-
|
800 |
-
$my_date = date_i18n( "Y-m-d", $php_dt ); // '2012-12-01';
|
801 |
-
if ( !isset( $dates_array[$my_date] ) ) {
|
802 |
-
$dates_array[$my_date] = array( array( 'id' => $bk->booking_id, 'resource' => $date_bk_res_id ) );
|
803 |
-
} else {
|
804 |
-
$dates_array[$my_date][] = array( 'id' => $bk->booking_id, 'resource' => $date_bk_res_id );
|
805 |
-
}
|
806 |
-
|
807 |
-
$my_time = date_i18n( "H:i:s", $php_dt ); // '21:55:01';
|
808 |
-
|
809 |
-
$my_time_index = explode( ':', $my_time );
|
810 |
-
$my_time_index = (int) ($my_time_index[0] * 60 * 60 + $my_time_index[1] * 60 + $my_time_index[2]);
|
811 |
-
|
812 |
-
$my_time = strtotime( $my_time ); //FixIn: 8.1.1.6
|
813 |
-
|
814 |
-
if ( !isset( $time_array[$my_date] ) ) {
|
815 |
-
$time_array[$my_date] = array( $my_time_index => array( $my_time => array( 'id' => $bk->booking_id, 'resource' => $date_bk_res_id ) ) );
|
816 |
-
} else {
|
817 |
-
|
818 |
-
if ( !isset( $time_array[$my_date][$my_time_index] ) )
|
819 |
-
$time_array[$my_date][$my_time_index] = array( $my_time => array( 'id' => $bk->booking_id, 'resource' => $date_bk_res_id ) );
|
820 |
-
else {
|
821 |
-
if ( !isset( $time_array[$my_date][$my_time_index][$my_time] ) )
|
822 |
-
$time_array[$my_date][$my_time_index][$my_time] = array( 'id' => $bk->booking_id, 'resource' => $date_bk_res_id );
|
823 |
-
else {
|
824 |
-
$my_time_inc = 3;
|
825 |
-
while ( isset( $time_array[$my_date][$my_time_index][$my_time + $my_time_inc] ) ) {
|
826 |
-
$my_time_inc++;
|
827 |
-
}
|
828 |
-
//Just in case if we are have the booking in the same time, so we are
|
829 |
-
$time_array[$my_date][$my_time_index][($my_time + $my_time_inc)] = array( 'id' => $bk->booking_id, 'resource' => $date_bk_res_id );
|
830 |
-
}
|
831 |
-
}
|
832 |
-
}
|
833 |
-
}
|
834 |
-
}
|
835 |
-
|
836 |
-
//debuge($time_array);
|
837 |
-
// Sorting ..........
|
838 |
-
foreach ( $time_array as $key => $value_t ) { // Sort the times from lower to higher
|
839 |
-
ksort( $value_t );
|
840 |
-
$time_array[$key] = $value_t;
|
841 |
-
}
|
842 |
-
ksort( $time_array ); // Sort array by dates from lower to higher.
|
843 |
-
//debuge($time_array);
|
844 |
-
/* $time_array:
|
845 |
-
$key_date $value_t
|
846 |
-
[2012-12-13] => Array ( $tt_index $times_bk_id_array
|
847 |
-
[44401] => Array ( [12:20:01] => 19)
|
848 |
-
),
|
849 |
-
[2012-12-14] => Array (
|
850 |
-
[10802] => Array([03:00:02] => 19),
|
851 |
-
[43801] => Array([12:10:01] => 2)
|
852 |
-
),
|
853 |
-
.... */
|
854 |
-
|
855 |
-
$time_array_new = array();
|
856 |
-
foreach ( $time_array as $key_date => $value_t ) { // fill the $time_array_new - by bookings of full dates....
|
857 |
-
$new_times_array = $fixed_time_hours_array; // Array ( [0] => Array, [3600] => Array, [7200] => Array .....
|
858 |
-
|
859 |
-
foreach ( $value_t as $tt_index => $times_bk_id_array ) { // [44401] => Array ( [12:20:01] => 19 ), .....
|
860 |
-
$tt_index_round = floor( ($tt_index / 60) / 60 ) * 60 * 60; // 14400, 18000,
|
861 |
-
$is_bk_for_full_date = $tt_index % 10; // 0, 1, 2
|
862 |
-
|
863 |
-
switch ( $is_bk_for_full_date ) {
|
864 |
-
case 0: // Full date - fill every time slot
|
865 |
-
foreach ( $new_times_array as $round_time_slot => $bk_id_array ) {
|
866 |
-
$new_times_array[$round_time_slot] = array_merge( $bk_id_array, array_values( $times_bk_id_array ) );
|
867 |
-
}
|
868 |
-
unset( $time_array[$key_date][$tt_index] );
|
869 |
-
break;
|
870 |
-
|
871 |
-
case 1: break;
|
872 |
-
case 2: break;
|
873 |
-
default: break;
|
874 |
-
}
|
875 |
-
}
|
876 |
-
if ( count( $time_array[$key_date] ) == 0 )
|
877 |
-
unset( $time_array[$key_date] );
|
878 |
-
|
879 |
-
$time_array_new[$key_date] = $new_times_array;
|
880 |
-
}
|
881 |
-
//debuge($time_array_new);
|
882 |
-
//debuge($time_array);
|
883 |
-
foreach ( $time_array as $key_date => $value_t ) {
|
884 |
-
$new_times_array_for_day_start = $new_times_array_for_day_end = array();
|
885 |
-
foreach ( $value_t as $tt_index => $times_bk_id_array ) { // [44401] => Array ( [12:20:01] => 19 ), .....
|
886 |
-
$tt_index_round = floor( ($tt_index / 60) / 60 ) * 60 * 60; // 14400, 18000,
|
887 |
-
//debuge($tt_index, $tt_index_round);
|
888 |
-
$is_bk_for_full_date = $tt_index % 10; // 0, 1, 2
|
889 |
-
|
890 |
-
if ( $is_bk_for_full_date == 1 ) {
|
891 |
-
if ( !isset( $new_times_array_for_day_start[$tt_index_round] ) )
|
892 |
-
$new_times_array_for_day_start[$tt_index_round] = array();
|
893 |
-
$new_times_array_for_day_start[$tt_index_round] = array_merge( $new_times_array_for_day_start[$tt_index_round], array_values( $times_bk_id_array ) );
|
894 |
-
}
|
895 |
-
if ( $is_bk_for_full_date == 2 ) {
|
896 |
-
|
897 |
-
// Its mean that the booking is finished exactly at the beginig of this hour,
|
898 |
-
// so we will not fill the end of booking in this hour, but in previous
|
899 |
-
if ( ($tt_index_round - $tt_index) == -2 ) {
|
900 |
-
$tt_index_round = $tt_index_round - 60 * 60;
|
901 |
-
}
|
902 |
-
|
903 |
-
if ( !isset( $new_times_array_for_day_end[$tt_index_round] ) )
|
904 |
-
$new_times_array_for_day_end[$tt_index_round] = array();
|
905 |
-
$new_times_array_for_day_end[$tt_index_round] = array_merge( $new_times_array_for_day_end[$tt_index_round], array_values( $times_bk_id_array ) );
|
906 |
-
}
|
907 |
-
}
|
908 |
-
$time_array[$key_date] = array( 'start' => $new_times_array_for_day_start, 'end' => $new_times_array_for_day_end );
|
909 |
-
}
|
910 |
-
//debuge($time_array);
|
911 |
-
/* $time_array
|
912 |
-
[2012-12-24] => Array
|
913 |
-
(
|
914 |
-
[start] => Array (
|
915 |
-
[68400] => Array ( [0] => 15 ) )
|
916 |
-
[end] => Array (
|
917 |
-
[64800] => Array ( [0] => 6 ) )
|
918 |
-
|
919 |
-
) */
|
920 |
-
$fill_this_date = array();
|
921 |
-
//debuge($time_array_new['2017-01-13']);
|
922 |
-
|
923 |
-
|
924 |
-
// Fil specific times based on start and end times
|
925 |
-
foreach ( $time_array_new as $ddate => $ttime_round_array ) {
|
926 |
-
foreach ( $ttime_round_array as $ttime_round => $bk_id_array ) { // [3600] => Array( [0] => Array ( [id] => 214 [resource] => 9 ), [1] => Array ( [id] => 154 [resource] => 7
|
927 |
-
|
928 |
-
if ( isset( $time_array[$ddate] ) ) {
|
929 |
-
|
930 |
-
if ( isset( $time_array[$ddate]['start'][$ttime_round] ) ) // array
|
931 |
-
$fill_this_date = array_merge( $fill_this_date, array_values( $time_array[$ddate]['start'][$ttime_round] ) );
|
932 |
-
//debuge($fill_this_date);
|
933 |
-
$time_array_new[$ddate][$ttime_round] = array_merge( $time_array_new[$ddate][$ttime_round], $fill_this_date );
|
934 |
-
|
935 |
-
//debuge($ddate, $ttime_round, $time_array_new[$ddate][$ttime_round]);
|
936 |
-
|
937 |
-
//FixIn: 7.0.1.16 - advanced checking about delettion of times in $time_array[$ddate]['end']
|
938 |
-
|
939 |
-
// End array checking for deleting.
|
940 |
-
if ( isset( $time_array[$ddate]['end'][$ttime_round] ) ) // array
|
941 |
-
foreach ( $time_array[$ddate]['end'][$ttime_round] as $toDelete ) {
|
942 |
-
//if ( $ddate == '2017-01-13' ) {
|
943 |
-
// debuge('$toDelete, $fill_this_date',$toDelete, $fill_this_date);
|
944 |
-
//}
|
945 |
-
$fill_this_date_keys_to_delete = array();
|
946 |
-
foreach ( $fill_this_date as $fill_this_date_key => $check_element_array ) { // [0] => Array ( [id] => 54 [resource] => 5 )
|
947 |
-
|
948 |
-
if ( // Check if arrays equals - identical
|
949 |
-
( is_array( $toDelete ) && is_array( $check_element_array ) )
|
950 |
-
&& ( count( $toDelete ) == count( $check_element_array ) )
|
951 |
-
&& ( array_diff( $toDelete, $check_element_array ) === array_diff( $check_element_array, $toDelete ) )
|
952 |
-
) {
|
953 |
-
$fill_this_date_keys_to_delete[] = $fill_this_date_key; // $toDelete element exist so save key in original array
|
954 |
-
}
|
955 |
-
}
|
956 |
-
|
957 |
-
$fill_this_date_new = array();
|
958 |
-
foreach ( $fill_this_date as $fill_this_date_key => $fill_this_date_value ) {
|
959 |
-
if ( ! in_array( $fill_this_date_key, $fill_this_date_keys_to_delete ) ) {
|
960 |
-
$fill_this_date_new[] = $fill_this_date_value;
|
961 |
-
}
|
962 |
-
}
|
963 |
-
$fill_this_date = $fill_this_date_new; // Reassign cleared array (with deleted values)
|
964 |
-
|
965 |
-
|
966 |
-
if ( !empty( $fill_this_date ) ) {
|
967 |
-
// $fill_this_date = array_diff( $fill_this_date, array( $toDelete ) );
|
968 |
-
|
969 |
-
//if ( $ddate == '2017-01-13' ) {
|
970 |
-
// debuge('AFTER:: $toDelete, $fill_this_date',$toDelete, $fill_this_date);
|
971 |
-
//}
|
972 |
-
}
|
973 |
-
}
|
974 |
-
}
|
975 |
-
}
|
976 |
-
}
|
977 |
-
|
978 |
-
return array( $dates_array, $time_array_new );
|
979 |
-
}
|
980 |
-
|
981 |
-
|
982 |
-
////////////////////////////////////////////////////////////////////////////
|
983 |
-
// C a l e n d a r T i m e l i n e ///////////////////////////////
|
984 |
-
////////////////////////////////////////////////////////////////////////////
|
985 |
-
|
986 |
-
private function wpbc_dates_only_of_specific_resource( $booked_dates_array, $resource_id, $bookings ) {
|
987 |
-
|
988 |
-
foreach ( $booked_dates_array as $key => $value ) {
|
989 |
-
|
990 |
-
$new_array = array();
|
991 |
-
foreach ( $value as $bk_id ) {
|
992 |
-
if ( $bk_id['resource'] == $resource_id ) {
|
993 |
-
$new_array[] = $bk_id['id'];
|
994 |
-
}
|
995 |
-
}
|
996 |
-
if ( !empty( $new_array ) )
|
997 |
-
$booked_dates_array[$key] = $new_array;
|
998 |
-
else
|
999 |
-
unset( $booked_dates_array[$key] );
|
1000 |
-
}
|
1001 |
-
return $booked_dates_array;
|
1002 |
-
}
|
1003 |
-
|
1004 |
-
|
1005 |
-
private function wpbc_times_only_of_specific_resource( $time_array_new, $resource_id, $bookings ) {
|
1006 |
-
|
1007 |
-
foreach ( $time_array_new as $date_key => $times_array ) {
|
1008 |
-
|
1009 |
-
foreach ( $times_array as $time_key => $value ) {
|
1010 |
-
|
1011 |
-
$new_array = array();
|
1012 |
-
foreach ( $value as $bk_id ) {
|
1013 |
-
|
1014 |
-
if ( $bk_id['resource'] == $resource_id ) {
|
1015 |
-
$new_array[] = $bk_id['id'];
|
1016 |
-
}
|
1017 |
-
}
|
1018 |
-
$time_array_new[$date_key][$time_key] = $new_array;
|
1019 |
-
}
|
1020 |
-
}
|
1021 |
-
return $time_array_new;
|
1022 |
-
}
|
1023 |
-
|
1024 |
-
|
1025 |
-
private function wpbc_write_bk_id_css_classes( $prefix, $previous_booking_id ) {
|
1026 |
-
|
1027 |
-
if ( (!isset( $previous_booking_id )) || (empty( $previous_booking_id )) )
|
1028 |
-
return '';
|
1029 |
-
|
1030 |
-
if ( is_string( $previous_booking_id ) )
|
1031 |
-
$bk_id_array = explode( ',', $previous_booking_id );
|
1032 |
-
else if ( is_array( $previous_booking_id ) )
|
1033 |
-
$bk_id_array = $previous_booking_id;
|
1034 |
-
else // Some Unknown situation
|
1035 |
-
return '';
|
1036 |
-
|
1037 |
-
$bk_id_array = array_unique( $bk_id_array );
|
1038 |
-
|
1039 |
-
// If we are have several bookings, so add this special class
|
1040 |
-
if ( count( $bk_id_array ) > 1 )
|
1041 |
-
$css_class = 'here_several_bk_id ';
|
1042 |
-
else
|
1043 |
-
$css_class = '';
|
1044 |
-
|
1045 |
-
foreach ( $bk_id_array as $bk_id ) {
|
1046 |
-
$css_class .= $prefix . $bk_id . ' ';
|
1047 |
-
}
|
1048 |
-
|
1049 |
-
return $css_class;
|
1050 |
-
}
|
1051 |
-
|
1052 |
-
|
1053 |
-
////////////////////////////////////////////////////////////////////////////
|
1054 |
-
// S h o w
|
1055 |
-
////////////////////////////////////////////////////////////////////////////
|
1056 |
-
|
1057 |
-
/** Header */
|
1058 |
-
public function wpbc_show_timeline_header_row( $start_date = false ) {
|
1059 |
-
|
1060 |
-
$current_resource_id = '';
|
1061 |
-
|
1062 |
-
$is_matrix = $this->request_args['is_matrix'];
|
1063 |
-
|
1064 |
-
$view_days_num = $this->request_args['view_days_num'];
|
1065 |
-
|
1066 |
-
|
1067 |
-
$start_hour_for_1day_view = 0; //FixIn: 7.0.1.14
|
1068 |
-
$end_hour_for_1day_view = 24;
|
1069 |
-
$limit_hours = 24;
|
1070 |
-
|
1071 |
-
if ( $is_matrix ) {
|
1072 |
-
|
1073 |
-
// MATRIX VIEW
|
1074 |
-
switch ( $view_days_num ) {
|
1075 |
-
case '1':
|
1076 |
-
$days_num = 1;
|
1077 |
-
$cell_width = '99%';
|
1078 |
-
$dwa = $this->week_days_titles['full'];
|
1079 |
-
$time_selles_num = 24;
|
1080 |
-
if ( isset( $this->request_args[ 'limit_hours' ] ) ) { //FixIn: 7.0.1.14
|
1081 |
-
$limit_hours = explode(',',$this->request_args[ 'limit_hours' ]);
|
1082 |
-
$start_hour_for_1day_view = intval( $limit_hours[0] );
|
1083 |
-
$end_hour_for_1day_view = intval( $limit_hours[1] );
|
1084 |
-
$limit_hours = $limit_hours[1] - $limit_hours[0];
|
1085 |
-
}
|
1086 |
-
break;
|
1087 |
-
case '7':
|
1088 |
-
$days_num = 7;
|
1089 |
-
$cell_width = '13.8%';
|
1090 |
-
$dwa = $this->week_days_titles['3'];
|
1091 |
-
$time_selles_num = 1;
|
1092 |
-
break;
|
1093 |
-
case '30':
|
1094 |
-
$days_num = 31;
|
1095 |
-
$days_num = intval( date_i18n('t',$start_date) ); // num of days in the specific month, wchih relative to $real_date from header //FixIn: 7.0.1.47
|
1096 |
-
$cell_width = '3%';
|
1097 |
-
$dwa = $this->week_days_titles['3'];
|
1098 |
-
$time_selles_num = 1;
|
1099 |
-
break;
|
1100 |
-
case '60':
|
1101 |
-
$days_num = 62;
|
1102 |
-
$cell_width = '1.5%';
|
1103 |
-
$dwa = $this->week_days_titles['1'];
|
1104 |
-
$time_selles_num = 1;
|
1105 |
-
break;
|
1106 |
-
default: // 30
|
1107 |
-
$days_num = 31;
|
1108 |
-
$cell_width = '3%';
|
1109 |
-
$dwa = $this->week_days_titles['3'];
|
1110 |
-
$time_selles_num = 1;
|
1111 |
-
break;
|
1112 |
-
}
|
1113 |
-
|
1114 |
-
} else {
|
1115 |
-
|
1116 |
-
switch ( $view_days_num ) {
|
1117 |
-
case '90':
|
1118 |
-
$days_num = 7;
|
1119 |
-
$cell_width = '13.8%';
|
1120 |
-
$dwa = $this->week_days_titles['full'];
|
1121 |
-
$time_selles_num = 1;
|
1122 |
-
break;
|
1123 |
-
case '365':
|
1124 |
-
$days_num = 32;
|
1125 |
-
$days_num = intval( date_i18n('t',$start_date) ); // num of days in the specific month, wchih relative to $real_date from header //FixIn: 7.0.1.47
|
1126 |
-
$cell_width = '3%';
|
1127 |
-
$dwa = $this->week_days_titles['3'];
|
1128 |
-
$time_selles_num = 1;
|
1129 |
-
break;
|
1130 |
-
default: // 30
|
1131 |
-
$days_num = 1;
|
1132 |
-
$cell_width = '99%';
|
1133 |
-
$dwa = $this->week_days_titles['3'];
|
1134 |
-
$time_selles_num = 24;
|
1135 |
-
if ( isset( $this->request_args[ 'limit_hours' ] ) ) { //FixIn: 7.0.1.14
|
1136 |
-
$limit_hours = explode(',',$this->request_args[ 'limit_hours' ]);
|
1137 |
-
$start_hour_for_1day_view = intval( $limit_hours[0] );
|
1138 |
-
$end_hour_for_1day_view = intval( $limit_hours[1] );
|
1139 |
-
$limit_hours = $limit_hours[1] - $limit_hours[0];
|
1140 |
-
}
|
1141 |
-
break;
|
1142 |
-
}
|
1143 |
-
}
|
1144 |
-
|
1145 |
-
if ( $start_date === false ) {
|
1146 |
-
|
1147 |
-
if ( ! empty( $this->request_args['scroll_start_date'] ) )
|
1148 |
-
list( $start_year, $start_month, $start_day ) = explode( '-', $this->request_args['scroll_start_date'] ); // scroll_start_date=2013-07-01
|
1149 |
-
else
|
1150 |
-
list( $start_year, $start_month, $start_day ) = explode( '-', date_i18n( 'Y-n-j' ) );
|
1151 |
-
|
1152 |
-
} else {
|
1153 |
-
list( $start_year, $start_month, $start_day ) = explode( '-', date_i18n( 'Y-m-d', $start_date ) );
|
1154 |
-
}
|
1155 |
-
|
1156 |
-
?>
|
1157 |
-
<div class="container-fluid <?php if ($is_matrix) { echo ' wpbc_tl_matrix_resources '; } else { echo ' wpbc_tl_single_resource '; } ?> "><div class="row"><div class="col-md-12">
|
1158 |
-
<div id="timeline_scroller<?php echo $current_resource_id; ?>" class="wpbc_tl_scroller">
|
1159 |
-
<div class="wpbc_tl_frame_dates" ><?php
|
1160 |
-
|
1161 |
-
$previous_month = '';
|
1162 |
-
|
1163 |
-
$bk_admin_url_today = wpbc_get_params_in_url( wpbc_get_bookings_url( false, false ), array( 'scroll_month', 'scroll_day', 'scroll_start_date' ) );
|
1164 |
-
|
1165 |
-
for ( $d_inc = 0; $d_inc < $days_num; $d_inc++ ) {
|
1166 |
-
|
1167 |
-
$real_date = mktime( 0, 0, 0, $start_month, ($start_day + $d_inc ), $start_year );
|
1168 |
-
|
1169 |
-
if ( date_i18n( 'm.d.Y' ) == date_i18n( "m.d.Y", $real_date ) )
|
1170 |
-
$is_today = ' today_date ';
|
1171 |
-
else
|
1172 |
-
$is_today = '';
|
1173 |
-
|
1174 |
-
$yy = date_i18n( "Y", $real_date ); //2012
|
1175 |
-
$mm = date_i18n( "m", $real_date ); //09
|
1176 |
-
$dd = date_i18n( "d", $real_date ); //31
|
1177 |
-
$ww = date_i18n( "N", $real_date ); //7
|
1178 |
-
$day_week = $dwa[$ww]; //Su
|
1179 |
-
|
1180 |
-
$day_title = $dd . ' ' . $day_week;
|
1181 |
-
if ( $is_matrix ) {
|
1182 |
-
if ( $view_days_num == 1 ) {
|
1183 |
-
$day_title = wpbc_get_date_in_correct_format( $yy . '-' . $mm . '-' . $dd . ' 00:00:00' );
|
1184 |
-
//$day_title = $day_week . '<br/>' . $day_title[0];
|
1185 |
-
$day_title = '(' . $day_week . ') ' . $day_title[0]; //FixIn:6.0.1
|
1186 |
-
}
|
1187 |
-
if ( $view_days_num == 7 ) {
|
1188 |
-
$day_title = wpbc_get_date_in_correct_format( $yy . '-' . $mm . '-' . $dd . ' 00:00:00' );
|
1189 |
-
$day_title = $day_week . '<br/>' . $day_title[0];
|
1190 |
-
}
|
1191 |
-
if ( $view_days_num == 30 ) {
|
1192 |
-
$day_title = $dd . '<br/>' . $day_week;
|
1193 |
-
}
|
1194 |
-
|
1195 |
-
if ( $view_days_num == 60 ) {
|
1196 |
-
$day_title = $dd . '<br/>' . $day_week;
|
1197 |
-
}
|
1198 |
-
} else {
|
1199 |
-
if ( $view_days_num == 1 ) {
|
1200 |
-
$day_title = wpbc_get_date_in_correct_format( $yy . '-' . $mm . '-' . $dd . ' 00:00:00' );
|
1201 |
-
$day_title = $day_week . '<br/>' . $day_title[0];
|
1202 |
-
}
|
1203 |
-
if ( $view_days_num == 7 ) {
|
1204 |
-
$day_title = wpbc_get_date_in_correct_format( $yy . '-' . $mm . '-' . $dd . ' 00:00:00' );
|
1205 |
-
$day_title = $day_week . '<br/>' . $dd;
|
1206 |
-
}
|
1207 |
-
if ( $view_days_num == 30 ) {
|
1208 |
-
$day_title = __( 'Times', 'booking' );
|
1209 |
-
}
|
1210 |
-
if ( $view_days_num == 90 ) {
|
1211 |
-
$day_title = $day_week;
|
1212 |
-
}
|
1213 |
-
if ( $view_days_num == 365 ) {
|
1214 |
-
$day_title = $dd;
|
1215 |
-
}
|
1216 |
-
}
|
1217 |
-
$day_filter_id = $yy . '-' . $mm . '-' . $dd;
|
1218 |
-
|
1219 |
-
if ( $previous_month != $mm ) {
|
1220 |
-
$previous_month = $mm;
|
1221 |
-
$month_title = date_i18n( "F", $real_date ); //09
|
1222 |
-
$month_class = ' new_month ';
|
1223 |
-
} else {
|
1224 |
-
$month_title = '';
|
1225 |
-
$month_class = '';
|
1226 |
-
}
|
1227 |
-
|
1228 |
-
?>
|
1229 |
-
<div id="cell_<?php echo $current_resource_id . '_' . $day_filter_id ; ?>"
|
1230 |
-
class="wpbc_tl_day_cell wpbc_tl_day_cell_header wpbc_time_in_days_num_<?php echo $view_days_num;
|
1231 |
-
?> wpbc_tl_weekday<?php echo $ww . ' ' . $day_filter_id . ' ' . $month_class; ?>"
|
1232 |
-
style="<?php echo 'width:' . $cell_width . ';'; ?>" ><?php
|
1233 |
-
|
1234 |
-
if ($month_title != '') {
|
1235 |
-
?><div class="month_year"><?php echo $month_title .', ' . $yy ;?></div><?php
|
1236 |
-
}
|
1237 |
-
if ( ( $view_days_num==30 ) || ( $view_days_num == 60) ) {
|
1238 |
-
|
1239 |
-
if ( ! $this->is_frontend ) {
|
1240 |
-
?><a href='<?php echo $bk_admin_url_today . '&scroll_start_date=' . $yy . '-' . $mm . '-' . $dd; ?>'><?php
|
1241 |
-
}
|
1242 |
-
?> <div class="day_num day_num<?php echo $d_inc ?>"><?php echo $day_title;?></div><?php
|
1243 |
-
if ( ! $this->is_frontend ) {
|
1244 |
-
?></a><?php
|
1245 |
-
}
|
1246 |
-
|
1247 |
-
} else {
|
1248 |
-
?><div class="day_num day_num<?php echo $d_inc ?>"><?php echo $day_title;?></div><?php
|
1249 |
-
}
|
1250 |
-
|
1251 |
-
// T i m e c e l l s
|
1252 |
-
$tm = floor( 24 / $time_selles_num );
|
1253 |
-
for ( $tt = 0; $tt < $time_selles_num; $tt++ ) { ?>
|
1254 |
-
|
1255 |
-
<?php if ( ( $tt < $start_hour_for_1day_view ) || ( $tt > $end_hour_for_1day_view ) ) { continue; } //FixIn: 7.0.1.14 ?>
|
1256 |
-
|
1257 |
-
<div class="wpbc_time_section_in_day wpbc_time_section_in_day_header time_hour<?php echo ($tt*$tm);
|
1258 |
-
?> wpbc_time_in_days_num_<?php echo $view_days_num;?>" style="<?php
|
1259 |
-
|
1260 |
-
if ( $limit_hours < 24 ) { //FixIn: 7.0.1.14
|
1261 |
-
$style_width = 'width:' . floatval( floor( round( 100 / $limit_hours , 2 ) * 10 ) / 10 - 0.2 ) . '%;';
|
1262 |
-
echo $style_width;
|
1263 |
-
}
|
1264 |
-
?>" ><?php
|
1265 |
-
|
1266 |
-
//FixIn: 8.1.3.34
|
1267 |
-
$bc_time_format = get_bk_option( 'booking_time_format');
|
1268 |
-
if( ! empty( $bc_time_format ) ){ //FixIn: 8.2.1.2
|
1269 |
-
$time_show = date_i18n( str_replace( ':i', '', get_bk_option( 'booking_time_format' ) ), mktime( $tt * $tm , 0, 0 ) );
|
1270 |
-
echo ( $view_days_num < 31 ) ? $time_show : '';
|
1271 |
-
} else {
|
1272 |
-
echo ( ( $view_days_num < 31 ) ? ( ( ($tt*$tm) < 10?'0':'') . ($tt*$tm) . '<sup>:00</sup>' ) : '' );
|
1273 |
-
}
|
1274 |
-
?></div><?php
|
1275 |
-
}
|
1276 |
-
|
1277 |
-
?></div><?php
|
1278 |
-
|
1279 |
-
}
|
1280 |
-
?>
|
1281 |
-
</div>
|
1282 |
-
</div>
|
1283 |
-
</div></div></div><?php
|
1284 |
-
|
1285 |
-
return $real_date ;
|
1286 |
-
}
|
1287 |
-
|
1288 |
-
|
1289 |
-
/** Row */
|
1290 |
-
public function wpbc_show_timeline_booking_row( $current_resource_id, $start_date, $booking_data = array() ) {
|
1291 |
-
|
1292 |
-
$is_matrix = $this->request_args['is_matrix'];
|
1293 |
-
|
1294 |
-
$start_hour_for_1day_view = 0; //FixIn: 7.0.1.14
|
1295 |
-
$end_hour_for_1day_view = 24;
|
1296 |
-
$limit_hours = 24;
|
1297 |
-
|
1298 |
-
$booked_dates_array = $booking_data[0];
|
1299 |
-
$bookings = $booking_data[1];
|
1300 |
-
$booking_types = $booking_data[2];
|
1301 |
-
$time_array_new = $booking_data[3];
|
1302 |
-
|
1303 |
-
// Remove dates and Times from the arrays, which is not belong to the $current_resource_id
|
1304 |
-
// We do not remove it only, when the $current_resource_id - is empty - OLD ALL Resources VIEW
|
1305 |
-
if ( empty( $current_resource_id ) ) {
|
1306 |
-
$current_resource_id = 1;
|
1307 |
-
}
|
1308 |
-
|
1309 |
-
$booked_dates_array = $this->wpbc_dates_only_of_specific_resource( $booked_dates_array, $current_resource_id, $bookings );
|
1310 |
-
$time_array_new = $this->wpbc_times_only_of_specific_resource( $time_array_new, $current_resource_id, $bookings );
|
1311 |
-
//debuge($time_array_new);
|
1312 |
-
$current_date = $start_date;
|
1313 |
-
|
1314 |
-
$bk_url_listing = wpbc_get_bookings_url( true, false );
|
1315 |
-
|
1316 |
-
// Initial params
|
1317 |
-
$view_days_num = $this->request_args['view_days_num'];
|
1318 |
-
|
1319 |
-
//$max_rows_number =
|
1320 |
-
//debuge( date_i18n('Y-m-d',$start_date)) ;
|
1321 |
-
if ( ! $is_matrix ) { // Single booking resource
|
1322 |
-
|
1323 |
-
switch ($view_days_num) {
|
1324 |
-
case '90':
|
1325 |
-
$days_num = 7;
|
1326 |
-
$cell_width = '13.8%';
|
1327 |
-
$dwa = $this->week_days_titles['full'];
|
1328 |
-
$time_selles_num = 1;
|
1329 |
-
break;
|
1330 |
-
case '365':
|
1331 |
-
$days_num = 32;
|
1332 |
-
$days_num = intval( date_i18n('t',$start_date) ); // num of days in the specific month, wchih relative to $real_date from header //FixIn: 7.0.1.47
|
1333 |
-
$cell_width = '3%';
|
1334 |
-
$dwa = $this->week_days_titles['1'];
|
1335 |
-
$time_selles_num = 1;
|
1336 |
-
break;
|
1337 |
-
default: // 30
|
1338 |
-
$days_num = 1;
|
1339 |
-
$cell_width = '99%';;
|
1340 |
-
$dwa = $this->week_days_titles['3'];
|
1341 |
-
$time_selles_num = 24;//25;
|
1342 |
-
|
1343 |
-
if ( isset( $this->request_args[ 'limit_hours' ] ) ) { //FixIn: 7.0.1.14
|
1344 |
-
$limit_hours = explode(',',$this->request_args[ 'limit_hours' ]);
|
1345 |
-
$start_hour_for_1day_view = intval( $limit_hours[0] );
|
1346 |
-
$end_hour_for_1day_view = intval( $limit_hours[1] );
|
1347 |
-
$limit_hours = $limit_hours[1] - $limit_hours[0];
|
1348 |
-
}
|
1349 |
-
|
1350 |
-
//$view_days_num = 1;
|
1351 |
-
break;
|
1352 |
-
}
|
1353 |
-
|
1354 |
-
} else { // Multiple booking resources
|
1355 |
-
//$view_days_num = 365;
|
1356 |
-
switch ($view_days_num) {
|
1357 |
-
case '1':
|
1358 |
-
$days_num = 1;
|
1359 |
-
$cell_width = '99%';//(7*4.75*31) . 'px';
|
1360 |
-
$dwa = $this->week_days_titles['full'];
|
1361 |
-
$time_selles_num = 24;
|
1362 |
-
|
1363 |
-
if ( isset( $this->request_args[ 'limit_hours' ] ) ) { //FixIn: 7.0.1.14
|
1364 |
-
$limit_hours = explode(',',$this->request_args[ 'limit_hours' ]);
|
1365 |
-
$start_hour_for_1day_view = intval( $limit_hours[0] );
|
1366 |
-
$end_hour_for_1day_view = intval( $limit_hours[1] );
|
1367 |
-
$limit_hours = $limit_hours[1] - $limit_hours[0];
|
1368 |
-
}
|
1369 |
-
|
1370 |
-
break;
|
1371 |
-
case '7':
|
1372 |
-
$days_num = 7;
|
1373 |
-
$cell_width = '13.8%';//(4.75*31) . 'px';
|
1374 |
-
$dwa = $this->week_days_titles['full'];
|
1375 |
-
$time_selles_num = 4;
|
1376 |
-
break;
|
1377 |
-
case '60':
|
1378 |
-
$days_num = 62;
|
1379 |
-
$cell_width = '1.5%';//(12) . 'px';;
|
1380 |
-
$dwa = $this->week_days_titles['1'];
|
1381 |
-
$time_selles_num = 1;
|
1382 |
-
break;
|
1383 |
-
case 'old_365':
|
1384 |
-
$days_num = 365;
|
1385 |
-
$cell_width = '1%';//(2) . 'px';;
|
1386 |
-
$time_selles_num = 1;
|
1387 |
-
$dwa = $this->week_days_titles['1'];
|
1388 |
-
break;
|
1389 |
-
|
1390 |
-
default: // 30
|
1391 |
-
$days_num = 32;
|
1392 |
-
$days_num = intval( date_i18n('t',$start_date) ); // num of days in the specific month, wchih relative to $real_date from header //FixIn: 7.0.1.47
|
1393 |
-
$cell_width = '3%';//(31) . 'px';;
|
1394 |
-
$dwa = $this->week_days_titles['3'];
|
1395 |
-
$time_selles_num = 1;//25;
|
1396 |
-
break;
|
1397 |
-
}
|
1398 |
-
}
|
1399 |
-
|
1400 |
-
if ( $start_date === false ) {
|
1401 |
-
|
1402 |
-
if ( ! empty( $this->request_args['scroll_start_date'] ) )
|
1403 |
-
list( $start_year, $start_month, $start_day ) = explode( '-', $this->request_args['scroll_start_date'] ); // scroll_start_date=2013-07-01
|
1404 |
-
else
|
1405 |
-
list( $start_year, $start_month, $start_day ) = explode( '-', date_i18n( 'Y-n-j' ) );
|
1406 |
-
|
1407 |
-
} else {
|
1408 |
-
list( $start_year, $start_month, $start_day ) = explode( '-', date_i18n( 'Y-m-d', $start_date ) );
|
1409 |
-
}
|
1410 |
-
|
1411 |
-
$previous_booking_id = false;
|
1412 |
-
|
1413 |
-
?>
|
1414 |
-
<div class="container-fluid <?php if ($is_matrix) { echo ' wpbc_tl_matrix_resources '; } else { echo ' wpbc_tl_single_resource '; } ?>"><div class="row"><div class="col-md-12">
|
1415 |
-
|
1416 |
-
<div id="timeline_scroller<?php echo $current_resource_id; ?>" class="wpbc_tl_scroller">
|
1417 |
-
|
1418 |
-
<div class="wpbc_tl_frame_dates" >
|
1419 |
-
<?php
|
1420 |
-
|
1421 |
-
$is_approved = false;
|
1422 |
-
$previous_month = '';
|
1423 |
-
for ( $d_inc = 0; $d_inc < $days_num; $d_inc++ ) {
|
1424 |
-
|
1425 |
-
$real_date = mktime( 0, 0, 0, $start_month, ($start_day + $d_inc ), $start_year );
|
1426 |
-
|
1427 |
-
if ( date_i18n( 'm.d.Y' ) == date_i18n( "m.d.Y", $real_date ) )
|
1428 |
-
$is_today = ' today_date ';
|
1429 |
-
else {
|
1430 |
-
if ( date_i18n( 'Y.m.d' ) > date_i18n( "Y.m.d", $real_date ) )
|
1431 |
-
$is_today = ' past_date ';
|
1432 |
-
else
|
1433 |
-
$is_today = '';
|
1434 |
-
}
|
1435 |
-
|
1436 |
-
$yy = date_i18n( "Y", $real_date ); //2012
|
1437 |
-
$mm = date_i18n( "m", $real_date ); //09
|
1438 |
-
$dd = date_i18n( "d", $real_date ); //31
|
1439 |
-
$ww = date_i18n( "N", $real_date ); //7
|
1440 |
-
|
1441 |
-
$day_week = $dwa[$ww]; //Su
|
1442 |
-
|
1443 |
-
$day_title = $dd;
|
1444 |
-
if ( $view_days_num == 1 ) {
|
1445 |
-
$day_title = wpbc_get_date_in_correct_format( $yy . '-' . $mm . '-' . $dd . ' 00:00:00' );
|
1446 |
-
$day_title = $day_week . ', ' . $day_title[0];
|
1447 |
-
}
|
1448 |
-
if ( $view_days_num == 7 ) {
|
1449 |
-
$day_title = wpbc_get_date_in_correct_format( $yy . '-' . $mm . '-' . $dd . ' 00:00:00' );
|
1450 |
-
$day_title = $day_week . ', ' . $dd;
|
1451 |
-
}
|
1452 |
-
if ( $view_days_num == 30 ) {
|
1453 |
-
$day_title = __( 'Times', 'booking' );
|
1454 |
-
}
|
1455 |
-
|
1456 |
-
$day_filter_id = $yy . '-' . $mm . '-' . $dd;
|
1457 |
-
|
1458 |
-
if ( $previous_month != $mm ) {
|
1459 |
-
$previous_month = $mm;
|
1460 |
-
$month_title = date_i18n( "F", $real_date ); //09
|
1461 |
-
$month_class = ' new_month ';
|
1462 |
-
} else {
|
1463 |
-
$month_title = '';
|
1464 |
-
$month_class = '';
|
1465 |
-
}
|
1466 |
-
|
1467 |
-
|
1468 |
-
?><div id="cell_<?php echo $current_resource_id . '_' . $day_filter_id ; ?>"
|
1469 |
-
class="wpbc_tl_day_cell wpbc_tl_weekday<?php echo $ww . ' '; echo $is_today; echo ' '.$day_filter_id.' '.$month_class ; ?>"
|
1470 |
-
style="<?php echo 'width:' . $cell_width . ';'; ?>"
|
1471 |
-
><?php
|
1472 |
-
|
1473 |
-
// Show date in timeline cell.
|
1474 |
-
|
1475 |
-
// if ( in_array( $ww, array( 1, 3, 6 ) ) ) // Show number of days only for the specific week days - for speeder loading.
|
1476 |
-
echo '<i class="wpbc_day_cell_number wpbc_time_in_days_num_' . $view_days_num . ' " >'
|
1477 |
-
. $dd . ( ($view_days_num == '90') ? '/' . $mm : '')
|
1478 |
-
// . ( ($view_days_num == '90') ? $mm . '/' : '') . $dd // Show: "month/day" instead of "day/month"
|
1479 |
-
. '</i>';
|
1480 |
-
|
1481 |
-
|
1482 |
-
$title_in_day = $title = $title_hint ='';
|
1483 |
-
$is_bk = 0;
|
1484 |
-
|
1485 |
-
if ( $time_selles_num != 24 ) { // Full D a t e s
|
1486 |
-
if ( $booked_dates_array !== false ) {
|
1487 |
-
|
1488 |
-
$link_id_parameter = array();
|
1489 |
-
if ( isset( $booked_dates_array[$day_filter_id] ) ) { // This date is B O O K E D
|
1490 |
-
$is_bk = 1;
|
1491 |
-
$booked_dates_array[$day_filter_id] = array_unique( $booked_dates_array[$day_filter_id] );
|
1492 |
-
foreach ( $booked_dates_array[$day_filter_id] as $bk_id ) {
|
1493 |
-
|
1494 |
-
$booking_num_in_day = count( $booked_dates_array[$day_filter_id] );
|
1495 |
-
|
1496 |
-
if ( ($previous_booking_id != $bk_id) || ($booking_num_in_day > 1) ) {
|
1497 |
-
|
1498 |
-
// if the booking take for the several days, so then do not show title in the other days
|
1499 |
-
$my_bk_info = $this->wpbc_get_booking_info_4_tooltip( $bk_id, $bookings, $booking_types, $title_in_day, $title, $title_hint );
|
1500 |
-
|
1501 |
-
$title_in_day = htmlspecialchars_decode( $my_bk_info[0] ); //FixIn: 8.4.2.8
|
1502 |
-
$title = $my_bk_info[1];
|
1503 |
-
$title_hint = $my_bk_info[2];
|
1504 |
-
$is_approved = $my_bk_info[3];
|
1505 |
-
}
|
1506 |
-
|
1507 |
-
if ( $booking_num_in_day > 1 ) {
|
1508 |
-
$previous_booking_id .= ',' . $bk_id;
|
1509 |
-
} else
|
1510 |
-
$previous_booking_id = $bk_id;
|
1511 |
-
|
1512 |
-
$link_id_parameter[] = $bk_id;
|
1513 |
-
}
|
1514 |
-
} else
|
1515 |
-
$previous_booking_id = false;
|
1516 |
-
|
1517 |
-
|
1518 |
-
// Just one day cell
|
1519 |
-
|
1520 |
-
$title_hint = str_replace( '"', "", $title_hint );
|
1521 |
-
$link_id_parameter = implode( ',', $link_id_parameter );
|
1522 |
-
if ( strpos( $title_in_day, ',' ) !== false ) {
|
1523 |
-
$title_in_day = explode( ',', $title_in_day );
|
1524 |
-
$title_in_day = $title_in_day[0] . ' ... ' . $title_in_day[(count( $title_in_day ) - 1)];
|
1525 |
-
$title_in_day = '<span style=\'font-size:7px;\'>' . $title_in_day . '</span>';
|
1526 |
-
}
|
1527 |
-
|
1528 |
-
// Show the circle with bk ID(s) in a day
|
1529 |
-
if ( ! empty($title_in_day ) ) {
|
1530 |
-
|
1531 |
-
$is_show_popover_in_timeline = wpbc_is_show_popover_in_timeline( $this->is_frontend, $this->request_args['booking_hash'] ); //FixIn: 8.1.3.5
|
1532 |
-
|
1533 |
-
if ( $is_show_popover_in_timeline )
|
1534 |
-
echo '<a
|
1535 |
-
href="javascript:void(0)"
|
1536 |
-
data-content="' . $title_hint . '"
|
1537 |
-
data-original-title="' . $title . '"
|
1538 |
-
class="' . $this->wpbc_write_bk_id_css_classes( 'a_bk_id_', $previous_booking_id )
|
1539 |
-
. ' popover_bottom popover_click ' . ( ($title != '') ? 'first_day_in_bookin' : '' )
|
1540 |
-
. '" >'
|
1541 |
-
. $title_in_day . '</a>';
|
1542 |
-
else
|
1543 |
-
echo '<a href="javascript:void(0)"
|
1544 |
-
class="' . $this->wpbc_write_bk_id_css_classes( 'a_bk_id_', $previous_booking_id )
|
1545 |
-
. ( ($title != '') ? 'first_day_in_bookin' : '' )
|
1546 |
-
. '" >' . $title_in_day . '</a>';
|
1547 |
-
}
|
1548 |
-
$tm = floor( 24 / $time_selles_num );
|
1549 |
-
$tt = 0;
|
1550 |
-
$my_bkid_title = '';
|
1551 |
-
|
1552 |
-
if ( ( ! empty( $previous_booking_id ) )
|
1553 |
-
&& isset( $bookings[$previous_booking_id] )
|
1554 |
-
&& isset( $bookings[$previous_booking_id]->trash ) ) //FixIn:6.1.1.10
|
1555 |
-
$is_trash = $bookings[$previous_booking_id]->trash;
|
1556 |
-
else
|
1557 |
-
$is_trash = false;
|
1558 |
-
|
1559 |
-
$is_blank_bookings = false; //FixIn: 7.2.1.8
|
1560 |
-
if ( ! empty( $previous_booking_id ) ) { //FixIn: 7.0.1.40
|
1561 |
-
if ( ( isset($bookings[$previous_booking_id]->form_data['email']) )
|
1562 |
-
&& ( $bookings[$previous_booking_id]->form_data['email'] == 'admin@blank.com' )
|
1563 |
-
) $is_blank_bookings = true;
|
1564 |
-
}
|
1565 |
-
|
1566 |
-
$css_class_additional = apply_filters( 'wpbc_timeline_booking_header_css', '', $previous_booking_id, $bookings ); //FixIn: 7.0.1.41
|
1567 |
-
|
1568 |
-
echo '<div class="' . $this->wpbc_write_bk_id_css_classes( 'cell_bk_id_', $previous_booking_id )
|
1569 |
-
. ' wpbc_time_section_in_day timeslots_in_this_day' . $time_selles_num
|
1570 |
-
. ' time_hour' . ($tt * $tm)
|
1571 |
-
. ' wpbc_time_in_days_num_' . $view_days_num
|
1572 |
-
. ' ' . ( $is_bk ? 'time_booked_in_day' : '' )
|
1573 |
-
. ' ' . ( $is_trash ? ' booking_trash ': '') //FixIn:6.1.1.10
|
1574 |
-
. ' ' . ( $is_blank_bookings ? ' booking_blank ': '') //FixIn: 7.2.1.8
|
1575 |
-
. ' ' . ( $is_approved ? 'approved' : '' )
|
1576 |
-
. ' ' . $css_class_additional
|
1577 |
-
. '">'
|
1578 |
-
. ( $is_bk ? $my_bkid_title : '' )
|
1579 |
-
. '</div>';
|
1580 |
-
}
|
1581 |
-
}
|
1582 |
-
|
1583 |
-
|
1584 |
-
if ($time_selles_num == 24 ) { // Time Slots in a date
|
1585 |
-
|
1586 |
-
$is_showed_title_in_row = 0; //FixIn: 7.0.1.16
|
1587 |
-
|
1588 |
-
if ( isset( $time_array_new[$day_filter_id] ) ) {
|
1589 |
-
//debuge($time_array_new[$day_filter_id]);
|
1590 |
-
// Loop time cells /////////////////////////////////////////////////////////////////////////////////////////////////
|
1591 |
-
$tm = floor( 24 / $time_selles_num );
|
1592 |
-
for ( $tt = 0; $tt < $time_selles_num; $tt++ ) {
|
1593 |
-
|
1594 |
-
|
1595 |
-
|
1596 |
-
$my_bk_id_array = $time_array_new[$day_filter_id][$tt * 60 * 60];
|
1597 |
-
$my_bk_id_array = array_unique( $my_bk_id_array ); //remove dublicates
|
1598 |
-
|
1599 |
-
if ( empty( $my_bk_id_array ) ) { // Time cell is E m p t y
|
1600 |
-
|
1601 |
-
$is_bk = 0;
|
1602 |
-
$previous_booking_id = false;
|
1603 |
-
$my_bkid_title = $title_in_day = $title = $title_hint = '';
|
1604 |
-
} else { // Time cell is B O O K E D
|
1605 |
-
$is_bk = 1;
|
1606 |
-
$link_id_parameter = array();
|
1607 |
-
|
1608 |
-
if ( ($previous_booking_id !== $my_bk_id_array) || ($previous_booking_id === false) ) {
|
1609 |
-
$my_bkid_title = $title_in_day = $title = $title_hint = '';
|
1610 |
-
foreach ( $my_bk_id_array as $bk_id ) {
|
1611 |
-
|
1612 |
-
$my_bk_info = $this->wpbc_get_booking_info_4_tooltip( $bk_id, $bookings, $booking_types, $title_in_day, $title, $title_hint );
|
1613 |
-
|
1614 |
-
$title_in_day = htmlspecialchars_decode( $my_bk_info[0] ); //FixIn: 8.4.2.8
|
1615 |
-
$title = $my_bk_info[1];
|
1616 |
-
$title_hint = $my_bk_info[2];
|
1617 |
-
$is_approved = $my_bk_info[3];
|
1618 |
-
$link_id_parameter[] = $bk_id;
|
1619 |
-
}
|
1620 |
-
} else {
|
1621 |
-
if ( $is_showed_title_in_row == 1 ){ //FixIn: 7.0.1.16
|
1622 |
-
$my_bkid_title = $title_in_day = $title = $title_hint = '';
|
1623 |
-
}
|
1624 |
-
}
|
1625 |
-
$previous_booking_id = $my_bk_id_array;
|
1626 |
-
|
1627 |
-
|
1628 |
-
$title_hint = str_replace( '"', "", $title_hint );
|
1629 |
-
$link_id_parameter = implode( ',', $link_id_parameter );
|
1630 |
-
if ( strpos( $title_in_day, ',' ) !== false ) {
|
1631 |
-
$title_in_day = explode( ',', $title_in_day );
|
1632 |
-
$title_in_day = $title_in_day[0] . ' ... ' . $title_in_day[(count( $title_in_day ) - 1)];
|
1633 |
-
$title_in_day = '<span style=\'font-size:7px;\'>' . $title_in_day . '</span>';
|
1634 |
-
}
|
1635 |
-
|
1636 |
-
// Show the circle with bk ID(s) in a day
|
1637 |
-
if ( ! empty($title_in_day ) ) {
|
1638 |
-
|
1639 |
-
$is_show_popover_in_timeline = wpbc_is_show_popover_in_timeline( $this->is_frontend, $this->request_args['booking_hash'] ); //FixIn: 8.1.3.5
|
1640 |
-
|
1641 |
-
if ( $is_show_popover_in_timeline )
|
1642 |
-
$my_bkid_title = '<a
|
1643 |
-
href="javascript:void(0)"
|
1644 |
-
data-content="' . $title_hint . '"
|
1645 |
-
data-original-title="' . $title . '"
|
1646 |
-
class="' . $this->wpbc_write_bk_id_css_classes( 'cell_bk_id_', $previous_booking_id )
|
1647 |
-
. ' popover_bottom popover_click '
|
1648 |
-
. ( ($title != '') ? 'first_day_in_bookin' : '' )
|
1649 |
-
. ' ">'
|
1650 |
-
. $title_in_day
|
1651 |
-
. '</a>';
|
1652 |
-
else
|
1653 |
-
$my_bkid_title = '<span
|
1654 |
-
|
1655 |
-
class="' . $this->wpbc_write_bk_id_css_classes( 'cell_bk_id_', $previous_booking_id )
|
1656 |
-
. ( ($title != '') ? 'first_day_in_bookin' : '' )
|
1657 |
-
. ' ">'
|
1658 |
-
. $title_in_day
|
1659 |
-
. '</span>';
|
1660 |
-
}
|
1661 |
-
|
1662 |
-
}
|
1663 |
-
|
1664 |
-
if ( ( $is_today == ' today_date ' ) && ( intval( date_i18n( 'H' ) ) > ($tt * $tm) ) )
|
1665 |
-
$is_past_time = ' past_time ';
|
1666 |
-
else
|
1667 |
-
$is_past_time = '';
|
1668 |
-
|
1669 |
-
if ( $is_bk ) //FixIn:6.1.1.10
|
1670 |
-
$is_trash = $bookings[ $bk_id ]->trash;
|
1671 |
-
else
|
1672 |
-
$is_trash = false;
|
1673 |
-
|
1674 |
-
|
1675 |
-
if ( ( $tt < $start_hour_for_1day_view ) || ( $tt > $end_hour_for_1day_view ) ) { continue; } //FixIn: 7.0.1.14
|
1676 |
-
if ( $limit_hours < 24 ) { //FixIn: 7.0.1.14
|
1677 |
-
$style_width = 'width:' . floatval( floor( round( 100 / $limit_hours , 2 ) * 10 ) / 10 - 0.2 ) . '%;';
|
1678 |
-
} else {
|
1679 |
-
$style_width = '';
|
1680 |
-
}
|
1681 |
-
|
1682 |
-
echo '<div class="'
|
1683 |
-
. $this->wpbc_write_bk_id_css_classes( 'cell_bk_id_', $previous_booking_id )
|
1684 |
-
. ' wpbc_time_section_in_day timeslots_in_this_day' . $time_selles_num
|
1685 |
-
. ' time_hour' . ($tt * $tm)
|
1686 |
-
. ' wpbc_time_in_days_num_' . $view_days_num
|
1687 |
-
. ' ' . ( $is_bk ? ' time_booked_in_day' . $is_past_time : '' )
|
1688 |
-
. ' ' . ( $is_approved ? 'approved' : '' )
|
1689 |
-
. ' ' . ( $is_trash? ' booking_trash ': '') //FixIn:6.1.1.10
|
1690 |
-
. '"'
|
1691 |
-
. ' style="' . $style_width . '"'
|
1692 |
-
. '>'
|
1693 |
-
. ( $is_bk ? $my_bkid_title : '' )
|
1694 |
-
. '</div>';
|
1695 |
-
$is_showed_title_in_row = 1; //FixIn: 7.0.1.16
|
1696 |
-
} //////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
1697 |
-
|
1698 |
-
} else { // Just time borders
|
1699 |
-
|
1700 |
-
$tm = floor( 24 / $time_selles_num );
|
1701 |
-
|
1702 |
-
for ( $tt = 0; $tt < $time_selles_num; $tt++ ) {
|
1703 |
-
|
1704 |
-
if ( ( $tt < $start_hour_for_1day_view ) || ( $tt > $end_hour_for_1day_view ) ) { continue; } //FixIn: 7.0.1.14
|
1705 |
-
if ( $limit_hours < 24 ) { //FixIn: 7.0.1.14
|
1706 |
-
$style_width = 'width:' . floatval( floor( round( 100 / $limit_hours , 2 ) * 10 ) / 10 - 0.2 ) . '%;';
|
1707 |
-
} else {
|
1708 |
-
$style_width = '';
|
1709 |
-
}
|
1710 |
-
|
1711 |
-
echo '<div class="wpbc_time_section_in_day'
|
1712 |
-
. ' timeslots_in_this_day' . $time_selles_num
|
1713 |
-
. ' time_hour' . ($tt * $tm)
|
1714 |
-
. ' wpbc_time_in_days_num_' . $view_days_num
|
1715 |
-
. ' ' . ( $is_bk ? 'time_booked_in_day' : '' )
|
1716 |
-
. ' ' . ( $is_approved ? 'approved' : '' )
|
1717 |
-
. '"'
|
1718 |
-
. ' style="' . $style_width . '"'
|
1719 |
-
. '>'
|
1720 |
-
. ( $is_bk ? $my_bkid_title : '' )
|
1721 |
-
. '</div>';
|
1722 |
-
$is_showed_title_in_row = 1; //FixIn: 7.0.1.16
|
1723 |
-
}
|
1724 |
-
}
|
1725 |
-
}
|
1726 |
-
|
1727 |
-
|
1728 |
-
?></div><?php
|
1729 |
-
}
|
1730 |
-
|
1731 |
-
?>
|
1732 |
-
</div>
|
1733 |
-
|
1734 |
-
</div>
|
1735 |
-
|
1736 |
-
</div></div></div>
|
1737 |
-
<?php
|
1738 |
-
|
1739 |
-
return $current_date ;
|
1740 |
-
}
|
1741 |
-
|
1742 |
-
|
1743 |
-
/**
|
1744 |
-
* Show timeline
|
1745 |
-
* All parameters must be defined.
|
1746 |
-
*/
|
1747 |
-
public function show_timeline() {
|
1748 |
-
$this->wpbc_show_timeline( $this->dates_array, $this->bookings, $this->booking_types, $this->time_array_new );
|
1749 |
-
}
|
1750 |
-
|
1751 |
-
|
1752 |
-
/** Show Structure of the TimeLine */
|
1753 |
-
public function wpbc_show_timeline( $dates_array, $bookings, $booking_types, $time_array_new = array() ){
|
1754 |
-
|
1755 |
-
// Skip showing rows of booking resource(s) in TimeLine or Calendar Overview, if no any exist booking(s) for current view
|
1756 |
-
$booked_booking_resources = array(); //FixIn: 7.0.1.51
|
1757 |
-
if ( ! empty( $this->request_args['only_booked_resources'] ) ) {
|
1758 |
-
|
1759 |
-
foreach ( $bookings as $single_booking ) {
|
1760 |
-
|
1761 |
-
if ( ! empty( $single_booking->booking_type ) )
|
1762 |
-
$booked_booking_resources[] = $single_booking->booking_type;
|
1763 |
-
|
1764 |
-
foreach ( $single_booking->dates as $booking_date_obj ) {
|
1765 |
-
if ( ( isset( $booking_date_obj->type_id ) ) && ( ! empty( $booking_date_obj->type_id ) ) )
|
1766 |
-
$booked_booking_resources[] = $booking_date_obj->type_id;
|
1767 |
-
}
|
1768 |
-
}
|
1769 |
-
$booked_booking_resources = array_unique( $booked_booking_resources );
|
1770 |
-
}
|
1771 |
-
|
1772 |
-
$view_days_num = $this->request_args['view_days_num']; // Get start date and number of rows, which is depend from the view days mode
|
1773 |
-
$is_matrix = $this->request_args['is_matrix'];
|
1774 |
-
$scroll_day = 0;
|
1775 |
-
$scroll_month = 0;
|
1776 |
-
$start_year = date_i18n( "Y" );
|
1777 |
-
$start_month = date_i18n( "m" ); // 09
|
1778 |
-
|
1779 |
-
if ( ! empty( $this->request_args['scroll_start_date'] ) ) { // scroll_start_date=2013-07-01
|
1780 |
-
// Set the correct start date, if was selected the stard date different from the today in the Filters Tab.
|
1781 |
-
list( $start_year, $start_month, $start_day ) = explode( '-', $this->request_args['scroll_start_date'] );
|
1782 |
-
}
|
1783 |
-
|
1784 |
-
////////////////////////////////////////////////////////////////////////
|
1785 |
-
// Get Start Date and Scroll Day/Month Variables
|
1786 |
-
////////////////////////////////////////////////////////////////////////
|
1787 |
-
if ( $is_matrix ) { // MATRIX VIEW
|
1788 |
-
|
1789 |
-
$bk_resources_id = explode( ',', $this->request_args['wh_booking_type'] );
|
1790 |
-
$max_rows_number = count( $bk_resources_id );
|
1791 |
-
|
1792 |
-
switch ( $view_days_num ) {
|
1793 |
-
case '1':
|
1794 |
-
if ( isset( $this->request_args['scroll_day'] ) )
|
1795 |
-
$scroll_day = $this->request_args['scroll_day'];
|
1796 |
-
if ( empty( $this->request_args['scroll_start_date'] ) )
|
1797 |
-
$start_day = date_i18n( "d" ); //FixIn: 7.0.1.13
|
1798 |
-
break;
|
1799 |
-
|
1800 |
-
case '30':
|
1801 |
-
case '60':
|
1802 |
-
if ( isset( $this->request_args['scroll_month'] ) )
|
1803 |
-
$scroll_month = $this->request_args['scroll_month'];
|
1804 |
-
if ( empty( $this->request_args['scroll_start_date'] ) )
|
1805 |
-
$start_day = 1;
|
1806 |
-
break;
|
1807 |
-
|
1808 |
-
case '7': // 7 Week - start from Monday (or other start week day)
|
1809 |
-
if ( isset( $this->request_args['scroll_day'] ) )
|
1810 |
-
$scroll_day = $this->request_args['scroll_day'];
|
1811 |
-
if ( empty( $this->request_args['scroll_start_date'] ) )
|
1812 |
-
$start_day = date_i18n( "d" );
|
1813 |
-
$start_week_day_num = date_i18n( "w" );
|
1814 |
-
$start_day_weeek = get_bk_option( 'booking_start_day_weeek' ); //[0]:Sun .. [6]:Sut
|
1815 |
-
|
1816 |
-
if ( $start_week_day_num != $start_day_weeek ) {
|
1817 |
-
for ( $d_inc = 1; $d_inc < 8; $d_inc++ ) { // Just get week back
|
1818 |
-
|
1819 |
-
$real_date = mktime( 0, 0, 0, $start_month, ($start_day - $d_inc ), $start_year );
|
1820 |
-
|
1821 |
-
$start_week_day_num = date_i18n( "w", $real_date );
|
1822 |
-
if ( $start_week_day_num == $start_day_weeek ) {
|
1823 |
-
$start_day = date_i18n( "d", $real_date );
|
1824 |
-
$start_year = date_i18n( "Y", $real_date );
|
1825 |
-
$start_month = date_i18n( "m", $real_date );
|
1826 |
-
$d_inc = 9;
|
1827 |
-
}
|
1828 |
-
}
|
1829 |
-
}
|
1830 |
-
break;
|
1831 |
-
|
1832 |
-
default: //30
|
1833 |
-
if ( isset( $this->request_args['scroll_month'] ) )
|
1834 |
-
$scroll_month = $this->request_args['scroll_month'];
|
1835 |
-
if ( empty( $this->request_args['scroll_start_date'] ) )
|
1836 |
-
$start_day = 1;
|
1837 |
-
break;
|
1838 |
-
}
|
1839 |
-
|
1840 |
-
} else { // SINGLE Resource VIEW
|
1841 |
-
|
1842 |
-
switch ( $view_days_num ) {
|
1843 |
-
case '90':
|
1844 |
-
if ( isset( $this->request_args['scroll_day'] ) )
|
1845 |
-
$scroll_day = $this->request_args['scroll_day'];
|
1846 |
-
else
|
1847 |
-
$scroll_day = 0;
|
1848 |
-
|
1849 |
-
$max_rows_number = 12;
|
1850 |
-
if ( empty( $this->request_args['scroll_start_date'] ) )
|
1851 |
-
$start_day = date_i18n( "d" );
|
1852 |
-
$start_week_day_num = date_i18n( "w" );
|
1853 |
-
$start_day_weeek = get_bk_option( 'booking_start_day_weeek' ); //[0]:Sun .. [6]:Sut
|
1854 |
-
|
1855 |
-
if ( $start_week_day_num != $start_day_weeek ) {
|
1856 |
-
for ( $d_inc = 1; $d_inc < 8; $d_inc++ ) { // Just get week back
|
1857 |
-
$real_date = mktime( 0, 0, 0, $start_month, ($start_day - $d_inc ), $start_year );
|
1858 |
-
|
1859 |
-
$start_week_day_num = date_i18n( "w", $real_date );
|
1860 |
-
if ( $start_week_day_num == $start_day_weeek ) {
|
1861 |
-
$start_day = date_i18n( "d", $real_date );
|
1862 |
-
$start_year = date_i18n( "Y", $real_date );
|
1863 |
-
$start_month = date_i18n( "m", $real_date );
|
1864 |
-
$d_inc = 9;
|
1865 |
-
}
|
1866 |
-
}
|
1867 |
-
}
|
1868 |
-
break;
|
1869 |
-
|
1870 |
-
case '365':
|
1871 |
-
if ( isset( $this->request_args['scroll_month'] ) )
|
1872 |
-
$scroll_month = $this->request_args['scroll_month'];
|
1873 |
-
else
|
1874 |
-
$scroll_month = 0;
|
1875 |
-
$max_rows_number = 12;
|
1876 |
-
if ( empty( $this->request_args['scroll_start_date'] ) )
|
1877 |
-
$start_day = 1;
|
1878 |
-
break;
|
1879 |
-
|
1880 |
-
default: // 30
|
1881 |
-
if ( isset( $this->request_args['scroll_day'] ) )
|
1882 |
-
$scroll_day = $this->request_args['scroll_day'];
|
1883 |
-
else
|
1884 |
-
$scroll_day = 0;
|
1885 |
-
|
1886 |
-
$max_rows_number = 31;
|
1887 |
-
if ( empty( $this->request_args['scroll_start_date'] ) )
|
1888 |
-
$start_day = date_i18n( "d" ); //FixIn: 7.0.1.13
|
1889 |
-
break;
|
1890 |
-
}
|
1891 |
-
}
|
1892 |
-
|
1893 |
-
////////////////////////////////////////////////////////////////////////////////////////////////
|
1894 |
-
|
1895 |
-
?><div class="wpbc_timeline_frame<?php if ( $this->is_frontend ) echo ' wpbc_timeline_front_end' ?>">
|
1896 |
-
<table class="wpbc_tl_table table table-striped" cellpadding="0" cellspacing="0">
|
1897 |
-
<tr class="wpbc_tl_table_header">
|
1898 |
-
<?php
|
1899 |
-
if ( $this->is_frontend ) {
|
1900 |
-
?><th colspan="2" class="wpbc_tl_collumn_2"><?php
|
1901 |
-
|
1902 |
-
$title = apply_bk_filter('wpdev_check_for_active_language', $this->timeline_titles['header_title'] );
|
1903 |
-
|
1904 |
-
$params_nav = array();
|
1905 |
-
$params_nav['title'] = $title;
|
1906 |
-
$this->client_navigation( $params_nav );
|
1907 |
-
|
1908 |
-
?></th><?php
|
1909 |
-
|
1910 |
-
} else {
|
1911 |
-
?>
|
1912 |
-
<th class="wpbc_tl_collumn_1"><?php
|
1913 |
-
$title = apply_bk_filter('wpdev_check_for_active_language', $this->timeline_titles['header_column1'] );
|
1914 |
-
echo $title; // Resources
|
1915 |
-
?></th>
|
1916 |
-
<th class="wpbc_tl_collumn_2"><?php
|
1917 |
-
$title = apply_bk_filter('wpdev_check_for_active_language', $this->timeline_titles['header_column2'] );
|
1918 |
-
echo $title; // Dates
|
1919 |
-
?></th>
|
1920 |
-
<?php } ?>
|
1921 |
-
</tr>
|
1922 |
-
<tr class="wpbc_tl_table_row_colspan">
|
1923 |
-
<td colspan="2"> </td>
|
1924 |
-
</tr>
|
1925 |
-
<tr class="wpbc_tl_table_titles">
|
1926 |
-
<td class="wpbc_tl_collumn_1"></td>
|
1927 |
-
<td class="wpbc_tl_collumn_2"><?php
|
1928 |
-
// Header above the calendar table
|
1929 |
-
$real_date = mktime( 0, 0, 0, ($start_month ), $start_day, $start_year );
|
1930 |
-
|
1931 |
-
if ( $is_matrix ) { // MATRIX VIEW
|
1932 |
-
switch ( $view_days_num ) { // Set real start date for the each rows in calendar
|
1933 |
-
case '1':
|
1934 |
-
case '7':
|
1935 |
-
$real_date = mktime( 0, 0, 0, $start_month, ( $start_day + $scroll_day ), $start_year );
|
1936 |
-
break;
|
1937 |
-
|
1938 |
-
case '30':
|
1939 |
-
case '60':
|
1940 |
-
$real_date = mktime( 0, 0, 0, ($start_month + $scroll_month ), $start_day, $start_year );
|
1941 |
-
break;
|
1942 |
-
|
1943 |
-
default: // 30
|
1944 |
-
$real_date = mktime( 0, 0, 0, ($start_month + $scroll_month ), $start_day, $start_year );
|
1945 |
-
break;
|
1946 |
-
}
|
1947 |
-
} else { // Single Resource View
|
1948 |
-
switch ( $view_days_num ) { // Set real start date for the each rows in calendar
|
1949 |
-
case '90':
|
1950 |
-
$real_date = mktime( 0, 0, 0, $start_month, ( $start_day + $scroll_day ), $start_year );
|
1951 |
-
break;
|
1952 |
-
|
1953 |
-
case '365':
|
1954 |
-
$real_date = mktime( 0, 0, 0, ($start_month + $scroll_month ), $start_day, $start_year );
|
1955 |
-
break;
|
1956 |
-
|
1957 |
-
default: // 30
|
1958 |
-
$real_date = mktime( 0, 0, 0, $start_month, ( $start_day + $scroll_day ), $start_year );
|
1959 |
-
break;
|
1960 |
-
}
|
1961 |
-
}
|
1962 |
-
|
1963 |
-
$this->wpbc_show_timeline_header_row( $real_date );
|
1964 |
-
?>
|
1965 |
-
</td>
|
1966 |
-
</tr><?php
|
1967 |
-
|
1968 |
-
for ( $d_inc = 0; $d_inc < $max_rows_number; $d_inc++ ) {
|
1969 |
-
|
1970 |
-
// Skip showing rows of booking resource(s) in TimeLine or Calendar Overview, if no any exist booking(s) for current view
|
1971 |
-
if ( ! empty( $this->request_args['only_booked_resources'] ) ) { //FixIn: 7.0.1.51
|
1972 |
-
|
1973 |
-
if ( $is_matrix ) $resource_id = $bk_resources_id[$d_inc];
|
1974 |
-
else $resource_id = $this->request_args['wh_booking_type']; // Request from GET or REQUEST
|
1975 |
-
|
1976 |
-
if ( ! in_array( $resource_id, $booked_booking_resources ) ) {
|
1977 |
-
continue;
|
1978 |
-
}
|
1979 |
-
}
|
1980 |
-
|
1981 |
-
|
1982 |
-
// Ger Start Date to real_date variabale /////////////////////
|
1983 |
-
if ( $is_matrix ) { // MATRIX VIEW
|
1984 |
-
switch ( $view_days_num ) { // Set real start date for the each rows in calendar
|
1985 |
-
case '1':
|
1986 |
-
case '7':
|
1987 |
-
$real_date = mktime( 0, 0, 0, $start_month, ( $start_day + $scroll_day ), $start_year );
|
1988 |
-
break;
|
1989 |
-
|
1990 |
-
case '30':
|
1991 |
-
case '90':
|
1992 |
-
$real_date = mktime( 0, 0, 0, ($start_month + $scroll_month ), $start_day, $start_year );
|
1993 |
-
break;
|
1994 |
-
|
1995 |
-
default: // 30
|
1996 |
-
$real_date = mktime( 0, 0, 0, ($start_month + $scroll_month ), $start_day, $start_year );
|
1997 |
-
break;
|
1998 |
-
}
|
1999 |
-
} else { // Single Resource View
|
2000 |
-
switch ( $view_days_num ) { // Set real start date for the each rows in calendar
|
2001 |
-
case '90':
|
2002 |
-
$real_date = mktime( 0, 0, 0, $start_month, ( $start_day + $d_inc * 7 + $scroll_day ), $start_year );
|
2003 |
-
break;
|
2004 |
-
|
2005 |
-
case '365':
|
2006 |
-
$real_date = mktime( 0, 0, 0, ($start_month + $d_inc + $scroll_month ), $start_day, $start_year );
|
2007 |
-
break;
|
2008 |
-
|
2009 |
-
default: // 30
|
2010 |
-
$real_date = mktime( 0, 0, 0, $start_month, ( $start_day + $d_inc + $scroll_day ), $start_year );
|
2011 |
-
break;
|
2012 |
-
}
|
2013 |
-
}
|
2014 |
-
////////////////////////////////////////////////////////////////
|
2015 |
-
?>
|
2016 |
-
<tr class="wpbc_tl_table_row_bookings">
|
2017 |
-
<td class="wpbc_tl_collumn_1"><?php
|
2018 |
-
|
2019 |
-
// Title in first collumn of the each row in calendar //////
|
2020 |
-
if ( ( $is_matrix ) && ( isset( $bk_resources_id[$d_inc] ) ) && (isset( $booking_types[$bk_resources_id[$d_inc]] )) ) { // Matrix - resource titles
|
2021 |
-
|
2022 |
-
$resource_value = $booking_types[$bk_resources_id[$d_inc]];
|
2023 |
-
$bk_admin_url = wpbc_get_params_in_url( wpbc_get_bookings_url( false, false ), array( 'wh_booking_type' ) );
|
2024 |
-
|
2025 |
-
?><div class="wpbc_tl_resource_title <?php
|
2026 |
-
if ( isset( $resource_value->parent ) ) { if ( $resource_value->parent == 0 ) { echo 'parent'; } else { echo 'child'; } }
|
2027 |
-
?> "><?php
|
2028 |
-
if ( $this->is_frontend ) {
|
2029 |
-
|
2030 |
-
if ( ( isset( $this->options['resource_link'] ) ) && ( isset( $this->options['resource_link'][ $resource_value->booking_type_id ] ) ) ){ //FixIn: 7.0.1.50
|
2031 |
-
|
2032 |
-
?><a href="<?php echo $this->options['resource_link'][ $resource_value->booking_type_id ]; ?>" ><?php //FixIn: 7.2.1.14
|
2033 |
-
}
|
2034 |
-
|
2035 |
-
echo apply_bk_filter('wpdev_check_for_active_language', $resource_value->title ); //FixIn: 7.0.1.11
|
2036 |
-
|
2037 |
-
if ( ( isset( $this->options['resource_link'] ) ) && ( isset( $this->options['resource_link'][ $resource_value->booking_type_id ] ) ) ){ //FixIn: 7.0.1.50
|
2038 |
-
?></a><?php
|
2039 |
-
}
|
2040 |
-
} else {
|
2041 |
-
?><a href="<?php echo $bk_admin_url . '&wh_booking_type=' . $bk_resources_id[$d_inc]; ?>" /><?php
|
2042 |
-
echo apply_bk_filter('wpdev_check_for_active_language', $resource_value->title );
|
2043 |
-
?></a><?php
|
2044 |
-
}
|
2045 |
-
?></div><?php
|
2046 |
-
|
2047 |
-
} else { // Single Resource - Dates titles
|
2048 |
-
|
2049 |
-
?><div class="wpbc_tl_resource_title"><?php
|
2050 |
-
|
2051 |
-
switch ( $view_days_num ) {
|
2052 |
-
case '90':
|
2053 |
-
$end_real_date = mktime( 0, 0, 0, $start_month, ( $start_day + $d_inc * 7 + $scroll_day ) + 6, $start_year );
|
2054 |
-
$date_format = ' j, Y'; //get_bk_option( 'booking_date_format');
|
2055 |
-
echo __( date_i18n( "M", $real_date ) ) . date_i18n( $date_format, $real_date ) . ' - ' . __( date_i18n( "M", $end_real_date ) ) . date_i18n( $date_format, $end_real_date );
|
2056 |
-
break;
|
2057 |
-
|
2058 |
-
case '365':
|
2059 |
-
echo __( date_i18n( "F", $real_date ) ) . ', ' . date_i18n( "Y", $real_date );
|
2060 |
-
break;
|
2061 |
-
|
2062 |
-
default: // 30
|
2063 |
-
//$date_format = 'd / m / Y';
|
2064 |
-
$date_format = get_bk_option( 'booking_date_format' ); //FixIn:5.4.5.13
|
2065 |
-
echo __( date_i18n( "D", $real_date ) ) . ', ' . date_i18n( $date_format, $real_date );
|
2066 |
-
break;
|
2067 |
-
}
|
2068 |
-
|
2069 |
-
?></div><?php
|
2070 |
-
}
|
2071 |
-
?>
|
2072 |
-
</td>
|
2073 |
-
<td class="wpbc_tl_collumn_2">
|
2074 |
-
<div class="wpbc_tl_dates_line"><?php
|
2075 |
-
|
2076 |
-
if ( $is_matrix ) $resource_id = $bk_resources_id[$d_inc];
|
2077 |
-
else $resource_id = $this->request_args['wh_booking_type']; // Request from GET or REQUEST
|
2078 |
-
|
2079 |
-
$this->wpbc_show_timeline_booking_row(
|
2080 |
-
$resource_id
|
2081 |
-
, $real_date
|
2082 |
-
, array(
|
2083 |
-
$dates_array
|
2084 |
-
, $bookings
|
2085 |
-
, $booking_types
|
2086 |
-
, $time_array_new
|
2087 |
-
)
|
2088 |
-
);
|
2089 |
-
?></div>
|
2090 |
-
</td>
|
2091 |
-
</tr><?php
|
2092 |
-
}
|
2093 |
-
|
2094 |
-
?></table></div><?php
|
2095 |
-
}
|
2096 |
-
|
2097 |
-
|
2098 |
-
////////////////////////////////////////////////////////////////////////////
|
2099 |
-
// T O O L T I P
|
2100 |
-
////////////////////////////////////////////////////////////////////////////
|
2101 |
-
|
2102 |
-
/**
|
2103 |
-
* Get Booking Date for PopOver and inday cell text.
|
2104 |
-
*
|
2105 |
-
* @param int $bk_id
|
2106 |
-
* @param array $bookings
|
2107 |
-
* @param array $booking_types
|
2108 |
-
* @param string $text_in_day_cell
|
2109 |
-
* @param string $header_title
|
2110 |
-
* @param string $content_text
|
2111 |
-
*
|
2112 |
-
* @return array
|
2113 |
-
*/
|
2114 |
-
public function wpbc_get_booking_info_4_tooltip( $bk_id, $bookings, $booking_types, $text_in_day_cell='', $header_title='', $content_text='' ){
|
2115 |
-
|
2116 |
-
if ( isset( $bookings[ $bk_id ] ) ) {
|
2117 |
-
$bookings[ $bk_id ]->form_show = str_replace( "&", '&', $bookings[ $bk_id ]->form_show ); //FixIn:7.1.2.12
|
2118 |
-
}
|
2119 |
-
|
2120 |
-
$is_show_popover_in_timeline = wpbc_is_show_popover_in_timeline( $this->is_frontend, $this->request_args['booking_hash'] ); //FixIn: 8.1.3.5
|
2121 |
-
|
2122 |
-
if ( count( $bookings[$bk_id]->dates ) > 0 )
|
2123 |
-
$is_approved = $bookings[$bk_id]->dates[0]->approved;
|
2124 |
-
else $is_approved = 0;
|
2125 |
-
|
2126 |
-
|
2127 |
-
////////////////////////////////////////////////////////////////////////
|
2128 |
-
// Text in Day Cell
|
2129 |
-
////////////////////////////////////////////////////////////////////////
|
2130 |
-
if ( ! empty( $text_in_day_cell ) ) $text_in_day_cell .= ','; // Other Booking in the same day
|
2131 |
-
|
2132 |
-
if ( $this->is_frontend ) $what_show_in_day_template = get_bk_option( 'booking_default_title_in_day_for_timeline_front_end' );
|
2133 |
-
else $what_show_in_day_template = get_bk_option( 'booking_default_title_in_day_for_calendar_view_mode' );
|
2134 |
-
|
2135 |
-
if ( function_exists( 'get_title_for_showing_in_day' ) ) {
|
2136 |
-
$text_in_day_cell .= esc_textarea( get_title_for_showing_in_day( $bk_id, $bookings, $what_show_in_day_template ) ); //FixIn: 7.1.1.2
|
2137 |
-
} else {
|
2138 |
-
if ( ! $this->is_frontend )
|
2139 |
-
$text_in_day_cell .= $bk_id . ':' . esc_textarea( $bookings[$bk_id]->form_data['_all_fields_']['name'] ); // Default Free //FixIn: 7.1.1.2
|
2140 |
-
}
|
2141 |
-
|
2142 |
-
if ( ! $is_show_popover_in_timeline ) {
|
2143 |
-
return array(
|
2144 |
-
$text_in_day_cell
|
2145 |
-
, $text_in_day_cell//'' // $header_title
|
2146 |
-
, '' // $content_text
|
2147 |
-
, $is_approved
|
2148 |
-
) ;
|
2149 |
-
}
|
2150 |
-
|
2151 |
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
2152 |
-
// P O P O V E R
|
2153 |
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
2154 |
-
|
2155 |
-
|
2156 |
-
////////////////////////////////////////////////////////////////////////
|
2157 |
-
// Header
|
2158 |
-
////////////////////////////////////////////////////////////////////////
|
2159 |
-
if ( $header_title != '' ) { // Each new title of booking in the same day start from new line
|
2160 |
-
if ( ! $this->is_frontend )
|
2161 |
-
$header_title .= '<div class=\'clear\'></div>'; // New line
|
2162 |
-
else
|
2163 |
-
$header_title .= '; '; // Comma separated
|
2164 |
-
}
|
2165 |
-
$header_title .= '<div class=\'popover-title-id\' > ID: ' . $bk_id . '</div>'; // ID
|
2166 |
-
|
2167 |
-
//$header_title .= '<div class=\'popover-title-id\' > ' .
|
2168 |
-
//(! empty($bookings[$bk_id]->form_data['_all_fields_']['name']) ? $bookings[$bk_id]->form_data['_all_fields_']['name'] : '' ) . ' '
|
2169 |
-
//. (! empty($bookings[$bk_id]->form_data['_all_fields_']['secondname']) ? $bookings[$bk_id]->form_data['_all_fields_']['secondname'] : '' )
|
2170 |
-
//. '</div>'; // ID
|
2171 |
-
|
2172 |
-
|
2173 |
-
// Buttons
|
2174 |
-
$header_title .= '<div class=\'control-group timeline_info_bk_actionsbar_' . $bk_id . '\' >';
|
2175 |
-
$is_can = true; //current_user_can( 'edit_posts' );
|
2176 |
-
if ( ( ! $this->is_frontend ) && ( $is_can ) ) {
|
2177 |
-
// Link
|
2178 |
-
$header_title .= '<a class=\'button button-secondary\' href=\''.wpbc_get_bookings_url( true, false ).'&wh_booking_id='.$bk_id.'&view_mode=vm_listing&tab=actions\' ><i class=\'glyphicon glyphicon-screenshot\'></i></a>';
|
2179 |
-
//Edit
|
2180 |
-
if ( class_exists( 'wpdev_bk_personal' ) ) {
|
2181 |
-
$bk_url_add = wpbc_get_new_booking_url( true, false );
|
2182 |
-
$bk_hash = (isset( $bookings[$bk_id]->hash )) ? $bookings[$bk_id]->hash : '';
|
2183 |
-
$bk_booking_type = $bookings[$bk_id]->booking_type;
|
2184 |
-
$edit_booking_url = $bk_url_add . '&booking_type=' . $bk_booking_type . '&booking_hash=' . $bk_hash . '&parent_res=1';
|
2185 |
-
$header_title .= '<a class=\'button button-secondary\' href=\'' . $edit_booking_url . '\' onclick=\'\' ><i class=\'glyphicon glyphicon-edit\'></i></a>';
|
2186 |
-
|
2187 |
-
// Print
|
2188 |
-
if ( class_exists( 'wpdev_bk_biz_s' ) )
|
2189 |
-
$header_title .= '<a href=\'javascript:void(0)\'
|
2190 |
-
onclick=\'javascript: wpbc_print_specific_booking_for_timeline( '.$bk_id.' );\'
|
2191 |
-
class=\'tooltip_top button-secondary button\'
|
2192 |
-
><i class=\'glyphicon glyphicon-print\'></i></a>';
|
2193 |
-
|
2194 |
-
$header_title .= '<span class=\'wpbc-buttons-separator\'></span>';
|
2195 |
-
}
|
2196 |
-
// Trash
|
2197 |
-
//$header_title .= '<a class=\'button button-secondary\' href=\'javascript:;\' onclick=\'javascript:delete_booking(' . $bk_id . ', ' . $this->current_user_id . ', "' . wpbc_get_booking_locale() . '" , 1 );\' ><i class=\'glyphicon glyphicon-trash\'></i></a>';
|
2198 |
-
//FixIn: 6.1.1.10
|
2199 |
-
$is_trash = $bookings[$bk_id]->trash;
|
2200 |
-
|
2201 |
-
// Trash
|
2202 |
-
$header_title .= '<a class=\'button button-secondary trash_bk_link'.(( $is_trash)?' hidden_items ':'').'\' href=\'javascript:;\' onclick=\'javascript:if ( wpbc_are_you_sure_popup() ) trash__restore_booking(1,' . $bk_id . ', ' . $this->current_user_id . ', "' . wpbc_get_booking_locale() . '" , 1 );\' ><i class=\'glyphicon glyphicon-trash\'></i></a>'; //FixIn: 8.4.7.14
|
2203 |
-
// Restore
|
2204 |
-
$header_title .= '<a class=\'button button-secondary restore_bk_link'.((!$is_trash)?' hidden_items ':'').'\' href=\'javascript:;\' onclick=\'javascript:trash__restore_booking(0,' . $bk_id . ', ' . $this->current_user_id . ', "' . wpbc_get_booking_locale() . '" , 1 );\' ><i class=\'glyphicon glyphicon-repeat\'></i></a>';
|
2205 |
-
// Delete
|
2206 |
-
$header_title .= '<a class=\'button button-secondary delete_bk_link'.((!$is_trash)?' hidden_items ':'').'\' href=\'javascript:;\' onclick=\'javascript:if ( wpbc_are_you_sure_popup() ) delete_booking(' . $bk_id . ', ' . $this->current_user_id . ', "' . wpbc_get_booking_locale() . '" , 1 );\' ><i class=\'glyphicon glyphicon-remove\'></i></a>'; //FixIn: 8.4.7.14
|
2207 |
-
//End FixIn: 6.1.1.10
|
2208 |
-
|
2209 |
-
// Approve | Decline
|
2210 |
-
$header_title .= '<a class=\'button button-secondary approve_bk_link ' . ($is_approved ? 'hidden_items' : '') . '\' href=\'javascript:;\' onclick=\'javascript:approve_unapprove_booking(' . $bk_id . ',1, ' . $this->current_user_id . ', "' . wpbc_get_booking_locale() . '" , 1 );\' ><i class=\'glyphicon glyphicon-ok-circle\'></i></a>';
|
2211 |
-
$header_title .= '<a class=\'button button-secondary pending_bk_link ' . ($is_approved ? '' : 'hidden_items') . '\' href=\'javascript:;\' onclick=\'javascript:approve_unapprove_booking(' . $bk_id . ',0, ' . $this->current_user_id . ', "' . wpbc_get_booking_locale() . '" , 1 );\' ><i class=\'glyphicon glyphicon-ban-circle\'></i></a>';
|
2212 |
-
|
2213 |
-
|
2214 |
-
}
|
2215 |
-
|
2216 |
-
else if ( ( $this->is_frontend ) && ( ! empty( $this->request_args['booking_hash'] ) ) ) { //FixIn: 8.1.3.5
|
2217 |
-
// Valid or not valid hasg we was checked at begining of function.
|
2218 |
-
|
2219 |
-
//Edit
|
2220 |
-
if ( class_exists( 'wpdev_bk_personal' ) ) {
|
2221 |
-
|
2222 |
-
// $edit_booking_url_admin = wpbc_get_bookings_url( true, false ).'&wh_booking_id='.$bk_id.'&view_mode=vm_listing&tab=actions';
|
2223 |
-
// $trash_booking_url_admin = wpbc_get_bookings_url( true, false ).'&wh_booking_id='.$bk_id.'&view_mode=vm_listing&tab=actions';
|
2224 |
-
|
2225 |
-
if ( ( ! $is_approved ) || ( true ) ) { //FixIn: 8.2.1.14
|
2226 |
-
$visitorbookingediturl = apply_bk_filter( 'wpdev_booking_set_booking_edit_link_at_email', '[visitorbookingediturl]', $bk_id );
|
2227 |
-
$visitorbookingcancelurl = apply_bk_filter( 'wpdev_booking_set_booking_edit_link_at_email', '[visitorbookingcancelurl]', $bk_id );
|
2228 |
-
$visitorbookingpayurl = apply_bk_filter( 'wpdev_booking_set_booking_edit_link_at_email', '[visitorbookingpayurl]', $bk_id );
|
2229 |
-
|
2230 |
-
$header_title .= '<a class=\'btn btn-default wpbc_btn_in_timeline\' title=\''. esc_js( __( 'Edit', 'booking' ) ).'\' href=\'' . $visitorbookingediturl . '\' ><i class=\'glyphicon glyphicon-edit\'></i></a>';
|
2231 |
-
$header_title .= '<a class=\'btn btn-default wpbc_btn_in_timeline\' title=\''. esc_js( __( 'Decline', 'booking' ) ).'\' href=\'' . $visitorbookingcancelurl . '\' ><i class=\'glyphicon glyphicon-trash\'></i></a>';
|
2232 |
-
$header_title .= '<a class=\'btn btn-default wpbc_btn_in_timeline\' title=\''. esc_js( __( 'Pay', 'booking' ) ).'\' href=\'' . $visitorbookingpayurl . '\' ><i class=\'glyphicon glyphicon-credit-card\'></i></a>';
|
2233 |
-
}
|
2234 |
-
}
|
2235 |
-
}
|
2236 |
-
|
2237 |
-
$header_title .= '</div>';
|
2238 |
-
|
2239 |
-
|
2240 |
-
////////////////////////////////////////////////////////////////////////
|
2241 |
-
// Content
|
2242 |
-
////////////////////////////////////////////////////////////////////////
|
2243 |
-
if ( $content_text != '' ) $content_text .= ' <hr class="wpbc_tl_popover_booking_separator" /> '; // Separate Other Booking in the same day
|
2244 |
-
|
2245 |
-
// Container
|
2246 |
-
$content_text .= '<div id=\'wpbc-booking-id-'.$bk_id.'\' class=\'wpbc-listing-collumn wpbc-popover-content-data\' >';
|
2247 |
-
|
2248 |
-
|
2249 |
-
|
2250 |
-
$content_text .= '<div class=\'wpbc-popover-labels-bar\' >';
|
2251 |
-
// ID
|
2252 |
-
//$content_text .= '<span class=\'field-id\'>' . $bk_id . '</span>';
|
2253 |
-
|
2254 |
-
$content_text .= '<div class=\'field-id text-center\'>';
|
2255 |
-
$content_text .= '<span class=\'label\'>' . $bk_id . '</span>';
|
2256 |
-
$content_text .= '</div>';
|
2257 |
-
|
2258 |
-
// Labels
|
2259 |
-
// $content_text .= '<div class=\'text-left field-labels booking-labels\'>';
|
2260 |
-
// $content_text .= '<span class=\'label label-default label-pending' . ( $is_approved ? ' hidden_items' : '' ) . '\'>' . __('Pending' ,'booking') . '</span>';
|
2261 |
-
// $content_text .= '<span class=\'label label-default label-approved' . ( !$is_approved ? ' hidden_items' : '' ) . '\'>' . __('Approved' ,'booking') . '</span>';
|
2262 |
-
// $content_text .= '</div>';
|
2263 |
-
|
2264 |
-
|
2265 |
-
|
2266 |
-
// Resource
|
2267 |
-
if ( function_exists( 'get_booking_title' ) ) {
|
2268 |
-
|
2269 |
-
if ( isset( $booking_types[$bookings[$bk_id]->booking_type] ) ) $bk_title = $booking_types[$bookings[$bk_id]->booking_type]->title;
|
2270 |
-
else $bk_title = get_booking_title( $bookings[$bk_id]->booking_type );
|
2271 |
-
|
2272 |
-
$content_text .= '<div class=\'text-left field-labels booking-labels\'>';
|
2273 |
-
$content_text .= '<span class=\'label label-default label-resource label-info\'>' . esc_textarea( $bk_title ) . '</span>'; //FixIn: 7.1.1.2
|
2274 |
-
$content_text .= '</div>';
|
2275 |
-
}
|
2276 |
-
|
2277 |
-
|
2278 |
-
// Payment Status
|
2279 |
-
if ( class_exists( 'wpdev_bk_biz_s' ) ) {
|
2280 |
-
|
2281 |
-
if ( function_exists( 'wpdev_bk_get_payment_status_simple' ) ) {
|
2282 |
-
$pay_status = wpdev_bk_get_payment_status_simple( $bookings[$bk_id]->pay_status );
|
2283 |
-
$content_text .= '<div class=\'text-left field-labels booking-labels\'>';
|
2284 |
-
if ( wpbc_is_payment_status_ok( trim( $bookings[$bk_id]->pay_status ) ) )
|
2285 |
-
$content_text .= '<span class=\'label label-default label-payment-status payment-label-success\'><span class=\'label-payment-status-prefix\'>' . esc_js( __( 'Payment', 'booking' ) ). '</span> ' . esc_js( $pay_status ) . '</span>'; //FixIn: 7.1.1.3
|
2286 |
-
else {
|
2287 |
-
if ( floatval( $bookings[ $bk_id ]->cost ) > 0 ) { //FixIn: 8.3.3.9
|
2288 |
-
$content_text .= '<span class=\'label label-default label-payment-status payment-label-unknown\'><span class=\'label-payment-status-prefix\'>' . esc_js( __( 'Payment', 'booking' ) ) . '</span> ' . esc_js( $pay_status ) . '</span>'; //FixIn: 7.1.1.3
|
2289 |
-
}
|
2290 |
-
}
|
2291 |
-
$content_text .= '</div>';
|
2292 |
-
}
|
2293 |
-
|
2294 |
-
|
2295 |
-
}
|
2296 |
-
$content_text .= '</div>';
|
2297 |
-
|
2298 |
-
if ( ( class_exists( 'wpdev_bk_biz_s' ) ) ) { //&& ( ! $this->is_frontend ) ){
|
2299 |
-
|
2300 |
-
//FixIn: 8.3.3.9
|
2301 |
-
if ( floatval( $bookings[ $bk_id ]->cost ) > 0 ) {
|
2302 |
-
// Cost
|
2303 |
-
$booking_cost = wpbc_get_cost_with_currency_for_user( $bookings[ $bk_id ]->cost, $bookings[ $bk_id ]->booking_type );
|
2304 |
-
|
2305 |
-
$content_text .= '<div class=\'wpbc-popover-cost-bar\' >';
|
2306 |
-
//$content_text .= '<div class=\'text-left field-labels booking-labels\'>';
|
2307 |
-
$content_text .= '<div class=\'label0 label-default0 wpbc-popover-cost\'>' . $booking_cost . '</div>';
|
2308 |
-
//$content_text .= '</div>';
|
2309 |
-
$content_text .= '</div>';
|
2310 |
-
}
|
2311 |
-
}
|
2312 |
-
|
2313 |
-
if ( ! $this->is_frontend ) {
|
2314 |
-
// Trash
|
2315 |
-
$content_text .= '<div class=\'text-left field-labels booking-labels\'>';
|
2316 |
-
$content_text .= '<span class=\'label label-trash label-danger' . ( ( ! $bookings[$bk_id]->trash ) ? ' hidden_items ' : '' ) . '\'>' . esc_js( __('Trash' ,'booking') ) . '</span>'; //FixIn: 6.1.1.10 //FixIn: 7.1.1.3
|
2317 |
-
$content_text .= '</div>';
|
2318 |
-
}
|
2319 |
-
|
2320 |
-
|
2321 |
-
$content_text .= '<div class=\'clear\'></div>'; // New line
|
2322 |
-
|
2323 |
-
// Booking Data
|
2324 |
-
$content_text .= '<div class=\'wpbc-popover-booking-data\'>' . esc_textarea( $bookings[$bk_id]->form_show ) . '</div>'; //FixIn: 7.1.1.2
|
2325 |
-
|
2326 |
-
$content_text .= '<div class=\'clear\'></div>'; // New line
|
2327 |
-
|
2328 |
-
|
2329 |
-
// Notes
|
2330 |
-
if ( ! empty( $bookings[$bk_id]->remark ) ) {
|
2331 |
-
$content_text .= '<div class=\'wpbc-popover-booking-notes\'>' . '<strong>' . esc_js( __('Note', 'booking') ). ':</strong> ' . esc_textarea( $bookings[$bk_id]->remark ) . '</div>'; //FixIn: 7.1.1.2 //FixIn: 7.1.1.3
|
2332 |
-
$content_text .= '<div class=\'clear\'></div>'; // New line
|
2333 |
-
}
|
2334 |
-
|
2335 |
-
// Dates
|
2336 |
-
$bk_dates_short_id = array(); //BL
|
2337 |
-
if ( count( $bookings[$bk_id]->dates ) > 0 )
|
2338 |
-
$bk_dates_short_id = (isset( $bookings[$bk_id]->dates_short_id )) ? $bookings[$bk_id]->dates_short_id : array(); // Array ([0] => [1] => .... [4] => 6... [11] => [12] => 8 )
|
2339 |
-
|
2340 |
-
$short_dates_content = wpbc_get_short_dates_formated_to_show( $bookings[$bk_id]->dates_short, $is_approved, $bk_dates_short_id, $booking_types );
|
2341 |
-
$short_dates_content = str_replace( '"', "'", $short_dates_content );
|
2342 |
-
|
2343 |
-
$content_text .= '<div class=\'text-left field-dates booking-dates \'>';
|
2344 |
-
$content_text .= '<div class=\'booking_dates_small\'>' . $short_dates_content . '</div>';
|
2345 |
-
$content_text .= '</div>';
|
2346 |
-
|
2347 |
-
$content_text .= '</div>';
|
2348 |
-
|
2349 |
-
// if ( ( $this->is_frontend ) && ( ! $is_approved ) ) {
|
2350 |
-
// $text_in_day_cell = '';
|
2351 |
-
// }
|
2352 |
-
return array(
|
2353 |
-
$text_in_day_cell
|
2354 |
-
, $header_title
|
2355 |
-
, $content_text
|
2356 |
-
, $is_approved
|
2357 |
-
) ;
|
2358 |
-
}
|
2359 |
-
|
2360 |
-
}
|
2361 |
-
|
2362 |
-
|
2363 |
-
|
2364 |
-
/** Navigation of Timeline in Ajax request */
|
2365 |
-
function wpbc_ajax_timeline() {
|
2366 |
-
/*
|
2367 |
-
[timeline_obj] => Array
|
2368 |
-
(
|
2369 |
-
[is_frontend] => 1
|
2370 |
-
[html_client_id] => wpbc_timeline_1454680376080
|
2371 |
-
[wh_booking_type] => 3,4,1,5,6,7,8,9,2,10,11,12,14
|
2372 |
-
[is_matrix] => 1
|
2373 |
-
[view_days_num] => 30
|
2374 |
-
[scroll_start_date] =>
|
2375 |
-
[scroll_day] => 0
|
2376 |
-
[scroll_month] => 0
|
2377 |
-
)
|
2378 |
-
*/
|
2379 |
-
|
2380 |
-
|
2381 |
-
$attr = $_POST['timeline_obj'];
|
2382 |
-
$attr['nav_step'] = $_POST['nav_step'];
|
2383 |
-
|
2384 |
-
ob_start();
|
2385 |
-
|
2386 |
-
$timeline = new WPBC_Timeline();
|
2387 |
-
|
2388 |
-
$html_client_id = $timeline->ajax_init( $attr ); // Define arameters and get bookings
|
2389 |
-
//debuge($timeline->options);
|
2390 |
-
|
2391 |
-
//echo '<div class="wpbc_timeline_ajax_replace">'; // Replace content of this container
|
2392 |
-
$timeline->show_timeline();
|
2393 |
-
|
2394 |
-
|
2395 |
-
$is_show_popover_in_timeline = wpbc_is_show_popover_in_timeline( $attr['is_frontend'], $attr['booking_hash'] ); //FixIn: 8.1.3.5
|
2396 |
-
|
2397 |
-
if ( $is_show_popover_in_timeline ) { // Update New Popovers
|
2398 |
-
|
2399 |
-
?><script type="text/javascript">
|
2400 |
-
if ( jQuery.isFunction( jQuery(".popover_click.popover_bottom" ).popover ) ) { //FixIn: 7.0.1.2 - 2016-12-10
|
2401 |
-
jQuery('.popover_click.popover_bottom').popover( {
|
2402 |
-
placement: 'bottom' //FixIn: 8.4.5.12
|
2403 |
-
, trigger:'manual'
|
2404 |
-
//, delay: {show: 100, hide: 8}
|
2405 |
-
, content: ''
|
2406 |
-
, template: '<div class="popover" role="tooltip"><div class="arrow"></div><div class="popover-close"><a href="javascript:void(0)" data-dismiss="popover" aria-hidden="true">×</a></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
|
2407 |
-
, container: '.wpbc_timeline_frame'
|
2408 |
-
, html: 'true'
|
2409 |
-
});
|
2410 |
-
}
|
2411 |
-
</script><?php
|
2412 |
-
}
|
2413 |
-
//echo '</div>';
|
2414 |
-
|
2415 |
-
|
2416 |
-
$timeline_results = ob_get_contents();
|
2417 |
-
|
2418 |
-
ob_end_clean();
|
2419 |
-
|
2420 |
-
echo $timeline_results ;
|
2421 |
-
}
|
2422 |
-
add_bk_action('wpbc_ajax_timeline', 'wpbc_ajax_timeline');
|
2423 |
-
|
2424 |
-
|
2425 |
-
|
2426 |
-
/** Check if we are showing booking details or not
|
2427 |
-
* Admin panel - always show
|
2428 |
-
* Timeline - show if activated setting option
|
2429 |
-
* Customer listing - show always, if valid hash.
|
2430 |
-
*
|
2431 |
-
* @param $is_frontend
|
2432 |
-
* @param $booking_hash
|
2433 |
-
*
|
2434 |
-
* @return bool
|
2435 |
-
*/
|
2436 |
-
function wpbc_is_show_popover_in_timeline( $is_frontend, $booking_hash ){
|
2437 |
-
|
2438 |
-
// Default for admin
|
2439 |
-
$is_show_popover_in_timeline = true;
|
2440 |
-
|
2441 |
-
// For client Timeline
|
2442 |
-
if ( $is_frontend )
|
2443 |
-
$is_show_popover_in_timeline = ( get_bk_option( 'booking_is_show_popover_in_timeline_front_end' ) == 'On' ) ? true : false ;
|
2444 |
-
|
2445 |
-
// For customer booking listing with ability to edit
|
2446 |
-
//FixIn: 8.1.3.5
|
2447 |
-
if ( ( $is_frontend ) && ( ! empty( $booking_hash ) ) ) {
|
2448 |
-
|
2449 |
-
//In case if we have valid valid hash then show booking details
|
2450 |
-
$my_booking_id_type = apply_bk_filter( 'wpdev_booking_get_hash_to_id', false, $booking_hash );
|
2451 |
-
|
2452 |
-
if ( ! empty( $my_booking_id_type ) ) {
|
2453 |
-
$is_show_popover_in_timeline = true;
|
2454 |
-
} else {
|
2455 |
-
$is_show_popover_in_timeline = false;
|
2456 |
-
}
|
2457 |
-
}
|
2458 |
-
return $is_show_popover_in_timeline;
|
2459 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
core/admin/wpbc-sql.php
CHANGED
@@ -704,7 +704,7 @@ function wpbc_get_bookings_objects( $args ){
|
|
704 |
|
705 |
////////////////////////////////////////////////////////////////////////////
|
706 |
|
707 |
-
|
708 |
$bookings_res = $wpdb->get_results( $sql_start_select . $sql . $sql_where . $sql_order . $sql_limit ); // Get Bookings
|
709 |
|
710 |
$bookings_count = $wpdb->get_results( $sql_start_count . $sql . $sql_where ); // Get Number of bookings
|
704 |
|
705 |
////////////////////////////////////////////////////////////////////////////
|
706 |
|
707 |
+
|
708 |
$bookings_res = $wpdb->get_results( $sql_start_select . $sql . $sql_where . $sql_order . $sql_limit ); // Get Bookings
|
709 |
|
710 |
$bookings_count = $wpdb->get_results( $sql_start_count . $sql . $sql_where ); // Get Number of bookings
|
core/any/css/admin-br-table.css
CHANGED
@@ -115,8 +115,8 @@
|
|
115 |
.wpbc_resources_table select {
|
116 |
width:auto;
|
117 |
height:2em;
|
118 |
-
padding: 2px
|
119 |
-
border-radius: 0
|
120 |
}
|
121 |
@media (max-width: 782px) {
|
122 |
.wpbc_resources_table th.wpbc_hide_mobile,
|
@@ -134,8 +134,13 @@
|
|
134 |
.wpbc_resources_table .field-currency {
|
135 |
line-height: 2.1em;
|
136 |
}
|
|
|
|
|
|
|
137 |
#wpbody .wpbc_resources_table select {
|
138 |
-
height:
|
|
|
|
|
139 |
}
|
140 |
}
|
141 |
@media (max-width: 600px) {
|
115 |
.wpbc_resources_table select {
|
116 |
width:auto;
|
117 |
height:2em;
|
118 |
+
/*padding: 2px;*/
|
119 |
+
/*border-radius: 0;*/
|
120 |
}
|
121 |
@media (max-width: 782px) {
|
122 |
.wpbc_resources_table th.wpbc_hide_mobile,
|
134 |
.wpbc_resources_table .field-currency {
|
135 |
line-height: 2.1em;
|
136 |
}
|
137 |
+
.wp-admin .wpbc_page select,
|
138 |
+
.wp-admin .wpbc_page .form-table select,
|
139 |
+
#wpbody .wpbc_resources_table input[type="text"],
|
140 |
#wpbody .wpbc_resources_table select {
|
141 |
+
height: 34px;
|
142 |
+
min-height: 28px;
|
143 |
+
line-height: 1.5;
|
144 |
}
|
145 |
}
|
146 |
@media (max-width: 600px) {
|
core/any/css/admin-listing-table.css
CHANGED
@@ -169,7 +169,7 @@
|
|
169 |
}
|
170 |
|
171 |
/* Pagination */
|
172 |
-
.wpbc-pagination .button{
|
173 |
box-shadow: none;
|
174 |
height: 32px;
|
175 |
line-height: 30px;
|
@@ -348,6 +348,7 @@
|
|
348 |
}
|
349 |
.wpbc-listing-collumn.field-action-buttons .control-group a.button {
|
350 |
height: 34px;
|
|
|
351 |
}
|
352 |
/* Cost Group */
|
353 |
.wpbc-listing-collumn.field-action-buttons .cost-fields-group .field-currency {
|
169 |
}
|
170 |
|
171 |
/* Pagination */
|
172 |
+
.wpdevelop.wpbc-pagination a.button{
|
173 |
box-shadow: none;
|
174 |
height: 32px;
|
175 |
line-height: 30px;
|
348 |
}
|
349 |
.wpbc-listing-collumn.field-action-buttons .control-group a.button {
|
350 |
height: 34px;
|
351 |
+
line-height: 2.2;
|
352 |
}
|
353 |
/* Cost Group */
|
354 |
.wpbc-listing-collumn.field-action-buttons .cost-fields-group .field-currency {
|
core/any/css/admin-support.css
CHANGED
@@ -431,7 +431,12 @@ html[xmlns] .clearfix-height.hidden_items {
|
|
431 |
margin:0;
|
432 |
padding-left:5px;
|
433 |
}
|
434 |
-
|
|
|
|
|
|
|
|
|
|
|
435 |
|
436 |
/* Hack to fix checkbox height in Firefox, otherwise sometimes, there exist weird artefact */
|
437 |
@-moz-document url-prefix() {
|
431 |
margin:0;
|
432 |
padding-left:5px;
|
433 |
}
|
434 |
+
.wpbc_page input[type='checkbox']:focus,
|
435 |
+
.wpbc_page input[type='checkbox']:active,
|
436 |
+
.wpbc_page input[type='checkbox']:hover,
|
437 |
+
.wpbc_page input[type='checkbox'] {
|
438 |
+
outline: none;
|
439 |
+
}
|
440 |
|
441 |
/* Hack to fix checkbox height in Firefox, otherwise sometimes, there exist weird artefact */
|
442 |
@-moz-document url-prefix() {
|
core/any/css/admin-toolbar.css
CHANGED
@@ -401,8 +401,8 @@
|
|
401 |
.wpdevelop .control-group .btn-toolbar .btn-group > .button,
|
402 |
.wpdevelop .control-group .btn-toolbar .input-group > .input-group-btn .button {
|
403 |
height: 34px;
|
404 |
-
line-height: 1.5em;
|
405 |
-
}
|
406 |
.wpdevelop .control-group .btn-toolbar .input-group > input[type='text']{
|
407 |
height: 34px;
|
408 |
padding:0 12px;
|
401 |
.wpdevelop .control-group .btn-toolbar .btn-group > .button,
|
402 |
.wpdevelop .control-group .btn-toolbar .input-group > .input-group-btn .button {
|
403 |
height: 34px;
|
404 |
+
/*line-height: 1.5em; */
|
405 |
+
}
|
406 |
.wpdevelop .control-group .btn-toolbar .input-group > input[type='text']{
|
407 |
height: 34px;
|
408 |
padding:0 12px;
|
core/class/wpbc-class-welcome.php
CHANGED
@@ -439,6 +439,83 @@ class WPBC_Welcome {
|
|
439 |
|
440 |
$this->maintence_section();
|
441 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
442 |
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
443 |
// 8.6
|
444 |
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
439 |
|
440 |
$this->maintence_section();
|
441 |
|
442 |
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
443 |
+
// 8.7
|
444 |
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
445 |
+
?>
|
446 |
+
<h2 style='font-size: 2.1em;'>What's New in Booking Calendar <span style="font-size: 1.1em;
|
447 |
+
font-weight: 600;font-family: Consolas,Monaco,monospace;padding-left: 10px;color: #5F5F5F;">8.7</span></h2><?php
|
448 |
+
|
449 |
+
?>
|
450 |
+
<img src="<?php echo $this->asset_path; ?>8.7/booking-calendar-black2.png" style="border:none;box-shadow: 0 0px 2px #bbb;margin: 2%;width:98%;display:block;" />
|
451 |
+
<div class="clear"></div>
|
452 |
+
<?php
|
453 |
+
|
454 |
+
$this->show_col_section( array(
|
455 |
+
array( 'text' =>
|
456 |
+
'<h4>' .wpbc_recheck_strong_symbols( 'New' ) . '</h4>'
|
457 |
+
. '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
|
458 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'New **Calendar Skin** with dark colors: "**Black 2**"' ) . '</li>'
|
459 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Ability to define using **Pending days as Selectable days** - its means that such days have the colors the same as Pending days, but visitor still can select and submit new booking, until you do not approve some booking. Its useful in case, if you need to show that at some days already exist bookings, but visitors still can submit the booking. Please note, such feature will not work correctly if you will make bookings for specific time-slots (its will show warning). How to Use ? In the page, where you are having Booking Calendar shortcode, you need to define the js, like this: <script type="text/javascript"> wpbc_settings.set_option( "pending_days_selectable", true ); </script> [booking type=1 nummonths=2] (8.6.1.18)' ) . '</li>'
|
460 |
+
|
461 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Ability to define **dates format** for **search availability form** at the Booking > Settings > Search page. (8.6.1.21) *(Business Large, MultiUser)*' ) . '</li>'
|
462 |
+
. '<li>' . wpbc_recheck_strong_symbols( '**Logging** of approving or set as pending bookings to notes section. You can activate this option "Logging of booking approving or rejection" at the Booking > Settings General page in "Booking Admin panel" section. (8.6.1.10) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
|
463 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Updated **iPay88** - Payment Gateway integration v1.6.4 (For Malaysia Only) (8.6.1.3) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
|
464 |
+
. '</ul>'
|
465 |
+
|
466 |
+
. '<h4>' .wpbc_recheck_strong_symbols( 'Improvement' ) . '</h4>'
|
467 |
+
. '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
|
468 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Ability to auto fill "nickname" of user, when user logged in, and checked this option "Auto-fill fields". In booking form have to be field with name "nickname". (8.6.1.2)' ) . '</li>'
|
469 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Usage of **new Wizard style booking form**, where possible to configure several steps in booking form - **more than 2 steps** (8.6.1.15) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
|
470 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Ability to use option "Use check in/out time", for adding check in/out times to use change over days, when importing events via Google Calendar API (using Google API Key) (8.6.1.1) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
|
471 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Ability to use option "Append check out day", for adding check out day, when importing events via Google Calendar API (using Google API Key) (8.6.1.4) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
|
472 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Disable the edit / cancel / payment request links in the "Booking Customer Listing" view for "Approved bookings", in case, if you have activated this option " Change hash after the booking is approved " at the Booking > Settings General page in Advanced section. (8.6.1.6) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
|
473 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Replace non standard symbols (like: . or , or ` ) in options for ability correct saving Advanced cost. Otherwise sometimes was not possible to save "Advanced cost" at Booking > Resources > Advanced cost page. (8.6.1.7) *(Business Medium/Large, MultiUser)*' ) . '</li>'
|
474 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Added filter hook "wpbc_booking_resources_selection_class" for controlling CSS class in dropdown element of booking resource selections (8.6.1.9) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
|
475 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Update booking hash during moving booking to trash or restore bookings, for do not ability to edit or cancel such bookings by visitor (8.6.1.11) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
|
476 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Add ability to use only labels in shortcode for showing one payment method (its works only with these exact options): [select payment-method "All payment methods@@" "Stripe" "PayPal" "Authorize.Net" "Sage Pay" "Bank Transfer" "Pay in Cash" "iPay88" "iDEAL"] (8.6.1.16) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
|
477 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Ability to activate updating booking cost after editing booking in admin panel, based on new booking data. You can activate this option at the Booking > Settings > Payment page (8.6.1.24) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
|
478 |
+
. '</ul>'
|
479 |
+
. '<h4>' .wpbc_recheck_strong_symbols( 'Translation' ) . '</h4>'
|
480 |
+
. '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
|
481 |
+
|
482 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'German translation [99% completed] by Markus Neumann.' ) . '</li>'
|
483 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Slovenian translation [99% completed] by Klemen Gaber.' ) . '</li>'
|
484 |
+
. '</ul>'
|
485 |
+
|
486 |
+
)
|
487 |
+
, array( 'text' =>
|
488 |
+
|
489 |
+
'<h4>' .wpbc_recheck_strong_symbols( 'Compatibility' ) . '</h4>'
|
490 |
+
. '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
|
491 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Support **WordPress 5.3** - updated styles of booking admin panel.' ) . '</li>'
|
492 |
+
. '</ul>'
|
493 |
+
|
494 |
+
. '<h4>' .wpbc_recheck_strong_symbols( 'Deprecated' ) . '</h4>'
|
495 |
+
. '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
|
496 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Removing deprecated Timeline v.1. Currently available only new Flex Timeline (Calendar Overview) (8.6.1.13)' ) . '</li>'
|
497 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Removing deprecated Stripe v.1 integration. Now available only Stripe v.3 integration that support SCA (8.6.1.12) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
|
498 |
+
. '</ul>'
|
499 |
+
|
500 |
+
. '<h4>' .wpbc_recheck_strong_symbols( 'Fixes' ) . '</h4>'
|
501 |
+
. '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
|
502 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Issue Undefined index: name in ../core/admin/wpbc-class-timeline.php on line 2137' ) . '</li>'
|
503 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Issue of not ability to enter new value of CAPTCHA without page reloading, if previous entered value was incorrect. (8.6.1.8)' ) . '</li>'
|
504 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Order of week days in Arabic translation for calendar' ) . '</li>'
|
505 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Show payment description about the booking in Stripe dashboard in Metadata section for Stripe v.3 integration (8.6.1.20) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
|
506 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Issue of showing negative balance hint, during using deposit feature with zero cost (8.6.1.5) *(Business Medium/Large, MultiUser)*' ) . '</li>'
|
507 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Issue of incorrectly showing available results in "Advanced search results" (while using the shortcode like this [additional_search "3"] at the Booking > Settings > Search page), and if dates in some resources was marked as unavailable via season filters. (8.6.1.14) *(Business Large, MultiUser)*' ) . '</li>'
|
508 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Issue of incorrectly showing available results, when searching only for 1 specific day (check in/out dates the same in availability form), and we have booked (as full day), this day in specific booking resource. (8.6.1.19) *(Business Large, MultiUser)*' ) . '</li>'
|
509 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Issue of incorrectly disabling end time options in select-box (8.6.1.17) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
|
510 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Issue of slow loading calendar (executing too many sql requests), when season filter was deleted at the Booking > Resources > Filters page, but reference relative (Rates) still exist at Booking > Resources > Cost and rates page. Its means that the Rates was not updated (re-saved) relative specific booking resource at the Booking > Resources > Cost and rates page. (8.6.1.22) *(Business Medium/Large, MultiUser)*' ) . '</li>'
|
511 |
+
. '<li>' . wpbc_recheck_strong_symbols( 'Issue of possible showing status of Stripe v.3 payment as successful at the Booking Listing page, even when its was not completed yet. (8.6.1.23) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
|
512 |
+
|
513 |
+
. '</ul>'
|
514 |
+
)
|
515 |
+
)
|
516 |
+
);
|
517 |
+
|
518 |
+
|
519 |
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
520 |
// 8.6
|
521 |
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
core/lib/wpbc-ajax.php
CHANGED
@@ -147,7 +147,7 @@ function wpbc_ajax_UPDATE_READ_UNREAD () {
|
|
147 |
function wpbc_ajax_UPDATE_APPROVE() {
|
148 |
|
149 |
global $wpdb;
|
150 |
-
|
151 |
if ( ! wpdev_check_nonce_in_admin_panel() ) return false; //FixIn: 7.2.1.10
|
152 |
|
153 |
make_bk_action('check_multiuser_params_for_client_side_by_user_id', $_POST['user_id'] );
|
@@ -182,6 +182,13 @@ function wpbc_ajax_UPDATE_APPROVE() {
|
|
182 |
die();
|
183 |
}
|
184 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
185 |
wpbc_update_number_new_bookings( explode(',', $approved_id_str) );
|
186 |
|
187 |
if ($is_approve_or_pending == '1') {
|
@@ -261,6 +268,13 @@ function wpbc_ajax_TRASH_RESTORE() {
|
|
261 |
</script> <?php
|
262 |
die();
|
263 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
264 |
?> <script type="text/javascript">
|
265 |
<?php
|
266 |
|
147 |
function wpbc_ajax_UPDATE_APPROVE() {
|
148 |
|
149 |
global $wpdb;
|
150 |
+
|
151 |
if ( ! wpdev_check_nonce_in_admin_panel() ) return false; //FixIn: 7.2.1.10
|
152 |
|
153 |
make_bk_action('check_multiuser_params_for_client_side_by_user_id', $_POST['user_id'] );
|
182 |
die();
|
183 |
}
|
184 |
|
185 |
+
//FixIn: 8.6.1.10
|
186 |
+
$curr_user = get_user_by( 'id', (int) $_POST['user_id'] );
|
187 |
+
$user_info = $curr_user->first_name . ' ' . $curr_user->last_name . ' (' . $curr_user->user_email . ')'; // get_user_meta( $curr_user->ID, 'nickname' )
|
188 |
+
wpbc_add_log_info( explode(',',$approved_id_str),
|
189 |
+
( ( $is_approve_or_pending == '1' ) ? __( 'Approved by:', 'booking' ) : __( 'Declined by:', 'booking' ) )
|
190 |
+
. ' ' . $user_info );
|
191 |
+
|
192 |
wpbc_update_number_new_bookings( explode(',', $approved_id_str) );
|
193 |
|
194 |
if ($is_approve_or_pending == '1') {
|
268 |
</script> <?php
|
269 |
die();
|
270 |
}
|
271 |
+
|
272 |
+
// Update the Hash and Cost of the booking
|
273 |
+
$booking_id_arr = explode(',', $approved_id_str ); //FixIn: 8.6.1.11
|
274 |
+
foreach ( $booking_id_arr as $booking_id ) {
|
275 |
+
make_bk_action('wpbc_update_booking_hash', $booking_id );
|
276 |
+
}
|
277 |
+
|
278 |
?> <script type="text/javascript">
|
279 |
<?php
|
280 |
|
core/lib/wpbc-booking-new.php
CHANGED
@@ -47,6 +47,7 @@ function wpbc_check_CAPTCHA( $the_answer_from_respondent, $prefix, $bktype ) {
|
|
47 |
.fadeOut( 2000 ); // hide message
|
48 |
document.getElementById('captcha_input<?php echo $bktype; ?>').focus(); // make focus to elemnt
|
49 |
jQuery('#booking_form_div<?php echo $bktype; ?> input[type=button]').prop("disabled", false);
|
|
|
50 |
</script> <?php
|
51 |
return false;
|
52 |
}
|
@@ -385,7 +386,7 @@ function wpbc_add_new_booking( $params , $is_edit_booking = false ){
|
|
385 |
die('Error during inserting into DB');
|
386 |
}
|
387 |
$booking_id = (int) $wpdb->insert_id; // Get ID of booking
|
388 |
-
|
389 |
} else {
|
390 |
|
391 |
////////////////////////////////////////////////////////////////////////////
|
@@ -418,7 +419,12 @@ function wpbc_add_new_booking( $params , $is_edit_booking = false ){
|
|
418 |
// Update the Hash and Cost of the booking
|
419 |
make_bk_action('wpbc_update_booking_hash', $booking_id, $bktype );
|
420 |
|
421 |
-
|
|
|
|
|
|
|
|
|
|
|
422 |
make_bk_action('wpdev_booking_post_inserted', $booking_id, $bktype, $str_dates__dd_mm_yyyy, array($start_time, $end_time ) , $formdata );
|
423 |
}
|
424 |
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
@@ -511,16 +517,28 @@ function wpbc_add_new_booking( $params , $is_edit_booking = false ){
|
|
511 |
$admin_uri = ltrim( str_replace( get_site_url( null, '', 'admin' ), '', admin_url('admin.php?') ), '/' ) ;
|
512 |
|
513 |
$is_show_payment_form_after_editing = true; // Default
|
514 |
-
if ( $is_edit_booking !== false ) {
|
515 |
-
|
516 |
-
}
|
517 |
if ( strpos($_SERVER['HTTP_REFERER'], $admin_uri ) === false ) {
|
518 |
-
|
|
|
|
|
519 |
if ( ( isset( $params["is_show_payment_form"]) ) && ( $params["is_show_payment_form"] == 1 ) && ( $is_show_payment_form_after_editing ) )
|
520 |
do_action('wpdev_new_booking',$booking_id, $bktype, $str_dates__dd_mm_yyyy, array($start_time, $end_time ) ,$formdata );
|
521 |
else
|
522 |
do_action('wpbc_update_cost_of_new_booking',$booking_id, $bktype, $str_dates__dd_mm_yyyy, array($start_time, $end_time ) ,$formdata );
|
523 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
524 |
|
525 |
}
|
526 |
|
@@ -854,7 +872,8 @@ function wpbc_check_if_dates_free($bktype, $formdata ,$dates_in_diff_formats, $s
|
|
854 |
// Scroll to the calendar
|
855 |
makeScroll('#calendar_booking<?php echo $bktype; ?>');
|
856 |
// Enable Submit button
|
857 |
-
jQuery('#booking_form_div<?php echo $bktype; ?> input[type=button]').prop("disabled", false);
|
|
|
858 |
}
|
859 |
</script> <?php
|
860 |
|
47 |
.fadeOut( 2000 ); // hide message
|
48 |
document.getElementById('captcha_input<?php echo $bktype; ?>').focus(); // make focus to elemnt
|
49 |
jQuery('#booking_form_div<?php echo $bktype; ?> input[type=button]').prop("disabled", false);
|
50 |
+
jQuery( '#booking_form_div<?php echo $bktype; ?> button' ).prop( "disabled", false ); //FixIn: 8.6.1.8
|
51 |
</script> <?php
|
52 |
return false;
|
53 |
}
|
386 |
die('Error during inserting into DB');
|
387 |
}
|
388 |
$booking_id = (int) $wpdb->insert_id; // Get ID of booking
|
389 |
+
|
390 |
} else {
|
391 |
|
392 |
////////////////////////////////////////////////////////////////////////////
|
419 |
// Update the Hash and Cost of the booking
|
420 |
make_bk_action('wpbc_update_booking_hash', $booking_id, $bktype );
|
421 |
|
422 |
+
//FixIn: 8.6.1.24
|
423 |
+
$is_update_cost_after_editing = get_bk_option( 'booking_payment_update_cost_after_edit_in_bap' );
|
424 |
+
|
425 |
+
if ( ( $is_edit_booking === false )
|
426 |
+
|| ( 'On' == $is_update_cost_after_editing ) ) {
|
427 |
+
//FixIn: 8.5.2.1 - do not updare cost of booking, while editing this booking.
|
428 |
make_bk_action('wpdev_booking_post_inserted', $booking_id, $bktype, $str_dates__dd_mm_yyyy, array($start_time, $end_time ) , $formdata );
|
429 |
}
|
430 |
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
517 |
$admin_uri = ltrim( str_replace( get_site_url( null, '', 'admin' ), '', admin_url('admin.php?') ), '/' ) ;
|
518 |
|
519 |
$is_show_payment_form_after_editing = true; // Default
|
520 |
+
// if ( $is_edit_booking !== false ) {
|
521 |
+
// $is_show_payment_form_after_editing = ! false; //FixIn: 8.4.6.0
|
522 |
+
// }
|
523 |
if ( strpos($_SERVER['HTTP_REFERER'], $admin_uri ) === false ) {
|
524 |
+
|
525 |
+
// Front End
|
526 |
+
|
527 |
if ( ( isset( $params["is_show_payment_form"]) ) && ( $params["is_show_payment_form"] == 1 ) && ( $is_show_payment_form_after_editing ) )
|
528 |
do_action('wpdev_new_booking',$booking_id, $bktype, $str_dates__dd_mm_yyyy, array($start_time, $end_time ) ,$formdata );
|
529 |
else
|
530 |
do_action('wpbc_update_cost_of_new_booking',$booking_id, $bktype, $str_dates__dd_mm_yyyy, array($start_time, $end_time ) ,$formdata );
|
531 |
+
|
532 |
+
} else {
|
533 |
+
|
534 |
+
// Admin panel
|
535 |
+
|
536 |
+
//FixIn: 8.6.1.24
|
537 |
+
if ( ( $is_edit_booking !== false ) && ( 'On' == $is_update_cost_after_editing ) )
|
538 |
+
do_action('wpdev_new_booking',$booking_id, $bktype, $str_dates__dd_mm_yyyy, array($start_time, $end_time ) ,$formdata ); // Update NOTES, Cost, Show Payment form,
|
539 |
+
// else
|
540 |
+
// do_action('wpbc_update_cost_of_new_booking',$booking_id, $bktype, $str_dates__dd_mm_yyyy, array($start_time, $end_time ) ,$formdata ); // Update Only cost field
|
541 |
+
}
|
542 |
|
543 |
}
|
544 |
|
872 |
// Scroll to the calendar
|
873 |
makeScroll('#calendar_booking<?php echo $bktype; ?>');
|
874 |
// Enable Submit button
|
875 |
+
jQuery('#booking_form_div<?php echo $bktype; ?> input[type=button]').prop("disabled", false);
|
876 |
+
jQuery( '#booking_form_div<?php echo $bktype; ?> button' ).prop( "disabled", false ); //FixIn: 8.6.1.8
|
877 |
}
|
878 |
</script> <?php
|
879 |
|
core/lib/wpdev-booking-class.php
CHANGED
@@ -895,7 +895,8 @@ class wpdev_booking {
|
|
895 |
|
896 |
$curr_user = wp_get_current_user();
|
897 |
if ( $curr_user->ID > 0 ) {
|
898 |
-
|
|
|
899 |
$return_form .= '<script type="text/javascript">
|
900 |
jQuery(document).ready( function(){
|
901 |
var bk_af_submit_form = document.getElementById( "booking_form'.$my_boook_type.'" );
|
@@ -910,6 +911,11 @@ class wpdev_booking {
|
|
910 |
(bk_af_element.type !=="hidden") &&
|
911 |
(bk_af_element.name !== ("date_booking'.$my_boook_type.'" ) )
|
912 |
) {
|
|
|
|
|
|
|
|
|
|
|
913 |
// Second Name
|
914 |
bk_af_reg = /^([A-Za-z0-9_\-\.])*(last|second){1}([_\-\.])?name([A-Za-z0-9_\-\.])*$/;
|
915 |
if(bk_af_reg.test(bk_af_element.name) != false)
|
@@ -1058,84 +1064,10 @@ class wpdev_booking {
|
|
1058 |
|
1059 |
*/
|
1060 |
function bookingtimeline_shortcode($attr) {
|
1061 |
-
|
1062 |
-
//if ( function_exists( 'wpbc_br_cache' ) ) $br_cache = wpbc_br_cache(); // Init booking resources cache
|
1063 |
-
|
1064 |
-
//FixIn: 8.5.2.20
|
1065 |
-
$booking_timeline_load = get_bk_option( 'booking_timeline_load' );
|
1066 |
-
if ( 'timeline_v1' != $booking_timeline_load ){
|
1067 |
-
$timeline_results = bookingflextimeline_shortcode($attr);
|
1068 |
-
return $timeline_results;
|
1069 |
-
}
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
if ( ! isset( $attr['type' ] ) ) {
|
1074 |
-
$attr['type' ] = wpbc_get_default_resource();
|
1075 |
-
}
|
1076 |
-
if ( ! isset( $attr['view_days_num' ] ) ) {
|
1077 |
-
$attr['view_days_num' ] = 30;
|
1078 |
-
}
|
1079 |
-
if ( ! isset( $attr['scroll_start_date' ] ) ) {
|
1080 |
-
$attr['scroll_start_date' ] = '';
|
1081 |
-
}
|
1082 |
-
if ( ! isset( $attr['scroll_day' ] ) ) {
|
1083 |
-
$attr['scroll_day' ] = 0;
|
1084 |
-
}
|
1085 |
-
if ( ! isset( $attr['scroll_month' ] ) ) {
|
1086 |
-
$attr['scroll_month' ] = 0;
|
1087 |
-
}
|
1088 |
-
if ( ! isset( $attr['header_title' ] ) ) {
|
1089 |
-
$attr['header_title' ] = '';
|
1090 |
-
}
|
1091 |
-
|
1092 |
-
ob_start();
|
1093 |
-
|
1094 |
-
$timeline = new WPBC_Timeline();
|
1095 |
-
|
1096 |
-
$html_client_id = $timeline->client_init( $attr ); // Define arameters and get bookings
|
1097 |
-
|
1098 |
-
//wpbc_bs_javascript_tooltips(); // JS Tooltips
|
1099 |
-
// if ( ! $this->popover_front_end_js_is_writed ) { //Write this JS only once at page
|
1100 |
-
// wpbc_bs_javascript_popover(); // JS Popover
|
1101 |
-
// $this->popover_front_end_js_is_writed = true;
|
1102 |
-
// }
|
1103 |
-
//wpbc_datepicker_js(); // JS Datepicker
|
1104 |
-
//wpbc_datepicker_css(); // CSS DatePicker
|
1105 |
-
|
1106 |
-
echo '<div class="wpdevelop">';
|
1107 |
-
|
1108 |
-
echo '<div id="'.$html_client_id.'" class="wpbc_timeline_client_border">';
|
1109 |
-
|
1110 |
-
echo wp_nonce_field( 'WPBC_TIMELINE_NAV', 'wpbc_nonce_' . $html_client_id , true , false );
|
1111 |
-
echo '<div id="ajax_respond_insert'.$html_client_id.'" class="ajax_respond_insert" style="display:none;"></div>';
|
1112 |
-
|
1113 |
-
echo '<div class="wpbc_timeline_ajax_replace">';
|
1114 |
-
if ( ! $this->popover_front_end_js_is_writed ) { //Write this JS only once at page
|
1115 |
-
wpbc_bs_javascript_popover(); // JS Popover
|
1116 |
-
$this->popover_front_end_js_is_writed = true;
|
1117 |
-
|
1118 |
-
//Define Globar JavaScript Object - array of objects.
|
1119 |
-
?>
|
1120 |
-
<script type="text/javascript">
|
1121 |
-
var wpbc_timeline_obj = {};
|
1122 |
-
</script>
|
1123 |
-
<?php
|
1124 |
-
}
|
1125 |
-
|
1126 |
-
$timeline->show_timeline();
|
1127 |
-
echo '</div>';
|
1128 |
-
|
1129 |
-
|
1130 |
-
echo '</div>';
|
1131 |
-
|
1132 |
-
echo '</div>';
|
1133 |
-
|
1134 |
-
$timeline_results = ob_get_contents();
|
1135 |
-
|
1136 |
-
ob_end_clean();
|
1137 |
|
1138 |
-
|
|
|
|
|
1139 |
}
|
1140 |
|
1141 |
// Replace MARK at post with content at client side ----- [booking nummonths='1' type='1']
|
895 |
|
896 |
$curr_user = wp_get_current_user();
|
897 |
if ( $curr_user->ID > 0 ) {
|
898 |
+
//$user_nick_name =get_user_meta($curr_user->ID, 'nickname')[0];
|
899 |
+
//debuge( $user_nick_name );
|
900 |
$return_form .= '<script type="text/javascript">
|
901 |
jQuery(document).ready( function(){
|
902 |
var bk_af_submit_form = document.getElementById( "booking_form'.$my_boook_type.'" );
|
911 |
(bk_af_element.type !=="hidden") &&
|
912 |
(bk_af_element.name !== ("date_booking'.$my_boook_type.'" ) )
|
913 |
) {
|
914 |
+
// NickName //FixIn: 8.6.1.2
|
915 |
+
bk_af_reg = /^([A-Za-z0-9_\-\.])*(nickname){1}([A-Za-z0-9_\-\.])*$/;
|
916 |
+
if(bk_af_reg.test(bk_af_element.name) != false)
|
917 |
+
if (bk_af_element.value == "" )
|
918 |
+
bk_af_element.value = "' . str_replace( "'", '', empty( get_user_meta( $curr_user->ID, 'nickname' ) ) ? '' : get_user_meta( $curr_user->ID, 'nickname' )[0] ) . '";
|
919 |
// Second Name
|
920 |
bk_af_reg = /^([A-Za-z0-9_\-\.])*(last|second){1}([_\-\.])?name([A-Za-z0-9_\-\.])*$/;
|
921 |
if(bk_af_reg.test(bk_af_element.name) != false)
|
1064 |
|
1065 |
*/
|
1066 |
function bookingtimeline_shortcode($attr) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1067 |
|
1068 |
+
//FixIn: 8.6.1.13
|
1069 |
+
$timeline_results = bookingflextimeline_shortcode($attr);
|
1070 |
+
return $timeline_results;
|
1071 |
}
|
1072 |
|
1073 |
// Replace MARK at post with content at client side ----- [booking nummonths='1' type='1']
|
core/lib/wpdev-booking-widget.php
CHANGED
@@ -71,7 +71,7 @@ class BookingWidget extends WP_Widget {
|
|
71 |
|
72 |
$instance['booking_widget_title'] = strip_tags($new_instance['booking_widget_title']);
|
73 |
$instance['booking_widget_show'] = strip_tags($new_instance['booking_widget_show']);
|
74 |
-
$instance['booking_widget_type']
|
75 |
$instance['booking_widget_calendar_count'] = strip_tags($new_instance['booking_widget_calendar_count']);
|
76 |
$instance['booking_widget_last_field'] = $new_instance['booking_widget_last_field'];
|
77 |
return $instance;
|
71 |
|
72 |
$instance['booking_widget_title'] = strip_tags($new_instance['booking_widget_title']);
|
73 |
$instance['booking_widget_show'] = strip_tags($new_instance['booking_widget_show']);
|
74 |
+
$instance['booking_widget_type'] = ( empty( $new_instance['booking_widget_type'] ) ? 1 : strip_tags( $new_instance['booking_widget_type'] ) );
|
75 |
$instance['booking_widget_calendar_count'] = strip_tags($new_instance['booking_widget_calendar_count']);
|
76 |
$instance['booking_widget_last_field'] = $new_instance['booking_widget_last_field'];
|
77 |
return $instance;
|
core/sync/wpbc-gcal-class.php
CHANGED
@@ -342,10 +342,45 @@ class WPBC_Google_Calendar {
|
|
342 |
else
|
343 |
continue; // Skip if we gave no dates
|
344 |
|
345 |
-
//debuge($range_dates, $range_time);
|
346 |
$bktype = $this->getResource();
|
347 |
-
|
348 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
349 |
$previous_active_user = -1;
|
350 |
// MU
|
351 |
if ( class_exists('wpdev_bk_multiuser') ) {
|
342 |
else
|
343 |
continue; // Skip if we gave no dates
|
344 |
|
345 |
+
//debuge($range_dates, $range_time);
|
346 |
$bktype = $this->getResource();
|
347 |
+
|
348 |
+
//FixIn: 8.6.1.4
|
349 |
+
if ( ( class_exists( 'wpdev_bk_biz_s' ) )
|
350 |
+
&& ( get_bk_option( 'booking_range_selection_time_is_active') == 'On' )
|
351 |
+
&& ( get_bk_option( 'booking_ics_import_add_change_over_time' ) !== 'Off' )
|
352 |
+
&& ( get_bk_option( 'booking_ics_import_append_checkout_day' ) !== 'Off' )
|
353 |
+
) {
|
354 |
+
// Add one additional day to .ics event (useful in some cases for bookings with change-over days),
|
355 |
+
// if the imported .ics dates is coming without check in/our times
|
356 |
+
// Later system is adding check in/out times from Booking Calendar to this event
|
357 |
+
$range_dates_arr = explode( ',', $range_dates );
|
358 |
+
$ics_event_check_out = trim( $range_dates_arr[ ( count( $range_dates_arr ) - 1 ) ] );
|
359 |
+
$ics_event_check_out = explode( '.', $ics_event_check_out );
|
360 |
+
$ics_event_check_out = $ics_event_check_out[2] . '-' . $ics_event_check_out[1] . '-' . $ics_event_check_out[0];
|
361 |
+
|
362 |
+
$ics_event_check_out = strtotime( $ics_event_check_out );
|
363 |
+
$ics_event_check_out = strtotime( '+1 day', $ics_event_check_out );
|
364 |
+
$ics_event_check_out = date_i18n( "d.m.Y", $ics_event_check_out );
|
365 |
+
$range_dates .= ', ' . $ics_event_check_out;
|
366 |
+
}
|
367 |
+
|
368 |
+
//FixIn: 8.6.1.1
|
369 |
+
if ( empty( $range_time ) ) {
|
370 |
+
|
371 |
+
if ( ( class_exists( 'wpdev_bk_biz_s' ) )
|
372 |
+
&& ( get_bk_option( 'booking_range_selection_time_is_active') == 'On' )
|
373 |
+
&& ( get_bk_option( 'booking_ics_import_add_change_over_time' ) !== 'Off' )
|
374 |
+
) { //FixIn: 2.0.5.1
|
375 |
+
//Add check in/out times to full day events
|
376 |
+
$wpbc_check_in = get_bk_option( 'booking_range_selection_start_time' );// . ':01'; // ' 14:00:01'
|
377 |
+
$wpbc_check_out = get_bk_option( 'booking_range_selection_end_time' ); // . ':02'; // ' 10:00:02';
|
378 |
+
$range_time = $wpbc_check_in . ' - ' . $wpbc_check_out;
|
379 |
+
$range_time = "select-one^rangetime{$bktype}^{$range_time}~";
|
380 |
+
}
|
381 |
+
}
|
382 |
+
//debuge($range_dates, $range_time); // array( [0] => 07.08.2017, 08.08.2017, [1] => select-one^rangetime4^03:00 - 07:00~ )
|
383 |
+
|
384 |
$previous_active_user = -1;
|
385 |
// MU
|
386 |
if ( class_exists('wpdev_bk_multiuser') ) {
|
core/timeline/v2/wpbc-class-timeline_v2.php
CHANGED
@@ -1648,7 +1648,7 @@ if(0)
|
|
1648 |
if ( function_exists( 'get_title_for_showing_in_day' ) ) {
|
1649 |
$text_in_day_cell .= esc_textarea( get_title_for_showing_in_day( $bk_id, $bookings, $what_show_in_day_template ) ); //FixIn: 7.1.1.2
|
1650 |
} else {
|
1651 |
-
if ( ! $this->is_frontend )
|
1652 |
$text_in_day_cell .= $bk_id . ':' . esc_textarea( $bookings[$bk_id]->form_data['_all_fields_']['name'] ); // Default Free //FixIn: 7.1.1.2
|
1653 |
}
|
1654 |
|
@@ -2637,7 +2637,8 @@ if(0)
|
|
2637 |
// $edit_booking_url_admin = wpbc_get_bookings_url( true, false ).'&wh_booking_id='.$bk_id.'&view_mode=vm_listing&tab=actions';
|
2638 |
// $trash_booking_url_admin = wpbc_get_bookings_url( true, false ).'&wh_booking_id='.$bk_id.'&view_mode=vm_listing&tab=actions';
|
2639 |
|
2640 |
-
|
|
|
2641 |
$visitorbookingediturl = apply_bk_filter( 'wpdev_booking_set_booking_edit_link_at_email', '[visitorbookingediturl]', $bk_id );
|
2642 |
$visitorbookingcancelurl = apply_bk_filter( 'wpdev_booking_set_booking_edit_link_at_email', '[visitorbookingcancelurl]', $bk_id );
|
2643 |
$visitorbookingpayurl = apply_bk_filter( 'wpdev_booking_set_booking_edit_link_at_email', '[visitorbookingpayurl]', $bk_id );
|
@@ -3001,10 +3002,7 @@ add_shortcode( 'bookingflextimeline', 'bookingflextimeline_shortcode' );
|
|
3001 |
/** JSS */
|
3002 |
function wpbc_timeline_js_load_files( $where_to_load ) {
|
3003 |
|
3004 |
-
|
3005 |
-
if ( 'timeline_v1' == $booking_timeline_load ){
|
3006 |
-
return;
|
3007 |
-
}
|
3008 |
|
3009 |
$is_in_footer = ! true;
|
3010 |
|
@@ -3024,10 +3022,7 @@ add_action( 'wpbc_enqueue_js_files', 'wpbc_timeline_js_load_files', 50 );
|
|
3024 |
/** CSS */
|
3025 |
function wpbc_timeline_enqueue_css_files( $where_to_load ) {
|
3026 |
|
3027 |
-
|
3028 |
-
if ( 'timeline_v1' == $booking_timeline_load ){
|
3029 |
-
return;
|
3030 |
-
}
|
3031 |
|
3032 |
if ( in_array( $where_to_load, array( 'admin', 'both', 'client' ) ) ) {
|
3033 |
|
1648 |
if ( function_exists( 'get_title_for_showing_in_day' ) ) {
|
1649 |
$text_in_day_cell .= esc_textarea( get_title_for_showing_in_day( $bk_id, $bookings, $what_show_in_day_template ) ); //FixIn: 7.1.1.2
|
1650 |
} else {
|
1651 |
+
if ( ( ! $this->is_frontend ) && ( isset( $bookings[ $bk_id ]->form_data['_all_fields_']['name'] ) ) )
|
1652 |
$text_in_day_cell .= $bk_id . ':' . esc_textarea( $bookings[$bk_id]->form_data['_all_fields_']['name'] ); // Default Free //FixIn: 7.1.1.2
|
1653 |
}
|
1654 |
|
2637 |
// $edit_booking_url_admin = wpbc_get_bookings_url( true, false ).'&wh_booking_id='.$bk_id.'&view_mode=vm_listing&tab=actions';
|
2638 |
// $trash_booking_url_admin = wpbc_get_bookings_url( true, false ).'&wh_booking_id='.$bk_id.'&view_mode=vm_listing&tab=actions';
|
2639 |
|
2640 |
+
$is_change_hash_after_approvement = get_bk_option( 'booking_is_change_hash_after_approvement' ); //FixIn: 8.6.1.6
|
2641 |
+
if ( ( ! $is_approved ) || ( 'On' != $is_change_hash_after_approvement ) ) { //FixIn: 8.2.1.14
|
2642 |
$visitorbookingediturl = apply_bk_filter( 'wpdev_booking_set_booking_edit_link_at_email', '[visitorbookingediturl]', $bk_id );
|
2643 |
$visitorbookingcancelurl = apply_bk_filter( 'wpdev_booking_set_booking_edit_link_at_email', '[visitorbookingcancelurl]', $bk_id );
|
2644 |
$visitorbookingpayurl = apply_bk_filter( 'wpdev_booking_set_booking_edit_link_at_email', '[visitorbookingpayurl]', $bk_id );
|
3002 |
/** JSS */
|
3003 |
function wpbc_timeline_js_load_files( $where_to_load ) {
|
3004 |
|
3005 |
+
//FixIn: 8.6.1.13
|
|
|
|
|
|
|
3006 |
|
3007 |
$is_in_footer = ! true;
|
3008 |
|
3022 |
/** CSS */
|
3023 |
function wpbc_timeline_enqueue_css_files( $where_to_load ) {
|
3024 |
|
3025 |
+
//FixIn: 8.6.1.13
|
|
|
|
|
|
|
3026 |
|
3027 |
if ( in_array( $where_to_load, array( 'admin', 'both', 'client' ) ) ) {
|
3028 |
|
core/wpbc-activation.php
CHANGED
@@ -858,8 +858,7 @@ function wpbc_get_default_options( $option_name = '', $is_get_multiuser_general_
|
|
858 |
$mu_option4delete[]='booking_listing_default_view_mode';
|
859 |
$default_options['booking_view_days_num'] = ( ( ! class_exists( 'wpdev_bk_personal' ) ) ? '90' : '30' );
|
860 |
$mu_option4delete[]='booking_view_days_num';
|
861 |
-
|
862 |
-
$mu_option4delete[]='booking_timeline_load';
|
863 |
$default_options['booking_max_monthes_in_calendar'] = '1y';
|
864 |
$mu_option4delete[]='booking_max_monthes_in_calendar';
|
865 |
$default_options['booking_client_cal_count'] = '1';
|
@@ -1137,6 +1136,9 @@ function wpbc_get_default_options( $option_name = '', $is_get_multiuser_general_
|
|
1137 |
$default_options['booking_change_resource_skip_checking'] = 'Off'; //FixIn: 8.4.5.4
|
1138 |
$mu_option4delete[]='booking_change_resource_skip_checking';
|
1139 |
|
|
|
|
|
|
|
1140 |
|
1141 |
}
|
1142 |
|
@@ -1300,6 +1302,8 @@ function wpbc_get_default_options( $option_name = '', $is_get_multiuser_general_
|
|
1300 |
$mu_option4delete[]='booking_cache_expiration';
|
1301 |
$default_options['booking_search_results_order'] = 'prioritet'; //FixIn: 8.4.7.8
|
1302 |
$mu_option4delete[]='booking_search_results_order';
|
|
|
|
|
1303 |
|
1304 |
// Updated during regeneration seacrh cache
|
1305 |
//$default_options['booking_cache_content']='';
|
858 |
$mu_option4delete[]='booking_listing_default_view_mode';
|
859 |
$default_options['booking_view_days_num'] = ( ( ! class_exists( 'wpdev_bk_personal' ) ) ? '90' : '30' );
|
860 |
$mu_option4delete[]='booking_view_days_num';
|
861 |
+
//FixIn: 8.6.1.13
|
|
|
862 |
$default_options['booking_max_monthes_in_calendar'] = '1y';
|
863 |
$mu_option4delete[]='booking_max_monthes_in_calendar';
|
864 |
$default_options['booking_client_cal_count'] = '1';
|
1136 |
$default_options['booking_change_resource_skip_checking'] = 'Off'; //FixIn: 8.4.5.4
|
1137 |
$mu_option4delete[]='booking_change_resource_skip_checking';
|
1138 |
|
1139 |
+
$default_options['booking_log_booking_actions'] = 'Off'; //FixIn: 8.6.1.10
|
1140 |
+
$mu_option4delete[]='booking_log_booking_actions';
|
1141 |
+
|
1142 |
|
1143 |
}
|
1144 |
|
1302 |
$mu_option4delete[]='booking_cache_expiration';
|
1303 |
$default_options['booking_search_results_order'] = 'prioritet'; //FixIn: 8.4.7.8
|
1304 |
$mu_option4delete[]='booking_search_results_order';
|
1305 |
+
$default_options['booking_search_form_dates_format'] = 'yy-mm-dd'; //FixIn: 8.6.1.21
|
1306 |
+
$mu_option4delete[]='booking_search_form_dates_format';
|
1307 |
|
1308 |
// Updated during regeneration seacrh cache
|
1309 |
//$default_options['booking_cache_content']='';
|
core/wpbc-constants.php
CHANGED
@@ -26,7 +26,7 @@ if ( ! defined( 'WP_BK_CHECK_OUT_MINUS_DAY_SEARCH' ) ) { define( 'WP_BK_C
|
|
26 |
////////////////////////////////////////////////////////////
|
27 |
// SYSTEM CONSTANTS //////////////
|
28 |
////////////////////////////////////////////////////////////
|
29 |
-
if ( ! defined( 'WP_BK_MINOR_UPDATE' ) ) { define( 'WP_BK_MINOR_UPDATE', !
|
30 |
if ( ! defined( 'WP_BK_RESPONSE' ) ) { define( 'WP_BK_RESPONSE', false ); }
|
31 |
if ( ! defined( 'WP_BK_BETA_DATA_FILL' ) ) { define( 'WP_BK_BETA_DATA_FILL', 0 ); } // Set 0 for no filling or 2 for 241 bookings or more for more
|
32 |
|
26 |
////////////////////////////////////////////////////////////
|
27 |
// SYSTEM CONSTANTS //////////////
|
28 |
////////////////////////////////////////////////////////////
|
29 |
+
if ( ! defined( 'WP_BK_MINOR_UPDATE' ) ) { define( 'WP_BK_MINOR_UPDATE', !true ); }
|
30 |
if ( ! defined( 'WP_BK_RESPONSE' ) ) { define( 'WP_BK_RESPONSE', false ); }
|
31 |
if ( ! defined( 'WP_BK_BETA_DATA_FILL' ) ) { define( 'WP_BK_BETA_DATA_FILL', 0 ); } // Set 0 for no filling or 2 for 241 bookings or more for more
|
32 |
|
core/wpbc-css.php
CHANGED
@@ -68,18 +68,30 @@ class WPBC_CSS extends WPBC_JS_CSS{
|
|
68 |
wp_enqueue_style( 'wpbc-admin-pages', wpbc_plugin_url( '/css/admin.css' ), array(), WP_BK_VERSION_NUM);
|
69 |
wp_enqueue_style( 'wpbc-admin-skin', wpbc_plugin_url( '/css/admin-skin.css' ), array( 'wpbc-admin-pages' ), WP_BK_VERSION_NUM); //FixIn: 8.0.2.4
|
70 |
wp_enqueue_style( 'wpbc-css-print', wpbc_plugin_url( '/css/print.css' ), array(), WP_BK_VERSION_NUM);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
}
|
72 |
if ( ( $where_to_load != 'admin' ) || ( wpbc_is_new_booking_page() ) ){ // Client or Add New Booking page
|
73 |
wp_enqueue_style( 'wpbc-client-pages', wpbc_plugin_url( '/css/client.css' ), array(), WP_BK_VERSION_NUM);
|
74 |
}
|
75 |
|
76 |
-
|
77 |
-
$booking_timeline_load = get_bk_option( 'booking_timeline_load' );
|
78 |
-
if ( 'timeline_v1' == $booking_timeline_load ) {
|
79 |
-
if ( ( $where_to_load != 'admin' ) || ( wpbc_is_bookings_page() ) ) { // Client or Booking Listing / Timeline pages
|
80 |
-
wp_enqueue_style( 'wpbc-admin-timeline', wpbc_plugin_url( '/css/timeline.css' ), array(), WP_BK_VERSION_NUM );
|
81 |
-
}
|
82 |
-
}
|
83 |
|
84 |
// wp_enqueue_style('wpbc-datepicker-main', wpbc_plugin_url( '/js/datepick.5.1/css/jquery.datepick.css' ), array(), WP_BK_VERSION_NUM);
|
85 |
|
68 |
wp_enqueue_style( 'wpbc-admin-pages', wpbc_plugin_url( '/css/admin.css' ), array(), WP_BK_VERSION_NUM);
|
69 |
wp_enqueue_style( 'wpbc-admin-skin', wpbc_plugin_url( '/css/admin-skin.css' ), array( 'wpbc-admin-pages' ), WP_BK_VERSION_NUM); //FixIn: 8.0.2.4
|
70 |
wp_enqueue_style( 'wpbc-css-print', wpbc_plugin_url( '/css/print.css' ), array(), WP_BK_VERSION_NUM);
|
71 |
+
|
72 |
+
global $wp_version;
|
73 |
+
|
74 |
+
if ( ( version_compare( $wp_version, '5.3', '>=' ) )
|
75 |
+
|| ( version_compare( $wp_version, '5.3-RC2-46574', '>=' ) )
|
76 |
+
){
|
77 |
+
/* The SVG is arrow-down-alt2 from Dashicons. */
|
78 |
+
$css = "
|
79 |
+
.wp-core-ui .wpdevelop .control-group .btn-toolbar .input-group > select,
|
80 |
+
.wp-core-ui .wpdevelop select.form-control {
|
81 |
+
background: #fff url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E') no-repeat right 5px top 55%;
|
82 |
+
padding: 2px 30px 2px 10px;
|
83 |
+
}
|
84 |
+
";
|
85 |
+
wp_add_inline_style( 'wpbc-admin-pages', $css );
|
86 |
+
}
|
87 |
+
|
88 |
+
|
89 |
}
|
90 |
if ( ( $where_to_load != 'admin' ) || ( wpbc_is_new_booking_page() ) ){ // Client or Add New Booking page
|
91 |
wp_enqueue_style( 'wpbc-client-pages', wpbc_plugin_url( '/css/client.css' ), array(), WP_BK_VERSION_NUM);
|
92 |
}
|
93 |
|
94 |
+
//FixIn: 8.6.1.13
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
|
96 |
// wp_enqueue_style('wpbc-datepicker-main', wpbc_plugin_url( '/js/datepick.5.1/css/jquery.datepick.css' ), array(), WP_BK_VERSION_NUM);
|
97 |
|
core/wpbc-dev-api.php
CHANGED
@@ -403,6 +403,4 @@ function your_cust_func_add_new_booking( $booking_id, $resource_id, $str_dates__
|
|
403 |
|
404 |
}
|
405 |
add_action( 'wpdev_new_booking', 'your_cust_func_add_new_booking', 100, 5 );
|
406 |
-
*/
|
407 |
-
|
408 |
-
|
403 |
|
404 |
}
|
405 |
add_action( 'wpdev_new_booking', 'your_cust_func_add_new_booking', 100, 5 );
|
406 |
+
*/
|
|
|
|
core/wpbc-functions.php
CHANGED
@@ -2561,8 +2561,6 @@ function wpbc_print_js() {
|
|
2561 |
|
2562 |
if ( ! empty( $wpbc_queued_js ) ) {
|
2563 |
|
2564 |
-
echo "<!-- WPBC JavaScript -->\n<script type=\"text/javascript\">\njQuery(function($) {";
|
2565 |
-
|
2566 |
$wpbc_queued_js = wp_check_invalid_utf8( $wpbc_queued_js );
|
2567 |
|
2568 |
$wpbc_queued_js = wp_specialchars_decode( $wpbc_queued_js , ENT_COMPAT); // Converts double quotes '"' => '"'
|
@@ -2570,7 +2568,7 @@ function wpbc_print_js() {
|
|
2570 |
$wpbc_queued_js = preg_replace( '/&#(x)?0*(?(1)27|39);?/i', "'", $wpbc_queued_js );
|
2571 |
$wpbc_queued_js = str_replace( "\r", '', $wpbc_queued_js );
|
2572 |
|
2573 |
-
echo $wpbc_queued_js . "});\n</script>\n<!-- End WPBC JavaScript -->\n";
|
2574 |
|
2575 |
$wpbc_queued_js = '';
|
2576 |
unset( $wpbc_queued_js );
|
@@ -2691,7 +2689,7 @@ function wpbc_welcome_panel() {
|
|
2691 |
left: -12px;
|
2692 |
width: 10px;
|
2693 |
height: 100%;
|
2694 |
-
background: url('../wp-admin/images/xit.gif') 0 7% no-repeat
|
2695 |
}
|
2696 |
.wpbc-panel .welcome-panel .welcome-panel-close:hover:before {
|
2697 |
background-position: 100% 7%;
|
@@ -3489,4 +3487,27 @@ function wpbc_auto_cancel_booking( $booking_id , $email_reason = '' ) { //Fi
|
|
3489 |
|
3490 |
wpbc_redirect( site_url() );
|
3491 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3492 |
}
|
2561 |
|
2562 |
if ( ! empty( $wpbc_queued_js ) ) {
|
2563 |
|
|
|
|
|
2564 |
$wpbc_queued_js = wp_check_invalid_utf8( $wpbc_queued_js );
|
2565 |
|
2566 |
$wpbc_queued_js = wp_specialchars_decode( $wpbc_queued_js , ENT_COMPAT); // Converts double quotes '"' => '"'
|
2568 |
$wpbc_queued_js = preg_replace( '/&#(x)?0*(?(1)27|39);?/i', "'", $wpbc_queued_js );
|
2569 |
$wpbc_queued_js = str_replace( "\r", '', $wpbc_queued_js );
|
2570 |
|
2571 |
+
echo "<!-- WPBC JavaScript -->\n<script type=\"text/javascript\">\njQuery(function($) {" . $wpbc_queued_js . "});\n</script>\n<!-- End WPBC JavaScript -->\n";
|
2572 |
|
2573 |
$wpbc_queued_js = '';
|
2574 |
unset( $wpbc_queued_js );
|
2689 |
left: -12px;
|
2690 |
width: 10px;
|
2691 |
height: 100%;
|
2692 |
+
/*background: url('../wp-admin/images/xit.gif') 0 7% no-repeat;*/
|
2693 |
}
|
2694 |
.wpbc-panel .welcome-panel .welcome-panel-close:hover:before {
|
2695 |
background-position: 100% 7%;
|
3487 |
|
3488 |
wpbc_redirect( site_url() );
|
3489 |
}
|
3490 |
+
}
|
3491 |
+
|
3492 |
+
|
3493 |
+
//FixIn: 8.6.1.10
|
3494 |
+
/**
|
3495 |
+
* Add Log info to Notes of bookings
|
3496 |
+
*
|
3497 |
+
* @param arr | int $booking_id_arr
|
3498 |
+
* @param string $message
|
3499 |
+
*/
|
3500 |
+
function wpbc_add_log_info( $booking_id_arr, $message ) {
|
3501 |
+
|
3502 |
+
if ( get_bk_option( 'booking_log_booking_actions' ) !== 'On' ) {
|
3503 |
+
return;
|
3504 |
+
}
|
3505 |
+
|
3506 |
+
$booking_id_arr = (array) $booking_id_arr;
|
3507 |
+
|
3508 |
+
$is_append = true;
|
3509 |
+
foreach ( $booking_id_arr as $booking_id ) {
|
3510 |
+
$date_time = date_i18n( ' [Y-m-d H:i]' );
|
3511 |
+
make_bk_action('wpdev_make_update_of_remark' , $booking_id , $message . $date_time , $is_append );
|
3512 |
+
}
|
3513 |
}
|
core/wpbc-include.php
CHANGED
@@ -46,13 +46,8 @@ require_once( WPBC_PLUGIN_DIR . '/core/admin/wpbc-toolbars.php' );
|
|
46 |
require_once( WPBC_PLUGIN_DIR . '/core/admin/wpbc-sql.php' ); // Data Engine for Booking Listing / Calendar Overview pages
|
47 |
require_once( WPBC_PLUGIN_DIR . '/core/admin/wpbc-class-listing.php' ); // CLASS. Booking Listing Table
|
48 |
|
49 |
-
|
50 |
-
|
51 |
-
if ( 'timeline_v1' == $booking_timeline_load ){
|
52 |
-
require_once( WPBC_PLUGIN_DIR . '/core/admin/wpbc-class-timeline.php' ); // CLASS. Timeline
|
53 |
-
} else {
|
54 |
-
require_once( WPBC_PLUGIN_DIR . '/core/timeline/flex-timeline.php' ); // New. Flex. Timeline
|
55 |
-
}
|
56 |
|
57 |
require_once( WPBC_PLUGIN_DIR . '/core/admin/wpbc-dashboard.php' ); // Dashboard Widget
|
58 |
// Admin Pages
|
46 |
require_once( WPBC_PLUGIN_DIR . '/core/admin/wpbc-sql.php' ); // Data Engine for Booking Listing / Calendar Overview pages
|
47 |
require_once( WPBC_PLUGIN_DIR . '/core/admin/wpbc-class-listing.php' ); // CLASS. Booking Listing Table
|
48 |
|
49 |
+
//FixIn: 8.6.1.13
|
50 |
+
require_once( WPBC_PLUGIN_DIR . '/core/timeline/flex-timeline.php' ); // New. Flex. Timeline
|
|
|
|
|
|
|
|
|
|
|
51 |
|
52 |
require_once( WPBC_PLUGIN_DIR . '/core/admin/wpbc-dashboard.php' ); // Dashboard Widget
|
53 |
// Admin Pages
|
css/admin-skin.css
CHANGED
@@ -74,7 +74,9 @@
|
|
74 |
/* In Dropdown lists buttons */
|
75 |
.wpdevelop .dropdown-menu > li .btn-group .button {
|
76 |
font-size: 14px;
|
77 |
-
line-height:
|
|
|
|
|
78 |
}
|
79 |
.wpdevelop .dropdown-menu li .btn-toolbar .input-group.text-group .dropdown-menu-text-element {
|
80 |
width:100%;
|
74 |
/* In Dropdown lists buttons */
|
75 |
.wpdevelop .dropdown-menu > li .btn-group .button {
|
76 |
font-size: 14px;
|
77 |
+
line-height: 1.4;
|
78 |
+
height: auto;
|
79 |
+
padding: 5px 15px;
|
80 |
}
|
81 |
.wpdevelop .dropdown-menu li .btn-toolbar .input-group.text-group .dropdown-menu-text-element {
|
82 |
width:100%;
|
css/admin.css
CHANGED
@@ -162,4 +162,145 @@ select option.wpbc_child_resource{
|
|
162 |
.field-action-buttons.booking-actions.col-sm-2 {
|
163 |
text-align: left;
|
164 |
}
|
165 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
162 |
.field-action-buttons.booking-actions.col-sm-2 {
|
163 |
text-align: left;
|
164 |
}
|
165 |
+
}
|
166 |
+
|
167 |
+
|
168 |
+
|
169 |
+
|
170 |
+
/** WordPress 5.3 Fix ***********************************************************************************************/
|
171 |
+
|
172 |
+
/* General */
|
173 |
+
.wp-core-ui .wpbc_page .button,
|
174 |
+
.wp-core-ui .wpbc_page .button-primary,
|
175 |
+
.wp-core-ui .wpbc_page .button-secondary {
|
176 |
+
/*
|
177 |
+
line-height: 2.15384615;
|
178 |
+
min-height: 30px;
|
179 |
+
padding: 0 10px;
|
180 |
+
*/
|
181 |
+
line-height: 26px;
|
182 |
+
height: 28px;
|
183 |
+
padding: 0 10px 1px;
|
184 |
+
}
|
185 |
+
/* Secondary buttons styles */
|
186 |
+
.wp-core-ui .wpbc_page .button,
|
187 |
+
.wp-core-ui .wpbc_page .button-secondary {
|
188 |
+
/*
|
189 |
+
color: #0071a1;
|
190 |
+
border-color: #0071a1;
|
191 |
+
background: #f3f5f6;
|
192 |
+
*/
|
193 |
+
color: #555;
|
194 |
+
border-color: #ccc;
|
195 |
+
background: #f7f7f7;
|
196 |
+
/*box-shadow: 0 1px 0 #ccc;*/
|
197 |
+
box-shadow: none;
|
198 |
+
}
|
199 |
+
.wp-core-ui .wpbc_page .button-secondary:active,
|
200 |
+
.wp-core-ui .wpbc_page .button.active,
|
201 |
+
.wp-core-ui .wpbc_page .button.active:hover,
|
202 |
+
.wp-core-ui .wpbc_page .button:active {
|
203 |
+
box-shadow: inset 0 2px 5px -3px rgba(0,0,0,.5);
|
204 |
+
transform: translateY(1px);
|
205 |
+
}
|
206 |
+
|
207 |
+
/* Secondary buttons :hover styles */
|
208 |
+
.wp-core-ui .wpbc_page .button-secondary:hover,
|
209 |
+
.wp-core-ui .wpbc_page .button.hover,
|
210 |
+
.wp-core-ui .wpbc_page .button:hover {
|
211 |
+
/*background: #f1f1f1;
|
212 |
+
border-color: #016087;
|
213 |
+
color: #016087;
|
214 |
+
*/
|
215 |
+
}
|
216 |
+
/* Secondary buttons :focus :hover styles */
|
217 |
+
.wp-core-ui .wpbc_page .button-secondary:focus,
|
218 |
+
.wp-core-ui .wpbc_page .button-secondary:hover,
|
219 |
+
.wp-core-ui .wpbc_page .button.focus,
|
220 |
+
.wp-core-ui .wpbc_page .button.hover,
|
221 |
+
.wp-core-ui .wpbc_page .button:focus,
|
222 |
+
.wp-core-ui .wpbc_page .button:hover {
|
223 |
+
background: #fafafa;
|
224 |
+
border-color: #999;
|
225 |
+
color: #23282d;
|
226 |
+
}
|
227 |
+
/* Secondary buttons :focus styles */
|
228 |
+
.wp-core-ui .wpbc_page .button-secondary:focus,
|
229 |
+
.wp-core-ui .wpbc_page .button.focus,
|
230 |
+
.wp-core-ui .wpbc_page .button:focus {
|
231 |
+
/*background: #f3f5f6;
|
232 |
+
border-color: #007cba;
|
233 |
+
color: #016087;
|
234 |
+
box-shadow: 0 0 0 1px #007cba;
|
235 |
+
outline: 2px solid transparent;
|
236 |
+
outline-offset: 0;*/
|
237 |
+
border-color: #5b9dd9;
|
238 |
+
box-shadow: 0 0 3px rgba(0,115,170,.8);
|
239 |
+
}
|
240 |
+
|
241 |
+
/* Primary buttons styles */
|
242 |
+
.wp-core-ui .wpbc_page .button-primary {
|
243 |
+
/*background: #007cba;
|
244 |
+
border-color: #007cba;
|
245 |
+
text-shadow: none;
|
246 |
+
*/
|
247 |
+
background: #0085ba;
|
248 |
+
border-color: #0073aa #006799 #006799;
|
249 |
+
box-shadow: 0 1px 0 #006799;
|
250 |
+
text-shadow: 0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799;
|
251 |
+
color: #fff;
|
252 |
+
}
|
253 |
+
/* Primary buttons :hover styles */
|
254 |
+
.wp-core-ui .wpbc_page .button-primary.focus,
|
255 |
+
.wp-core-ui .wpbc_page .button-primary.hover,
|
256 |
+
.wp-core-ui .wpbc_page .button-primary:focus,
|
257 |
+
.wp-core-ui .wpbc_page .button-primary:hover {
|
258 |
+
/*
|
259 |
+
background: #0071a1;
|
260 |
+
border-color: #0071a1;
|
261 |
+
*/
|
262 |
+
background: #008ec2;
|
263 |
+
border-color: #006799;
|
264 |
+
color:#fff;
|
265 |
+
}
|
266 |
+
/* Primary buttons :focus styles */
|
267 |
+
.wp-core-ui .wpbc_page .button-primary.focus,
|
268 |
+
.wp-core-ui .wpbc_page .button-primary:focus {
|
269 |
+
box-shadow: 0 1px 0 #0073aa, 0 0 2px 1px #33b3db;
|
270 |
+
}
|
271 |
+
/**********************************************************************************************************************/
|
272 |
+
.wp-core-ui .wpbc_page .control-group input[type="text"] {
|
273 |
+
min-height: 26px;
|
274 |
+
}
|
275 |
+
.wp-core-ui .wpbc_page input[type="text"] {
|
276 |
+
min-height: 28px;
|
277 |
+
}
|
278 |
+
.wp-admin .wpbc_page select {
|
279 |
+
color:#32373c;
|
280 |
+
}
|
281 |
+
@media (max-width: 782px) {
|
282 |
+
|
283 |
+
.wpdevelop .control-group .btn-group > .button,
|
284 |
+
.wpdevelop .control-group .btn-toolbar .btn-group > .button,
|
285 |
+
.wpdevelop .control-group .btn-toolbar .input-group > .input-group-btn .button{
|
286 |
+
/*line-height: 2;*/
|
287 |
+
}
|
288 |
+
.wp-core-ui .wpbc_page .button,
|
289 |
+
.wp-core-ui .wpbc_page .button-primary,
|
290 |
+
.wp-core-ui .wpbc_page .button-secondary,
|
291 |
+
|
292 |
+
.wpdevelop .control-group .btn-group > .button .glyphicon,
|
293 |
+
.wpdevelop .control-group .btn-toolbar .btn-group > .button .glyphicon,
|
294 |
+
.wpdevelop .control-group .btn-toolbar .input-group > .input-group-btn .button .glyphicon
|
295 |
+
{
|
296 |
+
height: auto;
|
297 |
+
line-height: 2.2;
|
298 |
+
|
299 |
+
height: 34px;
|
300 |
+
/*line-height:28px;*/
|
301 |
+
min-height: 28px;
|
302 |
+
}
|
303 |
+
.wp-core-ui .wpbc_page .button {
|
304 |
+
padding: 1px 14px;
|
305 |
+
}
|
306 |
+
}
|
css/skins/black-2.css
ADDED
@@ -0,0 +1,234 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*******************************************************************************/
|
2 |
+
/* Black 2 - C O L O R S K I N ****************************/
|
3 |
+
/*******************************************************************************/
|
4 |
+
/* For better compatibility, please change here only folowing properties: */
|
5 |
+
/*
|
6 |
+
* background , background-color, background-repeat, background-image, background-repeat, background-position
|
7 |
+
* border
|
8 |
+
* box-shadow, -moz-box-shadow, -webkit-box-shadow
|
9 |
+
* border-radius, -moz-border-radius, -webkit-border-radius
|
10 |
+
* color
|
11 |
+
* font-weight
|
12 |
+
* text-shadow
|
13 |
+
* text-transform
|
14 |
+
*
|
15 |
+
*/
|
16 |
+
|
17 |
+
/* Full Calendar Frame */
|
18 |
+
.datepick-inline {
|
19 |
+
color:#ffffff;
|
20 |
+
background-color:#191919;
|
21 |
+
text-transform:uppercase
|
22 |
+
background:none;
|
23 |
+
border:none;
|
24 |
+
box-shadow:none;
|
25 |
+
-moz-box-shadow:none;
|
26 |
+
-webkit-box-shadow:none;
|
27 |
+
border-radius:none;
|
28 |
+
-moz-border-radius:none;
|
29 |
+
-webkit-border-radius:none
|
30 |
+
}
|
31 |
+
/* Background of one calendar month */
|
32 |
+
.datepick-inline .datepick{
|
33 |
+
background:none repeat scroll 0 0 #191919;
|
34 |
+
box-shadow:none;
|
35 |
+
}
|
36 |
+
.datepick-inline .datepick thead {
|
37 |
+
background:#191919;
|
38 |
+
}
|
39 |
+
|
40 |
+
/* Previous & Next links and TITLE BACKGROUND */
|
41 |
+
.datepick-inline .calendar-links {
|
42 |
+
border-bottom: 1px solid #aaa;
|
43 |
+
border-bottom:none;
|
44 |
+
/*padding:6px 10px 0 20px;*/
|
45 |
+
}
|
46 |
+
/* Prev - Next Text */
|
47 |
+
.datepick-inline .calendar-links .datepick-prev a,
|
48 |
+
.datepick-inline .calendar-links .datepick-next a,
|
49 |
+
.datepick-inline .calendar-links .datepick-prev a:hover,
|
50 |
+
.datepick-inline .calendar-links .datepick-next a:hover{
|
51 |
+
color: #fff;
|
52 |
+
font-weight: 600;
|
53 |
+
text-shadow: none;
|
54 |
+
/*margin-top:10px*/
|
55 |
+
}
|
56 |
+
/* Month Titles */
|
57 |
+
.datepick-inline .datepick-header {
|
58 |
+
font-weight: 600;
|
59 |
+
text-shadow: none;
|
60 |
+
|
61 |
+
color:#ffffff;
|
62 |
+
background-color:#191919;
|
63 |
+
/*padding-top:10px ;*/
|
64 |
+
/*padding-bottom:10px;*/
|
65 |
+
text-transform:uppercase;
|
66 |
+
border:1px solid #000000;
|
67 |
+
}
|
68 |
+
/* Week Titles */
|
69 |
+
div.datepick-inline .datepick-title-row th{
|
70 |
+
font-weight: 600;
|
71 |
+
border:2px solid #000000;
|
72 |
+
color:#05738e;
|
73 |
+
text-transform:uppercase;
|
74 |
+
}
|
75 |
+
/* Cell border*/
|
76 |
+
.block_hints .block_free, .block_hints .block_time, .block_hints .block_booked, .block_hints .block_pending, .block_hints .block_check_in_out,
|
77 |
+
.datepick-inline .datepick-days-cell{
|
78 |
+
border:2px solid #000000;
|
79 |
+
color:#ffff;
|
80 |
+
}
|
81 |
+
|
82 |
+
/* Dates Cells **********************************************************/
|
83 |
+
/*******************************************************************************/
|
84 |
+
|
85 |
+
/* A V A I L A B L E - BACKGROUND */
|
86 |
+
.block_hints .block_free,
|
87 |
+
.block_hints .block_time,
|
88 |
+
.block_hints .block_check_in_out div.check-in-div, /* Item for the LEGEND */
|
89 |
+
.block_hints .block_check_in_out div.check-out-div, /* Item for the LEGEND */
|
90 |
+
.datepick-inline .date_available,
|
91 |
+
.datepick-inline .timespartly.check_in_time div.check-in-div, /* Define the COLOR fot the check in / out times the same as available*/
|
92 |
+
.datepick-inline .timespartly.check_out_time div.check-out-div {
|
93 |
+
background:none repeat scroll 0 0 #191919;
|
94 |
+
}
|
95 |
+
/* A V A I L A B L E and UNSELECTABLE - Text */
|
96 |
+
.block_hints .block_free,
|
97 |
+
.datepick-inline .date_available,
|
98 |
+
.datepick-inline .date_available.datepick-unselectable{
|
99 |
+
color: #FFFFFF; /* This style for the uvailbale date, when we are select the dates */
|
100 |
+
text-shadow:none;
|
101 |
+
}
|
102 |
+
/* A V A I L A B L E - Text A */
|
103 |
+
.block_hints .block_free a,
|
104 |
+
.block_hints .block_time,
|
105 |
+
.datepick-inline .date_available a{
|
106 |
+
color:#fff;
|
107 |
+
font-weight: 600;
|
108 |
+
text-shadow: none;
|
109 |
+
}
|
110 |
+
/*******************************************************************************/
|
111 |
+
|
112 |
+
/* T I M E S L O T S */
|
113 |
+
.block_hints .block_time,
|
114 |
+
.datepick-inline .timespartly{
|
115 |
+
background-image: url("../../assets/img/clock_fill.png");
|
116 |
+
background-repeat: no-repeat;
|
117 |
+
background-position:100% 100%;
|
118 |
+
}
|
119 |
+
/*******************************************************************************/
|
120 |
+
|
121 |
+
/* A P P R O V E D - BACKGROUND */
|
122 |
+
.block_hints .date_approved.block_check_in_out,
|
123 |
+
.block_hints .block_booked,
|
124 |
+
.datepick-inline .date_approved,
|
125 |
+
/* A P P R O V E D - BACKGROUND for Check In Pending & Check Out Approved || Check Out Pending & Check In Approved Dates //FixIn: 6.0.1.2 */
|
126 |
+
td.timespartly.check_in_time.check_out_time.check_in_time_date2approve.check_out_time_date_approved div.check-in-div,
|
127 |
+
td.timespartly.check_in_time.check_out_time.check_out_time_date2approve.check_in_time_date_approved div.check-out-div {
|
128 |
+
background-color:#c23b1b;
|
129 |
+
}
|
130 |
+
/* A P P R O V E D - T E X T /including partially booked - timeslots/ */
|
131 |
+
.block_hints .date_approved.block_check_in_out,
|
132 |
+
.block_hints .block_booked,
|
133 |
+
.datepick-inline .date_approved,
|
134 |
+
.block_hints .block_booked a,
|
135 |
+
.datepick-inline .date_approved a{
|
136 |
+
color: #FFF;
|
137 |
+
font-weight: 600;
|
138 |
+
text-shadow: 0 1px 0 #DD0000;
|
139 |
+
}
|
140 |
+
/* CHECK IN and CHECK OUT Borders for the approved cells - the COLOR have to be the SAME as BACKGROUND of this cell*/
|
141 |
+
.block_hints .date_approved.block_check_in_out div.check-in-div, /* Item for the LEGEND */
|
142 |
+
.datepick-inline .date_approved.timespartly.check_in_time div.check-in-div{
|
143 |
+
border-right: 1px dotted #C60B0B;
|
144 |
+
}
|
145 |
+
.block_hints .date_approved.block_check_in_out div.check-out-div, /* Item for the LEGEND */
|
146 |
+
.datepick-inline .date_approved.timespartly.check_out_time div.check-out-div{
|
147 |
+
border-left: 1px dotted #C60B0B;
|
148 |
+
}
|
149 |
+
/*******************************************************************************/
|
150 |
+
|
151 |
+
/* P E N D I N G - BACKGROUND */
|
152 |
+
.block_hints .date2approve.block_check_in_out,
|
153 |
+
.block_hints .block_pending,
|
154 |
+
.datepick-inline .date2approve,
|
155 |
+
/* P E N D I N G - BACKGROUND for Check In Approved & Check Out Pending || Check Out Approved & Check In Pending Dates //FixIn: 6.0.1.2 */
|
156 |
+
td.timespartly.check_in_time.check_out_time.check_in_time_date_approved.check_out_time_date2approve div.check-in-div,
|
157 |
+
td.timespartly.check_in_time.check_out_time.check_out_time_date_approved.check_in_time_date2approve div.check-out-div {
|
158 |
+
background-color: #DF9A00;
|
159 |
+
}
|
160 |
+
/* P E N D I N G - T E X T /including partially booked - timeslots/ */
|
161 |
+
.block_hints .date2approve.block_check_in_out,
|
162 |
+
.block_hints .block_pending,
|
163 |
+
.datepick-inline .date2approve,
|
164 |
+
.block_hints .block_pending a,
|
165 |
+
.datepick-inline .date2approve a {
|
166 |
+
color: #885500;
|
167 |
+
font-weight: 600;
|
168 |
+
text-shadow: 0 1px 0 #FFAA00;
|
169 |
+
}
|
170 |
+
/* CHECK IN and CHECK OUT Borders for the approved cells - the COLOR have to be the SAME as BACKGROUND of this cell*/
|
171 |
+
.block_hints .date2approve.block_check_in_out div.check-in-div, /* Item for the LEGEND */
|
172 |
+
.datepick-inline .date2approve.timespartly.check_in_time div.check-in-div{
|
173 |
+
border-right: 1px dotted #DF9A00;
|
174 |
+
}
|
175 |
+
.block_hints .date2approve.block_check_in_out div.check-out-div, /* Item for the LEGEND */
|
176 |
+
.datepick-inline .date2approve.timespartly.check_out_time div.check-out-div{
|
177 |
+
border-left: 1px dotted #DF9A00;
|
178 |
+
}
|
179 |
+
/*******************************************************************************/
|
180 |
+
|
181 |
+
/* S E L E C T E D Dates - Background */
|
182 |
+
.datepick-inline .datepick-one-month .datepick .datepick-current-day {
|
183 |
+
background-color: #05738e;
|
184 |
+
}
|
185 |
+
/* S E L E C T E D Dates - Text color */
|
186 |
+
.datepick-inline .datepick-one-month .datepick .datepick-current-day a{
|
187 |
+
color: #EEEEEE;
|
188 |
+
text-shadow: 0 -1px 0 #000000;
|
189 |
+
}
|
190 |
+
/*******************************************************************************/
|
191 |
+
|
192 |
+
/* C e l l O V E R Dates - Background */
|
193 |
+
.datepick-inline .datepick .datepick-days-cell-over{
|
194 |
+
background:#aaa;
|
195 |
+
}
|
196 |
+
/* C e l l O V E R Dates - Text color */
|
197 |
+
.datepick-inline .datepick .datepick-days-cell-over a:hover,
|
198 |
+
.datepick-inline .datepick .datepick-days-cell-over a{
|
199 |
+
color: #eee;
|
200 |
+
text-shadow: 0 -1px 0 #888;
|
201 |
+
}
|
202 |
+
/*******************************************************************************/
|
203 |
+
/* FixIn: 6.0.1.2 */
|
204 |
+
/* Text style for Check In Approved & Check Out Pending || Check Out Approved & Check In Pending || Check In Pending & Check Out Approved || Check Out Pending & Check In Approved */
|
205 |
+
td.timespartly.check_in_time.check_out_time.check_in_time_date_approved.check_out_time_date2approve span,
|
206 |
+
td.timespartly.check_in_time.check_out_time.check_out_time_date_approved.check_in_time_date2approve span,
|
207 |
+
td.timespartly.check_in_time.check_out_time.check_in_time_date2approve.check_out_time_date_approved span,
|
208 |
+
td.timespartly.check_in_time.check_out_time.check_out_time_date2approve.check_in_time_date_approved span {
|
209 |
+
font-weight: 600;
|
210 |
+
text-shadow: none;
|
211 |
+
}
|
212 |
+
|
213 |
+
/* Show partially (time-slots) booked days with Background color as for available days ********************************/
|
214 |
+
/** //FixIn: 8.2.1.27 Updated 2018-07-04 ****/
|
215 |
+
/* Color as in this section A V A I L A B L E - BACKGROUND */
|
216 |
+
.wpbc_timeslot_day_bg_as_available .datepick-inline .times_clock {
|
217 |
+
background-color: #191919;
|
218 |
+
}
|
219 |
+
/* Same as in this Section above --- A V A I L A B L E - Text A */
|
220 |
+
.wpbc_timeslot_day_bg_as_available .datepick-inline .times_clock.date_available a {
|
221 |
+
color: #fff;
|
222 |
+
font-weight: 600;
|
223 |
+
text-shadow: none;
|
224 |
+
}
|
225 |
+
/* Same as in this Section above --- S E L E C T E D Dates - Text color */
|
226 |
+
.wpbc_timeslot_day_bg_as_available .datepick-inline .datepick-one-month .datepick .times_clock.date_available.datepick-current-day a{
|
227 |
+
color: #EEEEEE;
|
228 |
+
text-shadow: 0 -1px 0 #000000;
|
229 |
+
}
|
230 |
+
/* Same as in this Section above --- A V A I L A B L E and UNSELECTABLE - Text */
|
231 |
+
.wpbc_timeslot_day_bg_as_available .datepick-inline .date_available {
|
232 |
+
color: #CCCCCC; /* This style for the uvailbale date, when we are select the dates */
|
233 |
+
text-shadow: 0 1px 0 #FFFFFF; /* This style for the uvailbale date, when we are select the dates */
|
234 |
+
}
|
css/timeline.css
DELETED
@@ -1,846 +0,0 @@
|
|
1 |
-
.wpbc_timeline_frame {
|
2 |
-
background-color: #fff;
|
3 |
-
}
|
4 |
-
/* Calendar Overview admin panel page Styles */
|
5 |
-
.wpbc_tl_table {
|
6 |
-
width: auto;
|
7 |
-
border: 1px solid #ccc;
|
8 |
-
box-shadow: 0 1px 2px #ccd;
|
9 |
-
}
|
10 |
-
.wpbc_tl_table .wpbc_tl_table_header {
|
11 |
-
background: #e9e9e9 !important
|
12 |
-
}.wpbc_tl_table .wpbc_tl_table_header th{
|
13 |
-
font-weight: 600;
|
14 |
-
}
|
15 |
-
.wpbc_tl_table .wpbc_tl_collumn_1{
|
16 |
-
width: 15%;
|
17 |
-
overflow: hidden;
|
18 |
-
position: relative;
|
19 |
-
}
|
20 |
-
.wpbc_tl_table .wpbc_tl_table_header .wpbc_tl_collumn_2{
|
21 |
-
text-align:center;
|
22 |
-
}
|
23 |
-
.wpbc_tl_table .wpbc_tl_table_header .wpbc_tl_collumn_1,
|
24 |
-
.wpbc_tl_table .wpbc_tl_table_header .wpbc_tl_collumn_2 {
|
25 |
-
text-transform: none;
|
26 |
-
}
|
27 |
-
.wpbc_tl_table .container-fluid {
|
28 |
-
margin: 0px;
|
29 |
-
padding: 0px;
|
30 |
-
}
|
31 |
-
.wpbc_tl_table .container-fluid .col-md-12 {
|
32 |
-
height: 44px;
|
33 |
-
overflow: hidden;
|
34 |
-
position: relative;
|
35 |
-
}
|
36 |
-
.wpbc_tl_table .container-fluid .wpbc_tl_scroller {
|
37 |
-
margin-left: -2px;
|
38 |
-
margin-top: -3px;
|
39 |
-
position: absolute;
|
40 |
-
border: 0 none;
|
41 |
-
height: 34px;
|
42 |
-
width:100%;
|
43 |
-
}
|
44 |
-
.wpbc_tl_table a,
|
45 |
-
.wpbc_tl_table a:hover,
|
46 |
-
.wpbc_tl_table a:focus {
|
47 |
-
box-shadow: none;
|
48 |
-
outline: none;
|
49 |
-
}
|
50 |
-
/* Navigation for Front End */
|
51 |
-
.wpbc_tl_table .wpbc_tl_table_header .wpbc_tl_nav {
|
52 |
-
width:100%;
|
53 |
-
}
|
54 |
-
.wpbc_tl_table .wpbc_tl_table_header .wpbc_tl_nav .wpbc_tl_prev {
|
55 |
-
float:left;
|
56 |
-
width:5%;
|
57 |
-
font-size:22px;
|
58 |
-
font-weight: 600;
|
59 |
-
line-height:12px;
|
60 |
-
text-align: left;
|
61 |
-
}
|
62 |
-
.wpbc_tl_table .wpbc_tl_table_header .wpbc_tl_nav .wpbc_tl_title {
|
63 |
-
float:left;
|
64 |
-
width:90%;
|
65 |
-
font-size:12px;
|
66 |
-
color: #777;
|
67 |
-
}
|
68 |
-
.wpbc_tl_table .wpbc_tl_table_header .wpbc_tl_nav .wpbc_tl_next {
|
69 |
-
float:right;
|
70 |
-
width:5%;
|
71 |
-
text-align:right;
|
72 |
-
font-size:22px;
|
73 |
-
font-weight: 600;
|
74 |
-
line-height:12px;
|
75 |
-
}
|
76 |
-
|
77 |
-
.wpbc_tl_table .wpbc_tl_table_header .wpbc_tl_nav .wpbc_tl_prev a,
|
78 |
-
.wpbc_tl_table .wpbc_tl_table_header .wpbc_tl_nav .wpbc_tl_next a,
|
79 |
-
.wpbc_tl_table .wpbc_tl_table_header .wpbc_tl_nav .wpbc_tl_prev a:hover,
|
80 |
-
.wpbc_tl_table .wpbc_tl_table_header .wpbc_tl_nav .wpbc_tl_next a:hover {
|
81 |
-
text-decoration: none;
|
82 |
-
color: #757575;
|
83 |
-
cursor: pointer;
|
84 |
-
}
|
85 |
-
|
86 |
-
.wpbc_tl_frame_dates {
|
87 |
-
/*width:auto;*/
|
88 |
-
width: 100%;
|
89 |
-
overflow: hidden;
|
90 |
-
}
|
91 |
-
.wpbc_tl_table_titles .wpbc_tl_frame_dates {
|
92 |
-
border-bottom: 1px solid #DD8800;
|
93 |
-
height: 33px;
|
94 |
-
}
|
95 |
-
.wpbc_tl_frame_dates .month_year {
|
96 |
-
color: #C32;
|
97 |
-
font-size: 9px;
|
98 |
-
font-weight: 600;
|
99 |
-
margin-left: 2px;
|
100 |
-
margin-top: 27px;
|
101 |
-
padding: 0;
|
102 |
-
position: absolute;
|
103 |
-
width: 130px;
|
104 |
-
word-wrap: inherit;
|
105 |
-
}
|
106 |
-
.wpbc_tl_table .wpbc_tl_dates_line .container-fluid .col-md-12 {
|
107 |
-
height: 34px;
|
108 |
-
}
|
109 |
-
|
110 |
-
.wpbc_tl_table .wpbc_tl_resource_title {
|
111 |
-
color: #999;
|
112 |
-
float: left;
|
113 |
-
text-shadow: none; /*0 -1px 0 #EEE;*/
|
114 |
-
position: absolute;
|
115 |
-
white-space: nowrap;
|
116 |
-
word-wrap: normal;
|
117 |
-
font-size:12px;
|
118 |
-
}
|
119 |
-
.wpbc_tl_table .wpbc_tl_resource_title.parent {
|
120 |
-
font-weight: 600;
|
121 |
-
}
|
122 |
-
.wpbc_tl_table .wpbc_tl_resource_title.child {
|
123 |
-
margin-left: 20px;
|
124 |
-
}
|
125 |
-
.wpbc_tl_resource_title a,
|
126 |
-
.wpbc_tl_resource_title a:hover{
|
127 |
-
border-bottom: 1px dashed;
|
128 |
-
color: #789 !important;
|
129 |
-
font-size: 12px;
|
130 |
-
text-decoration: none;
|
131 |
-
text-shadow: 0 -1px 0 #EEEEEE;
|
132 |
-
}
|
133 |
-
|
134 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell {
|
135 |
-
width: 31px;
|
136 |
-
height: 37px;
|
137 |
-
float: left;
|
138 |
-
border-left: 1px dashed #CCC;
|
139 |
-
}
|
140 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell.wpbc_tl_day_cell_header {
|
141 |
-
background: none repeat scroll 0 0 #F5F5F5 !important;
|
142 |
-
border-left: 1px dashed #CCC;
|
143 |
-
color: #777;
|
144 |
-
font-size: 10px;
|
145 |
-
height: 38px;
|
146 |
-
line-height: 14px;
|
147 |
-
padding: 6px 0;
|
148 |
-
text-shadow: 0 -1px 0 #FFF;
|
149 |
-
vertical-align: top;
|
150 |
-
}
|
151 |
-
.wpbc_tl_frame_dates .new_month {
|
152 |
-
border-left: 2px solid #C54;
|
153 |
-
}
|
154 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell.new_month {
|
155 |
-
border-left: 2px solid #C54;
|
156 |
-
}
|
157 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell.wpbc_tl_weekday6,
|
158 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell.wpbc_tl_weekday7 {
|
159 |
-
color: #E33;
|
160 |
-
font-weight: 600;
|
161 |
-
}
|
162 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell.wpbc_tl_day_cell_header a,
|
163 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell.wpbc_tl_day_cell_header a:hover{
|
164 |
-
color: #777;
|
165 |
-
text-decoration: none;
|
166 |
-
cursor: pointer;
|
167 |
-
}
|
168 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell.wpbc_tl_weekday6 a,
|
169 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell.wpbc_tl_weekday7 a,
|
170 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell.wpbc_tl_weekday6 a:hover,
|
171 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell.wpbc_tl_weekday7 a:hover {
|
172 |
-
color: #C33;
|
173 |
-
}
|
174 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell.wpbc_tl_day_cell_header .day_num,
|
175 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell.wpbc_tl_day_cell_header .day_week {
|
176 |
-
width: auto;
|
177 |
-
padding: 0px;
|
178 |
-
text-align: center;
|
179 |
-
font-size:10px;
|
180 |
-
}
|
181 |
-
.wpbc_time_section_in_day_header {
|
182 |
-
border-right: 1px dotted #CCC !important;
|
183 |
-
font-size: 8px;
|
184 |
-
margin-top: 0 !important;
|
185 |
-
padding: 0px;
|
186 |
-
text-align: left;
|
187 |
-
}
|
188 |
-
.wpbc_time_section_in_day {
|
189 |
-
border-right: 1px dotted #FFF;
|
190 |
-
float: left;
|
191 |
-
height: 25px;
|
192 |
-
margin: 8px 0;
|
193 |
-
}
|
194 |
-
.wpbc_time_section_in_day.timeslots_in_this_day24 {
|
195 |
-
border-right: 1px dotted #CCC;
|
196 |
-
}
|
197 |
-
.wpbc_time_section_in_day.wpbc_time_in_days_num_1 {
|
198 |
-
width: 4.069%; /*3.89%;*/
|
199 |
-
}
|
200 |
-
.wpbc_time_in_days_num_1 .day_num {
|
201 |
-
font-size: 11px;
|
202 |
-
font-weight: 600;
|
203 |
-
}
|
204 |
-
.wpbc_time_section_in_day.timeslots_in_this_day24.time_hour23,
|
205 |
-
.wpbc_time_in_days_num_1 .wpbc_time_section_in_day_header.time_hour23 {
|
206 |
-
border-right: none !important;
|
207 |
-
}
|
208 |
-
.wpbc_time_section_in_day.wpbc_time_in_days_num_7 {
|
209 |
-
width: 24.32%;
|
210 |
-
}
|
211 |
-
.wpbc_time_section_in_day.timeslots_in_this_day2.time_hour12,
|
212 |
-
.wpbc_time_in_days_num_30 .wpbc_time_section_in_day_header.time_hour12 {
|
213 |
-
border-right: none !important;
|
214 |
-
}
|
215 |
-
.wpbc_time_section_in_day.wpbc_time_in_days_num_30{
|
216 |
-
width: 46%;
|
217 |
-
}
|
218 |
-
.wpbc_time_in_days_num_7 .day_num {
|
219 |
-
font-size: 11px;
|
220 |
-
font-weight: 600;
|
221 |
-
}
|
222 |
-
.wpbc_time_section_in_day.timeslots_in_this_day4.time_hour18,
|
223 |
-
.wpbc_time_in_days_num_7 .wpbc_time_section_in_day_header.time_hour18 {
|
224 |
-
border-right: none !important;
|
225 |
-
}
|
226 |
-
.wpbc_time_section_in_day.wpbc_time_in_days_num_90 {
|
227 |
-
width: 100%;
|
228 |
-
}
|
229 |
-
.wpbc_time_section_in_day.wpbc_time_in_days_num_365 {
|
230 |
-
width: 100%;
|
231 |
-
}
|
232 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell.wpbc_tl_day_cell_header.wpbc_time_in_days_num_90 {
|
233 |
-
font-size: 8px;
|
234 |
-
|
235 |
-
}
|
236 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell.wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 div.day_num,
|
237 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell.wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 div.day_week {
|
238 |
-
|
239 |
-
}
|
240 |
-
.wpbc_tl_day_cell .time_booked_in_day {
|
241 |
-
background: none repeat scroll 0 0 #FC4;
|
242 |
-
border-right: 1px dotted #9AB;
|
243 |
-
box-shadow: 1px 1px 2px #AAA;
|
244 |
-
color: #FFF;
|
245 |
-
font-size: 7px;
|
246 |
-
font-weight: 400;
|
247 |
-
text-shadow: none;
|
248 |
-
}
|
249 |
-
.wpbc_tl_day_cell .time_booked_in_day.approved {
|
250 |
-
background: none repeat scroll 0 0 #78A;
|
251 |
-
}
|
252 |
-
.wpbc_tl_table .wpbc_tl_day_cell .first_day_in_bookin,
|
253 |
-
.wpbc_tl_table .wpbc_tl_day_cell a.first_day_in_bookin:hover,
|
254 |
-
.wpbc_tl_table .wpbc_tl_day_cell a.first_day_in_bookin:focus {
|
255 |
-
box-shadow:none;
|
256 |
-
outline: none;
|
257 |
-
}
|
258 |
-
.wpbc_tl_day_cell .first_day_in_bookin {
|
259 |
-
background: none repeat scroll 0 0 #545455;
|
260 |
-
border-radius: 5px 5px 5px 5px;
|
261 |
-
color: #FFF !important;
|
262 |
-
font-size: 9px;
|
263 |
-
font-weight: 400;
|
264 |
-
line-height: 15px;
|
265 |
-
margin: 13px 2px 4px 0px;
|
266 |
-
overflow: visible;
|
267 |
-
padding: 0 3px;
|
268 |
-
position: absolute;
|
269 |
-
text-shadow: 0 -1px 0 #000;
|
270 |
-
visibility: visible;
|
271 |
-
width: auto !important;
|
272 |
-
word-wrap: break-word;
|
273 |
-
z-index: 0;
|
274 |
-
cursor: pointer;
|
275 |
-
box-shadow: 0 0 1px #FFF;
|
276 |
-
-moz-box-shadow: 0 0 1px #FFF;
|
277 |
-
-webkit-box-shadow: 0 0 1px #FFF;
|
278 |
-
float: left;
|
279 |
-
}
|
280 |
-
.wpbc_tl_day_cell span.first_day_in_bookin {
|
281 |
-
margin: 4px 2px 4px 0px;
|
282 |
-
cursor: default;
|
283 |
-
}
|
284 |
-
.wpbc_tl_day_cell .timeslots_in_this_day24 a.first_day_in_bookin {
|
285 |
-
margin: 4px 2px;
|
286 |
-
}
|
287 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell.today_date {
|
288 |
-
/*background: none repeat scroll 0 0 #9F5 !important;*/
|
289 |
-
color: #888 !important;
|
290 |
-
text-shadow: 0 0 1px #EEE !important;
|
291 |
-
}
|
292 |
-
|
293 |
-
/* Style for the calendar time-line of the single resource */
|
294 |
-
.wpbc_tl_single_resource .wpbc_tl_frame_dates .month_year {
|
295 |
-
display: none;
|
296 |
-
}
|
297 |
-
.wpbc_tl_single_resource .wpbc_tl_frame_dates .wpbc_tl_day_cell.wpbc_tl_weekday6,
|
298 |
-
.wpbc_tl_single_resource .wpbc_tl_frame_dates .wpbc_tl_day_cell.wpbc_tl_weekday7 {
|
299 |
-
color: #777;
|
300 |
-
font-weight: 400;
|
301 |
-
/*border-bottom: 1px solid #EE3333;*/
|
302 |
-
background: none repeat scroll 0 0 #FEB;
|
303 |
-
}
|
304 |
-
.wpbc_tl_single_resource .wpbc_tl_day_cell.wpbc_tl_day_cell_header .wpbc_time_section_in_day.wpbc_time_section_in_day_header {
|
305 |
-
display: block;
|
306 |
-
}
|
307 |
-
.wpbc_tl_single_resource .wpbc_tl_scroller .wpbc_tl_frame_dates {
|
308 |
-
height: 26px !important;
|
309 |
-
}
|
310 |
-
|
311 |
-
.wpbc_tl_single_resource .wpbc_time_section_in_day.wpbc_time_in_days_num_30 {
|
312 |
-
/*border: none;*/
|
313 |
-
width: 4%;
|
314 |
-
margin: 10px auto !important;
|
315 |
-
|
316 |
-
}
|
317 |
-
.wpbc_tl_single_resource.resource_matrix .wpbc_time_section_in_day.wpbc_time_in_days_num_1.wpbc_time_section_in_day_header,
|
318 |
-
.wpbc_tl_single_resource .wpbc_time_section_in_day.wpbc_time_in_days_num_30.wpbc_time_section_in_day_header {
|
319 |
-
width: 4%;
|
320 |
-
margin: auto !important;
|
321 |
-
}
|
322 |
-
.wpbc_tl_table .wpbc_tl_single_resource .wpbc_tl_dates_line .container-fluid .col-md-12 {
|
323 |
-
height: 32px;
|
324 |
-
}
|
325 |
-
.wpbc_tl_table .wpbc_tl_single_resource .container-fluid .wpbc_tl_scroller {
|
326 |
-
height: 33px;
|
327 |
-
margin-top: 0;
|
328 |
-
}
|
329 |
-
.wpbc_tl_single_resource .wpbc_tl_scroller .wpbc_tl_frame_dates {
|
330 |
-
height: 34px !important;
|
331 |
-
}
|
332 |
-
.wpbc_tl_single_resource .wpbc_tl_scroller .wpbc_tl_frame_dates .wpbc_tl_day_cell {
|
333 |
-
height: 34px;
|
334 |
-
}
|
335 |
-
.wpbc_tl_single_resource .wpbc_tl_scroller .wpbc_tl_frame_dates .wpbc_tl_day_cell .wpbc_time_section_in_day {
|
336 |
-
height: 25px;
|
337 |
-
margin: 8px -95% 0 0;
|
338 |
-
}
|
339 |
-
.wpbc_tl_table .wpbc_tl_single_resource.container-fluid .wpbc_tl_scroller {
|
340 |
-
margin-top: 0;
|
341 |
-
}
|
342 |
-
|
343 |
-
.wpbc_tl_single_resource .wpbc_tl_scroller .wpbc_tl_frame_dates .wpbc_tl_day_cell.wpbc_tl_day_cell_header {
|
344 |
-
color: #888;
|
345 |
-
font-size: 9px;
|
346 |
-
font-weight: bold !important;
|
347 |
-
padding: 8px 0;
|
348 |
-
text-shadow: 0 1px 0 #FFF;
|
349 |
-
}
|
350 |
-
.wpbc_tl_single_resource.container-fluid .col-md-12 {
|
351 |
-
height: 34px;
|
352 |
-
}
|
353 |
-
.wpbc_tl_table_titles .wpbc_tl_collumn_1,
|
354 |
-
.wpbc_tl_table .wpbc_tl_table_row_bookings .wpbc_tl_collumn_1 {
|
355 |
-
border-right: 2px solid #C54;
|
356 |
-
}
|
357 |
-
.wpbc_tl_table .wpbc_tl_table_titles .wpbc_tl_collumn_2,
|
358 |
-
.wpbc_tl_table .wpbc_tl_table_row_bookings .wpbc_tl_collumn_2 {
|
359 |
-
padding:0 !important;
|
360 |
-
}
|
361 |
-
.wpbc_timeline_frame .wpbc_tl_day_cell .wpbc_day_cell_number {
|
362 |
-
color: #ccc;
|
363 |
-
cursor: default;
|
364 |
-
float: right;
|
365 |
-
font-size: 8px;
|
366 |
-
font-weight: 400;
|
367 |
-
line-height: 15px;
|
368 |
-
margin: -4px 0 0;
|
369 |
-
overflow: visible;
|
370 |
-
padding: 0 1px;
|
371 |
-
position: relative;
|
372 |
-
visibility: visible;
|
373 |
-
width: auto !important;
|
374 |
-
word-wrap: break-word;
|
375 |
-
z-index: 0;
|
376 |
-
font-style: normal;
|
377 |
-
position: absolute; /* FixIn: 7.0.1.16 */
|
378 |
-
}
|
379 |
-
|
380 |
-
/******************************************************************************/
|
381 |
-
/* MATRIX VIEW */
|
382 |
-
/******************************************************************************/
|
383 |
-
|
384 |
-
/**** HEADER ****/
|
385 |
-
.wpbc_timeline_frame *{
|
386 |
-
box-sizing: content-box;
|
387 |
-
}
|
388 |
-
.wpbc_tl_table .container-fluid .row,
|
389 |
-
.wpbc_tl_table .container-fluid .col-md-12{
|
390 |
-
padding:0;
|
391 |
-
margin:0;
|
392 |
-
}
|
393 |
-
/* Hide the Time titles in the header for the 7, 30, 60 day view */
|
394 |
-
.wpbc_tl_matrix_resources .wpbc_time_section_in_day.wpbc_time_section_in_day_header.time_hour0.wpbc_time_in_days_num_7,
|
395 |
-
.wpbc_tl_matrix_resources .wpbc_time_section_in_day.wpbc_time_section_in_day_header.time_hour0.wpbc_time_in_days_num_30,
|
396 |
-
.wpbc_tl_matrix_resources .wpbc_time_section_in_day.wpbc_time_section_in_day_header.time_hour0.wpbc_time_in_days_num_60{
|
397 |
-
display:none;
|
398 |
-
}
|
399 |
-
.wpbc_tl_matrix_resources .wpbc_tl_frame_dates .wpbc_tl_day_cell.wpbc_tl_weekday6,
|
400 |
-
.wpbc_tl_matrix_resources .wpbc_tl_frame_dates .wpbc_tl_day_cell.wpbc_tl_weekday7 {
|
401 |
-
color: #c33; /*#777;*/
|
402 |
-
font-weight: 400;
|
403 |
-
/*border-bottom: 1px solid #EE3333;*/
|
404 |
-
background: none repeat scroll 0 0 #FEB;
|
405 |
-
}
|
406 |
-
/* Date mouseover link incorrect show booked dates, so we are need to put it up */
|
407 |
-
.wpbc_tl_day_cell.today_date {
|
408 |
-
background: #efc !important; /*#5a3;*/
|
409 |
-
border-left: 1px dashed #009900;
|
410 |
-
}
|
411 |
-
.wpbc_timeline_frame .wpbc_tl_matrix_resources .wpbc_tl_day_cell .wpbc_day_cell_number {
|
412 |
-
margin: -1px 0 -14px;
|
413 |
-
}
|
414 |
-
/* Today date */
|
415 |
-
.wpbc_timeline_frame .wpbc_tl_matrix_resources .today_date .wpbc_day_cell_number {
|
416 |
-
color: #aaa;
|
417 |
-
}
|
418 |
-
/* Past bookins */
|
419 |
-
.wpbc_tl_day_cell.past_date .time_booked_in_day,
|
420 |
-
.wpbc_tl_day_cell.today_date .time_booked_in_day.past_time {
|
421 |
-
background-color:#c91;
|
422 |
-
}
|
423 |
-
.wpbc_tl_day_cell.past_date .time_booked_in_day.approved,
|
424 |
-
.wpbc_tl_day_cell.today_date .time_booked_in_day.past_time.approved{
|
425 |
-
background-color: #457;
|
426 |
-
}
|
427 |
-
|
428 |
-
/* FixIn:6.1.1.10 */
|
429 |
-
/* Past bookins */
|
430 |
-
.wpbc_tl_day_cell .time_booked_in_day.booking_trash,
|
431 |
-
.wpbc_tl_day_cell.today_date .time_booked_in_day.booking_trash{
|
432 |
-
background-color: #c55;
|
433 |
-
}
|
434 |
-
.wpbc_tl_day_cell.past_date .time_booked_in_day.booking_trash,
|
435 |
-
.wpbc_tl_day_cell.today_date .time_booked_in_day.past_time.booking_trash{
|
436 |
-
background-color: #a44;
|
437 |
-
}
|
438 |
-
|
439 |
-
/* FixIn:7.2.1.8 */
|
440 |
-
.wpbc_tl_day_cell .time_booked_in_day.booking_blank,
|
441 |
-
.wpbc_tl_day_cell.today_date .time_booked_in_day.booking_blank{
|
442 |
-
border: 1px dashed #F55;
|
443 |
-
}
|
444 |
-
|
445 |
-
|
446 |
-
/* Show description title of the booking */
|
447 |
-
.wpbc_tl_matrix_resources .wpbc_time_section_in_day{
|
448 |
-
float: left;
|
449 |
-
height: 25px;
|
450 |
-
margin: 11px -95% 0 0;
|
451 |
-
width:100%;
|
452 |
-
}
|
453 |
-
.wpbc_tl_matrix_resources .wpbc_time_section_in_day.wpbc_time_in_days_num_1{
|
454 |
-
width: 4.069%;
|
455 |
-
margin: 11px 0 0 0;
|
456 |
-
}
|
457 |
-
.wpbc_tl_matrix_resources a.first_day_in_bookin {
|
458 |
-
margin: 16px 2px 4px 0px;
|
459 |
-
}
|
460 |
-
.wpbc_tl_matrix_resources .timeslots_in_this_day24 a.first_day_in_bookin {
|
461 |
-
margin: 5px 0 0 5px;
|
462 |
-
}
|
463 |
-
|
464 |
-
/* P O P O V E R ************************************************************/
|
465 |
-
.wpdevelop .popover {
|
466 |
-
/* width:400px;
|
467 |
-
max-width:400px;*/
|
468 |
-
border: 2px solid #555;
|
469 |
-
font-size: 12px;
|
470 |
-
}
|
471 |
-
.wpdevelop .popover .popover-title {
|
472 |
-
padding:2px 14px 0;
|
473 |
-
line-height: 30px;
|
474 |
-
}
|
475 |
-
.wpdevelop .popover .popover-title .popover-title-id {
|
476 |
-
display: inline-block;
|
477 |
-
margin: 0 5px 0 0;
|
478 |
-
}
|
479 |
-
.wpdevelop .wpbc_timeline_front_end .popover .popover-title .popover-title-id { /* FrontEnd*/
|
480 |
-
line-height: 35px;
|
481 |
-
}
|
482 |
-
.wpdevelop .popover .popover-title .control-group {
|
483 |
-
display: inline-block;
|
484 |
-
vertical-align: middle;
|
485 |
-
margin:2px 0;
|
486 |
-
}
|
487 |
-
.wpdevelop .popover .popover-title .control-group a.button{
|
488 |
-
margin: 0 0 0 5px;
|
489 |
-
line-height: 28px;
|
490 |
-
|
491 |
-
margin: 0 5px 5px 0;
|
492 |
-
}
|
493 |
-
.wpdevelop .popover .popover-title .control-group .wpbc-buttons-separator {
|
494 |
-
margin-right: 10px;
|
495 |
-
}
|
496 |
-
.wpdevelop .popover .popover-content {
|
497 |
-
border-top: 1px solid #aaa;
|
498 |
-
}
|
499 |
-
.wpdevelop .popover-inner {
|
500 |
-
width: 350px;
|
501 |
-
}
|
502 |
-
.wpdevelop.popover.left .arrow {
|
503 |
-
left:auto;
|
504 |
-
}
|
505 |
-
.wpdevelop.tooltip {
|
506 |
-
z-index:9999;
|
507 |
-
}
|
508 |
-
.wpdevelop .popover a,
|
509 |
-
.wpdevelop .popover a:hover,
|
510 |
-
.wpdevelop .popover a:focus {
|
511 |
-
box-shadow: none;
|
512 |
-
outline: none;
|
513 |
-
}
|
514 |
-
.wpdevelop .popover .popover-close,
|
515 |
-
.wpdevelop .popover .popover-close:hover {
|
516 |
-
font-size: 20px;
|
517 |
-
position: absolute;
|
518 |
-
right: 10px;
|
519 |
-
top: 8px;
|
520 |
-
|
521 |
-
padding: 5px 6px;
|
522 |
-
right: 0;
|
523 |
-
top: 0;
|
524 |
-
}
|
525 |
-
.wpdevelop .popover .popover-close a,
|
526 |
-
.wpdevelop .popover .popover-close a:hover,
|
527 |
-
.wpdevelop .popover .popover-close a:active,
|
528 |
-
.wpdevelop .popover .popover-close a:focus {
|
529 |
-
text-decoration: none;
|
530 |
-
color:#444;
|
531 |
-
border-style: none;
|
532 |
-
outline: 0;
|
533 |
-
}
|
534 |
-
.wpdevelop .popover_calendar_hover,
|
535 |
-
.wpdevelop .popover_calendar_hover .popover-content{
|
536 |
-
border: none;
|
537 |
-
}
|
538 |
-
.wpdevelop .popover-content .wpbc_tl_popover_booking_separator {
|
539 |
-
margin: 10px 0;
|
540 |
-
}
|
541 |
-
/* PopOver Content Data *******************************************************/
|
542 |
-
.wpdevelop .popover-title,
|
543 |
-
.wpdevelop .popover-content .wpbc-popover-content-data {
|
544 |
-
color:#000;
|
545 |
-
}
|
546 |
-
.wpdevelop .popover-content .wpbc-popover-content-data {
|
547 |
-
font-size: 13px;
|
548 |
-
color:#000;
|
549 |
-
}
|
550 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .wpbc-popover-labels-bar,
|
551 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .wpbc-popover-cost-bar {
|
552 |
-
float: left;
|
553 |
-
margin: 0px;
|
554 |
-
padding: 0px;
|
555 |
-
width: auto;
|
556 |
-
}
|
557 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .wpbc-popover-cost-bar {
|
558 |
-
float: right;
|
559 |
-
}
|
560 |
-
/* ID, Labels ... */
|
561 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .field-id,
|
562 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .field-labels {
|
563 |
-
float:left;
|
564 |
-
margin: 0 10px 2px 0;
|
565 |
-
font-size: 1em;
|
566 |
-
}
|
567 |
-
/* ID */
|
568 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .field-id span.label {
|
569 |
-
line-height:1.5em;
|
570 |
-
padding: 2px 5px;
|
571 |
-
|
572 |
-
font-weight: 600;
|
573 |
-
border:none;
|
574 |
-
border-radius: 10px;
|
575 |
-
-moz-border-radius: 10px;
|
576 |
-
-webkit-border-radius: 10px;
|
577 |
-
color: #fff;
|
578 |
-
background: #888;
|
579 |
-
}
|
580 |
-
/* Labels */
|
581 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .field-labels span.label{
|
582 |
-
line-height: 1.5em;
|
583 |
-
padding: 2px 5px;
|
584 |
-
font-weight: 600;
|
585 |
-
|
586 |
-
border: 1px solid #eeeeee;
|
587 |
-
box-shadow: 0 0 1px #cccccc;
|
588 |
-
}
|
589 |
-
/* Payment status*/
|
590 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .field-labels span.label .label-payment-status-prefix {
|
591 |
-
font-size: 0.8em;
|
592 |
-
font-weight: 400;
|
593 |
-
}
|
594 |
-
/* Cost */
|
595 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .wpbc-popover-cost {
|
596 |
-
font-size: 1em;
|
597 |
-
font-weight: 600;
|
598 |
-
line-height: 1.5em;
|
599 |
-
padding: 0;
|
600 |
-
text-align: center;
|
601 |
-
white-space: nowrap;
|
602 |
-
}
|
603 |
-
/*Data*/
|
604 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .wpbc-popover-booking-data,
|
605 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .wpbc-popover-booking-data > div {
|
606 |
-
line-height: 1.7em;
|
607 |
-
text-align: left;
|
608 |
-
word-wrap: break-word;
|
609 |
-
margin:5px 0 10px;
|
610 |
-
}
|
611 |
-
/* Notes */
|
612 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .wpbc-popover-booking-notes {
|
613 |
-
font-size: 0.9em;
|
614 |
-
font-style: italic;
|
615 |
-
margin: 0 0 10px;
|
616 |
-
}
|
617 |
-
/*Dates*/
|
618 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .field-dates .field-booking-date,
|
619 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .field-dates .field-booking-date:hover {
|
620 |
-
background: none repeat scroll 0 0 #FFBB45;
|
621 |
-
border: 1px solid #EEE;
|
622 |
-
border-radius: 5px 5px 5px 5px;
|
623 |
-
box-shadow: 0 0 1px #CCC;
|
624 |
-
color: #FFF;
|
625 |
-
font-weight: 600;
|
626 |
-
padding: 4px 10px 3px;
|
627 |
-
text-decoration: none;
|
628 |
-
text-shadow: 0 -1px 0 #CCC;
|
629 |
-
white-space: nowrap;
|
630 |
-
font-size: 0.85em;
|
631 |
-
line-height: 2.5em;
|
632 |
-
}
|
633 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .field-dates .field-booking-date.approved,
|
634 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .field-dates .field-booking-date.approved:hover {
|
635 |
-
background: none repeat scroll 0 0 #9BE;
|
636 |
-
}
|
637 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .field-dates .field-booking-time {
|
638 |
-
color: #555;
|
639 |
-
text-decoration: none;
|
640 |
-
text-shadow: 0 0 1px #AAA;
|
641 |
-
}
|
642 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .field-dates .date_tire {
|
643 |
-
font-size: 17px;
|
644 |
-
font-weight: 600;
|
645 |
-
}
|
646 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .field-dates .booking_dates_small,
|
647 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .field-dates .booking_dates_full {
|
648 |
-
line-height: 24px;
|
649 |
-
}
|
650 |
-
.wpdevelop .popover-content .wpbc-popover-content-data .field-dates .date_from_dif_type {
|
651 |
-
color: #FFF;
|
652 |
-
text-shadow: 0 -1px 0 #BBB;
|
653 |
-
}
|
654 |
-
|
655 |
-
/* Edit buttons in timeline at popover during customer listing */
|
656 |
-
.wpbc_timeline_frame.wpbc_timeline_front_end .popover-title a.wpbc_btn_in_timeline {
|
657 |
-
padding: 4px 8px 2px;
|
658 |
-
background: #fafafa;
|
659 |
-
margin: 2px 5px;
|
660 |
-
border: 1px solid #ccc;
|
661 |
-
}
|
662 |
-
/* M O B I L E ************************************************************/
|
663 |
-
@media (max-width: 782px) {
|
664 |
-
|
665 |
-
.wpbc_tl_table .wpbc_tl_collumn_1 {
|
666 |
-
font-size: 0.8em;
|
667 |
-
padding-left: 4px !important;
|
668 |
-
width: 20%;
|
669 |
-
}
|
670 |
-
|
671 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell.wpbc_tl_day_cell_header .day_num {
|
672 |
-
font-size: 0.9em;
|
673 |
-
overflow: visible;
|
674 |
-
position: relative;
|
675 |
-
white-space: nowrap;
|
676 |
-
}
|
677 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_90 .day_num{
|
678 |
-
overflow: hidden;
|
679 |
-
}
|
680 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_90 .wpbc_time_section_in_day_header {
|
681 |
-
border:none !important;
|
682 |
-
}
|
683 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_90 {
|
684 |
-
box-sizing: padding-box;
|
685 |
-
padding-left: 4px !important;
|
686 |
-
padding-right: 4px !important;
|
687 |
-
}
|
688 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num1,
|
689 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num2,
|
690 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num4,
|
691 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num5,
|
692 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num7,
|
693 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num8,
|
694 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num10,
|
695 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num11,
|
696 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num13,
|
697 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num14,
|
698 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num16,
|
699 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num17,
|
700 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num19,
|
701 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num20,
|
702 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num22,
|
703 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num23,
|
704 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num25,
|
705 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num26,
|
706 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num28,
|
707 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num29,
|
708 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num31,
|
709 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num32,
|
710 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num34,
|
711 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num35,
|
712 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num37,
|
713 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num38,
|
714 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num40,
|
715 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num41,
|
716 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num43,
|
717 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num44,
|
718 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num46,
|
719 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num47,
|
720 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num49,
|
721 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num50,
|
722 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num52,
|
723 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num53,
|
724 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num55,
|
725 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num56,
|
726 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num58,
|
727 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num59,
|
728 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num61,
|
729 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_60 .day_num.day_num62,
|
730 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num1,
|
731 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num2,
|
732 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num4,
|
733 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num5,
|
734 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num7,
|
735 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num8,
|
736 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num10,
|
737 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num11,
|
738 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num13,
|
739 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num14,
|
740 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num16,
|
741 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num17,
|
742 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num19,
|
743 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num20,
|
744 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num22,
|
745 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num23,
|
746 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num25,
|
747 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num26,
|
748 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num28,
|
749 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num29,
|
750 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num31,
|
751 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .day_num.day_num32,
|
752 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num1,
|
753 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num2,
|
754 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num4,
|
755 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num5,
|
756 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num7,
|
757 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num8,
|
758 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num10,
|
759 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num11,
|
760 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num13,
|
761 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num14,
|
762 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num16,
|
763 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num17,
|
764 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num19,
|
765 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num20,
|
766 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num22,
|
767 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num23,
|
768 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num25,
|
769 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num26,
|
770 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num28,
|
771 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num29,
|
772 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num31,
|
773 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_365 .day_num.day_num32 {
|
774 |
-
display:none ;
|
775 |
-
}
|
776 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_1 .time_hour1,
|
777 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_1 .time_hour2,
|
778 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_1 .time_hour4,
|
779 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_1 .time_hour5,
|
780 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_1 .time_hour7,
|
781 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_1 .time_hour8,
|
782 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_1 .time_hour10,
|
783 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_1 .time_hour11,
|
784 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_1 .time_hour13,
|
785 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_1 .time_hour14,
|
786 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_1 .time_hour16,
|
787 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_1 .time_hour17,
|
788 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_1 .time_hour19,
|
789 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_1 .time_hour20,
|
790 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_1 .time_hour22,
|
791 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_1 .time_hour23,
|
792 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .time_hour1,
|
793 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .time_hour2,
|
794 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .time_hour4,
|
795 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .time_hour5,
|
796 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .time_hour7,
|
797 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .time_hour8,
|
798 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .time_hour10,
|
799 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .time_hour11,
|
800 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .time_hour13,
|
801 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .time_hour14,
|
802 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .time_hour16,
|
803 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .time_hour17,
|
804 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .time_hour19,
|
805 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .time_hour20,
|
806 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .time_hour22,
|
807 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_30 .time_hour23 {
|
808 |
-
visibility: hidden;
|
809 |
-
}
|
810 |
-
|
811 |
-
.wpbc_tl_frame_dates .wpbc_tl_day_cell_header.wpbc_time_in_days_num_7 {
|
812 |
-
overflow: hidden;
|
813 |
-
}
|
814 |
-
.wpbc_timeline_frame .wpbc_tl_day_cell .wpbc_day_cell_number {
|
815 |
-
display:none;
|
816 |
-
}
|
817 |
-
|
818 |
-
/* PopOver */
|
819 |
-
.wpdevelop .popover .popover-title .control-group {
|
820 |
-
display: block;
|
821 |
-
margin: 0 0 0 -5px;
|
822 |
-
vertical-align: middle;
|
823 |
-
}
|
824 |
-
.wpdevelop .popover .popover-title .control-group a.button{
|
825 |
-
height: 34px;
|
826 |
-
line-height: 1.5em;
|
827 |
-
}
|
828 |
-
}
|
829 |
-
|
830 |
-
|
831 |
-
/* General Structure :
|
832 |
-
.wpbc_timeline_frame {}
|
833 |
-
.wpbc_timeline_frame .wpbc_tl_table{}
|
834 |
-
.wpbc_timeline_frame .wpbc_tl_table .wpbc_tl_table_header{}
|
835 |
-
.wpbc_timeline_frame .wpbc_tl_table .wpbc_tl_table_header .wpbc_tl_collumn_1,
|
836 |
-
.wpbc_timeline_frame .wpbc_tl_table .wpbc_tl_table_header .wpbc_tl_collumn_2{}
|
837 |
-
.wpbc_timeline_frame .wpbc_tl_table .wpbc_tl_table_row_colspan{}
|
838 |
-
.wpbc_timeline_frame .wpbc_tl_table .wpbc_tl_table_titles{}
|
839 |
-
.wpbc_timeline_frame .wpbc_tl_table .wpbc_tl_table_titles .wpbc_tl_collumn_1,
|
840 |
-
.wpbc_timeline_frame .wpbc_tl_table .wpbc_tl_table_titles .wpbc_tl_collumn_2{}
|
841 |
-
.wpbc_timeline_frame .wpbc_tl_table .wpbc_tl_table_row_bookings{}
|
842 |
-
.wpbc_timeline_frame .wpbc_tl_table .wpbc_tl_table_row_bookings .wpbc_tl_collumn_1,
|
843 |
-
.wpbc_timeline_frame .wpbc_tl_table .wpbc_tl_table_row_bookings .wpbc_tl_collumn_2{}
|
844 |
-
.wpbc_timeline_frame .wpbc_tl_table .wpbc_tl_table_row_bookings .wpbc_tl_collumn_1 .wpbc_tl_resource_title,
|
845 |
-
.wpbc_timeline_frame .wpbc_tl_table .wpbc_tl_table_row_bookings .wpbc_tl_collumn_2 .wpbc_tl_dates_line{}
|
846 |
-
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
js/client.js
CHANGED
@@ -14,6 +14,39 @@ var numbb = 0;
|
|
14 |
var timeoutID_of_thank_you_page = null;
|
15 |
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
/**
|
18 |
* Calendar Init
|
19 |
*
|
@@ -208,6 +241,9 @@ function init_datepick_cal(bk_type, date_approved_par, my_num_month, start_day_
|
|
208 |
var tm=0;
|
209 |
var ts=0;
|
210 |
var time_return_value = false;
|
|
|
|
|
|
|
211 |
// Select dates which need to approve, its exist only in Admin
|
212 |
if(typeof(date2approve[ bk_type ]) !== 'undefined')
|
213 |
if(typeof(date2approve[ bk_type ][ class_day ]) !== 'undefined') {
|
@@ -218,8 +254,7 @@ function init_datepick_cal(bk_type, date_approved_par, my_num_month, start_day_
|
|
218 |
tm = date2approve[ bk_type ][ class_day ][ia][4];
|
219 |
ts = date2approve[ bk_type ][ class_day ][ia][5];
|
220 |
if ( ( th == 0 ) && ( tm == 0 ) && ( ts == 0 ) ) {
|
221 |
-
|
222 |
-
return [false, 'cal4date-' + class_day +' date2approve' + blank_admin_class_day]; // Orange
|
223 |
} else {
|
224 |
if ( is_booking_used_check_in_out_time === true ) {
|
225 |
if (ts == '1') additional_class += ' check_in_time' + ' check_in_time_date2approve'; //FixIn: 6.0.1.2
|
@@ -227,11 +262,10 @@ function init_datepick_cal(bk_type, date_approved_par, my_num_month, start_day_
|
|
227 |
} else {
|
228 |
additional_class += ' times_clock'; //FixIn: 8.2.1.27
|
229 |
}
|
230 |
-
time_return_value = [true, 'date_available cal4date-' + class_day +' date2approve timespartly' + additional_class];
|
231 |
if(typeof( isDayFullByTime ) == 'function') {
|
232 |
-
if ( isDayFullByTime(bk_type, class_day ) ) {
|
233 |
-
|
234 |
-
return [false, 'cal4date-' + class_day +' date2approve' + blank_admin_class_day]; // Orange
|
235 |
}
|
236 |
}
|
237 |
}
|
@@ -1428,27 +1462,102 @@ function wpbc_check_errors_in_booking_form( bk_type ) {
|
|
1428 |
|
1429 |
//FixIn: 8.4.4.4
|
1430 |
function bk_calendar_step_click( el ){
|
1431 |
-
|
1432 |
-
|
1433 |
-
|
1434 |
-
|
1435 |
-
|
1436 |
-
|
1437 |
-
|
1438 |
-
|
1439 |
-
|
1440 |
-
|
|
|
|
|
1441 |
}
|
|
|
1442 |
function bk_form_step_click( el ){
|
1443 |
-
|
1444 |
-
|
1445 |
-
|
1446 |
-
|
1447 |
-
|
1448 |
-
|
1449 |
-
|
1450 |
-
|
1451 |
-
|
1452 |
-
|
1453 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1454 |
}
|
14 |
var timeoutID_of_thank_you_page = null;
|
15 |
|
16 |
|
17 |
+
/**
|
18 |
+
* Booking Calendar - JavaScript Settings
|
19 |
+
*
|
20 |
+
* Example or redefine some settings:
|
21 |
+
* <script type="text/javascript"> wpbc_settings.set_option( 'pending_days_selectable', true ); </script>
|
22 |
+
* [booking type=1]
|
23 |
+
*
|
24 |
+
//FixIn: 8.6.1.18
|
25 |
+
*/
|
26 |
+
var wpbc_settings = (function ( obj, $) {
|
27 |
+
|
28 |
+
// Define private property
|
29 |
+
var p_options = obj.options = obj.options || [];
|
30 |
+
|
31 |
+
p_options['pending_days_selectable'] = false;
|
32 |
+
|
33 |
+
// Get Option
|
34 |
+
obj.get_option = function ( item_id ) {
|
35 |
+
|
36 |
+
return p_options[ item_id ];
|
37 |
+
};
|
38 |
+
|
39 |
+
// Set Option
|
40 |
+
obj.set_option = function ( item_id, item_value ) {
|
41 |
+
|
42 |
+
p_options[ item_id ] = item_value;
|
43 |
+
};
|
44 |
+
|
45 |
+
return obj;
|
46 |
+
|
47 |
+
}(wpbc_settings || {}, jQuery ));
|
48 |
+
|
49 |
+
|
50 |
/**
|
51 |
* Calendar Init
|
52 |
*
|
241 |
var tm=0;
|
242 |
var ts=0;
|
243 |
var time_return_value = false;
|
244 |
+
|
245 |
+
var is_set_pending_days_selectable = wpbc_settings.get_option( 'pending_days_selectable' ); // set pending days selectable //FixIn: 8.6.1.18
|
246 |
+
|
247 |
// Select dates which need to approve, its exist only in Admin
|
248 |
if(typeof(date2approve[ bk_type ]) !== 'undefined')
|
249 |
if(typeof(date2approve[ bk_type ][ class_day ]) !== 'undefined') {
|
254 |
tm = date2approve[ bk_type ][ class_day ][ia][4];
|
255 |
ts = date2approve[ bk_type ][ class_day ][ia][5];
|
256 |
if ( ( th == 0 ) && ( tm == 0 ) && ( ts == 0 ) ) {
|
257 |
+
return [ is_set_pending_days_selectable, 'cal4date-' + class_day +' date2approve' + blank_admin_class_day]; // Orange //FixIn: 8.6.1.18
|
|
|
258 |
} else {
|
259 |
if ( is_booking_used_check_in_out_time === true ) {
|
260 |
if (ts == '1') additional_class += ' check_in_time' + ' check_in_time_date2approve'; //FixIn: 6.0.1.2
|
262 |
} else {
|
263 |
additional_class += ' times_clock'; //FixIn: 8.2.1.27
|
264 |
}
|
265 |
+
time_return_value = [true, 'date_available cal4date-' + class_day +' date2approve timespartly' + additional_class]; // Times
|
266 |
if(typeof( isDayFullByTime ) == 'function') {
|
267 |
+
if ( isDayFullByTime(bk_type, class_day ) ) {
|
268 |
+
return [ is_set_pending_days_selectable, 'cal4date-' + class_day +' date2approve' + blank_admin_class_day]; // Orange //FixIn: 8.6.1.18
|
|
|
269 |
}
|
270 |
}
|
271 |
}
|
1462 |
|
1463 |
//FixIn: 8.4.4.4
|
1464 |
function bk_calendar_step_click( el ){
|
1465 |
+
var br_id = jQuery( el ).closest( 'form' ).find( 'input[name^="bk_type"]' ).val();
|
1466 |
+
var is_error = wpbc_check_errors_in_booking_form( br_id );
|
1467 |
+
if ( is_error ){
|
1468 |
+
return false;
|
1469 |
+
}
|
1470 |
+
if ( br_id != undefined ){
|
1471 |
+
jQuery( "#booking_form" + br_id + " .bk_calendar_step" ).css( {"display": "none"} );
|
1472 |
+
jQuery( "#booking_form" + br_id + " .bk_form_step" ).css( {"display": "block"} );
|
1473 |
+
} else {
|
1474 |
+
jQuery( ".bk_calendar_step" ).css( {"display": "none"} );
|
1475 |
+
jQuery( ".bk_form_step" ).css( {"display": "block"} );
|
1476 |
+
}
|
1477 |
}
|
1478 |
+
|
1479 |
function bk_form_step_click( el ){
|
1480 |
+
var br_id = jQuery( el ).closest( 'form' ).find( 'input[name^="bk_type"]' ).val();
|
1481 |
+
var is_error = false; // wpbc_check_errors_in_booking_form( br_id ); //FixIn: 8.4.5.6
|
1482 |
+
if ( is_error ){
|
1483 |
+
return false;
|
1484 |
+
}
|
1485 |
+
if ( br_id != undefined ){
|
1486 |
+
jQuery( "#booking_form" + br_id + " .bk_calendar_step" ).css( {"display": "block"} );
|
1487 |
+
jQuery( "#booking_form" + br_id + " .bk_form_step" ).css( {"display": "none"} );
|
1488 |
+
makeScroll( "#bklnk" + br_id );
|
1489 |
+
} else {
|
1490 |
+
jQuery( ".bk_calendar_step" ).css( {"display": "block"} );
|
1491 |
+
jQuery( ".bk_form_step" ).css( {"display": "none"} );
|
1492 |
+
}
|
1493 |
+
}
|
1494 |
+
|
1495 |
+
//FixIn: 8.6.1.15
|
1496 |
+
/**
|
1497 |
+
* Go to next specific step in Wizard style booking form, with
|
1498 |
+
* check all required elements specific step, otherwise show warning message!
|
1499 |
+
*
|
1500 |
+
* @param el
|
1501 |
+
* @param step_num
|
1502 |
+
* @returns {boolean}
|
1503 |
+
*/
|
1504 |
+
function wpbc_wizard_step( el, step_num ){
|
1505 |
+
var br_id = jQuery( el ).closest( 'form' ).find( 'input[name^="bk_type"]' ).val();
|
1506 |
+
var is_error = wpbc_check_errors_in_booking_form( br_id );
|
1507 |
+
if ( is_error ){
|
1508 |
+
return false;
|
1509 |
+
}
|
1510 |
+
|
1511 |
+
if ( wpbc_is_some_elements_visible( br_id, ['rangetime', 'durationtime', 'starttime', 'endtime'] ) ){
|
1512 |
+
if ( is_this_time_selections_not_available( br_id, document.getElementById( 'booking_form' + br_id ) ) ){
|
1513 |
+
return false;
|
1514 |
+
}
|
1515 |
+
}
|
1516 |
+
|
1517 |
+
if ( br_id != undefined ){
|
1518 |
+
jQuery( "#booking_form" + br_id + " .wpbc_wizard_step" ).css( {"display": "none"} );
|
1519 |
+
jQuery( "#booking_form" + br_id + " .wpbc_wizard_step" + step_num ).css( {"display": "block"} );
|
1520 |
+
}
|
1521 |
+
}
|
1522 |
+
|
1523 |
+
|
1524 |
+
//FixIn: 8.6.1.15
|
1525 |
+
/**
|
1526 |
+
* Check if at least one element from array of elements names in booking form visible or not.
|
1527 |
+
* Usage Example: if ( wpbc_is_some_elements_visible( br_id, ['rangetime', 'durationtime', 'starttime', 'endtime'] ) ){ ... }
|
1528 |
+
*
|
1529 |
+
* @param bk_type
|
1530 |
+
* @param elements_names
|
1531 |
+
* @returns {boolean}
|
1532 |
+
*/
|
1533 |
+
function wpbc_is_some_elements_visible( bk_type, elements_names ){
|
1534 |
+
|
1535 |
+
var is_some_elements_visible = false;
|
1536 |
+
|
1537 |
+
var my_form = jQuery( '#booking_form' + bk_type );
|
1538 |
+
|
1539 |
+
if ( my_form.length ){
|
1540 |
+
|
1541 |
+
// Pseudo-selector that get form elements <input , <textarea , <select, <button...
|
1542 |
+
my_form.find( ':input' ).each( function ( index, el ){
|
1543 |
+
|
1544 |
+
// Skip some elements
|
1545 |
+
var skip_elements = ['hidden', 'button'];
|
1546 |
+
|
1547 |
+
if ( -1 == skip_elements.indexOf( jQuery( el ).attr( 'type' ) ) ){
|
1548 |
+
|
1549 |
+
for ( var ei = 0; ei < ( elements_names.length - 1) ; ei++ ){
|
1550 |
+
|
1551 |
+
// Check Calendar Dates Selection
|
1552 |
+
if ( (elements_names[ ei ] + bk_type) == jQuery( el ).attr( 'name' ) ){
|
1553 |
+
|
1554 |
+
if ( jQuery( el ).is( ':visible' ) ){
|
1555 |
+
is_some_elements_visible = true;
|
1556 |
+
}
|
1557 |
+
}
|
1558 |
+
}
|
1559 |
+
}
|
1560 |
+
} );
|
1561 |
+
}
|
1562 |
+
return is_some_elements_visible;
|
1563 |
}
|
js/datepick/jquery.datepick-ar.js
CHANGED
@@ -16,9 +16,9 @@
|
|
16 |
monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
|
17 |
monthStatus: 'عرض شهر آخر', yearStatus: 'عرض سنة آخرى',
|
18 |
weekHeader: 'أسبوع', weekStatus: 'أسبوع السنة',
|
19 |
-
dayNames: [
|
20 |
-
dayNamesShort: [
|
21 |
-
dayNamesMin: [
|
22 |
dayStatus: 'اختر DD لليوم الأول من الأسبوع', dateStatus: 'اختر D, M d',
|
23 |
dateFormat: 'dd/mm/yy', firstDay: 0,
|
24 |
initStatus: 'اختر يوم', isRTL: true,
|
16 |
monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
|
17 |
monthStatus: 'عرض شهر آخر', yearStatus: 'عرض سنة آخرى',
|
18 |
weekHeader: 'أسبوع', weekStatus: 'أسبوع السنة',
|
19 |
+
dayNames: [ 'الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
|
20 |
+
dayNamesShort: [ 'أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],
|
21 |
+
dayNamesMin: [ 'أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],
|
22 |
dayStatus: 'اختر DD لليوم الأول من الأسبوع', dateStatus: 'اختر D, M d',
|
23 |
dateFormat: 'dd/mm/yy', firstDay: 0,
|
24 |
initStatus: 'اختر يوم', isRTL: true,
|
js/wpbc_times.js
CHANGED
@@ -924,7 +924,7 @@ function wpbc_is_time_field_in_booking_form( resource_id, form_elements ){
|
|
924 |
|
925 |
//TODO: continue here with time_field_to_check
|
926 |
var removed_time_slots = is_time_slot_booked_for_this_time_array( bk_type, times_array, td_class , time_field_to_check );
|
927 |
-
//console.log( 'removed_time_slots', removed_time_slots );
|
928 |
|
929 |
var my_time_value = jQuery( time_field_to_check[ 0 ] + ' option,' + time_field_to_check[ 1 ] + ' option' );
|
930 |
|
@@ -1059,7 +1059,6 @@ function wpbc_is_time_field_in_booking_form( resource_id, form_elements ){
|
|
1059 |
var my_range_time;
|
1060 |
|
1061 |
var removed_time_slots = [];
|
1062 |
-
|
1063 |
if ( times_array.length > 0 ){ //FixIn: 6.1.1.6
|
1064 |
//Situation when we have first time option as End time. So we need to add start time to the midnight
|
1065 |
if ( parseInt( times_array[ 0 ][ 2 ] ) == 2 ){
|
@@ -1090,6 +1089,7 @@ function wpbc_is_time_field_in_booking_form( resource_id, form_elements ){
|
|
1090 |
|
1091 |
if ( my_time_value[ j ].value == my_range_time ){ // Mark as disable this option
|
1092 |
|
|
|
1093 |
removed_time_slots[ removed_time_slots.length ] = j;
|
1094 |
//return true;
|
1095 |
|
@@ -1125,8 +1125,19 @@ function wpbc_is_time_field_in_booking_form( resource_id, form_elements ){
|
|
1125 |
bk_time_slot_selection = bk_time_slot_selection.split( ':' );
|
1126 |
|
1127 |
// Get only minutes
|
1128 |
-
minutes_booked = [ (parseInt( times_array[ i - 1 ][ 0 ] * 60 ) + parseInt( times_array[ i - 1 ][ 1 ] )), (parseInt( times_array[ i ][ 0 ] * 60 ) + parseInt( times_array[ i ][ 1 ] )) ];
|
1129 |
minutes_slot = [ (parseInt( bk_time_slot_selection[ 0 ] * 60 ) + parseInt( bk_time_slot_selection[ 1 ] )) ];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1130 |
if (
|
1131 |
((minutes_slot[ 0 ] >= minutes_booked[ 0 ]) && (minutes_slot[ 0 ] < minutes_booked[ 1 ]))
|
1132 |
){
|
924 |
|
925 |
//TODO: continue here with time_field_to_check
|
926 |
var removed_time_slots = is_time_slot_booked_for_this_time_array( bk_type, times_array, td_class , time_field_to_check );
|
927 |
+
//console.log( 'removed_time_slots',time_field_to_check, removed_time_slots );
|
928 |
|
929 |
var my_time_value = jQuery( time_field_to_check[ 0 ] + ' option,' + time_field_to_check[ 1 ] + ' option' );
|
930 |
|
1059 |
var my_range_time;
|
1060 |
|
1061 |
var removed_time_slots = [];
|
|
|
1062 |
if ( times_array.length > 0 ){ //FixIn: 6.1.1.6
|
1063 |
//Situation when we have first time option as End time. So we need to add start time to the midnight
|
1064 |
if ( parseInt( times_array[ 0 ][ 2 ] ) == 2 ){
|
1089 |
|
1090 |
if ( my_time_value[ j ].value == my_range_time ){ // Mark as disable this option
|
1091 |
|
1092 |
+
|
1093 |
removed_time_slots[ removed_time_slots.length ] = j;
|
1094 |
//return true;
|
1095 |
|
1125 |
bk_time_slot_selection = bk_time_slot_selection.split( ':' );
|
1126 |
|
1127 |
// Get only minutes
|
1128 |
+
minutes_booked = [ (parseInt( times_array[ i - 1 ][ 0 ] * 60 ) + parseInt( times_array[ i - 1 ][ 1 ] )) , (parseInt( times_array[ i ][ 0 ] * 60 ) + parseInt( times_array[ i ][ 1 ] )) ];
|
1129 |
minutes_slot = [ (parseInt( bk_time_slot_selection[ 0 ] * 60 ) + parseInt( bk_time_slot_selection[ 1 ] )) ];
|
1130 |
+
|
1131 |
+
//FixIn: 8.6.1.17
|
1132 |
+
var is_end_time = time_field_to_check[ 0 ].indexOf( "endtime" );
|
1133 |
+
|
1134 |
+
if ( -1 !== is_end_time ){ // This is End Time
|
1135 |
+
|
1136 |
+
// Transform to seconds, and minus 10 second
|
1137 |
+
minutes_booked[ 0 ] = minutes_booked[ 0 ] * 60;
|
1138 |
+
minutes_booked[ 1 ] = minutes_booked[ 1 ] * 60;
|
1139 |
+
minutes_slot[ 0 ] = minutes_slot[ 0 ] * 60 - 10;
|
1140 |
+
}
|
1141 |
if (
|
1142 |
((minutes_slot[ 0 ] >= minutes_booked[ 0 ]) && (minutes_slot[ 0 ] < minutes_booked[ 1 ]))
|
1143 |
){
|
languages/booking-de_DE.mo
CHANGED
Binary file
|
languages/booking-sl_SI.mo
CHANGED
Binary file
|
readme.txt
CHANGED
@@ -4,8 +4,8 @@ Donate link: https://wpbookingcalendar.com/buy/
|
|
4 |
Tags: booking calendar, booking system, availability calendar, events calendar, appointments , booking form, reservation, availability, oplugins, calendar, Booking Calendar, ical
|
5 |
Requires at least: 4.0
|
6 |
Requires PHP: 5.2.4
|
7 |
-
Tested up to: 5.
|
8 |
-
Stable tag: 8.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -13,7 +13,7 @@ Booking Calendar - original 1st booking plugin for WordPress. Easily receive res
|
|
13 |
|
14 |
== Description ==
|
15 |
|
16 |
-
####The original "**Booking Calendar**" plugin is the 1st booking system for WordPress, **downloaded over 1,
|
17 |
|
18 |
**Booking Calendar** plugin enable awesome **booking system** for your site. Simply show availability and receive bookings for your property or service in easy to use booking system with clean and smooth interface.
|
19 |
|
@@ -151,7 +151,7 @@ If you're unclear about the installation process, check out our [HELP](https://w
|
|
151 |
**Important notice:** Because of changes in CSS and JavaScript files, please clear browser cache, after you made this update.
|
152 |
= Requirements =
|
153 |
|
154 |
-
- PHP 5.2.4 or newer,
|
155 |
- MySQL version 5.0 or newer,
|
156 |
- WordPress 4.0 or newer,
|
157 |
- jQuery 1.9.1 or newer
|
@@ -173,8 +173,8 @@ Please see [FAQ](https://wpbookingcalendar.com/faq/).
|
|
173 |
- Spanish [99% Completed]
|
174 |
- Dutch [98% Completed]
|
175 |
- Romanian [98% Completed]
|
176 |
-
- Slovenian [
|
177 |
-
- German [
|
178 |
- Italian [97% Completed]
|
179 |
- Finnish [96% Completed]
|
180 |
- Danish [94% Completed]
|
@@ -227,6 +227,40 @@ Please see [Video Guides](https://wpbookingcalendar.com/help/).
|
|
227 |
13. **Time Slots**. Simple configuration of **time slots** selection in booking form.
|
228 |
|
229 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
230 |
= 8.6 =
|
231 |
- Changes in **all** versions:
|
232 |
* **New**. Updated new interface of **Calendar Overview** in admin panel and **Timeline** at front-end side with new clean, flex design.
|
@@ -632,5 +666,5 @@ Please see [Video Guides](https://wpbookingcalendar.com/help/).
|
|
632 |
For more information, see the [full release notes](https://wpbookingcalendar.com/changelog/).
|
633 |
|
634 |
== Upgrade Notice ==
|
635 |
-
= 8.
|
636 |
-
New
|
4 |
Tags: booking calendar, booking system, availability calendar, events calendar, appointments , booking form, reservation, availability, oplugins, calendar, Booking Calendar, ical
|
5 |
Requires at least: 4.0
|
6 |
Requires PHP: 5.2.4
|
7 |
+
Tested up to: 5.3
|
8 |
+
Stable tag: 8.7
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
13 |
|
14 |
== Description ==
|
15 |
|
16 |
+
####The original "**Booking Calendar**" plugin is the 1st booking system for WordPress, **downloaded over 1,400,000** times [since 2009](https://wpbookingcalendar.com/changelog/).
|
17 |
|
18 |
**Booking Calendar** plugin enable awesome **booking system** for your site. Simply show availability and receive bookings for your property or service in easy to use booking system with clean and smooth interface.
|
19 |
|
151 |
**Important notice:** Because of changes in CSS and JavaScript files, please clear browser cache, after you made this update.
|
152 |
= Requirements =
|
153 |
|
154 |
+
- PHP 5.2.4 (some versions require PHP 5.6) or newer,
|
155 |
- MySQL version 5.0 or newer,
|
156 |
- WordPress 4.0 or newer,
|
157 |
- jQuery 1.9.1 or newer
|
173 |
- Spanish [99% Completed]
|
174 |
- Dutch [98% Completed]
|
175 |
- Romanian [98% Completed]
|
176 |
+
- Slovenian [99% Completed]
|
177 |
+
- German [99% Completed]
|
178 |
- Italian [97% Completed]
|
179 |
- Finnish [96% Completed]
|
180 |
- Danish [94% Completed]
|
227 |
13. **Time Slots**. Simple configuration of **time slots** selection in booking form.
|
228 |
|
229 |
== Changelog ==
|
230 |
+
= 8.7 =
|
231 |
+
- Changes in **all** versions:
|
232 |
+
* **New**. calendar skin with dark colors: "Black 2"
|
233 |
+
* **New**. Ability to define using **Pending days as Selectable days** - its means that such days have the colors the same as Pending days, but visitor still can select and submit new booking, until you do not approve some booking. Its useful in case, if you need to show that at some days already exist bookings, but visitors still can submit the booking. Please note, such feature will not work correctly if you will make bookings for specific time-slots (its will show warning). How to Use ? In the page, where you are having Booking Calendar shortcode, you need to define the js, like this: <script type="text/javascript"> wpbc_settings.set_option( 'pending_days_selectable', true ); </script> [booking type=4 nummonths=2] (8.6.1.18)
|
234 |
+
* **Compatibility**. Support **WordPress 5.3** - update of admin panel styles.
|
235 |
+
* **Translation** German translation [99% completed] by Markus Neumann.
|
236 |
+
* **Translation** Slovenian translation [99% completed] by Klemen Gaber.
|
237 |
+
* **Improvement**. Ability to auto fill "nickname" of user, when user logged in, and checked this option "Auto-fill fields". In booking form have to be field with name "nickname". (8.6.1.2)
|
238 |
+
* **Deprecated**. Removing deprecated Timeline v.1. Currently available only new Flex Timeline (Calendar Overview) (8.6.1.13)
|
239 |
+
* **Fix**. Issue Undefined index: name in ../core/admin/wpbc-class-timeline.php on line 2137
|
240 |
+
* **Fix**. Issue of not ability to enter new value of CAPTCHA without page reloading, if previous entered value was incorrect. (8.6.1.8)
|
241 |
+
* **Fix**. Order of week days in Arabic translation for calendar
|
242 |
+
- Changes in **Personal / Business Small / Business Medium / Business Large / MultiUser** versions:
|
243 |
+
* **New**. Ability to define dates format for search availability form at the Booking > Settings > Search page. (8.6.1.21) *(Business Large, MultiUser)*
|
244 |
+
* **New**. updated **iPay88** - Payment Gateway integration v1.6.4 (For Malaysia Only) (8.6.1.3) *(Business Small/Medium/Large, MultiUser)*
|
245 |
+
* **New**. Added log of approving or set as pending bookings to notes section. You can activate this option "Logging of booking approving or rejection" at the Booking > Settings General page in "Booking Admin panel" section. (8.6.1.10) *(Personal, Business Small/Medium/Large, MultiUser)*
|
246 |
+
* **Improvement**. Usage of new Wizard style booking form, where possible to configure several steps in booking form - more than 2 steps (8.6.1.15) *(Personal, Business Small/Medium/Large, MultiUser)*
|
247 |
+
* **Improvement**. Ability to use option "Use check in/out time", for adding check in/out times to use change over days, when importing events via Google Calendar API (using Google API Key) (8.6.1.1) *(Business Small/Medium/Large, MultiUser)*
|
248 |
+
* **Improvement**. Ability to use option "Append check out day", for adding check out day, when importing events via Google Calendar API (using Google API Key) (8.6.1.4) *(Business Small/Medium/Large, MultiUser)*
|
249 |
+
* **Improvement**. Disable the edit / cancel / payment request links in the "Booking Customer Listing" view for "Approved bookings", in case, if you have activated this option " Change hash after the booking is approved " at the Booking > Settings General page in Advanced section. (8.6.1.6) *(Personal, Business Small/Medium/Large, MultiUser)*
|
250 |
+
* **Improvement**. Replace non standard symbols (like: . or , or ' ) in options for ability correct saving Advanced cost. Otherwise sometimes was not possible to save "Advanced cost" at Booking > Resources > Advanced cost page. (8.6.1.7) *(Business Medium/Large, MultiUser)*
|
251 |
+
* **Improvement**. Added filter hook 'wpbc_booking_resources_selection_class' for controlling CSS class in dropdown element of booking resource selections (8.6.1.9) *(Personal, Business Small/Medium/Large, MultiUser)*
|
252 |
+
* **Improvement**. Update booking hash during moving booking to trash or restore bookings, for do not ability to edit or cancel such bookings by visitor (8.6.1.11) *(Personal, Business Small/Medium/Large, MultiUser)*
|
253 |
+
* **Improvement**. Add ability to use only labels in shortcode for showing one payment method (its works only with these exact options): [select payment-method "All payment methods@@" "Stripe" "PayPal" "Authorize.Net" "Sage Pay" "Bank Transfer" "Pay in Cash" "iPay88" "iDEAL"] (8.6.1.16) *(Business Small/Medium/Large, MultiUser)*
|
254 |
+
* **Improvement**. Ability to activate updating booking cost after editing booking in admin panel, based on new booking data. You can activate this option at the Booking > Settings > Payment page (8.6.1.24) *(Business Small/Medium/Large, MultiUser)*
|
255 |
+
* **Deprecated**. Removing deprecated Stripe v.1 integration. Now available only Stripe v.3 integration that support SCA (8.6.1.12) *(Business Small/Medium/Large, MultiUser)*
|
256 |
+
* **Fix**. Show payment description about the booking in Stripe dashboard in Metadata section for Stripe v.3 integration (8.6.1.20) *(Business Small/Medium/Large, MultiUser)*
|
257 |
+
* **Fix**. Issue of showing negative balance hint, during using deposit feature with zero cost (8.6.1.5) *(Business Medium/Large, MultiUser)*
|
258 |
+
* **Fix**. Issue of incorrectly showing available results in "Advanced search results" (while using the shortcode like this [additional_search "3"] at the Booking > Settings > Search page), and if dates in some resources was marked as unavailable via season filters. (8.6.1.14) *(Business Large, MultiUser)*
|
259 |
+
* **Fix**. Issue of incorrectly showing available results, when searching only for 1 specific day (check in/out dates the same in availability form), and we have booked (as full day), this day in specific booking resource. (8.6.1.19) *(Business Large, MultiUser)*
|
260 |
+
* **Fix**. Issue of incorrectly disabling end time options in select-box (8.6.1.17) *(Business Small/Medium/Large, MultiUser)*
|
261 |
+
* **Fix**. Issue of slow loading calendar (executing too many sql requests), when season filter was deleted at the Booking > Resources > Filters page, but reference relative (Rates) still exist at Booking > Resources > Cost and rates page. Its means that the Rates was not updated (re-saved) relative specific booking resource at the Booking > Resources > Cost and rates page. (8.6.1.22) *(Business Medium/Large, MultiUser)*
|
262 |
+
* **Fix**. Issue of possible showing status of Stripe v.3 payment as successful at the Booking Listing page, even when its was not completed yet. (8.6.1.23) *(Business Small/Medium/Large, MultiUser)*
|
263 |
+
|
264 |
= 8.6 =
|
265 |
- Changes in **all** versions:
|
266 |
* **New**. Updated new interface of **Calendar Overview** in admin panel and **Timeline** at front-end side with new clean, flex design.
|
666 |
For more information, see the [full release notes](https://wpbookingcalendar.com/changelog/).
|
667 |
|
668 |
== Upgrade Notice ==
|
669 |
+
= 8.7 =
|
670 |
+
Latest WordPress version support. New calendar skin. In paid versions, ability to define dates format for searching; logging feature, ...
|
wpdev-booking.php
CHANGED
@@ -7,7 +7,7 @@ Author: wpdevelop, oplugins
|
|
7 |
Author URI: https://wpbookingcalendar.com/
|
8 |
Text Domain: booking
|
9 |
Domain Path: /languages/
|
10 |
-
Version: 8.
|
11 |
*/
|
12 |
|
13 |
/* Copyright 2009 - 2019 www.wpbookingcalendar.com (email: info@wpbookingcalendar.com),
|
@@ -29,7 +29,7 @@ Version: 8.6
|
|
29 |
if ( ! defined( 'ABSPATH' ) ) die( '<h3>Direct access to this file do not allow!</h3>' ); // Exit if accessed directly
|
30 |
|
31 |
|
32 |
-
if ( ! defined( 'WP_BK_VERSION_NUM' ) ) { define( 'WP_BK_VERSION_NUM', '8.
|
33 |
|
34 |
////////////////////////////////////////////////////////////////////////////////
|
35 |
// PRIMARY URL CONSTANTS
|
7 |
Author URI: https://wpbookingcalendar.com/
|
8 |
Text Domain: booking
|
9 |
Domain Path: /languages/
|
10 |
+
Version: 8.7
|
11 |
*/
|
12 |
|
13 |
/* Copyright 2009 - 2019 www.wpbookingcalendar.com (email: info@wpbookingcalendar.com),
|
29 |
if ( ! defined( 'ABSPATH' ) ) die( '<h3>Direct access to this file do not allow!</h3>' ); // Exit if accessed directly
|
30 |
|
31 |
|
32 |
+
if ( ! defined( 'WP_BK_VERSION_NUM' ) ) { define( 'WP_BK_VERSION_NUM', '8.7' ); }
|
33 |
|
34 |
////////////////////////////////////////////////////////////////////////////////
|
35 |
// PRIMARY URL CONSTANTS
|