Event Tickets - Version 4.6.2

Version Description

Download this release

Release Info

Developer bordoni
Plugin Icon 128x128 Event Tickets
Version 4.6.2
Comparing to
See all releases

Code changes from version 4.6.1.1 to 4.6.2

Files changed (50) hide show
  1. common/readme.txt +4 -0
  2. common/src/Tribe/Container.php +2 -2
  3. common/src/Tribe/Cost_Utils.php +4 -1
  4. common/src/Tribe/Main.php +1 -1
  5. common/src/Tribe/Template.php +21 -21
  6. common/src/Tribe/Utils/Callback.php +5 -5
  7. common/src/functions/template-tags/general.php +37 -0
  8. common/src/resources/css/datepicker.css +19 -1
  9. common/src/resources/css/datepicker.min.css +1 -1
  10. common/src/resources/js/tribe-common.js +22 -0
  11. common/src/resources/js/tribe-common.min.js +1 -1
  12. common/src/resources/postcss/datepicker.pcss +41 -21
  13. common/tribe-common.php +1 -1
  14. event-tickets.php +1 -1
  15. lang/event-tickets-cs_CZ.po +54 -54
  16. lang/event-tickets.pot +57 -57
  17. readme.txt +21 -7
  18. src/Tribe/Admin/Columns/Tickets.php +3 -3
  19. src/Tribe/Admin/Views.php +1 -1
  20. src/Tribe/Assets.php +1 -1
  21. src/Tribe/Attendees.php +37 -25
  22. src/Tribe/Attendees_Table.php +2 -2
  23. src/Tribe/CSV_Importer/RSVP_Importer.php +2 -4
  24. src/Tribe/Cache/Abstract_Cache.php +2 -2
  25. src/Tribe/Main.php +3 -3
  26. src/Tribe/Metabox.php +18 -18
  27. src/Tribe/RSVP.php +5 -0
  28. src/Tribe/Ticket_Object.php +5 -3
  29. src/Tribe/Tickets.php +10 -10
  30. src/Tribe/Tickets_Handler.php +68 -64
  31. src/admin-views/attendees.php +3 -3
  32. src/admin-views/editor/list-row.php +23 -0
  33. src/admin-views/editor/panel/settings.php +1 -1
  34. src/admin-views/editor/panel/ticket.php +6 -0
  35. src/resources/css/tickets-refresh.css +6 -2
  36. src/resources/css/tickets-refresh.min.css +1 -1
  37. src/resources/css/tickets-tables.css +25 -8
  38. src/resources/css/tickets-tables.min.css +1 -1
  39. src/resources/css/tickets.css +4 -0
  40. src/resources/css/tickets.min.css +1 -1
  41. src/resources/js/tickets-attendees.js +4 -4
  42. src/resources/js/tickets-attendees.min.js +1 -1
  43. src/resources/js/tickets-tables.js +2 -2
  44. src/resources/js/tickets-tables.min.js +1 -1
  45. src/resources/js/tickets.js +47 -10
  46. src/resources/js/tickets.min.js +1 -1
  47. src/resources/postcss/tickets-refresh.pcss +6 -2
  48. src/resources/postcss/tickets-tables.pcss +27 -10
  49. src/resources/postcss/tickets.pcss +4 -0
  50. src/template-tags/tickets.php +2 -2
common/readme.txt CHANGED
@@ -2,6 +2,10 @@
2
 
3
  == Changelog ==
4
 
 
 
 
 
5
  = [4.7.2] 2017-11-21 =
6
 
7
  * Feature - Added Template class which adds a few layers of filtering to any template file included
2
 
3
  == Changelog ==
4
 
5
+ = [4.7.3] 2017-12-07 =
6
+
7
+ * Tweak - Tweaked Tribe Datepicker to prevent conflicts with third-party styles [94161]
8
+
9
  = [4.7.2] 2017-11-21 =
10
 
11
  * Feature - Added Template class which adds a few layers of filtering to any template file included
common/src/Tribe/Container.php CHANGED
@@ -248,7 +248,7 @@ if ( ! function_exists( 'tribe_register_provider' ) ) {
248
  * bound to `$classOrInterface` and return the value of a call to `$method` method with the call arguments.
249
  *
250
  * @since 4.7
251
- * @since TBD Included the $argsN params
252
  *
253
  * @param string $slug A class or interface fully qualified name or a string slug.
254
  * @param string $method The method that should be called on the resolved implementation with the
@@ -281,7 +281,7 @@ if ( ! function_exists( 'tribe_register_provider' ) ) {
281
  *
282
  * add_filter( 'admin_title', tribe_callback_return( __( 'Ready to work.' ) ) );
283
  *
284
- * @since TBD
285
  *
286
  * @param mixed $value The value to be returned
287
  *
248
  * bound to `$classOrInterface` and return the value of a call to `$method` method with the call arguments.
249
  *
250
  * @since 4.7
251
+ * @since 4.6.2 Included the $argsN params
252
  *
253
  * @param string $slug A class or interface fully qualified name or a string slug.
254
  * @param string $method The method that should be called on the resolved implementation with the
281
  *
282
  * add_filter( 'admin_title', tribe_callback_return( __( 'Ready to work.' ) ) );
283
  *
284
+ * @since 4.6.2
285
  *
286
  * @param mixed $value The value to be returned
287
  *
common/src/Tribe/Cost_Utils.php CHANGED
@@ -104,7 +104,10 @@ class Tribe__Cost_Utils {
104
  * return int|float|string
105
  */
106
  public function maybe_replace_cost_with_free( $cost ) {
107
- if ( '0' === (string) $cost ) {
 
 
 
108
  return esc_html__( 'Free', 'the-events-calendar' );
109
  }
110
 
104
  * return int|float|string
105
  */
106
  public function maybe_replace_cost_with_free( $cost ) {
107
+
108
+ $cost_with_period = $this->convert_decimal_separator( $cost );
109
+
110
+ if ( '0.00' === number_format( $cost_with_period, 2, '.', ',' ) ) {
111
  return esc_html__( 'Free', 'the-events-calendar' );
112
  }
113
 
common/src/Tribe/Main.php CHANGED
@@ -17,7 +17,7 @@ class Tribe__Main {
17
  const OPTIONNAME = 'tribe_events_calendar_options';
18
  const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
19
 
20
- const VERSION = '4.7.2';
21
 
22
  const FEED_URL = 'https://theeventscalendar.com/feed/';
23
 
17
  const OPTIONNAME = 'tribe_events_calendar_options';
18
  const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
19
 
20
+ const VERSION = '4.7.3';
21
 
22
  const FEED_URL = 'https://theeventscalendar.com/feed/';
23
 
common/src/Tribe/Template.php CHANGED
@@ -3,7 +3,7 @@ class Tribe__Template {
3
  /**
4
  * The folders into we will look for the template
5
  *
6
- * @since TBD
7
  *
8
  * @var array
9
  */
@@ -12,7 +12,7 @@ class Tribe__Template {
12
  /**
13
  * The origin class for the plugin where the template lives
14
  *
15
- * @since TBD
16
  *
17
  * @var object
18
  */
@@ -21,7 +21,7 @@ class Tribe__Template {
21
  /**
22
  * The local context for templates, muteable on every self::template() call
23
  *
24
- * @since TBD
25
  *
26
  * @var array
27
  */
@@ -30,7 +30,7 @@ class Tribe__Template {
30
  /**
31
  * The global context for this instance of templates
32
  *
33
- * @since TBD
34
  *
35
  * @var array
36
  */
@@ -39,7 +39,7 @@ class Tribe__Template {
39
  /**
40
  * Allow chaing if class will extract data from the local context
41
  *
42
- * @since TBD
43
  *
44
  * @var boolean
45
  */
@@ -48,7 +48,7 @@ class Tribe__Template {
48
  /**
49
  * Base template for where to look for template
50
  *
51
- * @since TBD
52
  *
53
  * @var array
54
  */
@@ -57,7 +57,7 @@ class Tribe__Template {
57
  /**
58
  * Configures the class origin plugin path
59
  *
60
- * @since TBD
61
  *
62
  * @param object|string $origin The base origin for the templates
63
  *
@@ -92,7 +92,7 @@ class Tribe__Template {
92
  /**
93
  * Configures the class with the base folder in relation to the Origin
94
  *
95
- * @since TBD
96
  *
97
  * @param array|string $folder Which folder we are going to look for templates
98
  *
@@ -118,7 +118,7 @@ class Tribe__Template {
118
  /**
119
  * Configures the class global context
120
  *
121
- * @since TBD
122
  *
123
  * @param array $context Default global Context
124
  *
@@ -134,7 +134,7 @@ class Tribe__Template {
134
  /**
135
  * Configures if the class will extract context for template
136
  *
137
- * @since TBD
138
  *
139
  * @param bool $value Should we extract context for templates
140
  *
@@ -150,7 +150,7 @@ class Tribe__Template {
150
  /**
151
  * Gets the base path for this Instance of Templates
152
  *
153
- * @since TBD
154
  *
155
  * @return string
156
  */
@@ -174,7 +174,7 @@ class Tribe__Template {
174
  * Sets a Index inside of the global or local context
175
  * Final to prevent extending the class when the `get` already exists on the child class
176
  *
177
- * @since TBD
178
  *
179
  * @see Tribe__Utils__Array::set
180
  *
@@ -196,7 +196,7 @@ class Tribe__Template {
196
  * Allows filtering the the getting of Context variables, also short circuiting
197
  * Following the same strucuture as WP Core
198
  *
199
- * @since TBD
200
  *
201
  * @param mixed $value The value that will be filtered
202
  * @param array $index Specify each nested index in order.
@@ -217,7 +217,7 @@ class Tribe__Template {
217
  * Sets a Index inside of the global or local context
218
  * Final to prevent extending the class when the `set` already exists on the child class
219
  *
220
- * @since TBD
221
  *
222
  * @see Tribe__Utils__Array::set
223
  *
@@ -240,7 +240,7 @@ class Tribe__Template {
240
  /**
241
  * Merges local and global context, and saves it locally
242
  *
243
- * @since TBD
244
  *
245
  * @param array $context Local Context array of data
246
  * @param string $file Complete path to include the PHP File
@@ -260,7 +260,7 @@ class Tribe__Template {
260
  /**
261
  * Allows filtering the Local context
262
  *
263
- * @since TBD
264
  *
265
  * @param array $context Local Context array of data
266
  * @param string $file Complete path to include the PHP File
@@ -275,7 +275,7 @@ class Tribe__Template {
275
  /**
276
  * A very simple method to include a Aggregator Template, allowing filtering and additions using hooks.
277
  *
278
- * @since TBD
279
  *
280
  * @param string $name Which file we are talking about including
281
  * @param array $context Any context data you need to expose to this file
@@ -301,7 +301,7 @@ class Tribe__Template {
301
  /**
302
  * A more Specific Filter that will include the template name
303
  *
304
- * @since TBD
305
  *
306
  * @param string $file Complete path to include the PHP File
307
  * @param array $name Template name
@@ -322,7 +322,7 @@ class Tribe__Template {
322
  /**
323
  * Fires an Action before including the template file
324
  *
325
- * @since TBD
326
  *
327
  * @param string $file Complete path to include the PHP File
328
  * @param array $name Template name
@@ -351,7 +351,7 @@ class Tribe__Template {
351
  /**
352
  * Fires an Action After including the template file
353
  *
354
- * @since TBD
355
  *
356
  * @param string $file Complete path to include the PHP File
357
  * @param array $name Template name
@@ -365,7 +365,7 @@ class Tribe__Template {
365
  /**
366
  * Allow users to filter the final HTML
367
  *
368
- * @since TBD
369
  *
370
  * @param string $html The final HTML
371
  * @param string $file Complete path to include the PHP File
3
  /**
4
  * The folders into we will look for the template
5
  *
6
+ * @since 4.6.2
7
  *
8
  * @var array
9
  */
12
  /**
13
  * The origin class for the plugin where the template lives
14
  *
15
+ * @since 4.6.2
16
  *
17
  * @var object
18
  */
21
  /**
22
  * The local context for templates, muteable on every self::template() call
23
  *
24
+ * @since 4.6.2
25
  *
26
  * @var array
27
  */
30
  /**
31
  * The global context for this instance of templates
32
  *
33
+ * @since 4.6.2
34
  *
35
  * @var array
36
  */
39
  /**
40
  * Allow chaing if class will extract data from the local context
41
  *
42
+ * @since 4.6.2
43
  *
44
  * @var boolean
45
  */
48
  /**
49
  * Base template for where to look for template
50
  *
51
+ * @since 4.6.2
52
  *
53
  * @var array
54
  */
57
  /**
58
  * Configures the class origin plugin path
59
  *
60
+ * @since 4.6.2
61
  *
62
  * @param object|string $origin The base origin for the templates
63
  *
92
  /**
93
  * Configures the class with the base folder in relation to the Origin
94
  *
95
+ * @since 4.6.2
96
  *
97
  * @param array|string $folder Which folder we are going to look for templates
98
  *
118
  /**
119
  * Configures the class global context
120
  *
121
+ * @since 4.6.2
122
  *
123
  * @param array $context Default global Context
124
  *
134
  /**
135
  * Configures if the class will extract context for template
136
  *
137
+ * @since 4.6.2
138
  *
139
  * @param bool $value Should we extract context for templates
140
  *
150
  /**
151
  * Gets the base path for this Instance of Templates
152
  *
153
+ * @since 4.6.2
154
  *
155
  * @return string
156
  */
174
  * Sets a Index inside of the global or local context
175
  * Final to prevent extending the class when the `get` already exists on the child class
176
  *
177
+ * @since 4.6.2
178
  *
179
  * @see Tribe__Utils__Array::set
180
  *
196
  * Allows filtering the the getting of Context variables, also short circuiting
197
  * Following the same strucuture as WP Core
198
  *
199
+ * @since 4.6.2
200
  *
201
  * @param mixed $value The value that will be filtered
202
  * @param array $index Specify each nested index in order.
217
  * Sets a Index inside of the global or local context
218
  * Final to prevent extending the class when the `set` already exists on the child class
219
  *
220
+ * @since 4.6.2
221
  *
222
  * @see Tribe__Utils__Array::set
223
  *
240
  /**
241
  * Merges local and global context, and saves it locally
242
  *
243
+ * @since 4.6.2
244
  *
245
  * @param array $context Local Context array of data
246
  * @param string $file Complete path to include the PHP File
260
  /**
261
  * Allows filtering the Local context
262
  *
263
+ * @since 4.6.2
264
  *
265
  * @param array $context Local Context array of data
266
  * @param string $file Complete path to include the PHP File
275
  /**
276
  * A very simple method to include a Aggregator Template, allowing filtering and additions using hooks.
277
  *
278
+ * @since 4.6.2
279
  *
280
  * @param string $name Which file we are talking about including
281
  * @param array $context Any context data you need to expose to this file
301
  /**
302
  * A more Specific Filter that will include the template name
303
  *
304
+ * @since 4.6.2
305
  *
306
  * @param string $file Complete path to include the PHP File
307
  * @param array $name Template name
322
  /**
323
  * Fires an Action before including the template file
324
  *
325
+ * @since 4.6.2
326
  *
327
  * @param string $file Complete path to include the PHP File
328
  * @param array $name Template name
351
  /**
352
  * Fires an Action After including the template file
353
  *
354
+ * @since 4.6.2
355
  *
356
  * @param string $file Complete path to include the PHP File
357
  * @param array $name Template name
365
  /**
366
  * Allow users to filter the final HTML
367
  *
368
+ * @since 4.6.2
369
  *
370
  * @param string $html The final HTML
371
  * @param string $file Complete path to include the PHP File
common/src/Tribe/Utils/Callback.php CHANGED
@@ -5,7 +5,7 @@ class Tribe__Utils__Callback {
5
  /**
6
  * Where we store all the Callbacks to allow removing of hooks
7
  *
8
- * @since TBD
9
  *
10
  * @var array
11
  */
@@ -14,7 +14,7 @@ class Tribe__Utils__Callback {
14
  /**
15
  * The Prefix we use for the Overloading replacement
16
  *
17
- * @since TBD
18
  *
19
  * @var string
20
  */
@@ -27,7 +27,7 @@ class Tribe__Utils__Callback {
27
  * The lambda function suitable to use as a callback; when called the function will build the implementation
28
  * bound to `$classOrInterface` and return the value of a call to `$method` method with the call arguments.
29
  *
30
- * @since TBD
31
  *
32
  * @param string $slug A class or interface fully qualified name or a string slug.
33
  * @param string $method The method that should be called on the resolved implementation with the
@@ -68,7 +68,7 @@ class Tribe__Utils__Callback {
68
  /**
69
  * Returns the Value passed as a simple Routing method for tribe_callback_return
70
  *
71
- * @since TBD
72
  *
73
  * @param mixed $value Value to be Routed
74
  *
@@ -82,7 +82,7 @@ class Tribe__Utils__Callback {
82
  * Calls the Lambda function provided by Di52 to allow passing of Params without having to create more
83
  * methods into classes for simple callbacks that will only have a pre-determined value.
84
  *
85
- * @since TBD
86
  *
87
  * @param string $slug A class or interface fully qualified name or a string slug.
88
  * @param string $method The method that should be called on the resolved implementation with the
5
  /**
6
  * Where we store all the Callbacks to allow removing of hooks
7
  *
8
+ * @since 4.6.2
9
  *
10
  * @var array
11
  */
14
  /**
15
  * The Prefix we use for the Overloading replacement
16
  *
17
+ * @since 4.6.2
18
  *
19
  * @var string
20
  */
27
  * The lambda function suitable to use as a callback; when called the function will build the implementation
28
  * bound to `$classOrInterface` and return the value of a call to `$method` method with the call arguments.
29
  *
30
+ * @since 4.6.2
31
  *
32
  * @param string $slug A class or interface fully qualified name or a string slug.
33
  * @param string $method The method that should be called on the resolved implementation with the
68
  /**
69
  * Returns the Value passed as a simple Routing method for tribe_callback_return
70
  *
71
+ * @since 4.6.2
72
  *
73
  * @param mixed $value Value to be Routed
74
  *
82
  * Calls the Lambda function provided by Di52 to allow passing of Params without having to create more
83
  * methods into classes for simple callbacks that will only have a pre-determined value.
84
  *
85
+ * @since 4.6.2
86
  *
87
  * @param string $slug A class or interface fully qualified name or a string slug.
88
  * @param string $method The method that should be called on the resolved implementation with the
common/src/functions/template-tags/general.php CHANGED
@@ -601,3 +601,40 @@ function tribe_assets( $origin, $assets, $action = null, $arguments = array() )
601
 
602
  return $registered;
603
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
601
 
602
  return $registered;
603
  }
604
+
605
+ if ( ! function_exists( 'tribe_doing_frontend' ) ) {
606
+ /**
607
+ * Registers truthy or falsy callbacks on the filters used to detect if
608
+ * any frontend operation is being done for logged in users or not.
609
+ *
610
+ * @since TBd
611
+ *
612
+ * @param bool $doing_frontend Whether what is being done happens in the
613
+ * context of the frontend or not.
614
+ */
615
+ function tribe_doing_frontend( $doing_frontend ) {
616
+ $callback = $doing_frontend ? '__return_true' : '__return_false';
617
+
618
+ add_filter( 'tribe_doing_frontend', $callback );
619
+ }
620
+ }
621
+
622
+ if ( ! function_exists( 'tribe_is_frontend' ) ) {
623
+ /**
624
+ * Whether we are currently performing a frontend operation or not.
625
+ *
626
+ * @since 4.6.2
627
+ *
628
+ * @return bool
629
+ */
630
+ function tribe_is_frontend() {
631
+ /**
632
+ * Whether we are currently performing a frontend operation or not.
633
+ *
634
+ * @since 4.6.2
635
+ *
636
+ * @param bool $is_frontend
637
+ */
638
+ return (bool) apply_filters( 'tribe_doing_frontend', false );
639
+ }
640
+ }
common/src/resources/css/datepicker.css CHANGED
@@ -35,7 +35,7 @@
35
  /* Icons
36
  ----------------------------------*/
37
 
38
- .tribe-ui-datepicker .ui-icon {
39
  display: inline-block;
40
  vertical-align: middle;
41
  margin-top: -4px;
@@ -44,6 +44,7 @@
44
  text-indent: -99999px;
45
  overflow: hidden;
46
  background-repeat: no-repeat;
 
47
  }
48
 
49
  .tribe-ui-datepicker .ui-widget-icon-block {
@@ -78,6 +79,9 @@
78
  margin-bottom: 1rem;
79
  position: relative;
80
  padding: 0;
 
 
 
81
  }
82
 
83
  .tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev,
@@ -86,6 +90,8 @@
86
  top: 50%;
87
  -webkit-transform: translateY(-50%);
88
  transform: translateY(-50%);
 
 
89
  }
90
 
91
  .tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev:before {
@@ -111,6 +117,8 @@
111
  .tribe-ui-datepicker .ui-datepicker-prev-hover,
112
  .tribe-ui-datepicker .ui-datepicker-next-hover {
113
  color: darken(#b1b1b1, 10%);
 
 
114
  }
115
 
116
  .tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev {
@@ -268,6 +276,7 @@
268
  .tribe-ui-datepicker.ui-widget {
269
  font-size: 19.2px;
270
  font-size: 1.2rem;
 
271
  }
272
 
273
  .tribe-ui-datepicker.ui-widget .ui-widget {
@@ -301,6 +310,9 @@ works properly when clicked or hovered */
301
  html .tribe-ui-datepicker .ui-button.ui-state-disabled:hover,
302
  html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
303
  color: #23282d;
 
 
 
304
  }
305
 
306
  .tribe-ui-datepicker .ui-state-default a,
@@ -323,6 +335,8 @@ html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
323
  .tribe-ui-datepicker .ui-button:hover,
324
  .tribe-ui-datepicker .ui-button:focus {
325
  color: #000;
 
 
326
  }
327
 
328
  .tribe-ui-datepicker .ui-state-hover a,
@@ -337,6 +351,8 @@ html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
337
  .tribe-ui-datepicker a.ui-button:focus {
338
  color: #b1b1b1;
339
  text-decoration: none;
 
 
340
  }
341
 
342
  .tribe-ui-datepicker .ui-visual-focus {
@@ -374,6 +390,8 @@ html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
374
  .tribe-ui-datepicker .ui-widget-header .ui-state-highlight {
375
  background: #ffffff;
376
  color: #363636;
 
 
377
  }
378
 
379
  .tribe-ui-datepicker .ui-state-checked {
35
  /* Icons
36
  ----------------------------------*/
37
 
38
+ .tribe-ui-datepicker.ui-datepicker .ui-datepicker-group span.ui-icon {
39
  display: inline-block;
40
  vertical-align: middle;
41
  margin-top: -4px;
44
  text-indent: -99999px;
45
  overflow: hidden;
46
  background-repeat: no-repeat;
47
+ background-image: none;
48
  }
49
 
50
  .tribe-ui-datepicker .ui-widget-icon-block {
79
  margin-bottom: 1rem;
80
  position: relative;
81
  padding: 0;
82
+ border: 0;
83
+ background-color: transparent;
84
+ background-image: none;
85
  }
86
 
87
  .tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev,
90
  top: 50%;
91
  -webkit-transform: translateY(-50%);
92
  transform: translateY(-50%);
93
+ line-height: 1.8em;
94
+ text-align: center;
95
  }
96
 
97
  .tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev:before {
117
  .tribe-ui-datepicker .ui-datepicker-prev-hover,
118
  .tribe-ui-datepicker .ui-datepicker-next-hover {
119
  color: darken(#b1b1b1, 10%);
120
+ border: 0;
121
+ background: none;
122
  }
123
 
124
  .tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev {
276
  .tribe-ui-datepicker.ui-widget {
277
  font-size: 19.2px;
278
  font-size: 1.2rem;
279
+ font-family: inherit;
280
  }
281
 
282
  .tribe-ui-datepicker.ui-widget .ui-widget {
310
  html .tribe-ui-datepicker .ui-button.ui-state-disabled:hover,
311
  html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
312
  color: #23282d;
313
+ border: 0;
314
+ background-color: transparent;
315
+ background-image: none;
316
  }
317
 
318
  .tribe-ui-datepicker .ui-state-default a,
335
  .tribe-ui-datepicker .ui-button:hover,
336
  .tribe-ui-datepicker .ui-button:focus {
337
  color: #000;
338
+ border: 0;
339
+ background: none;
340
  }
341
 
342
  .tribe-ui-datepicker .ui-state-hover a,
351
  .tribe-ui-datepicker a.ui-button:focus {
352
  color: #b1b1b1;
353
  text-decoration: none;
354
+ background-color: none;
355
+ background-image: none;
356
  }
357
 
358
  .tribe-ui-datepicker .ui-visual-focus {
390
  .tribe-ui-datepicker .ui-widget-header .ui-state-highlight {
391
  background: #ffffff;
392
  color: #363636;
393
+ border: 0;
394
+ background-image: none;
395
  }
396
 
397
  .tribe-ui-datepicker .ui-state-checked {
common/src/resources/css/datepicker.min.css CHANGED
@@ -1 +1 @@
1
- .tribe-ui-datepicker.ui-datepicker body,.tribe-ui-datepicker.ui-datepicker button,.tribe-ui-datepicker.ui-datepicker input,.tribe-ui-datepicker.ui-datepicker select,.tribe-ui-datepicker.ui-datepicker textarea{font-family:Verdana,Helvetica Neue,Helvetica,Arial,sans-serif}.tribe-ui-datepicker.ui-datepicker table{border:none}.tribe-ui-datepicker .ui-datepicker-month{font-weight:700}.tribe-ui-datepicker .ui-state-disabled{cursor:default!important;pointer-events:none}.tribe-ui-datepicker .ui-icon{display:inline-block;vertical-align:middle;margin-top:-4px;margin-top:-.25rem;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.tribe-ui-datepicker .ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.tribe-ui-datepicker.ui-datepicker{background:#fff;box-shadow:1px 1px 5px rgba(0,0,0,.5);width:17em;padding:1em;display:none}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-header{margin-bottom:16px;margin-bottom:1rem;position:relative;padding:0}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next,.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev:before{color:#b1b1b1;content:"\2190";cursor:pointer}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev:hover:before{color:#000}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next:before{color:#b1b1b1;content:"\2192";cursor:pointer}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next:hover:before{color:#000}.tribe-ui-datepicker .ui-datepicker-next-hover,.tribe-ui-datepicker .ui-datepicker-prev-hover{color:darken(#b1b1b1,10%)}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev{left:1px}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next{right:1px}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev-hover{left:1px}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next-hover{right:1px}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8;text-align:center}.tribe-ui-datepicker select.ui-datepicker-month,.tribe-ui-datepicker select.ui-datepicker-year{border:none;box-shadow:0 1px 0 rgba(0,0,0,.1);margin-right:1px;width:72px;width:4.5rem}.tribe-ui-datepicker.ui-datepicker table{width:100%;font-size:14.4px;font-size:.9rem;border-collapse:collapse;margin:0 0 6.4px;margin:0 0 .4rem}.tribe-ui-datepicker.ui-datepicker th{color:#b1b1b1;padding:11.2px 4.8px;padding:.7rem .3rem;text-align:center;border:0}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-calendar td{border:1px solid #ddd;padding:1px}.tribe-ui-datepicker.ui-datepicker td.ui-datepicker-unselectable{border:none}.tribe-ui-datepicker.ui-datepicker a.ui-state-active{background:#0085ba;color:#fff}.tribe-ui-datepicker.ui-datepicker td a,.tribe-ui-datepicker.ui-datepicker td span{display:block;padding:8px 3.2px;padding:.5rem .2rem;text-align:center;text-decoration:none}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:11.2px 0 0;margin:.7rem 0 0;padding:0 3.2px;padding:0 .2rem;border-left:0;border-right:0;border-bottom:0}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:8px 3.2px 6.4px;margin:.5rem .2rem .4rem;cursor:pointer;padding:3.2px 9.6px 4.8px;padding:.2rem .6rem .3rem;width:auto;overflow:visible}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;background:#fff;border:1px solid #b1b1b1}.tribe-ui-datepicker.ui-datepicker button.ui-datepicker-close{background:linear-gradient(354deg,#0a55a0,#1288eb);border:1px solid #0085ba;color:#fff!important;font-weight:400}.tribe-ui-datepicker.ui-datepicker.ui-datepicker-multi{width:auto}.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group{float:left}.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto 6.4px;margin:0 auto .4rem}.tribe-ui-datepicker.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.tribe-ui-datepicker.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.tribe-ui-datepicker.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.tribe-ui-datepicker .ui-datepicker-row-break{clear:both;width:100%;font-size:0}.tribe-ui-datepicker.ui-widget{font-size:19.2px;font-size:1.2rem}.tribe-ui-datepicker.ui-widget .ui-widget,.tribe-ui-datepicker.ui-widget button,.tribe-ui-datepicker.ui-widget input,.tribe-ui-datepicker.ui-widget select,.tribe-ui-datepicker.ui-widget textarea{font-size:16px;font-size:1rem}.tribe-ui-datepicker .ui-button,.tribe-ui-datepicker .ui-state-default,.tribe-ui-datepicker.ui-widget-content .ui-state-default,.tribe-ui-datepicker.ui-widget-content a,.tribe-ui-datepicker .ui-widget-header .ui-state-default,.tribe-ui-datepicker .ui-widget-header a,html .tribe-ui-datepicker .ui-button.ui-state-disabled:active,html .tribe-ui-datepicker .ui-button.ui-state-disabled:hover{color:#23282d}.tribe-ui-datepicker .ui-button,.tribe-ui-datepicker .ui-state-default a,.tribe-ui-datepicker .ui-state-default a:link,.tribe-ui-datepicker .ui-state-default a:visited,.tribe-ui-datepicker a.ui-button,.tribe-ui-datepicker a:link.ui-button,.tribe-ui-datepicker a:visited.ui-button{color:#23282d;text-decoration:none}.tribe-ui-datepicker .ui-button:focus,.tribe-ui-datepicker .ui-button:hover,.tribe-ui-datepicker .ui-state-focus,.tribe-ui-datepicker .ui-state-hover,.tribe-ui-datepicker .ui-widget-content .ui-state-focus,.tribe-ui-datepicker .ui-widget-content .ui-state-hover,.tribe-ui-datepicker .ui-widget-header .ui-state-focus,.tribe-ui-datepicker .ui-widget-header .ui-state-hover{color:#000}.tribe-ui-datepicker .ui-state-focus a,.tribe-ui-datepicker .ui-state-focus a:hover,.tribe-ui-datepicker .ui-state-focus a:link,.tribe-ui-datepicker .ui-state-focus a:visited,.tribe-ui-datepicker .ui-state-hover a,.tribe-ui-datepicker .ui-state-hover a:hover,.tribe-ui-datepicker .ui-state-hover a:link,.tribe-ui-datepicker .ui-state-hover a:visited,.tribe-ui-datepicker a.ui-button:focus,.tribe-ui-datepicker a.ui-button:hover{color:#b1b1b1;text-decoration:none}.tribe-ui-datepicker .ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.tribe-ui-datepicker .ui-button.ui-state-active:hover,.tribe-ui-datepicker .ui-button:active,.tribe-ui-datepicker .ui-state-active,.tribe-ui-datepicker .ui-widget-content .ui-state-active,.tribe-ui-datepicker .ui-widget-header .ui-state-active,.tribe-ui-datepicker a.ui-button:active{background:linear-gradient(354deg,#0a55a0,#1288eb);color:#fff}.tribe-ui-datepicker .ui-icon-background,.tribe-ui-datepicker .ui-state-active .ui-icon-background{border:#ddd;background-color:#1c94c4}.tribe-ui-datepicker .ui-state-active a,.tribe-ui-datepicker .ui-state-active a:link,.tribe-ui-datepicker .ui-state-active a:visited{color:#23282d;text-decoration:none}.tribe-ui-datepicker .ui-state-highlight,.tribe-ui-datepicker.ui-widget-content .ui-state-highlight,.tribe-ui-datepicker .ui-widget-header .ui-state-highlight{background:#fff;color:#363636}.tribe-ui-datepicker .ui-state-checked{background:#fff}.tribe-ui-datepicker .ui-state-highlight a,.tribe-ui-datepicker.ui-widget-content .ui-state-highlight a,.tribe-ui-datepicker .ui-widget-header .ui-state-highlight a{color:#363636}.tribe-ui-datepicker .ui-state-error,.tribe-ui-datepicker.ui-widget-content .ui-state-error,.tribe-ui-datepicker .ui-widget-header .ui-state-error{background:#b81900;color:#fff}.tribe-ui-datepicker .ui-state-error-text,.tribe-ui-datepicker .ui-state-error a,.tribe-ui-datepicker.ui-widget-content .ui-state-error-text,.tribe-ui-datepicker.ui-widget-content .ui-state-error a,.tribe-ui-datepicker .ui-widget-header .ui-state-error-text,.tribe-ui-datepicker .ui-widget-header .ui-state-error a{color:#fff}.tribe-ui-datepicker .ui-priority-secondary,.tribe-ui-datepicker.ui-widget-content .ui-priority-secondary,.tribe-ui-datepicker .ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.tribe-ui-datepicker .ui-state-disabled,.tribe-ui-datepicker.ui-widget-content .ui-state-disabled,.tribe-ui-datepicker .ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.tribe-ui-datepicker .ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.tribe-ui-datepicker .ui-corner-all,.tribe-ui-datepicker .ui-corner-left,.tribe-ui-datepicker .ui-corner-tl,.tribe-ui-datepicker .ui-corner-top{border-top-left-radius:4px}.tribe-ui-datepicker .ui-corner-all,.tribe-ui-datepicker .ui-corner-right,.tribe-ui-datepicker .ui-corner-top,.tribe-ui-datepicker .ui-corner-tr{border-top-right-radius:4px}.tribe-ui-datepicker .ui-corner-all,.tribe-ui-datepicker .ui-corner-bl,.tribe-ui-datepicker .ui-corner-bottom,.tribe-ui-datepicker .ui-corner-left{border-bottom-left-radius:4px}.tribe-ui-datepicker .ui-corner-all,.tribe-ui-datepicker .ui-corner-bottom,.tribe-ui-datepicker .ui-corner-br,.tribe-ui-datepicker .ui-corner-right{border-bottom-right-radius:4px}.tribe-ui-datepicker .ui-widget-overlay{background:#666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat;opacity:.5;filter:Alpha(Opacity=50)}.tribe-ui-datepicker .ui-widget-shadow{box-shadow:-5px -5px 5px #000}.tribe-ui-datepicker .ui-helper-hidden{display:none}.tribe-ui-datepicker .ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-ui-datepicker .ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.tribe-ui-datepicker .ui-helper-clearfix:after,.tribe-ui-datepicker .ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.tribe-ui-datepicker .ui-helper-clearfix:after{clear:both}.tribe-ui-datepicker .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.tribe-ui-datepicker .ui-front{z-index:100}.tribe-ui-datepicker.ui-datepicker-rtl{direction:rtl}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-group{float:right}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}
1
+ .tribe-ui-datepicker.ui-datepicker body,.tribe-ui-datepicker.ui-datepicker button,.tribe-ui-datepicker.ui-datepicker input,.tribe-ui-datepicker.ui-datepicker select,.tribe-ui-datepicker.ui-datepicker textarea{font-family:Verdana,Helvetica Neue,Helvetica,Arial,sans-serif}.tribe-ui-datepicker.ui-datepicker table{border:none}.tribe-ui-datepicker .ui-datepicker-month{font-weight:700}.tribe-ui-datepicker .ui-state-disabled{cursor:default!important;pointer-events:none}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-group span.ui-icon{display:inline-block;vertical-align:middle;margin-top:-4px;margin-top:-.25rem;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;background-image:none}.tribe-ui-datepicker .ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.tribe-ui-datepicker.ui-datepicker{background:#fff;box-shadow:1px 1px 5px rgba(0,0,0,.5);width:17em;padding:1em;display:none}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-header{margin-bottom:16px;margin-bottom:1rem;position:relative;padding:0;border:0;background-color:transparent;background-image:none}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next,.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);line-height:1.8em;text-align:center}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev:before{color:#b1b1b1;content:"\2190";cursor:pointer}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev:hover:before{color:#000}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next:before{color:#b1b1b1;content:"\2192";cursor:pointer}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next:hover:before{color:#000}.tribe-ui-datepicker .ui-datepicker-next-hover,.tribe-ui-datepicker .ui-datepicker-prev-hover{color:darken(#b1b1b1,10%);border:0;background:none}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev{left:1px}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next{right:1px}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev-hover{left:1px}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next-hover{right:1px}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8;text-align:center}.tribe-ui-datepicker select.ui-datepicker-month,.tribe-ui-datepicker select.ui-datepicker-year{border:none;box-shadow:0 1px 0 rgba(0,0,0,.1);margin-right:1px;width:72px;width:4.5rem}.tribe-ui-datepicker.ui-datepicker table{width:100%;font-size:14.4px;font-size:.9rem;border-collapse:collapse;margin:0 0 6.4px;margin:0 0 .4rem}.tribe-ui-datepicker.ui-datepicker th{color:#b1b1b1;padding:11.2px 4.8px;padding:.7rem .3rem;text-align:center;border:0}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-calendar td{border:1px solid #ddd;padding:1px}.tribe-ui-datepicker.ui-datepicker td.ui-datepicker-unselectable{border:none}.tribe-ui-datepicker.ui-datepicker a.ui-state-active{background:#0085ba;color:#fff}.tribe-ui-datepicker.ui-datepicker td a,.tribe-ui-datepicker.ui-datepicker td span{display:block;padding:8px 3.2px;padding:.5rem .2rem;text-align:center;text-decoration:none}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:11.2px 0 0;margin:.7rem 0 0;padding:0 3.2px;padding:0 .2rem;border-left:0;border-right:0;border-bottom:0}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:8px 3.2px 6.4px;margin:.5rem .2rem .4rem;cursor:pointer;padding:3.2px 9.6px 4.8px;padding:.2rem .6rem .3rem;width:auto;overflow:visible}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;background:#fff;border:1px solid #b1b1b1}.tribe-ui-datepicker.ui-datepicker button.ui-datepicker-close{background:linear-gradient(354deg,#0a55a0,#1288eb);border:1px solid #0085ba;color:#fff!important;font-weight:400}.tribe-ui-datepicker.ui-datepicker.ui-datepicker-multi{width:auto}.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group{float:left}.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto 6.4px;margin:0 auto .4rem}.tribe-ui-datepicker.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.tribe-ui-datepicker.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.tribe-ui-datepicker.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.tribe-ui-datepicker .ui-datepicker-row-break{clear:both;width:100%;font-size:0}.tribe-ui-datepicker.ui-widget{font-size:19.2px;font-size:1.2rem;font-family:inherit}.tribe-ui-datepicker.ui-widget .ui-widget,.tribe-ui-datepicker.ui-widget button,.tribe-ui-datepicker.ui-widget input,.tribe-ui-datepicker.ui-widget select,.tribe-ui-datepicker.ui-widget textarea{font-size:16px;font-size:1rem}.tribe-ui-datepicker.ui-widget-content a,.tribe-ui-datepicker .ui-widget-header a{color:#23282d}.tribe-ui-datepicker .ui-button,.tribe-ui-datepicker .ui-state-default,.tribe-ui-datepicker.ui-widget-content .ui-state-default,.tribe-ui-datepicker .ui-widget-header .ui-state-default,html .tribe-ui-datepicker .ui-button.ui-state-disabled:active,html .tribe-ui-datepicker .ui-button.ui-state-disabled:hover{color:#23282d;border:0;background-color:transparent;background-image:none}.tribe-ui-datepicker .ui-button,.tribe-ui-datepicker .ui-state-default a,.tribe-ui-datepicker .ui-state-default a:link,.tribe-ui-datepicker .ui-state-default a:visited,.tribe-ui-datepicker a.ui-button,.tribe-ui-datepicker a:link.ui-button,.tribe-ui-datepicker a:visited.ui-button{color:#23282d;text-decoration:none}.tribe-ui-datepicker .ui-button:focus,.tribe-ui-datepicker .ui-button:hover,.tribe-ui-datepicker .ui-state-focus,.tribe-ui-datepicker .ui-state-hover,.tribe-ui-datepicker .ui-widget-content .ui-state-focus,.tribe-ui-datepicker .ui-widget-content .ui-state-hover,.tribe-ui-datepicker .ui-widget-header .ui-state-focus,.tribe-ui-datepicker .ui-widget-header .ui-state-hover{color:#000;border:0;background:none}.tribe-ui-datepicker .ui-state-focus a,.tribe-ui-datepicker .ui-state-focus a:hover,.tribe-ui-datepicker .ui-state-focus a:link,.tribe-ui-datepicker .ui-state-focus a:visited,.tribe-ui-datepicker .ui-state-hover a,.tribe-ui-datepicker .ui-state-hover a:hover,.tribe-ui-datepicker .ui-state-hover a:link,.tribe-ui-datepicker .ui-state-hover a:visited,.tribe-ui-datepicker a.ui-button:focus,.tribe-ui-datepicker a.ui-button:hover{color:#b1b1b1;text-decoration:none;background-color:none;background-image:none}.tribe-ui-datepicker .ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.tribe-ui-datepicker .ui-button.ui-state-active:hover,.tribe-ui-datepicker .ui-button:active,.tribe-ui-datepicker .ui-state-active,.tribe-ui-datepicker .ui-widget-content .ui-state-active,.tribe-ui-datepicker .ui-widget-header .ui-state-active,.tribe-ui-datepicker a.ui-button:active{background:linear-gradient(354deg,#0a55a0,#1288eb);color:#fff}.tribe-ui-datepicker .ui-icon-background,.tribe-ui-datepicker .ui-state-active .ui-icon-background{border:#ddd;background-color:#1c94c4}.tribe-ui-datepicker .ui-state-active a,.tribe-ui-datepicker .ui-state-active a:link,.tribe-ui-datepicker .ui-state-active a:visited{color:#23282d;text-decoration:none}.tribe-ui-datepicker .ui-state-highlight,.tribe-ui-datepicker.ui-widget-content .ui-state-highlight,.tribe-ui-datepicker .ui-widget-header .ui-state-highlight{background:#fff;color:#363636;border:0;background-image:none}.tribe-ui-datepicker .ui-state-checked{background:#fff}.tribe-ui-datepicker .ui-state-highlight a,.tribe-ui-datepicker.ui-widget-content .ui-state-highlight a,.tribe-ui-datepicker .ui-widget-header .ui-state-highlight a{color:#363636}.tribe-ui-datepicker .ui-state-error,.tribe-ui-datepicker.ui-widget-content .ui-state-error,.tribe-ui-datepicker .ui-widget-header .ui-state-error{background:#b81900;color:#fff}.tribe-ui-datepicker .ui-state-error-text,.tribe-ui-datepicker .ui-state-error a,.tribe-ui-datepicker.ui-widget-content .ui-state-error-text,.tribe-ui-datepicker.ui-widget-content .ui-state-error a,.tribe-ui-datepicker .ui-widget-header .ui-state-error-text,.tribe-ui-datepicker .ui-widget-header .ui-state-error a{color:#fff}.tribe-ui-datepicker .ui-priority-secondary,.tribe-ui-datepicker.ui-widget-content .ui-priority-secondary,.tribe-ui-datepicker .ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.tribe-ui-datepicker .ui-state-disabled,.tribe-ui-datepicker.ui-widget-content .ui-state-disabled,.tribe-ui-datepicker .ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.tribe-ui-datepicker .ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.tribe-ui-datepicker .ui-corner-all,.tribe-ui-datepicker .ui-corner-left,.tribe-ui-datepicker .ui-corner-tl,.tribe-ui-datepicker .ui-corner-top{border-top-left-radius:4px}.tribe-ui-datepicker .ui-corner-all,.tribe-ui-datepicker .ui-corner-right,.tribe-ui-datepicker .ui-corner-top,.tribe-ui-datepicker .ui-corner-tr{border-top-right-radius:4px}.tribe-ui-datepicker .ui-corner-all,.tribe-ui-datepicker .ui-corner-bl,.tribe-ui-datepicker .ui-corner-bottom,.tribe-ui-datepicker .ui-corner-left{border-bottom-left-radius:4px}.tribe-ui-datepicker .ui-corner-all,.tribe-ui-datepicker .ui-corner-bottom,.tribe-ui-datepicker .ui-corner-br,.tribe-ui-datepicker .ui-corner-right{border-bottom-right-radius:4px}.tribe-ui-datepicker .ui-widget-overlay{background:#666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat;opacity:.5;filter:Alpha(Opacity=50)}.tribe-ui-datepicker .ui-widget-shadow{box-shadow:-5px -5px 5px #000}.tribe-ui-datepicker .ui-helper-hidden{display:none}.tribe-ui-datepicker .ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-ui-datepicker .ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.tribe-ui-datepicker .ui-helper-clearfix:after,.tribe-ui-datepicker .ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.tribe-ui-datepicker .ui-helper-clearfix:after{clear:both}.tribe-ui-datepicker .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.tribe-ui-datepicker .ui-front{z-index:100}.tribe-ui-datepicker.ui-datepicker-rtl{direction:rtl}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-group{float:right}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}
common/src/resources/js/tribe-common.js CHANGED
@@ -1,10 +1,32 @@
1
  // Run some magic to allow a better handling of class names for jQuery.hasClass type of methods
2
  String.prototype.className = function () {
 
 
 
 
 
 
 
 
 
 
 
3
  return this.replace( '.', '' );
4
  };
5
 
6
  // Add a method to convert ID/Classes into JS easy/safe variable
7
  String.prototype.varName = function () {
 
 
 
 
 
 
 
 
 
 
 
8
  return this.replace( '-', '_' );
9
  };
10
 
1
  // Run some magic to allow a better handling of class names for jQuery.hasClass type of methods
2
  String.prototype.className = function () {
3
+ // Prevent Non Strings to be included
4
+ if (
5
+ (
6
+ 'string' !== typeof this
7
+ && ! this instanceof String
8
+ )
9
+ || 'function' !== typeof this.replace
10
+ ) {
11
+ return this;
12
+ }
13
+
14
  return this.replace( '.', '' );
15
  };
16
 
17
  // Add a method to convert ID/Classes into JS easy/safe variable
18
  String.prototype.varName = function () {
19
+ // Prevent Non Strings to be included
20
+ if (
21
+ (
22
+ 'string' !== typeof this
23
+ && ! this instanceof String
24
+ )
25
+ || 'function' !== typeof this.replace
26
+ ) {
27
+ return this;
28
+ }
29
+
30
  return this.replace( '-', '_' );
31
  };
32
 
common/src/resources/js/tribe-common.min.js CHANGED
@@ -1 +1 @@
1
- String.prototype.className=function(){return this.replace(".","")},String.prototype.varName=function(){return this.replace("-","_")};var tribe=tribe||{},tribe_auto_sysinfo=tribe_auto_sysinfo||{};tribe_auto_sysinfo.ajax={event:{}},function(t,n){"use strict";n.init=function(){this.init_ajax(),this.init_copy(),n.navigate_to_id()},n.init_copy=function(){if("undefined"!=typeof tribe_system_info){var n=new Clipboard(".system-info-copy-btn"),i='<span class="dashicons dashicons-clipboard license-btn"></span>',e=tribe_system_info.clipboard_btn_text;t(".system-info-copy-btn").click(function(t){t.preventDefault()}),n.on("success",function(t){t.clearSelection(),t.trigger.innerHTML=i+'<span class="optin-success">'+tribe_system_info.clipboard_copied_text+"<span>",window.setTimeout(function(){t.trigger.innerHTML=i+e},5e3)}),n.on("error",function(t){t.trigger.innerHTML=i+'<span class="optin-fail">'+tribe_system_info.clipboard_fail_text+"<span>",window.setTimeout(function(){t.trigger.innerHTML=i+e},5e3)})}},n.init_ajax=function(){"undefined"!=typeof tribe_system_info&&(this.$system_info_opt_in=t(document.getElementById("tribe_auto_sysinfo_opt_in")),this.$system_info_opt_in_msg=t(".tribe-sysinfo-optin-msg"),this.$system_info_opt_in.change(function(){this.checked?n.event.ajax("generate"):n.event.ajax("remove")}))},n.event.ajax=function(i){var e={action:"tribe_toggle_sysinfo_optin",confirm:tribe_system_info.sysinfo_optin_nonce,generate_key:i};t.post(ajaxurl,e,function(i){i.success?n.$system_info_opt_in_msg.html("<p class='optin-success'>"+i.data+"</p>"):(n.$system_info_opt_in_msg.html("<p class='optin-fail'>"+i.data.message+" Code:"+i.data.code+" Status:"+i.data.data.status+"</p>"),t("#tribe_auto_sysinfo_opt_in").prop("checked",!1))})},n.navigate_to_id=function(){t(document).ready(n.maybe_navigate_to_id_on_doc_ready),t(document).on("click",".tribe_events_page_tribe-common",n.maybe_navigate_to_id_after_click)},n.maybe_navigate_to_id_on_doc_ready=function(){var t=n.get_url_fragment(window.location.href);t.length&&n.adjust_scroll_position(t)},n.maybe_navigate_to_id_after_click=function(i){var e=t(i.target).attr("href");if("undefined"!=typeof e){var o=n.get_url_fragment(e);o&&n.adjust_scroll_position(o)}},n.adjust_scroll_position=function(n){if(t("#wpadminbar").length){var i=t("#"+n).position();i&&setTimeout(function(){window.scroll(window.scrollX,i.top)})}},n.get_url_fragment=function(t){var n=t.match(/#([a-z0-9_-]+)$/i);return null===n?"":n[1]},t(function(){n.init()})}(jQuery,tribe_auto_sysinfo.ajax);
1
+ String.prototype.className=function(){return"string"!=typeof this&&!this instanceof String||"function"!=typeof this.replace?this:this.replace(".","")},String.prototype.varName=function(){return"string"!=typeof this&&!this instanceof String||"function"!=typeof this.replace?this:this.replace("-","_")};var tribe=tribe||{},tribe_auto_sysinfo=tribe_auto_sysinfo||{};tribe_auto_sysinfo.ajax={event:{}},function(t,i){"use strict";i.init=function(){this.init_ajax(),this.init_copy(),i.navigate_to_id()},i.init_copy=function(){if("undefined"!=typeof tribe_system_info){var i=new Clipboard(".system-info-copy-btn"),n='<span class="dashicons dashicons-clipboard license-btn"></span>',e=tribe_system_info.clipboard_btn_text;t(".system-info-copy-btn").click(function(t){t.preventDefault()}),i.on("success",function(t){t.clearSelection(),t.trigger.innerHTML=n+'<span class="optin-success">'+tribe_system_info.clipboard_copied_text+"<span>",window.setTimeout(function(){t.trigger.innerHTML=n+e},5e3)}),i.on("error",function(t){t.trigger.innerHTML=n+'<span class="optin-fail">'+tribe_system_info.clipboard_fail_text+"<span>",window.setTimeout(function(){t.trigger.innerHTML=n+e},5e3)})}},i.init_ajax=function(){"undefined"!=typeof tribe_system_info&&(this.$system_info_opt_in=t(document.getElementById("tribe_auto_sysinfo_opt_in")),this.$system_info_opt_in_msg=t(".tribe-sysinfo-optin-msg"),this.$system_info_opt_in.change(function(){this.checked?i.event.ajax("generate"):i.event.ajax("remove")}))},i.event.ajax=function(n){var e={action:"tribe_toggle_sysinfo_optin",confirm:tribe_system_info.sysinfo_optin_nonce,generate_key:n};t.post(ajaxurl,e,function(n){n.success?i.$system_info_opt_in_msg.html("<p class='optin-success'>"+n.data+"</p>"):(i.$system_info_opt_in_msg.html("<p class='optin-fail'>"+n.data.message+" Code:"+n.data.code+" Status:"+n.data.data.status+"</p>"),t("#tribe_auto_sysinfo_opt_in").prop("checked",!1))})},i.navigate_to_id=function(){t(document).ready(i.maybe_navigate_to_id_on_doc_ready),t(document).on("click",".tribe_events_page_tribe-common",i.maybe_navigate_to_id_after_click)},i.maybe_navigate_to_id_on_doc_ready=function(){var t=i.get_url_fragment(window.location.href);t.length&&i.adjust_scroll_position(t)},i.maybe_navigate_to_id_after_click=function(n){var e=t(n.target).attr("href");if("undefined"!=typeof e){var o=i.get_url_fragment(e);o&&i.adjust_scroll_position(o)}},i.adjust_scroll_position=function(i){if(t("#wpadminbar").length){var n=t("#"+i).position();n&&setTimeout(function(){window.scroll(window.scrollX,n.top)})}},i.get_url_fragment=function(t){var i=t.match(/#([a-z0-9_-]+)$/i);return null===i?"":i[1]},t(function(){i.init()})}(jQuery,tribe_auto_sysinfo.ajax);
common/src/resources/postcss/datepicker.pcss CHANGED
@@ -26,14 +26,17 @@
26
 
27
  /* Icons
28
  ----------------------------------*/
29
- .tribe-ui-datepicker .ui-icon {
30
- display: inline-block;
31
- vertical-align: middle;
32
- margin-top: -.25rem;
33
- position: relative;
34
- text-indent: -99999px;
35
- overflow: hidden;
36
- background-repeat: no-repeat;
 
 
 
37
  }
38
 
39
  .tribe-ui-datepicker .ui-widget-icon-block {
@@ -66,6 +69,9 @@
66
  margin-bottom: 1rem;
67
  position: relative;
68
  padding: 0;
 
 
 
69
  }
70
 
71
  .tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev,
@@ -73,6 +79,8 @@
73
  position: absolute;
74
  top: 50%;
75
  transform: translateY(-50%);
 
 
76
  }
77
 
78
  .tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev {
@@ -106,6 +114,8 @@
106
  .tribe-ui-datepicker .ui-datepicker-prev-hover,
107
  .tribe-ui-datepicker .ui-datepicker-next-hover {
108
  color: darken(#b1b1b1, 10%);
 
 
109
  }
110
 
111
  .tribe-ui-datepicker.ui-datepicker {
@@ -165,7 +175,7 @@
165
  td.ui-datepicker-unselectable {
166
  border: none;
167
  }
168
-
169
  a.ui-state-active {
170
  background: #0085ba;
171
  color: #fff;
@@ -187,7 +197,7 @@
187
  border-right: 0;
188
  border-bottom: 0;
189
  }
190
-
191
  .ui-datepicker-buttonpane button {
192
  float: right;
193
  margin: .5rem .2rem .4rem;
@@ -196,13 +206,13 @@
196
  width: auto;
197
  overflow: visible;
198
  }
199
-
200
  .ui-datepicker-buttonpane button.ui-datepicker-current {
201
  float: left;
202
  background: #fff;
203
  border: 1px solid #b1b1b1;
204
  }
205
-
206
  button.ui-datepicker-close {
207
  background: linear-gradient(354deg, rgba(10,85,160,1.00) 0%, rgba(18,136,235,1.00) 100%);
208
  border: 1px solid #0085ba;
@@ -256,6 +266,7 @@
256
  ----------------------------------*/
257
  .tribe-ui-datepicker.ui-widget {
258
  font-size: 1.2rem;
 
259
  }
260
 
261
  .tribe-ui-datepicker.ui-widget .ui-widget {
@@ -286,6 +297,9 @@ works properly when clicked or hovered */
286
  html .tribe-ui-datepicker .ui-button.ui-state-disabled:hover,
287
  html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
288
  color: #23282d;
 
 
 
289
  }
290
 
291
  .tribe-ui-datepicker {
@@ -308,6 +322,8 @@ html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
308
  .ui-button:hover,
309
  .ui-button:focus {
310
  color: #000;
 
 
311
  }
312
  .ui-state-hover a,
313
  .ui-state-hover a:hover,
@@ -321,6 +337,8 @@ html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
321
  a.ui-button:focus {
322
  color: #b1b1b1;
323
  text-decoration: none;
 
 
324
  }
325
 
326
  .ui-visual-focus {
@@ -335,7 +353,7 @@ html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
335
  background: linear-gradient(354deg, rgba(10,85,160,1.00) 0%, rgba(18,136,235,1.00) 100%);
336
  color: #fff;
337
  }
338
-
339
  .ui-icon-background,
340
  .ui-state-active .ui-icon-background {
341
  border: #dddddd;
@@ -356,6 +374,8 @@ html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
356
  .tribe-ui-datepicker .ui-widget-header .ui-state-highlight {
357
  background: #ffffff;
358
  color: #363636;
 
 
359
  }
360
 
361
  .tribe-ui-datepicker .ui-state-checked {
@@ -448,7 +468,7 @@ html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
448
  -webkit-box-shadow: -5px -5px 5px #000000;
449
  box-shadow: -5px -5px 5px #000000;
450
  }
451
-
452
  .ui-helper-hidden {
453
  display: none;
454
  }
@@ -490,7 +510,7 @@ html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
490
  opacity: 0;
491
  filter:Alpha(Opacity=0); /* support: IE8 */
492
  }
493
-
494
  .ui-front {
495
  z-index: 100;
496
  }
@@ -509,30 +529,30 @@ html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
509
  left: 2px;
510
  right: auto;
511
  }
512
-
513
  .ui-datepicker-prev:hover {
514
  right: 1px;
515
  left: auto;
516
  }
517
-
518
  .ui-datepicker-next:hover {
519
  left: 1px;
520
  right: auto;
521
  }
522
-
523
  .ui-datepicker-buttonpane {
524
  clear: right;
525
  }
526
-
527
  .ui-datepicker-buttonpane button {
528
  float: left;
529
  }
530
-
531
  .ui-datepicker-buttonpane button.ui-datepicker-current,
532
  .ui-datepicker-group {
533
  float: right;
534
  }
535
-
536
  .ui-datepicker-group-last .ui-datepicker-header,
537
  .ui-datepicker-group-middle .ui-datepicker-header {
538
  border-right-width: 0;
26
 
27
  /* Icons
28
  ----------------------------------*/
29
+ .tribe-ui-datepicker.ui-datepicker {
30
+ .ui-datepicker-group span.ui-icon {
31
+ display: inline-block;
32
+ vertical-align: middle;
33
+ margin-top: -.25rem;
34
+ position: relative;
35
+ text-indent: -99999px;
36
+ overflow: hidden;
37
+ background-repeat: no-repeat;
38
+ background-image: none;
39
+ }
40
  }
41
 
42
  .tribe-ui-datepicker .ui-widget-icon-block {
69
  margin-bottom: 1rem;
70
  position: relative;
71
  padding: 0;
72
+ border: 0;
73
+ background-color: transparent;
74
+ background-image: none;
75
  }
76
 
77
  .tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev,
79
  position: absolute;
80
  top: 50%;
81
  transform: translateY(-50%);
82
+ line-height: 1.8em;
83
+ text-align: center;
84
  }
85
 
86
  .tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev {
114
  .tribe-ui-datepicker .ui-datepicker-prev-hover,
115
  .tribe-ui-datepicker .ui-datepicker-next-hover {
116
  color: darken(#b1b1b1, 10%);
117
+ border: 0;
118
+ background: none;
119
  }
120
 
121
  .tribe-ui-datepicker.ui-datepicker {
175
  td.ui-datepicker-unselectable {
176
  border: none;
177
  }
178
+
179
  a.ui-state-active {
180
  background: #0085ba;
181
  color: #fff;
197
  border-right: 0;
198
  border-bottom: 0;
199
  }
200
+
201
  .ui-datepicker-buttonpane button {
202
  float: right;
203
  margin: .5rem .2rem .4rem;
206
  width: auto;
207
  overflow: visible;
208
  }
209
+
210
  .ui-datepicker-buttonpane button.ui-datepicker-current {
211
  float: left;
212
  background: #fff;
213
  border: 1px solid #b1b1b1;
214
  }
215
+
216
  button.ui-datepicker-close {
217
  background: linear-gradient(354deg, rgba(10,85,160,1.00) 0%, rgba(18,136,235,1.00) 100%);
218
  border: 1px solid #0085ba;
266
  ----------------------------------*/
267
  .tribe-ui-datepicker.ui-widget {
268
  font-size: 1.2rem;
269
+ font-family: inherit;
270
  }
271
 
272
  .tribe-ui-datepicker.ui-widget .ui-widget {
297
  html .tribe-ui-datepicker .ui-button.ui-state-disabled:hover,
298
  html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
299
  color: #23282d;
300
+ border: 0;
301
+ background-color: transparent;
302
+ background-image: none;
303
  }
304
 
305
  .tribe-ui-datepicker {
322
  .ui-button:hover,
323
  .ui-button:focus {
324
  color: #000;
325
+ border: 0;
326
+ background: none;
327
  }
328
  .ui-state-hover a,
329
  .ui-state-hover a:hover,
337
  a.ui-button:focus {
338
  color: #b1b1b1;
339
  text-decoration: none;
340
+ background-color: none;
341
+ background-image: none;
342
  }
343
 
344
  .ui-visual-focus {
353
  background: linear-gradient(354deg, rgba(10,85,160,1.00) 0%, rgba(18,136,235,1.00) 100%);
354
  color: #fff;
355
  }
356
+
357
  .ui-icon-background,
358
  .ui-state-active .ui-icon-background {
359
  border: #dddddd;
374
  .tribe-ui-datepicker .ui-widget-header .ui-state-highlight {
375
  background: #ffffff;
376
  color: #363636;
377
+ border: 0;
378
+ background-image: none;
379
  }
380
 
381
  .tribe-ui-datepicker .ui-state-checked {
468
  -webkit-box-shadow: -5px -5px 5px #000000;
469
  box-shadow: -5px -5px 5px #000000;
470
  }
471
+
472
  .ui-helper-hidden {
473
  display: none;
474
  }
510
  opacity: 0;
511
  filter:Alpha(Opacity=0); /* support: IE8 */
512
  }
513
+
514
  .ui-front {
515
  z-index: 100;
516
  }
529
  left: 2px;
530
  right: auto;
531
  }
532
+
533
  .ui-datepicker-prev:hover {
534
  right: 1px;
535
  left: auto;
536
  }
537
+
538
  .ui-datepicker-next:hover {
539
  left: 1px;
540
  right: auto;
541
  }
542
+
543
  .ui-datepicker-buttonpane {
544
  clear: right;
545
  }
546
+
547
  .ui-datepicker-buttonpane button {
548
  float: left;
549
  }
550
+
551
  .ui-datepicker-buttonpane button.ui-datepicker-current,
552
  .ui-datepicker-group {
553
  float: right;
554
  }
555
+
556
  .ui-datepicker-group-last .ui-datepicker-header,
557
  .ui-datepicker-group-middle .ui-datepicker-header {
558
  border-right-width: 0;
common/tribe-common.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  Description: An event settings framework for managing shared options
4
- Version: 4.7.2
5
  Author: Modern Tribe, Inc.
6
  Author URI: http://m.tri.be/1x
7
  Text Domain: tribe-common
1
  <?php
2
  /*
3
  Description: An event settings framework for managing shared options
4
+ Version: 4.7.3
5
  Author: Modern Tribe, Inc.
6
  Author URI: http://m.tri.be/1x
7
  Text Domain: tribe-common
event-tickets.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: Event Tickets
4
  Description: Event Tickets allows your guests to RSVP from any post, page, or event.
5
- Version: 4.6.1.1
6
  Author: Modern Tribe, Inc.
7
  Author URI: http://m.tri.be/28
8
  License: GPLv2 or later
2
  /*
3
  Plugin Name: Event Tickets
4
  Description: Event Tickets allows your guests to RSVP from any post, page, or event.
5
+ Version: 4.6.2
6
  Author: Modern Tribe, Inc.
7
  Author URI: http://m.tri.be/28
8
  License: GPLv2 or later
lang/event-tickets-cs_CZ.po CHANGED
@@ -161,31 +161,31 @@ msgstr ""
161
  msgid "Capacity"
162
  msgstr ""
163
 
164
- #: src/admin-views/editor/panel/ticket.php:183
165
  msgid "Save RSVP"
166
  msgstr ""
167
 
168
- #: src/admin-views/editor/panel/ticket.php:174
169
  msgid "Save ticket"
170
  msgstr ""
171
 
172
- #: src/admin-views/editor/panel/ticket.php:92
173
  msgid "Ticket type name shows on the front end and emailed tickets"
174
  msgstr ""
175
 
176
- #: src/admin-views/editor/panel/ticket.php:90
177
  msgid "Ticket Type is a required field."
178
  msgstr ""
179
 
180
- #: src/admin-views/editor/panel/ticket.php:81
181
  msgid "Type:"
182
  msgstr ""
183
 
184
- #: src/admin-views/editor/panel/ticket.php:76
185
  msgid "Edit RSVP"
186
  msgstr ""
187
 
188
- #: src/admin-views/editor/panel/ticket.php:68
189
  msgid "Add new RSVP"
190
  msgstr ""
191
 
@@ -209,19 +209,19 @@ msgstr ""
209
  msgid "View Attendees"
210
  msgstr ""
211
 
212
- #: src/admin-views/editor/list-row.php:77
213
  msgid "( Ticket ID: %d )"
214
  msgstr ""
215
 
216
- #: src/admin-views/editor/list-row.php:65
217
  msgid "The number of Complete ticket sales does not match the number of attendees. Please check the Attendees list and adjust ticket stock in WooCommerce as needed."
218
  msgstr ""
219
 
220
- #: src/admin-views/editor/list-row.php:63
221
  msgid "Available:"
222
  msgstr ""
223
 
224
- #: src/admin-views/editor/list-row.php:58
225
  #: src/admin-views/rsvp-metabox-capacity.php:10
226
  msgid "Capacity:"
227
  msgstr ""
@@ -352,12 +352,12 @@ msgctxt "attendee screen summary"
352
  msgid "Event Details"
353
  msgstr ""
354
 
355
- #: src/Tribe/Attendees.php:95
356
  msgctxt "attendee event actions"
357
  msgid "View Event"
358
  msgstr ""
359
 
360
- #: src/Tribe/Attendees.php:94
361
  msgctxt "attendee event actions"
362
  msgid "Edit Event"
363
  msgstr ""
@@ -575,32 +575,32 @@ msgstr ""
575
  msgid "You are running Version %s and deserve a hug :-)"
576
  msgstr "Používáte verzi %s a zasloužíte si obejmout :-)"
577
 
578
- #: src/Tribe/Attendees.php:477
579
  msgctxt "attendee export"
580
  msgid "Customer Email Address"
581
  msgstr ""
582
 
583
- #: src/Tribe/Attendees.php:476
584
  msgctxt "attendee export"
585
  msgid "Customer Name"
586
  msgstr ""
587
 
588
- #: src/Tribe/Attendees.php:475
589
  msgctxt "attendee export"
590
  msgid "Ticket #"
591
  msgstr ""
592
 
593
- #: src/Tribe/Attendees.php:474
594
  msgctxt "attendee export"
595
  msgid "Order Status"
596
  msgstr ""
597
 
598
- #: src/Tribe/Attendees.php:473
599
  msgctxt "attendee export"
600
  msgid "Order ID"
601
  msgstr ""
602
 
603
- #: src/Tribe/Attendees.php:262
604
  msgid "You must first select one or more tickets before you can move them!"
605
  msgstr ""
606
 
@@ -608,12 +608,12 @@ msgstr ""
608
  msgid "Post type"
609
  msgstr ""
610
 
611
- #: src/Tribe/Attendees.php:95
612
  msgctxt "attendee event actions"
613
  msgid "View"
614
  msgstr ""
615
 
616
- #: src/Tribe/Attendees.php:94
617
  msgctxt "attendee event actions"
618
  msgid "Edit"
619
  msgstr ""
@@ -704,7 +704,7 @@ msgctxt "attendee summary"
704
  msgid "Deleted Attendees:"
705
  msgstr ""
706
 
707
- #: src/Tribe/Attendees.php:122
708
  msgctxt "attendee summary"
709
  msgid "Checked in:"
710
  msgstr ""
@@ -970,7 +970,7 @@ msgstr "Zdarma"
970
  msgid "RSVPs"
971
  msgstr ""
972
 
973
- #: src/Tribe/CSV_Importer/RSVP_Importer.php:239
974
  msgid "Recurring event tickets are not supported, event %s."
975
  msgstr ""
976
 
@@ -1011,7 +1011,7 @@ msgid "View order"
1011
  msgstr ""
1012
 
1013
  #: src/admin-views/editor/panel/settings.php:70
1014
- #: src/admin-views/editor/panel/ticket.php:192
1015
  msgid "Cancel"
1016
  msgstr "Zrušit"
1017
 
@@ -1019,59 +1019,59 @@ msgstr "Zrušit"
1019
  msgid "Send Email"
1020
  msgstr "Poslat email"
1021
 
1022
- #: src/Tribe/Attendees.php:672
1023
  msgid "Email sent successfully!"
1024
  msgstr "Email byl úspěšně odeslán!"
1025
 
1026
- #: src/Tribe/Attendees.php:665
1027
  msgid "Error when sending the email"
1028
  msgstr "Došlo k chybě při odesílání emailu"
1029
 
1030
- #: src/Tribe/Attendees.php:627 src/Tribe/Attendees.php:643
1031
  msgid "Invalid User ID"
1032
  msgstr "Neplatné ID uživatele"
1033
 
1034
- #: src/Tribe/Attendees.php:621
1035
  msgid "Invalid Email"
1036
  msgstr "Neplatná emailová adresa"
1037
 
1038
- #: src/Tribe/Attendees.php:609
1039
  msgid "Empty user and email"
1040
  msgstr "Nebylo zadáno uživatelské jméno a emailová adresa"
1041
 
1042
- #: src/Tribe/Attendees.php:586
1043
  msgid "Invalid Event ID"
1044
  msgstr "Neplatné ID akce"
1045
 
1046
- #: src/Tribe/Attendees.php:603
1047
  msgid "Cheatin Huh?"
1048
  msgstr "Co zkúšáš, jak zkúšáš?"
1049
 
1050
- #: src/Tribe/RSVP.php:1779
1051
  msgid "Post draft updated."
1052
  msgstr "Koncept příspěvku byl uložen."
1053
 
1054
- #: src/Tribe/RSVP.php:1778
1055
  msgid "Post scheduled."
1056
  msgstr "Příspěvek bude automaticky publikován."
1057
 
1058
- #: src/Tribe/RSVP.php:1777
1059
  msgid "Post submitted."
1060
  msgstr "Příspěvek byl odeslán ke schválení."
1061
 
1062
- #: src/Tribe/RSVP.php:1774
1063
  msgid "Post published. %1$s"
1064
  msgstr "Příspěvek byl publikován. %1$s"
1065
 
1066
- #: src/Tribe/RSVP.php:1770
1067
  msgid "Post updated. %1$s"
1068
  msgstr "Příspěvek byl aktualizován. %1$s"
1069
 
1070
- #: src/Tribe/RSVP.php:1763
1071
  msgid "Return to the %1$sAttendees Report%2$s."
1072
  msgstr "Zpět na %1$spřehled účastníků%2$s."
1073
 
1074
- #: src/Tribe/RSVP.php:1158
1075
  msgid "You can't RSVP more than the total remaining tickets."
1076
  msgstr "Nemůžete potvrdit účast pro více než kolik je k dispozici zbývajících vstupenek."
1077
 
@@ -1151,7 +1151,7 @@ msgstr "http://m.tri.be/28"
1151
  msgid "Modern Tribe, Inc."
1152
  msgstr "Modern Tribe, Inc."
1153
 
1154
- #. #-#-#-#-# event-tickets.pot (Event Tickets 4.6.1.1) #-#-#-#-#
1155
  #. Plugin Name of the plugin/theme
1156
  #: src/Tribe/Main.php:470
1157
  msgid "Event Tickets"
@@ -1228,15 +1228,15 @@ msgstr "(pro vstupné zdarma ponechte prázdné nebo zadejte 0)"
1228
  msgid "Price:"
1229
  msgstr "Cena:"
1230
 
1231
- #: src/admin-views/editor/panel/ticket.php:95
1232
  msgid "Sell using:"
1233
  msgstr "Prodej pomocí:"
1234
 
1235
- #: src/admin-views/editor/panel/ticket.php:54
1236
  msgid "Edit ticket"
1237
  msgstr "Upravit vstupenku"
1238
 
1239
- #: src/admin-views/editor/panel/ticket.php:46
1240
  msgid "Add new ticket"
1241
  msgstr "Přidat novou vstupenku"
1242
 
@@ -1268,53 +1268,53 @@ msgstr "Vybrat uživatele:"
1268
  msgid "Send the attendee list by email"
1269
  msgstr "Poslat seznam účastníků emailem"
1270
 
1271
- #: src/Tribe/Attendees.php:664
1272
  msgid "Attendee List for: %s"
1273
  msgstr "Seznam účastníků na: %s"
1274
 
1275
- #: src/Tribe/Attendees.php:557
1276
  msgid "attendees"
1277
  msgstr "ucastnici"
1278
 
1279
- #: src/Tribe/Attendees.php:506
1280
  msgid "Yes"
1281
  msgstr "Ano"
1282
 
1283
- #: src/Tribe/Attendees.php:293
1284
  msgid "You can use Screen Options to select which columns you want to see. The selection works in the table below, in the email, for print and for the CSV export."
1285
  msgstr "Pomocí záložky &#8222;Nastavení zobrazených informací&#8220; si můžete vybrat, které sloupce chcete zobrazit. Tento výběr se projeví při výpisu, při odesílání emailem, při tisku a při exportu do CSV souboru."
1286
 
1287
- #: src/Tribe/Attendees.php:293
1288
  msgid "Columns"
1289
  msgstr "Sloupce"
1290
 
1291
- #: src/Tribe/Attendees.php:259
1292
  msgid "Sending..."
1293
  msgstr "Odesílání..."
1294
 
1295
- #: src/Tribe/Attendees.php:258
1296
  msgid "You need to select a user or type a valid email address"
1297
  msgstr "Je třeba vybrat uživatele nebo zadat platnou emailovou adresu"
1298
 
1299
- #: src/Tribe/Admin/Columns/Tickets.php:57 src/Tribe/Attendees.php:184
1300
  #: src/Tribe/Tabbed_View/Attendee_Report_Tab.php:22
1301
  #: src/admin-views/attendees.php:21
1302
  msgid "Attendees"
1303
  msgstr "Účastníci"
1304
 
1305
- #: src/Tribe/Attendees.php:182
1306
  msgid "See who purchased tickets to this event"
1307
  msgstr "Kdo si koupil vstupenky na tuto akci"
1308
 
1309
- #: src/Tribe/RSVP.php:1468
1310
  msgid "(deleted)"
1311
  msgstr "(smazáno)"
1312
 
1313
- #: src/Tribe/RSVP.php:1163
1314
  msgid "In order to RSVP, you must enter your name and a valid email address."
1315
  msgstr "Pro potvrzení účasti musíte zadat své jméno a platnou emailovou adresu."
1316
 
1317
- #: src/Tribe/RSVP.php:1152
1318
  msgid "Your RSVP has been received! Check your email for your RSVP confirmation."
1319
  msgstr "Vaše potvrzení účasti bylo přijato. Zkontrolujte prosím emailovou schránku, kam byl odeslán kontrolní email."
1320
 
161
  msgid "Capacity"
162
  msgstr ""
163
 
164
+ #: src/admin-views/editor/panel/ticket.php:189
165
  msgid "Save RSVP"
166
  msgstr ""
167
 
168
+ #: src/admin-views/editor/panel/ticket.php:180
169
  msgid "Save ticket"
170
  msgstr ""
171
 
172
+ #: src/admin-views/editor/panel/ticket.php:98
173
  msgid "Ticket type name shows on the front end and emailed tickets"
174
  msgstr ""
175
 
176
+ #: src/admin-views/editor/panel/ticket.php:96
177
  msgid "Ticket Type is a required field."
178
  msgstr ""
179
 
180
+ #: src/admin-views/editor/panel/ticket.php:87
181
  msgid "Type:"
182
  msgstr ""
183
 
184
+ #: src/admin-views/editor/panel/ticket.php:82
185
  msgid "Edit RSVP"
186
  msgstr ""
187
 
188
+ #: src/admin-views/editor/panel/ticket.php:74
189
  msgid "Add new RSVP"
190
  msgstr ""
191
 
209
  msgid "View Attendees"
210
  msgstr ""
211
 
212
+ #: src/admin-views/editor/list-row.php:100
213
  msgid "( Ticket ID: %d )"
214
  msgstr ""
215
 
216
+ #: src/admin-views/editor/list-row.php:88
217
  msgid "The number of Complete ticket sales does not match the number of attendees. Please check the Attendees list and adjust ticket stock in WooCommerce as needed."
218
  msgstr ""
219
 
220
+ #: src/admin-views/editor/list-row.php:86
221
  msgid "Available:"
222
  msgstr ""
223
 
224
+ #: src/admin-views/editor/list-row.php:81
225
  #: src/admin-views/rsvp-metabox-capacity.php:10
226
  msgid "Capacity:"
227
  msgstr ""
352
  msgid "Event Details"
353
  msgstr ""
354
 
355
+ #: src/Tribe/Attendees.php:106
356
  msgctxt "attendee event actions"
357
  msgid "View Event"
358
  msgstr ""
359
 
360
+ #: src/Tribe/Attendees.php:105
361
  msgctxt "attendee event actions"
362
  msgid "Edit Event"
363
  msgstr ""
575
  msgid "You are running Version %s and deserve a hug :-)"
576
  msgstr "Používáte verzi %s a zasloužíte si obejmout :-)"
577
 
578
+ #: src/Tribe/Attendees.php:489
579
  msgctxt "attendee export"
580
  msgid "Customer Email Address"
581
  msgstr ""
582
 
583
+ #: src/Tribe/Attendees.php:488
584
  msgctxt "attendee export"
585
  msgid "Customer Name"
586
  msgstr ""
587
 
588
+ #: src/Tribe/Attendees.php:487
589
  msgctxt "attendee export"
590
  msgid "Ticket #"
591
  msgstr ""
592
 
593
+ #: src/Tribe/Attendees.php:486
594
  msgctxt "attendee export"
595
  msgid "Order Status"
596
  msgstr ""
597
 
598
+ #: src/Tribe/Attendees.php:485
599
  msgctxt "attendee export"
600
  msgid "Order ID"
601
  msgstr ""
602
 
603
+ #: src/Tribe/Attendees.php:274
604
  msgid "You must first select one or more tickets before you can move them!"
605
  msgstr ""
606
 
608
  msgid "Post type"
609
  msgstr ""
610
 
611
+ #: src/Tribe/Attendees.php:106
612
  msgctxt "attendee event actions"
613
  msgid "View"
614
  msgstr ""
615
 
616
+ #: src/Tribe/Attendees.php:105
617
  msgctxt "attendee event actions"
618
  msgid "Edit"
619
  msgstr ""
704
  msgid "Deleted Attendees:"
705
  msgstr ""
706
 
707
+ #: src/Tribe/Attendees.php:133
708
  msgctxt "attendee summary"
709
  msgid "Checked in:"
710
  msgstr ""
970
  msgid "RSVPs"
971
  msgstr ""
972
 
973
+ #: src/Tribe/CSV_Importer/RSVP_Importer.php:237
974
  msgid "Recurring event tickets are not supported, event %s."
975
  msgstr ""
976
 
1011
  msgstr ""
1012
 
1013
  #: src/admin-views/editor/panel/settings.php:70
1014
+ #: src/admin-views/editor/panel/ticket.php:198
1015
  msgid "Cancel"
1016
  msgstr "Zrušit"
1017
 
1019
  msgid "Send Email"
1020
  msgstr "Poslat email"
1021
 
1022
+ #: src/Tribe/Attendees.php:684
1023
  msgid "Email sent successfully!"
1024
  msgstr "Email byl úspěšně odeslán!"
1025
 
1026
+ #: src/Tribe/Attendees.php:677
1027
  msgid "Error when sending the email"
1028
  msgstr "Došlo k chybě při odesílání emailu"
1029
 
1030
+ #: src/Tribe/Attendees.php:639 src/Tribe/Attendees.php:655
1031
  msgid "Invalid User ID"
1032
  msgstr "Neplatné ID uživatele"
1033
 
1034
+ #: src/Tribe/Attendees.php:633
1035
  msgid "Invalid Email"
1036
  msgstr "Neplatná emailová adresa"
1037
 
1038
+ #: src/Tribe/Attendees.php:621
1039
  msgid "Empty user and email"
1040
  msgstr "Nebylo zadáno uživatelské jméno a emailová adresa"
1041
 
1042
+ #: src/Tribe/Attendees.php:598
1043
  msgid "Invalid Event ID"
1044
  msgstr "Neplatné ID akce"
1045
 
1046
+ #: src/Tribe/Attendees.php:615
1047
  msgid "Cheatin Huh?"
1048
  msgstr "Co zkúšáš, jak zkúšáš?"
1049
 
1050
+ #: src/Tribe/RSVP.php:1784
1051
  msgid "Post draft updated."
1052
  msgstr "Koncept příspěvku byl uložen."
1053
 
1054
+ #: src/Tribe/RSVP.php:1783
1055
  msgid "Post scheduled."
1056
  msgstr "Příspěvek bude automaticky publikován."
1057
 
1058
+ #: src/Tribe/RSVP.php:1782
1059
  msgid "Post submitted."
1060
  msgstr "Příspěvek byl odeslán ke schválení."
1061
 
1062
+ #: src/Tribe/RSVP.php:1779
1063
  msgid "Post published. %1$s"
1064
  msgstr "Příspěvek byl publikován. %1$s"
1065
 
1066
+ #: src/Tribe/RSVP.php:1775
1067
  msgid "Post updated. %1$s"
1068
  msgstr "Příspěvek byl aktualizován. %1$s"
1069
 
1070
+ #: src/Tribe/RSVP.php:1768
1071
  msgid "Return to the %1$sAttendees Report%2$s."
1072
  msgstr "Zpět na %1$spřehled účastníků%2$s."
1073
 
1074
+ #: src/Tribe/RSVP.php:1163
1075
  msgid "You can't RSVP more than the total remaining tickets."
1076
  msgstr "Nemůžete potvrdit účast pro více než kolik je k dispozici zbývajících vstupenek."
1077
 
1151
  msgid "Modern Tribe, Inc."
1152
  msgstr "Modern Tribe, Inc."
1153
 
1154
+ #. #-#-#-#-# event-tickets.pot (Event Tickets 4.6.2) #-#-#-#-#
1155
  #. Plugin Name of the plugin/theme
1156
  #: src/Tribe/Main.php:470
1157
  msgid "Event Tickets"
1228
  msgid "Price:"
1229
  msgstr "Cena:"
1230
 
1231
+ #: src/admin-views/editor/panel/ticket.php:101
1232
  msgid "Sell using:"
1233
  msgstr "Prodej pomocí:"
1234
 
1235
+ #: src/admin-views/editor/panel/ticket.php:60
1236
  msgid "Edit ticket"
1237
  msgstr "Upravit vstupenku"
1238
 
1239
+ #: src/admin-views/editor/panel/ticket.php:52
1240
  msgid "Add new ticket"
1241
  msgstr "Přidat novou vstupenku"
1242
 
1268
  msgid "Send the attendee list by email"
1269
  msgstr "Poslat seznam účastníků emailem"
1270
 
1271
+ #: src/Tribe/Attendees.php:676
1272
  msgid "Attendee List for: %s"
1273
  msgstr "Seznam účastníků na: %s"
1274
 
1275
+ #: src/Tribe/Attendees.php:569
1276
  msgid "attendees"
1277
  msgstr "ucastnici"
1278
 
1279
+ #: src/Tribe/Attendees.php:518
1280
  msgid "Yes"
1281
  msgstr "Ano"
1282
 
1283
+ #: src/Tribe/Attendees.php:305
1284
  msgid "You can use Screen Options to select which columns you want to see. The selection works in the table below, in the email, for print and for the CSV export."
1285
  msgstr "Pomocí záložky &#8222;Nastavení zobrazených informací&#8220; si můžete vybrat, které sloupce chcete zobrazit. Tento výběr se projeví při výpisu, při odesílání emailem, při tisku a při exportu do CSV souboru."
1286
 
1287
+ #: src/Tribe/Attendees.php:305
1288
  msgid "Columns"
1289
  msgstr "Sloupce"
1290
 
1291
+ #: src/Tribe/Attendees.php:270
1292
  msgid "Sending..."
1293
  msgstr "Odesílání..."
1294
 
1295
+ #: src/Tribe/Attendees.php:269
1296
  msgid "You need to select a user or type a valid email address"
1297
  msgstr "Je třeba vybrat uživatele nebo zadat platnou emailovou adresu"
1298
 
1299
+ #: src/Tribe/Admin/Columns/Tickets.php:57 src/Tribe/Attendees.php:195
1300
  #: src/Tribe/Tabbed_View/Attendee_Report_Tab.php:22
1301
  #: src/admin-views/attendees.php:21
1302
  msgid "Attendees"
1303
  msgstr "Účastníci"
1304
 
1305
+ #: src/Tribe/Attendees.php:193
1306
  msgid "See who purchased tickets to this event"
1307
  msgstr "Kdo si koupil vstupenky na tuto akci"
1308
 
1309
+ #: src/Tribe/RSVP.php:1473
1310
  msgid "(deleted)"
1311
  msgstr "(smazáno)"
1312
 
1313
+ #: src/Tribe/RSVP.php:1168
1314
  msgid "In order to RSVP, you must enter your name and a valid email address."
1315
  msgstr "Pro potvrzení účasti musíte zadat své jméno a platnou emailovou adresu."
1316
 
1317
+ #: src/Tribe/RSVP.php:1157
1318
  msgid "Your RSVP has been received! Check your email for your RSVP confirmation."
1319
  msgstr "Vaše potvrzení účasti bylo přijato. Zkontrolujte prosím emailovou schránku, kam byl odeslán kontrolní email."
1320
 
lang/event-tickets.pot CHANGED
@@ -2,17 +2,17 @@
2
  # This file is distributed under the same license as the Event Tickets package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Event Tickets 4.6.1\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/event-tickets\n"
7
- "POT-Creation-Date: 2017-11-21 16:23:55+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2017-11-21 16:23\n"
12
  "Last-Translator: \n"
13
  "Language-Team: \n"
14
 
15
- #: src/Tribe/Admin/Columns/Tickets.php:57 src/Tribe/Attendees.php:184
16
  #: src/Tribe/Tabbed_View/Attendee_Report_Tab.php:22
17
  #: src/admin-views/attendees.php:21
18
  msgid "Attendees"
@@ -187,120 +187,120 @@ msgstr ""
187
  msgid "Post type"
188
  msgstr ""
189
 
190
- #: src/Tribe/Attendees.php:94
191
  msgctxt "attendee event actions"
192
  msgid "Edit"
193
  msgstr ""
194
 
195
- #: src/Tribe/Attendees.php:94
196
  msgctxt "attendee event actions"
197
  msgid "Edit Event"
198
  msgstr ""
199
 
200
- #: src/Tribe/Attendees.php:95
201
  msgctxt "attendee event actions"
202
  msgid "View"
203
  msgstr ""
204
 
205
- #: src/Tribe/Attendees.php:95
206
  msgctxt "attendee event actions"
207
  msgid "View Event"
208
  msgstr ""
209
 
210
- #: src/Tribe/Attendees.php:122
211
  msgctxt "attendee summary"
212
  msgid "Checked in:"
213
  msgstr ""
214
 
215
- #: src/Tribe/Attendees.php:182
216
  msgid "See who purchased tickets to this event"
217
  msgstr ""
218
 
219
- #: src/Tribe/Attendees.php:258
220
  msgid "You need to select a user or type a valid email address"
221
  msgstr ""
222
 
223
- #: src/Tribe/Attendees.php:259
224
  msgid "Sending..."
225
  msgstr ""
226
 
227
- #: src/Tribe/Attendees.php:262
228
  msgid "You must first select one or more tickets before you can move them!"
229
  msgstr ""
230
 
231
- #: src/Tribe/Attendees.php:293
232
  msgid "Columns"
233
  msgstr ""
234
 
235
- #: src/Tribe/Attendees.php:293
236
  msgid ""
237
  "You can use Screen Options to select which columns you want to see. The "
238
  "selection works in the table below, in the email, for print and for the CSV "
239
  "export."
240
  msgstr ""
241
 
242
- #: src/Tribe/Attendees.php:473
243
  msgctxt "attendee export"
244
  msgid "Order ID"
245
  msgstr ""
246
 
247
- #: src/Tribe/Attendees.php:474
248
  msgctxt "attendee export"
249
  msgid "Order Status"
250
  msgstr ""
251
 
252
- #: src/Tribe/Attendees.php:475
253
  msgctxt "attendee export"
254
  msgid "Ticket #"
255
  msgstr ""
256
 
257
- #: src/Tribe/Attendees.php:476
258
  msgctxt "attendee export"
259
  msgid "Customer Name"
260
  msgstr ""
261
 
262
- #: src/Tribe/Attendees.php:477
263
  msgctxt "attendee export"
264
  msgid "Customer Email Address"
265
  msgstr ""
266
 
267
- #: src/Tribe/Attendees.php:506
268
  msgid "Yes"
269
  msgstr ""
270
 
271
- #: src/Tribe/Attendees.php:557
272
  msgid "attendees"
273
  msgstr ""
274
 
275
- #: src/Tribe/Attendees.php:586
276
  msgid "Invalid Event ID"
277
  msgstr ""
278
 
279
- #: src/Tribe/Attendees.php:603
280
  msgid "Cheatin Huh?"
281
  msgstr ""
282
 
283
- #: src/Tribe/Attendees.php:609
284
  msgid "Empty user and email"
285
  msgstr ""
286
 
287
- #: src/Tribe/Attendees.php:621
288
  msgid "Invalid Email"
289
  msgstr ""
290
 
291
- #: src/Tribe/Attendees.php:627 src/Tribe/Attendees.php:643
292
  msgid "Invalid User ID"
293
  msgstr ""
294
 
295
- #: src/Tribe/Attendees.php:664
296
  msgid "Attendee List for: %s"
297
  msgstr ""
298
 
299
- #: src/Tribe/Attendees.php:665
300
  msgid "Error when sending the email"
301
  msgstr ""
302
 
303
- #: src/Tribe/Attendees.php:672
304
  msgid "Email sent successfully!"
305
  msgstr ""
306
 
@@ -427,7 +427,7 @@ msgstr ""
427
  msgid "Ticket Capacity"
428
  msgstr ""
429
 
430
- #: src/Tribe/CSV_Importer/RSVP_Importer.php:239
431
  msgid "Recurring event tickets are not supported, event %s."
432
  msgstr ""
433
 
@@ -525,7 +525,7 @@ msgid ""
525
  "respond to your thread within 24-48 hours (during the week)."
526
  msgstr ""
527
 
528
- #. #-#-#-#-# event-tickets.pot (Event Tickets 4.6.1) #-#-#-#-#
529
  #. Plugin Name of the plugin/theme
530
  #: src/Tribe/Main.php:470
531
  msgid "Event Tickets"
@@ -623,44 +623,44 @@ msgstr ""
623
  msgid "You confirmed you will not be attending %s"
624
  msgstr ""
625
 
626
- #: src/Tribe/RSVP.php:1152
627
  msgid ""
628
  "Your RSVP has been received! Check your email for your RSVP confirmation."
629
  msgstr ""
630
 
631
- #: src/Tribe/RSVP.php:1158
632
  msgid "You can't RSVP more than the total remaining tickets."
633
  msgstr ""
634
 
635
- #: src/Tribe/RSVP.php:1163
636
  msgid "In order to RSVP, you must enter your name and a valid email address."
637
  msgstr ""
638
 
639
- #: src/Tribe/RSVP.php:1468
640
  msgid "(deleted)"
641
  msgstr ""
642
 
643
- #: src/Tribe/RSVP.php:1763
644
  msgid "Return to the %1$sAttendees Report%2$s."
645
  msgstr ""
646
 
647
- #: src/Tribe/RSVP.php:1770
648
  msgid "Post updated. %1$s"
649
  msgstr ""
650
 
651
- #: src/Tribe/RSVP.php:1774
652
  msgid "Post published. %1$s"
653
  msgstr ""
654
 
655
- #: src/Tribe/RSVP.php:1777
656
  msgid "Post submitted."
657
  msgstr ""
658
 
659
- #: src/Tribe/RSVP.php:1778
660
  msgid "Post scheduled."
661
  msgstr ""
662
 
663
- #: src/Tribe/RSVP.php:1779
664
  msgid "Post draft updated."
665
  msgstr ""
666
 
@@ -961,23 +961,23 @@ msgstr ""
961
  msgid "Ticket Type:"
962
  msgstr ""
963
 
964
- #: src/admin-views/editor/list-row.php:58
965
  #: src/admin-views/rsvp-metabox-capacity.php:10
966
  msgid "Capacity:"
967
  msgstr ""
968
 
969
- #: src/admin-views/editor/list-row.php:63
970
  msgid "Available:"
971
  msgstr ""
972
 
973
- #: src/admin-views/editor/list-row.php:65
974
  msgid ""
975
  "The number of Complete ticket sales does not match the number of attendees. "
976
  "Please check the Attendees list and adjust ticket stock in WooCommerce as "
977
  "needed."
978
  msgstr ""
979
 
980
- #: src/admin-views/editor/list-row.php:77
981
  msgid "( Ticket ID: %d )"
982
  msgstr ""
983
 
@@ -1037,47 +1037,47 @@ msgid "Save settings"
1037
  msgstr ""
1038
 
1039
  #: src/admin-views/editor/panel/settings.php:70
1040
- #: src/admin-views/editor/panel/ticket.php:192
1041
  msgid "Cancel"
1042
  msgstr ""
1043
 
1044
- #: src/admin-views/editor/panel/ticket.php:46
1045
  msgid "Add new ticket"
1046
  msgstr ""
1047
 
1048
- #: src/admin-views/editor/panel/ticket.php:54
1049
  msgid "Edit ticket"
1050
  msgstr ""
1051
 
1052
- #: src/admin-views/editor/panel/ticket.php:68
1053
  msgid "Add new RSVP"
1054
  msgstr ""
1055
 
1056
- #: src/admin-views/editor/panel/ticket.php:76
1057
  msgid "Edit RSVP"
1058
  msgstr ""
1059
 
1060
- #: src/admin-views/editor/panel/ticket.php:81
1061
  msgid "Type:"
1062
  msgstr ""
1063
 
1064
- #: src/admin-views/editor/panel/ticket.php:90
1065
  msgid "Ticket Type is a required field."
1066
  msgstr ""
1067
 
1068
- #: src/admin-views/editor/panel/ticket.php:92
1069
  msgid "Ticket type name shows on the front end and emailed tickets"
1070
  msgstr ""
1071
 
1072
- #: src/admin-views/editor/panel/ticket.php:95
1073
  msgid "Sell using:"
1074
  msgstr ""
1075
 
1076
- #: src/admin-views/editor/panel/ticket.php:174
1077
  msgid "Save ticket"
1078
  msgstr ""
1079
 
1080
- #: src/admin-views/editor/panel/ticket.php:183
1081
  msgid "Save RSVP"
1082
  msgstr ""
1083
 
2
  # This file is distributed under the same license as the Event Tickets package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Event Tickets 4.6.2\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/event-tickets\n"
7
+ "POT-Creation-Date: 2017-12-07 12:26:15+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2017-12-07 12:26\n"
12
  "Last-Translator: \n"
13
  "Language-Team: \n"
14
 
15
+ #: src/Tribe/Admin/Columns/Tickets.php:57 src/Tribe/Attendees.php:195
16
  #: src/Tribe/Tabbed_View/Attendee_Report_Tab.php:22
17
  #: src/admin-views/attendees.php:21
18
  msgid "Attendees"
187
  msgid "Post type"
188
  msgstr ""
189
 
190
+ #: src/Tribe/Attendees.php:105
191
  msgctxt "attendee event actions"
192
  msgid "Edit"
193
  msgstr ""
194
 
195
+ #: src/Tribe/Attendees.php:105
196
  msgctxt "attendee event actions"
197
  msgid "Edit Event"
198
  msgstr ""
199
 
200
+ #: src/Tribe/Attendees.php:106
201
  msgctxt "attendee event actions"
202
  msgid "View"
203
  msgstr ""
204
 
205
+ #: src/Tribe/Attendees.php:106
206
  msgctxt "attendee event actions"
207
  msgid "View Event"
208
  msgstr ""
209
 
210
+ #: src/Tribe/Attendees.php:133
211
  msgctxt "attendee summary"
212
  msgid "Checked in:"
213
  msgstr ""
214
 
215
+ #: src/Tribe/Attendees.php:193
216
  msgid "See who purchased tickets to this event"
217
  msgstr ""
218
 
219
+ #: src/Tribe/Attendees.php:269
220
  msgid "You need to select a user or type a valid email address"
221
  msgstr ""
222
 
223
+ #: src/Tribe/Attendees.php:270
224
  msgid "Sending..."
225
  msgstr ""
226
 
227
+ #: src/Tribe/Attendees.php:274
228
  msgid "You must first select one or more tickets before you can move them!"
229
  msgstr ""
230
 
231
+ #: src/Tribe/Attendees.php:305
232
  msgid "Columns"
233
  msgstr ""
234
 
235
+ #: src/Tribe/Attendees.php:305
236
  msgid ""
237
  "You can use Screen Options to select which columns you want to see. The "
238
  "selection works in the table below, in the email, for print and for the CSV "
239
  "export."
240
  msgstr ""
241
 
242
+ #: src/Tribe/Attendees.php:485
243
  msgctxt "attendee export"
244
  msgid "Order ID"
245
  msgstr ""
246
 
247
+ #: src/Tribe/Attendees.php:486
248
  msgctxt "attendee export"
249
  msgid "Order Status"
250
  msgstr ""
251
 
252
+ #: src/Tribe/Attendees.php:487
253
  msgctxt "attendee export"
254
  msgid "Ticket #"
255
  msgstr ""
256
 
257
+ #: src/Tribe/Attendees.php:488
258
  msgctxt "attendee export"
259
  msgid "Customer Name"
260
  msgstr ""
261
 
262
+ #: src/Tribe/Attendees.php:489
263
  msgctxt "attendee export"
264
  msgid "Customer Email Address"
265
  msgstr ""
266
 
267
+ #: src/Tribe/Attendees.php:518
268
  msgid "Yes"
269
  msgstr ""
270
 
271
+ #: src/Tribe/Attendees.php:569
272
  msgid "attendees"
273
  msgstr ""
274
 
275
+ #: src/Tribe/Attendees.php:598
276
  msgid "Invalid Event ID"
277
  msgstr ""
278
 
279
+ #: src/Tribe/Attendees.php:615
280
  msgid "Cheatin Huh?"
281
  msgstr ""
282
 
283
+ #: src/Tribe/Attendees.php:621
284
  msgid "Empty user and email"
285
  msgstr ""
286
 
287
+ #: src/Tribe/Attendees.php:633
288
  msgid "Invalid Email"
289
  msgstr ""
290
 
291
+ #: src/Tribe/Attendees.php:639 src/Tribe/Attendees.php:655
292
  msgid "Invalid User ID"
293
  msgstr ""
294
 
295
+ #: src/Tribe/Attendees.php:676
296
  msgid "Attendee List for: %s"
297
  msgstr ""
298
 
299
+ #: src/Tribe/Attendees.php:677
300
  msgid "Error when sending the email"
301
  msgstr ""
302
 
303
+ #: src/Tribe/Attendees.php:684
304
  msgid "Email sent successfully!"
305
  msgstr ""
306
 
427
  msgid "Ticket Capacity"
428
  msgstr ""
429
 
430
+ #: src/Tribe/CSV_Importer/RSVP_Importer.php:237
431
  msgid "Recurring event tickets are not supported, event %s."
432
  msgstr ""
433
 
525
  "respond to your thread within 24-48 hours (during the week)."
526
  msgstr ""
527
 
528
+ #. #-#-#-#-# event-tickets.pot (Event Tickets 4.6.2) #-#-#-#-#
529
  #. Plugin Name of the plugin/theme
530
  #: src/Tribe/Main.php:470
531
  msgid "Event Tickets"
623
  msgid "You confirmed you will not be attending %s"
624
  msgstr ""
625
 
626
+ #: src/Tribe/RSVP.php:1157
627
  msgid ""
628
  "Your RSVP has been received! Check your email for your RSVP confirmation."
629
  msgstr ""
630
 
631
+ #: src/Tribe/RSVP.php:1163
632
  msgid "You can't RSVP more than the total remaining tickets."
633
  msgstr ""
634
 
635
+ #: src/Tribe/RSVP.php:1168
636
  msgid "In order to RSVP, you must enter your name and a valid email address."
637
  msgstr ""
638
 
639
+ #: src/Tribe/RSVP.php:1473
640
  msgid "(deleted)"
641
  msgstr ""
642
 
643
+ #: src/Tribe/RSVP.php:1768
644
  msgid "Return to the %1$sAttendees Report%2$s."
645
  msgstr ""
646
 
647
+ #: src/Tribe/RSVP.php:1775
648
  msgid "Post updated. %1$s"
649
  msgstr ""
650
 
651
+ #: src/Tribe/RSVP.php:1779
652
  msgid "Post published. %1$s"
653
  msgstr ""
654
 
655
+ #: src/Tribe/RSVP.php:1782
656
  msgid "Post submitted."
657
  msgstr ""
658
 
659
+ #: src/Tribe/RSVP.php:1783
660
  msgid "Post scheduled."
661
  msgstr ""
662
 
663
+ #: src/Tribe/RSVP.php:1784
664
  msgid "Post draft updated."
665
  msgstr ""
666
 
961
  msgid "Ticket Type:"
962
  msgstr ""
963
 
964
+ #: src/admin-views/editor/list-row.php:81
965
  #: src/admin-views/rsvp-metabox-capacity.php:10
966
  msgid "Capacity:"
967
  msgstr ""
968
 
969
+ #: src/admin-views/editor/list-row.php:86
970
  msgid "Available:"
971
  msgstr ""
972
 
973
+ #: src/admin-views/editor/list-row.php:88
974
  msgid ""
975
  "The number of Complete ticket sales does not match the number of attendees. "
976
  "Please check the Attendees list and adjust ticket stock in WooCommerce as "
977
  "needed."
978
  msgstr ""
979
 
980
+ #: src/admin-views/editor/list-row.php:100
981
  msgid "( Ticket ID: %d )"
982
  msgstr ""
983
 
1037
  msgstr ""
1038
 
1039
  #: src/admin-views/editor/panel/settings.php:70
1040
+ #: src/admin-views/editor/panel/ticket.php:198
1041
  msgid "Cancel"
1042
  msgstr ""
1043
 
1044
+ #: src/admin-views/editor/panel/ticket.php:52
1045
  msgid "Add new ticket"
1046
  msgstr ""
1047
 
1048
+ #: src/admin-views/editor/panel/ticket.php:60
1049
  msgid "Edit ticket"
1050
  msgstr ""
1051
 
1052
+ #: src/admin-views/editor/panel/ticket.php:74
1053
  msgid "Add new RSVP"
1054
  msgstr ""
1055
 
1056
+ #: src/admin-views/editor/panel/ticket.php:82
1057
  msgid "Edit RSVP"
1058
  msgstr ""
1059
 
1060
+ #: src/admin-views/editor/panel/ticket.php:87
1061
  msgid "Type:"
1062
  msgstr ""
1063
 
1064
+ #: src/admin-views/editor/panel/ticket.php:96
1065
  msgid "Ticket Type is a required field."
1066
  msgstr ""
1067
 
1068
+ #: src/admin-views/editor/panel/ticket.php:98
1069
  msgid "Ticket type name shows on the front end and emailed tickets"
1070
  msgstr ""
1071
 
1072
+ #: src/admin-views/editor/panel/ticket.php:101
1073
  msgid "Sell using:"
1074
  msgstr ""
1075
 
1076
+ #: src/admin-views/editor/panel/ticket.php:180
1077
  msgid "Save ticket"
1078
  msgstr ""
1079
 
1080
+ #: src/admin-views/editor/panel/ticket.php:189
1081
  msgid "Save RSVP"
1082
  msgstr ""
1083
 
readme.txt CHANGED
@@ -3,8 +3,8 @@
3
  Contributors: ModernTribe, borkweb, aguseo, barry.hughes, bordoni, brianjessee, cliffpaulick, courane01, faction23, GeoffBel, geoffgraham, ggwicz, jbrinley, jentheo, leahkoerper, lucatume, mastromktg, MZAWeb, neillmcshea, nicosantos, patriciahillebrandt, peterchester, reid.peifer, roblagatta, ryancurban, shane.pearlman, tribecari, vicskf, zbtirrell
4
  Tags: RSVP, events, tickets, event management, calendar, ticket sales, community, registration, api, dates, date, posts, workshop, conference, meeting, seminar, concert, summit, ticket integration, event ticketing
5
  Requires at least: 4.5
6
- Tested up to: 4.9
7
- Stable tag: 4.6.1.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -233,23 +233,36 @@ The plugin is produced by [Modern Tribe Inc](http://m.tri.be/18uc).
233
 
234
  == Changelog ==
235
 
 
 
 
 
 
 
 
 
 
 
 
 
 
236
  = [4.6.1.1] 2017-11-24 =
237
 
238
- * Fix - Respect Start and End time for Ticket sales (props to Scott) [93439]
239
  * Fix - Ensure attendee fields remain visible within the admin environment (compatibility fix for Event Tickets Plus) [94142]
240
  * Language - 0 new strings added, 1 updated, 0 fuzzied, and 0 obsoleted
241
 
242
  = [4.6.1] 2017-11-21 =
243
 
244
- * Tweak - Prevents unnecessary AJAX requests when using tickets editor [88642]
 
 
 
245
  * Tweak - Removes weird clearing of fields when canceling or saving Tickets [88642]
246
  * Tweak - Allow saving of Ticket Editor contents when Updating the Event [91760]
247
  * Tweak - Included more hooks via the new Template class for the Ticket Editor: `tribe_template_file`, `tribe_template_before_include`, `tribe_template_after_include` and `tribe_template_html` [91760]
248
  * Tweak - Only display admin links in Community Tickets if user is able to access the admin [79565]
249
  * Tweak - spacing of message to logged in users to view attendees [92550]
250
- * Fix - RSVP and Tickets migration from pre-4.6 updates capacity corretly for all cases now (props to Uwe Matern) [93231]
251
- * Fix - Attendees column for events display correctly the percentages now [92287]
252
- * Fix - Tickets Editor now has more support for Accessibility [80651]
253
  * Tweak - Added filters: `tribe_ticket_filter_attendee_report_link`, `tribe_tickets_attendees_show_title`
254
  * Tweak - Removed filters: `tribe_tickets_default_end_date`, `tribe_tickets_ajax_refresh_settings`, `tribe_tickets_can_update_ticket_price`, `tribe_tickets_disallow_update_ticket_price_message`, `tribe_events_tickets_metabox_edit_attendee`
255
  * Tweak - Added actions: `tribe_tickets_save_post`
@@ -275,6 +288,7 @@ The plugin is produced by [Modern Tribe Inc](http://m.tri.be/18uc).
275
  = [4.5.7] 2017-10-18 =
276
 
277
  * Tweak - Improved compatibility of the "Attendees Export" CSV with Excel and other programs by removing line breaks from multi-line fields in the CSV (props: @twodoplhins) [80563]
 
278
 
279
  = [4.5.6] 2017-09-20 =
280
 
3
  Contributors: ModernTribe, borkweb, aguseo, barry.hughes, bordoni, brianjessee, cliffpaulick, courane01, faction23, GeoffBel, geoffgraham, ggwicz, jbrinley, jentheo, leahkoerper, lucatume, mastromktg, MZAWeb, neillmcshea, nicosantos, patriciahillebrandt, peterchester, reid.peifer, roblagatta, ryancurban, shane.pearlman, tribecari, vicskf, zbtirrell
4
  Tags: RSVP, events, tickets, event management, calendar, ticket sales, community, registration, api, dates, date, posts, workshop, conference, meeting, seminar, concert, summit, ticket integration, event ticketing
5
  Requires at least: 4.5
6
+ Tested up to: 4.9.1
7
+ Stable tag: 4.6.2
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
233
 
234
  == Changelog ==
235
 
236
+ = [4.6.2] 2017-12-07 =
237
+
238
+ * Fix - Fixed broken RSVP ticket sales when using Aggregator CSV [92936]
239
+ * Fix - Prevent non-escaped underscores from getting into the final SQL for LIKE queries (Props to @misenhower) [GH#567]
240
+ * Fix - Fixed sorting for Tickets so that moving them to the first and last position of the order is allowed [92558]
241
+ * Fix - Improved handling of Stock to ensure it's updated accordingly based on total sales when updating capacity [93601]
242
+ * Fix - Improved CSS for Capacity Table on mobile [90907]
243
+ * Fix - Fixed some bugs with attendees management that prevented check-in features from working in Community Tickets front-end views (props @musician4you and several other folks for highlighting this issue) [81629]
244
+ * Tweak - Introduced the `tribe_tickets_event_action_links_edit_url` filter for more granular control over "edit event" links in various views [93339]
245
+ * Tweak - Prevent EDD from being a provider for front-end Community Tickets, as only WooCommerce is allowed for that [91758]
246
+ * Tweak - Added actions: `event_tickets_ticket_list_before_ticket_name`, `event_tickets_ticket_list_after_ticket_name`
247
+ * Language - 0 new strings added, 54 updated, 0 fuzzied, and 0 obsoleted
248
+
249
  = [4.6.1.1] 2017-11-24 =
250
 
251
+ * Fix - Fixed some issues to ensure Start and End Time for Ticket sales work correctly (props to Scott) [93439]
252
  * Fix - Ensure attendee fields remain visible within the admin environment (compatibility fix for Event Tickets Plus) [94142]
253
  * Language - 0 new strings added, 1 updated, 0 fuzzied, and 0 obsoleted
254
 
255
  = [4.6.1] 2017-11-21 =
256
 
257
+ * Fix - RSVP and Tickets migration from pre-4.6 updates capacity corretly for all cases now (props to Uwe Matern) [93231]
258
+ * Fix - Ensure Attendees column for events displays the correct percentages [92287]
259
+ * Fix - Tickets Editor now has more support for Accessibility [80651]
260
+ * Tweak - Prevent unnecessary AJAX requests when using tickets editor [88642]
261
  * Tweak - Removes weird clearing of fields when canceling or saving Tickets [88642]
262
  * Tweak - Allow saving of Ticket Editor contents when Updating the Event [91760]
263
  * Tweak - Included more hooks via the new Template class for the Ticket Editor: `tribe_template_file`, `tribe_template_before_include`, `tribe_template_after_include` and `tribe_template_html` [91760]
264
  * Tweak - Only display admin links in Community Tickets if user is able to access the admin [79565]
265
  * Tweak - spacing of message to logged in users to view attendees [92550]
 
 
 
266
  * Tweak - Added filters: `tribe_ticket_filter_attendee_report_link`, `tribe_tickets_attendees_show_title`
267
  * Tweak - Removed filters: `tribe_tickets_default_end_date`, `tribe_tickets_ajax_refresh_settings`, `tribe_tickets_can_update_ticket_price`, `tribe_tickets_disallow_update_ticket_price_message`, `tribe_events_tickets_metabox_edit_attendee`
268
  * Tweak - Added actions: `tribe_tickets_save_post`
288
  = [4.5.7] 2017-10-18 =
289
 
290
  * Tweak - Improved compatibility of the "Attendees Export" CSV with Excel and other programs by removing line breaks from multi-line fields in the CSV (props: @twodoplhins) [80563]
291
+ * Tweak - Improve contrast on labels for ticket settings [93919]
292
 
293
  = [4.5.6] 2017-09-20 =
294
 
src/Tribe/Admin/Columns/Tickets.php CHANGED
@@ -106,7 +106,7 @@ class Tribe__Tickets__Admin__Columns__Tickets {
106
  /**
107
  * Gets the HTML for the percentage string for Attendees Column
108
  *
109
- * @since TBD Deprecated the Second Param
110
  *
111
  * @param int $post_id The current post ID.
112
  * @param null $deprecated
@@ -154,14 +154,14 @@ class Tribe__Tickets__Admin__Columns__Tickets {
154
  /**
155
  * Iterates over an array of tickets to fetch the sale total.
156
  *
157
- * @deprecated TBD
158
  *
159
  * @param Tribe__Tickets__Ticket_Object[] $tickets
160
  *
161
  * @return int The sale total.
162
  */
163
  protected function get_sold( $tickets ) {
164
- _deprecated_function( __METHOD__, 'TBD', 'tribe( "tickets.handler" )->get_ticket_totals()' );
165
  $sold = 0;
166
 
167
  /** @var Tribe__Tickets__Ticket_Object $ticket */
106
  /**
107
  * Gets the HTML for the percentage string for Attendees Column
108
  *
109
+ * @since 4.6.2 Deprecated the Second Param
110
  *
111
  * @param int $post_id The current post ID.
112
  * @param null $deprecated
154
  /**
155
  * Iterates over an array of tickets to fetch the sale total.
156
  *
157
+ * @deprecated 4.6.2
158
  *
159
  * @param Tribe__Tickets__Ticket_Object[] $tickets
160
  *
161
  * @return int The sale total.
162
  */
163
  protected function get_sold( $tickets ) {
164
+ _deprecated_function( __METHOD__, '4.6.2', 'tribe( "tickets.handler" )->get_ticket_totals()' );
165
  $sold = 0;
166
 
167
  /** @var Tribe__Tickets__Ticket_Object $ticket */
src/Tribe/Admin/Views.php CHANGED
@@ -15,7 +15,7 @@ class Tribe__Tickets__Admin__Views extends Tribe__Template {
15
  /**
16
  * Building of the Class template configuration
17
  *
18
- * @since TBD
19
  */
20
  public function __construct() {
21
  $this->set_template_origin( Tribe__Tickets__Main::instance() );
15
  /**
16
  * Building of the Class template configuration
17
  *
18
+ * @since 4.6.2
19
  */
20
  public function __construct() {
21
  $this->set_template_origin( Tribe__Tickets__Main::instance() );
src/Tribe/Assets.php CHANGED
@@ -62,7 +62,7 @@ class Tribe__Tickets__Assets {
62
  array( 'event-tickets-attendees-list-js', 'attendees-list.js', array( 'jquery' ) ),
63
  array( 'event-tickets-admin-accordion-js', 'accordion.js', array() ),
64
  array( 'event-tickets-admin-accordion-css', 'accordion.css', array() ),
65
- array( 'event-tickets-admin-js', 'tickets.js', array( 'jquery-ui-datepicker', 'tribe-bumpdown', 'tribe-attrchange', 'tribe-moment', 'tribe-validation', 'event-tickets-admin-accordion-js', 'event-tickets-admin-tables-js', 'tribe-timepicker' ) ),
66
  ),
67
  'admin_enqueue_scripts',
68
  array(
62
  array( 'event-tickets-attendees-list-js', 'attendees-list.js', array( 'jquery' ) ),
63
  array( 'event-tickets-admin-accordion-js', 'accordion.js', array() ),
64
  array( 'event-tickets-admin-accordion-css', 'accordion.css', array() ),
65
+ array( 'event-tickets-admin-js', 'tickets.js', array( 'jquery-ui-datepicker', 'tribe-bumpdown', 'tribe-attrchange', 'tribe-moment', 'underscore', 'tribe-validation', 'event-tickets-admin-accordion-js', 'event-tickets-admin-tables-js', 'tribe-timepicker' ) ),
66
  ),
67
  'admin_enqueue_scripts',
68
  array(
src/Tribe/Attendees.php CHANGED
@@ -6,7 +6,7 @@ class Tribe__Tickets__Attendees {
6
  /**
7
  * Hook of the admin page for attendees
8
  *
9
- * @since TBD
10
  *
11
  * @var string
12
  */
@@ -15,7 +15,7 @@ class Tribe__Tickets__Attendees {
15
  /**
16
  * WP_Post_List children for Attendees
17
  *
18
- * @since TBD
19
  *
20
  * @var Tribe__Tickets__Attendees_Table
21
  */
@@ -24,7 +24,7 @@ class Tribe__Tickets__Attendees {
24
  /**
25
  * Hooks all the required actions and filters in WordPress
26
  *
27
- * @since TBD
28
  *
29
  * @return void
30
  */
@@ -45,7 +45,7 @@ class Tribe__Tickets__Attendees {
45
  /**
46
  * Returns the Attendees Post Type Slug (mostly used for RSVP)
47
  *
48
- * @since TBD
49
  *
50
  * @return string
51
  */
@@ -56,7 +56,7 @@ class Tribe__Tickets__Attendees {
56
  /**
57
  * Returns the current post being handled.
58
  *
59
- * @since TBD
60
  *
61
  * @return array|bool|null|WP_Post
62
  */
@@ -67,7 +67,7 @@ class Tribe__Tickets__Attendees {
67
  /**
68
  * Injects event post type
69
  *
70
- * @since TBD
71
  *
72
  * @param int $event_id
73
  */
@@ -85,23 +85,34 @@ class Tribe__Tickets__Attendees {
85
  /**
86
  * Injects action links into the attendee screen.
87
  *
88
- * @since TBD
89
  *
90
  * @param $event_id
91
  */
92
  public function event_action_links( $event_id ) {
 
 
 
 
 
 
 
 
 
 
 
93
  $action_links = array(
94
- '<a href="' . esc_url( get_edit_post_link( $event_id ) ) . '" title="' . esc_attr_x( 'Edit', 'attendee event actions', 'event-tickets' ) . '">' . esc_html_x( 'Edit Event', 'attendee event actions', 'event-tickets' ) . '</a>',
95
  '<a href="' . esc_url( get_permalink( $event_id ) ) . '" title="' . esc_attr_x( 'View', 'attendee event actions', 'event-tickets' ) . '">' . esc_html_x( 'View Event', 'attendee event actions', 'event-tickets' ) . '</a>',
96
  );
97
 
98
  /**
99
- * Provides an opportunity to add and remove action links from the
100
- * attendee screen summary box.
101
  *
102
  * @param array $action_links
 
103
  */
104
- $action_links = (array) apply_filters( 'tribe_tickets_attendees_event_action_links', $action_links );
105
 
106
  if ( empty( $action_links ) ) {
107
  return;
@@ -114,7 +125,7 @@ class Tribe__Tickets__Attendees {
114
  /**
115
  * Print Check In Totals at top of Column
116
  *
117
- * @since TBD
118
  */
119
  public function print_checkedin_totals() {
120
  $total_checked_in = Tribe__Tickets__Main::instance()->attendance_totals()->get_total_checked_in();
@@ -125,7 +136,7 @@ class Tribe__Tickets__Attendees {
125
  /**
126
  * Returns the full URL to the attendees report page.
127
  *
128
- * @since TBD
129
  *
130
  * @param WP_Post $post
131
  *
@@ -190,7 +201,7 @@ class Tribe__Tickets__Attendees {
190
  /**
191
  * Registers the Attendees admin page
192
  *
193
- * @since TBD
194
  */
195
  public function register_page() {
196
  $cap = 'edit_posts';
@@ -229,7 +240,7 @@ class Tribe__Tickets__Attendees {
229
  /**
230
  * Enqueues the JS and CSS for the attendees page in the admin
231
  *
232
- * @since TBD
233
  *
234
  * @todo this needs to use tribe_assets()
235
  *
@@ -257,6 +268,7 @@ class Tribe__Tickets__Attendees {
257
  'nonce' => wp_create_nonce( 'email-attendee-list' ),
258
  'required' => esc_html__( 'You need to select a user or type a valid email address', 'event-tickets' ),
259
  'sending' => esc_html__( 'Sending...', 'event-tickets' ),
 
260
  'checkin_nonce' => wp_create_nonce( 'checkin' ),
261
  'uncheckin_nonce' => wp_create_nonce( 'uncheckin' ),
262
  'cannot_move' => esc_html__( 'You must first select one or more tickets before you can move them!', 'event-tickets' ),
@@ -273,7 +285,7 @@ class Tribe__Tickets__Attendees {
273
  /**
274
  * Loads the WP-Pointer for the Attendees screen
275
  *
276
- * @since TBD
277
  *
278
  * @param $hook
279
  */
@@ -304,7 +316,7 @@ class Tribe__Tickets__Attendees {
304
  /**
305
  * Sets up the Attendees screen data.
306
  *
307
- * @since TBD
308
  */
309
  public function screen_setup() {
310
  /* There's no reason for attendee screen setup to happen twice, but because
@@ -379,7 +391,7 @@ class Tribe__Tickets__Attendees {
379
  /**
380
  * Add admin body class
381
  *
382
- * @since TBD
383
  */
384
  public function filter_admin_body_class( $body_classes ) {
385
  return $body_classes . ' plugins-php';
@@ -389,7 +401,7 @@ class Tribe__Tickets__Attendees {
389
  * Sets the browser title for the Attendees admin page.
390
  * Uses the event title.
391
  *
392
- * @since TBD
393
  *
394
  * @param $admin_title
395
  * @param $unused_title
@@ -408,7 +420,7 @@ class Tribe__Tickets__Attendees {
408
  /**
409
  * Renders the Attendees page
410
  *
411
- * @since TBD
412
  */
413
  public function render() {
414
  /**
@@ -426,7 +438,7 @@ class Tribe__Tickets__Attendees {
426
  * Generates a list of attendees taking into account the Screen Options.
427
  * It's used both for the Email functionality, as for the CSV export.
428
  *
429
- * @since TBD
430
  *
431
  * @param $event_id
432
  *
@@ -531,7 +543,7 @@ class Tribe__Tickets__Attendees {
531
  * Checks if the user requested a CSV export from the attendees list.
532
  * If so, generates the download and finishes the execution.
533
  *
534
- * @since TBD
535
  *
536
  */
537
  public function maybe_generate_csv() {
@@ -576,7 +588,7 @@ class Tribe__Tickets__Attendees {
576
  /**
577
  * Handles the "send to email" action for the attendees list.
578
  *
579
- * @since TBD
580
  *
581
  */
582
  public function send_mail_list() {
@@ -676,7 +688,7 @@ class Tribe__Tickets__Attendees {
676
  * Sets the content type for the attendees to email functionality.
677
  * Allows for sending an HTML email.
678
  *
679
- * @since TBD
680
  *
681
  * @param $content_type
682
  *
@@ -693,7 +705,7 @@ class Tribe__Tickets__Attendees {
693
  * For example, if tickets are created for the banana post type, the generic capability
694
  * "edit_posts" will be mapped to "edit_bananas" or whatever is appropriate.
695
  *
696
- * @since TBD
697
  *
698
  * @internal for internal plugin use only (in spite of having public visibility)
699
  *
6
  /**
7
  * Hook of the admin page for attendees
8
  *
9
+ * @since 4.6.2
10
  *
11
  * @var string
12
  */
15
  /**
16
  * WP_Post_List children for Attendees
17
  *
18
+ * @since 4.6.2
19
  *
20
  * @var Tribe__Tickets__Attendees_Table
21
  */
24
  /**
25
  * Hooks all the required actions and filters in WordPress
26
  *
27
+ * @since 4.6.2
28
  *
29
  * @return void
30
  */
45
  /**
46
  * Returns the Attendees Post Type Slug (mostly used for RSVP)
47
  *
48
+ * @since 4.6.2
49
  *
50
  * @return string
51
  */
56
  /**
57
  * Returns the current post being handled.
58
  *
59
+ * @since 4.6.2
60
  *
61
  * @return array|bool|null|WP_Post
62
  */
67
  /**
68
  * Injects event post type
69
  *
70
+ * @since 4.6.2
71
  *
72
  * @param int $event_id
73
  */
85
  /**
86
  * Injects action links into the attendee screen.
87
  *
88
+ * @since 4.6.2
89
  *
90
  * @param $event_id
91
  */
92
  public function event_action_links( $event_id ) {
93
+
94
+ /**
95
+ * Allows for control of the specific "edit post" URLs used for event Sales and Attendees Reports.
96
+ *
97
+ * @since 4.6.2
98
+ *
99
+ * @param string $link The deafult "edit post" URL.
100
+ * @param int $event_id The Post ID of the event.
101
+ */
102
+ $edit_post_link = apply_filters( 'tribe_tickets_event_action_links_edit_url', get_edit_post_link( $event_id ), $event_id );
103
+
104
  $action_links = array(
105
+ '<a href="' . esc_url( $edit_post_link ) . '" title="' . esc_attr_x( 'Edit', 'attendee event actions', 'event-tickets' ) . '">' . esc_html_x( 'Edit Event', 'attendee event actions', 'event-tickets' ) . '</a>',
106
  '<a href="' . esc_url( get_permalink( $event_id ) ) . '" title="' . esc_attr_x( 'View', 'attendee event actions', 'event-tickets' ) . '">' . esc_html_x( 'View Event', 'attendee event actions', 'event-tickets' ) . '</a>',
107
  );
108
 
109
  /**
110
+ * Provides an opportunity to add and remove action links from the attendee screen summary box.
 
111
  *
112
  * @param array $action_links
113
+ * @param int $event_id
114
  */
115
+ $action_links = (array) apply_filters( 'tribe_tickets_attendees_event_action_links', $action_links, $event_id );
116
 
117
  if ( empty( $action_links ) ) {
118
  return;
125
  /**
126
  * Print Check In Totals at top of Column
127
  *
128
+ * @since 4.6.2
129
  */
130
  public function print_checkedin_totals() {
131
  $total_checked_in = Tribe__Tickets__Main::instance()->attendance_totals()->get_total_checked_in();
136
  /**
137
  * Returns the full URL to the attendees report page.
138
  *
139
+ * @since 4.6.2
140
  *
141
  * @param WP_Post $post
142
  *
201
  /**
202
  * Registers the Attendees admin page
203
  *
204
+ * @since 4.6.2
205
  */
206
  public function register_page() {
207
  $cap = 'edit_posts';
240
  /**
241
  * Enqueues the JS and CSS for the attendees page in the admin
242
  *
243
+ * @since 4.6.2
244
  *
245
  * @todo this needs to use tribe_assets()
246
  *
268
  'nonce' => wp_create_nonce( 'email-attendee-list' ),
269
  'required' => esc_html__( 'You need to select a user or type a valid email address', 'event-tickets' ),
270
  'sending' => esc_html__( 'Sending...', 'event-tickets' ),
271
+ 'ajaxurl' => admin_url( 'admin-ajax.php' ),
272
  'checkin_nonce' => wp_create_nonce( 'checkin' ),
273
  'uncheckin_nonce' => wp_create_nonce( 'uncheckin' ),
274
  'cannot_move' => esc_html__( 'You must first select one or more tickets before you can move them!', 'event-tickets' ),
285
  /**
286
  * Loads the WP-Pointer for the Attendees screen
287
  *
288
+ * @since 4.6.2
289
  *
290
  * @param $hook
291
  */
316
  /**
317
  * Sets up the Attendees screen data.
318
  *
319
+ * @since 4.6.2
320
  */
321
  public function screen_setup() {
322
  /* There's no reason for attendee screen setup to happen twice, but because
391
  /**
392
  * Add admin body class
393
  *
394
+ * @since 4.6.2
395
  */
396
  public function filter_admin_body_class( $body_classes ) {
397
  return $body_classes . ' plugins-php';
401
  * Sets the browser title for the Attendees admin page.
402
  * Uses the event title.
403
  *
404
+ * @since 4.6.2
405
  *
406
  * @param $admin_title
407
  * @param $unused_title
420
  /**
421
  * Renders the Attendees page
422
  *
423
+ * @since 4.6.2
424
  */
425
  public function render() {
426
  /**
438
  * Generates a list of attendees taking into account the Screen Options.
439
  * It's used both for the Email functionality, as for the CSV export.
440
  *
441
+ * @since 4.6.2
442
  *
443
  * @param $event_id
444
  *
543
  * Checks if the user requested a CSV export from the attendees list.
544
  * If so, generates the download and finishes the execution.
545
  *
546
+ * @since 4.6.2
547
  *
548
  */
549
  public function maybe_generate_csv() {
588
  /**
589
  * Handles the "send to email" action for the attendees list.
590
  *
591
+ * @since 4.6.2
592
  *
593
  */
594
  public function send_mail_list() {
688
  * Sets the content type for the attendees to email functionality.
689
  * Allows for sending an HTML email.
690
  *
691
+ * @since 4.6.2
692
  *
693
  * @param $content_type
694
  *
705
  * For example, if tickets are created for the banana post type, the generic capability
706
  * "edit_posts" will be mapped to "edit_bananas" or whatever is appropriate.
707
  *
708
+ * @since 4.6.2
709
  *
710
  * @internal for internal plugin use only (in spite of having public visibility)
711
  *
src/Tribe/Attendees_Table.php CHANGED
@@ -583,12 +583,12 @@ class Tribe__Tickets__Attendees_Table extends WP_List_Table {
583
  */
584
  protected function validate_action_nonce() {
585
  // If a bulk action request was posted
586
- if ( @$_POST[ 'attendee' ] && wp_verify_nonce( $_POST[ '_wpnonce' ], 'bulk-attendees' ) ) {
587
  return true;
588
  }
589
 
590
  // If an individual action was requested
591
- if ( @$_GET[ 'attendee' ] && wp_verify_nonce( $_GET[ 'nonce' ], 'do_item_action_' . $_GET[ 'attendee' ] ) ) {
592
  return true;
593
  }
594
 
583
  */
584
  protected function validate_action_nonce() {
585
  // If a bulk action request was posted
586
+ if ( ! empty( $_POST['attendee'] ) && $_POST['attendee'] && wp_verify_nonce( $_POST['_wpnonce'], 'bulk-attendees' ) ) {
587
  return true;
588
  }
589
 
590
  // If an individual action was requested
591
+ if ( ! empty( $_GET['attendee'] ) && $_GET['attendee'] && wp_verify_nonce( $_GET['nonce'], 'do_item_action_' . $_GET['attendee'] ) ) {
592
  return true;
593
  }
594
 
src/Tribe/CSV_Importer/RSVP_Importer.php CHANGED
@@ -188,8 +188,7 @@ class Tribe__Tickets__CSV_Importer__RSVP_Importer extends Tribe__Events__Importe
188
  $start_date = new DateTime( $data['ticket_start_date'] . ' ' . $ticket_start_sale_time );
189
 
190
  $data['ticket_start_meridian'] = $start_date->format( 'A' );
191
- $data['ticket_start_hour'] = $start_date->format( 'h' );
192
- $data['ticket_start_minute'] = $start_date->format( 'i' );
193
  }
194
 
195
  $ticket_end_sale_time = $this->get_value_by_key( $record, 'ticket_end_sale_time' );
@@ -198,8 +197,7 @@ class Tribe__Tickets__CSV_Importer__RSVP_Importer extends Tribe__Events__Importe
198
  $end_date = new DateTime( $data['ticket_end_date'] . ' ' . $ticket_end_sale_time );
199
 
200
  $data['ticket_end_meridian'] = $end_date->format( 'A' );
201
- $data['ticket_end_hour'] = $end_date->format( 'h' );
202
- $data['ticket_end_minute'] = $end_date->format( 'i' );
203
  }
204
 
205
  $stock = $this->get_value_by_key( $record, 'ticket_stock' );
188
  $start_date = new DateTime( $data['ticket_start_date'] . ' ' . $ticket_start_sale_time );
189
 
190
  $data['ticket_start_meridian'] = $start_date->format( 'A' );
191
+ $data['ticket_start_time'] = $start_date->format( 'H:i:00' );
 
192
  }
193
 
194
  $ticket_end_sale_time = $this->get_value_by_key( $record, 'ticket_end_sale_time' );
197
  $end_date = new DateTime( $data['ticket_end_date'] . ' ' . $ticket_end_sale_time );
198
 
199
  $data['ticket_end_meridian'] = $end_date->format( 'A' );
200
+ $data['ticket_end_time'] = $end_date->format( 'H:i:00' );
 
201
  }
202
 
203
  $stock = $this->get_value_by_key( $record, 'ticket_stock' );
src/Tribe/Cache/Abstract_Cache.php CHANGED
@@ -61,7 +61,7 @@ abstract class Tribe__Tickets__Cache__Abstract_Cache implements Tribe__Tickets__
61
  LEFT JOIN {$wpdb->posts} p
62
  ON pm.meta_value = p.ID
63
  WHERE p.post_type IN {$post_types}
64
- AND pm.meta_key LIKE '_tribe_%_for_event'
65
  AND pm.meta_value IS NOT NULL";
66
 
67
  if ( class_exists( 'Tribe__Events__Main' ) ) { // if events are among the supported post types then exclude past events
@@ -149,4 +149,4 @@ abstract class Tribe__Tickets__Cache__Abstract_Cache implements Tribe__Tickets__
149
  public function include_past( $include_past ) {
150
  $this->include_past = $include_past;
151
  }
152
- }
61
  LEFT JOIN {$wpdb->posts} p
62
  ON pm.meta_value = p.ID
63
  WHERE p.post_type IN {$post_types}
64
+ AND pm.meta_key LIKE '\\_tribe\\_%\\_for\\_event'
65
  AND pm.meta_value IS NOT NULL";
66
 
67
  if ( class_exists( 'Tribe__Events__Main' ) ) { // if events are among the supported post types then exclude past events
149
  public function include_past( $include_past ) {
150
  $this->include_past = $include_past;
151
  }
152
+ }
src/Tribe/Main.php CHANGED
@@ -4,17 +4,17 @@ class Tribe__Tickets__Main {
4
  /**
5
  * Current version of this plugin
6
  */
7
- const VERSION = '4.6.1.1';
8
 
9
  /**
10
  * Min required The Events Calendar version
11
  */
12
- const MIN_TEC_VERSION = '4.6.4';
13
 
14
  /**
15
  * Min required version of Tribe Common
16
  */
17
- const MIN_COMMON_VERSION = '4.7.2';
18
 
19
  /**
20
  * Name of the provider
4
  /**
5
  * Current version of this plugin
6
  */
7
+ const VERSION = '4.6.2';
8
 
9
  /**
10
  * Min required The Events Calendar version
11
  */
12
+ const MIN_TEC_VERSION = '4.6.7';
13
 
14
  /**
15
  * Min required version of Tribe Common
16
  */
17
+ const MIN_COMMON_VERSION = '4.7.3';
18
 
19
  /**
20
  * Name of the provider
src/Tribe/Metabox.php CHANGED
@@ -32,7 +32,7 @@ class Tribe__Tickets__Metabox {
32
  /**
33
  * Configures the Tickets Editor into a Post Type
34
  *
35
- * @since TBD
36
  *
37
  * @param string $post_type Which post type we are trying to configure
38
  *
@@ -64,7 +64,7 @@ class Tribe__Tickets__Metabox {
64
  /**
65
  * Render the actual Metabox
66
  *
67
- * @since TBD
68
  *
69
  * @param int $post_id Which post we are dealing with
70
  *
@@ -94,7 +94,7 @@ class Tribe__Tickets__Metabox {
94
  /**
95
  * Refreshes panels after ajax calls that change data
96
  *
97
- * @since TBD
98
  *
99
  * @return string html content of the panels
100
  */
@@ -140,7 +140,7 @@ class Tribe__Tickets__Metabox {
140
  /**
141
  * Get the Panels for a given
142
  *
143
- * @since TBD
144
  *
145
  * @param int|WP_Post $post
146
  * @param int $ticket_id
@@ -176,7 +176,7 @@ class Tribe__Tickets__Metabox {
176
  * Sanitizes the data for the new/edit ticket ajax call,
177
  * and calls the child save_ticket function.
178
  *
179
- * @since TBD
180
  */
181
  public function ajax_ticket_add() {
182
  $post_id = absint( tribe_get_request_var( 'post_id', 0 ) );
@@ -235,7 +235,7 @@ class Tribe__Tickets__Metabox {
235
  * Returns the data from a single ticket to populate
236
  * the edit form.
237
  *
238
- * @since TBD
239
  *
240
  * @return array $return array of ticket data
241
  */
@@ -289,7 +289,7 @@ class Tribe__Tickets__Metabox {
289
  * Sanitizes the data for the delete ticket ajax call, and calls the child delete_ticket
290
  * function.
291
  *
292
- * @since TBD
293
  */
294
  public function ajax_ticket_delete() {
295
  $post_id = absint( tribe_get_request_var( 'post_id', 0 ) );
@@ -335,7 +335,7 @@ class Tribe__Tickets__Metabox {
335
  /**
336
  * Handles the check-in ajax call, and calls the checkin method.
337
  *
338
- * @since TBD
339
  *
340
  * @todo use of 'order_id' in this method is misleading (we're working with the attendee id)
341
  * we should consider revising in a back-compat minded way
@@ -371,7 +371,7 @@ class Tribe__Tickets__Metabox {
371
  /**
372
  * Handles the check-in ajax call, and calls the uncheckin method.
373
  *
374
- * @since TBD
375
  *
376
  * @todo use of 'order_id' in this method is misleading (we're working with the attendee id)
377
  * we should consider revising in a back-compat minded way
@@ -407,7 +407,7 @@ class Tribe__Tickets__Metabox {
407
  /**
408
  * Get the controls (move, delete) as a string
409
  *
410
- * @since TBD
411
  *
412
  * @param array $post_id
413
  * @param array $ticket_id
@@ -451,7 +451,7 @@ class Tribe__Tickets__Metabox {
451
  /**
452
  * test if the nonce is correct and the current user has the correct permissions
453
  *
454
- * @since TBD
455
  *
456
  * @param WP_Post $post
457
  * @param array $data
@@ -481,7 +481,7 @@ class Tribe__Tickets__Metabox {
481
  *
482
  * @internal for internal plugin use only (in spite of having public visibility)
483
  *
484
- * @since TBD
485
  *
486
  * @see tribe( 'tickets.attendees' )->user_can
487
  *
@@ -504,7 +504,7 @@ class Tribe__Tickets__Metabox {
504
  /**
505
  * Returns whether a class name is a valid active module/provider.
506
  *
507
- * @since TBD
508
  *
509
  * @param string $module class name of module
510
  *
@@ -517,7 +517,7 @@ class Tribe__Tickets__Metabox {
517
  /**
518
  * Returns the markup for a notice in the admin
519
  *
520
- * @since TBD
521
  *
522
  * @param string $msg Text for the notice
523
  *
@@ -560,7 +560,7 @@ class Tribe__Tickets__Metabox {
560
  /**
561
  * Refreshes panel settings after canceling saving
562
  *
563
- * @deprecated TBD
564
  * @since 4.6
565
  *
566
  * @return string html content of the panel settings
@@ -570,7 +570,7 @@ class Tribe__Tickets__Metabox {
570
  }
571
 
572
  /**
573
- * @deprecated TBD
574
  *
575
  * @return void
576
  */
@@ -582,7 +582,7 @@ class Tribe__Tickets__Metabox {
582
  * Registers the tickets metabox if there's at least
583
  * one Tribe Tickets module (provider) enabled
584
  *
585
- * @deprecated TBD
586
  *
587
  * @param $post_type
588
  */
@@ -594,7 +594,7 @@ class Tribe__Tickets__Metabox {
594
  * Loads the content of the tickets metabox if there's at
595
  * least one Tribe Tickets module (provider) enabled
596
  *
597
- * @deprecated TBD
598
  *
599
  * @param $post_id
600
  */
32
  /**
33
  * Configures the Tickets Editor into a Post Type
34
  *
35
+ * @since 4.6.2
36
  *
37
  * @param string $post_type Which post type we are trying to configure
38
  *
64
  /**
65
  * Render the actual Metabox
66
  *
67
+ * @since 4.6.2
68
  *
69
  * @param int $post_id Which post we are dealing with
70
  *
94
  /**
95
  * Refreshes panels after ajax calls that change data
96
  *
97
+ * @since 4.6.2
98
  *
99
  * @return string html content of the panels
100
  */
140
  /**
141
  * Get the Panels for a given
142
  *
143
+ * @since 4.6.2
144
  *
145
  * @param int|WP_Post $post
146
  * @param int $ticket_id
176
  * Sanitizes the data for the new/edit ticket ajax call,
177
  * and calls the child save_ticket function.
178
  *
179
+ * @since 4.6.2
180
  */
181
  public function ajax_ticket_add() {
182
  $post_id = absint( tribe_get_request_var( 'post_id', 0 ) );
235
  * Returns the data from a single ticket to populate
236
  * the edit form.
237
  *
238
+ * @since 4.6.2
239
  *
240
  * @return array $return array of ticket data
241
  */
289
  * Sanitizes the data for the delete ticket ajax call, and calls the child delete_ticket
290
  * function.
291
  *
292
+ * @since 4.6.2
293
  */
294
  public function ajax_ticket_delete() {
295
  $post_id = absint( tribe_get_request_var( 'post_id', 0 ) );
335
  /**
336
  * Handles the check-in ajax call, and calls the checkin method.
337
  *
338
+ * @since 4.6.2
339
  *
340
  * @todo use of 'order_id' in this method is misleading (we're working with the attendee id)
341
  * we should consider revising in a back-compat minded way
371
  /**
372
  * Handles the check-in ajax call, and calls the uncheckin method.
373
  *
374
+ * @since 4.6.2
375
  *
376
  * @todo use of 'order_id' in this method is misleading (we're working with the attendee id)
377
  * we should consider revising in a back-compat minded way
407
  /**
408
  * Get the controls (move, delete) as a string
409
  *
410
+ * @since 4.6.2
411
  *
412
  * @param array $post_id
413
  * @param array $ticket_id
451
  /**
452
  * test if the nonce is correct and the current user has the correct permissions
453
  *
454
+ * @since 4.6.2
455
  *
456
  * @param WP_Post $post
457
  * @param array $data
481
  *
482
  * @internal for internal plugin use only (in spite of having public visibility)
483
  *
484
+ * @since 4.6.2
485
  *
486
  * @see tribe( 'tickets.attendees' )->user_can
487
  *
504
  /**
505
  * Returns whether a class name is a valid active module/provider.
506
  *
507
+ * @since 4.6.2
508
  *
509
  * @param string $module class name of module
510
  *
517
  /**
518
  * Returns the markup for a notice in the admin
519
  *
520
+ * @since 4.6.2
521
  *
522
  * @param string $msg Text for the notice
523
  *
560
  /**
561
  * Refreshes panel settings after canceling saving
562
  *
563
+ * @deprecated 4.6.2
564
  * @since 4.6
565
  *
566
  * @return string html content of the panel settings
570
  }
571
 
572
  /**
573
+ * @deprecated 4.6.2
574
  *
575
  * @return void
576
  */
582
  * Registers the tickets metabox if there's at least
583
  * one Tribe Tickets module (provider) enabled
584
  *
585
+ * @deprecated 4.6.2
586
  *
587
  * @param $post_type
588
  */
594
  * Loads the content of the tickets metabox if there's at
595
  * least one Tribe Tickets module (provider) enabled
596
  *
597
+ * @deprecated 4.6.2
598
  *
599
  * @param $post_id
600
  */
src/Tribe/RSVP.php CHANGED
@@ -961,6 +961,11 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
961
  }
962
 
963
  if ( -1 !== $data['capacity'] ) {
 
 
 
 
 
964
  update_post_meta( $ticket->ID, '_manage_stock', 'yes' );
965
  update_post_meta( $ticket->ID, '_stock', $data['stock'] );
966
  } else {
961
  }
962
 
963
  if ( -1 !== $data['capacity'] ) {
964
+ if ( 'update' === $save_type ) {
965
+ $totals = tribe( 'tickets.handler' )->get_ticket_totals( $ticket->ID );
966
+ $data['stock'] -= $totals['pending'] + $totals['sold'];
967
+ }
968
+
969
  update_post_meta( $ticket->ID, '_manage_stock', 'yes' );
970
  update_post_meta( $ticket->ID, '_stock', $data['stock'] );
971
  } else {
src/Tribe/Ticket_Object.php CHANGED
@@ -123,7 +123,7 @@ if ( ! class_exists( 'Tribe__Tickets__Ticket_Object' ) ) {
123
  *
124
  * @var mixed
125
  */
126
- protected $stock = 0;
127
 
128
  /**
129
  * The mode of stock handling to be used for the ticket when global stock
@@ -558,8 +558,10 @@ if ( ! class_exists( 'Tribe__Tickets__Ticket_Object' ) ) {
558
  * @return int|string
559
  */
560
  public function stock( $value = null ) {
561
- if ( is_null( $value ) ) {
562
- $value = (int) get_post_meta( $this->ID, '_stock', true );
 
 
563
  }
564
 
565
  // if we aren't tracking stock, then always assume it is in stock or capacity is unlimited
123
  *
124
  * @var mixed
125
  */
126
+ protected $stock;
127
 
128
  /**
129
  * The mode of stock handling to be used for the ticket when global stock
558
  * @return int|string
559
  */
560
  public function stock( $value = null ) {
561
+ if ( null === $value ) {
562
+ $value = null === $this->stock
563
+ ? (int) get_post_meta( $this->ID, '_stock', true )
564
+ : $this->stock;
565
  }
566
 
567
  // if we aren't tracking stock, then always assume it is in stock or capacity is unlimited
src/Tribe/Tickets.php CHANGED
@@ -390,7 +390,7 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
390
  return;
391
  }
392
 
393
- $move_link = sprintf( '<a href="%1$s" class="thickbox">' . esc_html( $button_text ) . '</a>', $move_url );
394
 
395
  return $move_link;
396
  }
@@ -398,7 +398,7 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
398
  /**
399
  * Get the controls (move, delete) as a string and add to our ajax return
400
  *
401
- * @deprecated TBD
402
  * @since 4.6
403
  *
404
  * @param array $return the ajax return data
@@ -1851,7 +1851,7 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
1851
  *
1852
  * @internal for internal plugin use only (in spite of having public visibility)
1853
  *
1854
- * @deprecated TBD
1855
  *
1856
  * @see tribe( 'tickets.attendees' )->user_can
1857
  *
@@ -1861,43 +1861,43 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
1861
  * @return boolean
1862
  */
1863
  public function user_can( $generic_cap, $attendee_id ) {
1864
- _deprecated_function( __METHOD__, 'TBD', 'tribe( "tickets.metabox" )->user_can( $generic_cap, $attendee_id )' );
1865
  return tribe( 'tickets.metabox' )->user_can( $generic_cap, $attendee_id );
1866
  }
1867
 
1868
  /**
1869
  * Check and set global capacity options for the "event" post
1870
  *
1871
- * @deprecated TBD
1872
  * @since 4.6
1873
  *
1874
  * @return object ajax success object
1875
  */
1876
  public function edit_global_capacity_level() {
1877
- _deprecated_function( __METHOD__, 'TBD', 'tribe_tickets_update_capacity' );
1878
  }
1879
 
1880
  /**
1881
  * Sets an AJAX error, returns a JSON array and ends the execution.
1882
  *
1883
- * @deprecated TBD
1884
  *
1885
  * @param string $message
1886
  */
1887
  final protected function ajax_error( $message = '' ) {
1888
- _deprecated_function( __METHOD__, 'TBD', 'wp_send_json_error()' );
1889
  wp_send_json_error( $message );
1890
  }
1891
 
1892
  /**
1893
  * Sets an AJAX response, returns a JSON array and ends the execution.
1894
  *
1895
- * @deprecated TBD
1896
  *
1897
  * @param mixed $data
1898
  */
1899
  final protected function ajax_ok( $data ) {
1900
- _deprecated_function( __METHOD__, 'TBD', 'wp_send_json_success()' );
1901
  wp_send_json_success( $data );
1902
  }
1903
 
390
  return;
391
  }
392
 
393
+ $move_link = sprintf( '<a href="%1$s" class="thickbox tribe-ticket-move-link">' . esc_html( $button_text ) . '</a>', $move_url );
394
 
395
  return $move_link;
396
  }
398
  /**
399
  * Get the controls (move, delete) as a string and add to our ajax return
400
  *
401
+ * @deprecated 4.6.2
402
  * @since 4.6
403
  *
404
  * @param array $return the ajax return data
1851
  *
1852
  * @internal for internal plugin use only (in spite of having public visibility)
1853
  *
1854
+ * @deprecated 4.6.2
1855
  *
1856
  * @see tribe( 'tickets.attendees' )->user_can
1857
  *
1861
  * @return boolean
1862
  */
1863
  public function user_can( $generic_cap, $attendee_id ) {
1864
+ _deprecated_function( __METHOD__, '4.6.2', 'tribe( "tickets.metabox" )->user_can( $generic_cap, $attendee_id )' );
1865
  return tribe( 'tickets.metabox' )->user_can( $generic_cap, $attendee_id );
1866
  }
1867
 
1868
  /**
1869
  * Check and set global capacity options for the "event" post
1870
  *
1871
+ * @deprecated 4.6.2
1872
  * @since 4.6
1873
  *
1874
  * @return object ajax success object
1875
  */
1876
  public function edit_global_capacity_level() {
1877
+ _deprecated_function( __METHOD__, '4.6.2', 'tribe_tickets_update_capacity' );
1878
  }
1879
 
1880
  /**
1881
  * Sets an AJAX error, returns a JSON array and ends the execution.
1882
  *
1883
+ * @deprecated 4.6.2
1884
  *
1885
  * @param string $message
1886
  */
1887
  final protected function ajax_error( $message = '' ) {
1888
+ _deprecated_function( __METHOD__, '4.6.2', 'wp_send_json_error()' );
1889
  wp_send_json_error( $message );
1890
  }
1891
 
1892
  /**
1893
  * Sets an AJAX response, returns a JSON array and ends the execution.
1894
  *
1895
+ * @deprecated 4.6.2
1896
  *
1897
  * @param mixed $data
1898
  */
1899
  final protected function ajax_ok( $data ) {
1900
+ _deprecated_function( __METHOD__, '4.6.2', 'wp_send_json_success()' );
1901
  wp_send_json_success( $data );
1902
  }
1903
 
src/Tribe/Tickets_Handler.php CHANGED
@@ -274,7 +274,7 @@ class Tribe__Tickets__Tickets_Handler {
274
  /**
275
  * Returns which possible connections an Object might have
276
  *
277
- * @since TBD
278
  *
279
  * @return object
280
  * {
@@ -303,7 +303,7 @@ class Tribe__Tickets__Tickets_Handler {
303
  *
304
  * On RSVPs Attendees and Orders are the same Post
305
  *
306
- * @since TBD
307
  *
308
  * @see self::get_connections_template
309
  *
@@ -720,7 +720,7 @@ class Tribe__Tickets__Tickets_Handler {
720
  * Gets the Total of Stock, Sold and Pending for a given Post
721
  * And if there is any Unlimited
722
  *
723
- * @since TBD
724
  *
725
  * @param int|WP_Post $post Which ticket
726
  *
@@ -828,7 +828,7 @@ class Tribe__Tickets__Tickets_Handler {
828
  /**
829
  * Returns whether a given object has the correct Provider for a Post or Ticket
830
  *
831
- * @since TBD
832
  *
833
  * @param int|WP_Post $ticket
834
  * @param mixed $provider
@@ -852,6 +852,10 @@ class Tribe__Tickets__Tickets_Handler {
852
  $default_provider = tribe_tickets_get_ticket_provider( $post->ID );
853
  }
854
 
 
 
 
 
855
  if ( ! is_string( $default_provider ) ) {
856
  $default_provider = get_class( $default_provider );
857
  }
@@ -1080,7 +1084,7 @@ class Tribe__Tickets__Tickets_Handler {
1080
  /**
1081
  * Gets the Default mode in which tickets will be generated
1082
  *
1083
- * @since TBD
1084
  *
1085
  * @return string
1086
  */
@@ -1104,7 +1108,7 @@ class Tribe__Tickets__Tickets_Handler {
1104
  * Due to how we can have multiple Post Types where we can attach tickets we have one place where
1105
  * all panels will save, because `save_post_$post_type` requires a loop
1106
  *
1107
- * @since TBD
1108
  *
1109
  * @param int $post Post that will be saved
1110
  *
@@ -1143,7 +1147,7 @@ class Tribe__Tickets__Tickets_Handler {
1143
  /**
1144
  * Allows us to Run any actions related to a Post that has Tickets
1145
  *
1146
- * @since TBD
1147
  *
1148
  * @param WP_Post $post Which post we are saving
1149
  */
@@ -1153,7 +1157,7 @@ class Tribe__Tickets__Tickets_Handler {
1153
  /**
1154
  * Saves the Ticket Editor settings form
1155
  *
1156
- * @since TBD
1157
  *
1158
  * @param int $post Post that will be saved
1159
  * @param array $data Params that will be used to save
@@ -1321,7 +1325,7 @@ class Tribe__Tickets__Tickets_Handler {
1321
  /**
1322
  * Slug of the admin page for attendees
1323
  *
1324
- * @deprecated TBD
1325
  *
1326
  * @var string
1327
  */
@@ -1330,23 +1334,23 @@ class Tribe__Tickets__Tickets_Handler {
1330
  /**
1331
  * Save or delete the image header for tickets on an event
1332
  *
1333
- * @deprecated TBD
1334
  *
1335
  * @param int $post_id
1336
  */
1337
  public function save_image_header( $post_id ) {
1338
- _deprecated_function( __METHOD__, 'TBD', "tribe( 'tickets.handler' )->save_settings()" );
1339
  }
1340
 
1341
  /**
1342
  * Saves the event ticket settings via ajax
1343
  *
1344
- * @deprecated TBD
1345
  *
1346
  * @since 4.6
1347
  */
1348
  public function ajax_handler_save_settings() {
1349
- _deprecated_function( __METHOD__, 'TBD', "tribe( 'tickets.metabox' )->ajax_settings()" );
1350
  return tribe( 'tickets.metabox' )->ajax_settings();
1351
 
1352
  }
@@ -1354,83 +1358,83 @@ class Tribe__Tickets__Tickets_Handler {
1354
  /**
1355
  * Includes the tickets metabox inside the Event edit screen
1356
  *
1357
- * @deprecated TBD
1358
  *
1359
  * @param WP_Post $post
1360
  *
1361
  * @return string
1362
  */
1363
  public function do_meta_box( $post ) {
1364
- _deprecated_function( __METHOD__, 'TBD', "tribe( 'tickets.metabox' )->render( \$post )" );
1365
  return tribe( 'tickets.metabox' )->render( $post );
1366
  }
1367
 
1368
  /**
1369
  * Returns the attachment ID for the header image for a event.
1370
  *
1371
- * @deprecated TBD
1372
  *
1373
  * @param $event_id
1374
  *
1375
  * @return mixed
1376
  */
1377
  public function get_header_image_id( $event_id ) {
1378
- _deprecated_function( __METHOD__, 'TBD', "get_post_meta( \$event_id, tribe( 'tickets.handler' )->key_image_header, true );" );
1379
  return get_post_meta( $event_id, tribe( 'tickets.handler' )->key_image_header, true );
1380
  }
1381
 
1382
  /**
1383
  * Render the ticket row into the ticket table
1384
  *
1385
- * @deprecated TBD
1386
  *
1387
  * @since 4.6
1388
  *
1389
  * @param Tribe__Tickets__Ticket_Object $ticket
1390
  */
1391
  public function render_ticket_row( $ticket ) {
1392
- _deprecated_function( __METHOD__, 'TBD', "tribe( 'tickets.admin.views' )->template( array( 'editor', 'ticket-row' ) )" );
1393
  tribe( 'tickets.admin.views' )->template( array( 'editor', 'list-row' ), array( 'ticket' => $ticket ) );
1394
  }
1395
 
1396
  /**
1397
  * Returns the markup for the History for a Given Ticket
1398
  *
1399
- * @deprecated TBD
1400
  *
1401
  * @param int $ticket_id
1402
  *
1403
  * @return string
1404
  */
1405
  public function get_history_content( $post_id, $ticket ) {
1406
- _deprecated_function( __METHOD__, 'TBD', "tribe( 'tickets.admin.views' )->template( 'settings_admin_panel' )" );
1407
  return tribe( 'tickets.admin.views' )->template( 'tickets-history', array( 'post_id' => $post_id, 'ticket' => $ticket ), false );
1408
  }
1409
 
1410
  /**
1411
  * Returns the markup for the Settings Panel for Tickets
1412
  *
1413
- * @deprecated TBD
1414
  *
1415
  * @param int $post_id
1416
  *
1417
  * @return string
1418
  */
1419
  public function get_settings_panel( $post_id ) {
1420
- _deprecated_function( __METHOD__, 'TBD', "tribe( 'tickets.admin.views' )->template( 'settings_admin_panel' )" );
1421
  return tribe( 'tickets.admin.views' )->template( 'settings_admin_panel', array( 'post_id' => $post_id ), false );
1422
  }
1423
 
1424
  /**
1425
  * Echoes the markup for the tickets list in the tickets metabox
1426
  *
1427
- * @deprecated TBD
1428
  *
1429
  * @param int $deprecated event ID
1430
  * @param array $tickets
1431
  */
1432
  public function ticket_list_markup( $deprecated, $tickets = array() ) {
1433
- _deprecated_function( __METHOD__, 'TBD', "tribe( 'tickets.admin.views' )->template( 'list' )" );
1434
 
1435
  tribe( 'tickets.admin.views' )->template( 'list', array( 'tickets' => $tickets ) );
1436
  }
@@ -1438,14 +1442,14 @@ class Tribe__Tickets__Tickets_Handler {
1438
  /**
1439
  * Returns the markup for the tickets list in the tickets metabox
1440
  *
1441
- * @deprecated TBD
1442
  *
1443
  * @param array $tickets
1444
  *
1445
  * @return string
1446
  */
1447
  public function get_ticket_list_markup( $tickets = array() ) {
1448
- _deprecated_function( __METHOD__, 'TBD', "tribe( 'tickets.admin.views' )->template( 'list' )" );
1449
 
1450
  return tribe( 'tickets.admin.views' )->template( 'list', array( 'tickets' => $tickets ), false );
1451
  }
@@ -1453,63 +1457,63 @@ class Tribe__Tickets__Tickets_Handler {
1453
  /**
1454
  * Whether the ticket handler should render the title in the attendees report.
1455
  *
1456
- * @deprecated TBD
1457
  *
1458
  * @param bool $should_render_title
1459
  */
1460
  public function should_render_title( $deprecated ) {
1461
- _deprecated_function( __METHOD__, 'TBD', 'add_filter( \'tribe_tickets_attendees_show_title\', \'_return_false\' );' );
1462
  return true;
1463
  }
1464
 
1465
  /**
1466
  * Returns the current post being handled.
1467
  *
1468
- * @deprecated TBD
1469
  *
1470
  * @return array|bool|null|WP_Post
1471
  */
1472
  public function get_post() {
1473
- _deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::get_post' );
1474
  return tribe( 'tickets.attendees' )->get_post();
1475
  }
1476
 
1477
  /**
1478
  * Print Check In Totals at top of Column
1479
  *
1480
- * @deprecated TBD
1481
  *
1482
  */
1483
  public function print_checkedin_totals() {
1484
- _deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::print_checkedin_totals' );
1485
  tribe( 'tickets.attendees' )->print_checkedin_totals();
1486
  }
1487
 
1488
  /**
1489
  * Returns the full URL to the attendees report page.
1490
  *
1491
- * @deprecated TBD
1492
  *
1493
  * @param WP_Post $post
1494
  *
1495
  * @return string
1496
  */
1497
  public function get_attendee_report_link( $post ) {
1498
- _deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::get_report_link' );
1499
  return tribe( 'tickets.attendees' )->get_report_link( $post );
1500
  }
1501
 
1502
  /**
1503
  * Adds the "attendees" link in the admin list row actions for each event.
1504
  *
1505
- * @deprecated TBD
1506
  *
1507
  * @param $actions
1508
  *
1509
  * @return array
1510
  */
1511
  public function attendees_row_action( $actions ) {
1512
- _deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::filter_admin_row_actions' );
1513
  return tribe( 'tickets.attendees' )->filter_admin_row_actions( $actions );
1514
  }
1515
 
@@ -1517,50 +1521,50 @@ class Tribe__Tickets__Tickets_Handler {
1517
  * Registers the Attendees admin page
1518
  */
1519
  public function attendees_page_register() {
1520
- _deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::register_page' );
1521
  tribe( 'tickets.attendees' )->register_page();
1522
  }
1523
 
1524
  /**
1525
  * Enqueues the JS and CSS for the attendees page in the admin
1526
  *
1527
- * @deprecated TBD
1528
  *
1529
  * @param $hook
1530
  */
1531
  public function attendees_page_load_css_js( $hook ) {
1532
- _deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::enqueue_assets' );
1533
  tribe( 'tickets.attendees' )->enqueue_assets( $hook );
1534
  }
1535
 
1536
  /**
1537
  * Loads the WP-Pointer for the Attendees screen
1538
  *
1539
- * @deprecated TBD
1540
  *
1541
  * @param $hook
1542
  */
1543
  public function attendees_page_load_pointers( $hook ) {
1544
- _deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::load_pointers' );
1545
  tribe( 'tickets.attendees' )->load_pointers( $hook );
1546
  }
1547
 
1548
  /**
1549
  * Sets up the Attendees screen data.
1550
  *
1551
- * @deprecated TBD
1552
  *
1553
  */
1554
  public function attendees_page_screen_setup() {
1555
- _deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::screen_setup' );
1556
  tribe( 'tickets.attendees' )->screen_setup();
1557
  }
1558
 
1559
  /**
1560
- * @deprecated TBD
1561
  */
1562
  public function attendees_admin_body_class( $body_classes ) {
1563
- _deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::filter_admin_body_class' );
1564
  tribe( 'tickets.attendees' )->filter_admin_body_class( $body_classes );
1565
  }
1566
 
@@ -1568,7 +1572,7 @@ class Tribe__Tickets__Tickets_Handler {
1568
  * Sets the browser title for the Attendees admin page.
1569
  * Uses the event title.
1570
  *
1571
- * @deprecated TBD
1572
  *
1573
  * @param $admin_title
1574
  * @param $unused_title
@@ -1576,17 +1580,17 @@ class Tribe__Tickets__Tickets_Handler {
1576
  * @return string
1577
  */
1578
  public function attendees_admin_title( $admin_title, $unused_title ) {
1579
- _deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::filter_admin_title' );
1580
  tribe( 'tickets.attendees' )->filter_admin_title( $admin_title, $unused_title );
1581
  }
1582
 
1583
  /**
1584
  * Renders the Attendees page
1585
  *
1586
- * @deprecated TBD
1587
  */
1588
  public function attendees_page_inside() {
1589
- _deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::render' );
1590
  tribe( 'tickets.attendees' )->render();
1591
  }
1592
 
@@ -1594,14 +1598,14 @@ class Tribe__Tickets__Tickets_Handler {
1594
  * Generates a list of attendees taking into account the Screen Options.
1595
  * It's used both for the Email functionality, as for the CSV export.
1596
  *
1597
- * @deprecated TBD
1598
  *
1599
  * @param $event_id
1600
  *
1601
  * @return array
1602
  */
1603
  private function generate_filtered_attendees_list( $event_id ) {
1604
- _deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::generate_filtered_list' );
1605
 
1606
  tribe( 'tickets.attendees' )->generate_filtered_list( $event_id );
1607
  }
@@ -1610,40 +1614,40 @@ class Tribe__Tickets__Tickets_Handler {
1610
  * Checks if the user requested a CSV export from the attendees list.
1611
  * If so, generates the download and finishes the execution.
1612
  *
1613
- * @deprecated TBD
1614
  */
1615
  public function maybe_generate_attendees_csv() {
1616
- _deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::maybe_generate_csv' );
1617
  tribe( 'tickets.attendees' )->maybe_generate_csv();
1618
  }
1619
 
1620
  /**
1621
  * Handles the "send to email" action for the attendees list.
1622
  *
1623
- * @deprecated TBD
1624
  */
1625
  public function send_attendee_mail_list() {
1626
- _deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::send_mail_list' );
1627
  tribe( 'tickets.attendees' )->send_mail_list();
1628
  }
1629
 
1630
  /**
1631
  * Injects event post type
1632
  *
1633
- * @deprecated TBD
1634
  */
1635
  public function event_details_top() {
1636
- _deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::event_details_top' );
1637
  tribe( 'tickets.attendees' )->event_details_top();
1638
  }
1639
 
1640
  /**
1641
  * Injects action links into the attendee screen.
1642
  *
1643
- * @deprecated TBD
1644
  */
1645
  public function event_action_links() {
1646
- _deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::event_action_links' );
1647
  tribe( 'tickets.attendees' )->event_action_links();
1648
  }
1649
 
@@ -1651,14 +1655,14 @@ class Tribe__Tickets__Tickets_Handler {
1651
  * Sets the content type for the attendees to email functionality.
1652
  * Allows for sending an HTML email.
1653
  *
1654
- * @deprecated TBD
1655
  *
1656
  * @param $content_type
1657
  *
1658
  * @return string
1659
  */
1660
  public function set_contenttype( $content_type ) {
1661
- _deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::set_contenttype' );
1662
  }
1663
 
1664
  /**
@@ -1668,7 +1672,7 @@ class Tribe__Tickets__Tickets_Handler {
1668
  * For example, if tickets are created for the banana post type, the generic capability
1669
  * "edit_posts" will be mapped to "edit_bananas" or whatever is appropriate.
1670
  *
1671
- * @deprecated TBD
1672
  *
1673
  * @internal for internal plugin use only (in spite of having public visibility)
1674
  *
@@ -1677,7 +1681,7 @@ class Tribe__Tickets__Tickets_Handler {
1677
  * @return boolean
1678
  */
1679
  public function user_can( $generic_cap, $event_id ) {
1680
- _deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::user_can' );
1681
  }
1682
 
1683
  // @codingStandardsIgnoreEnd
274
  /**
275
  * Returns which possible connections an Object might have
276
  *
277
+ * @since 4.6.2
278
  *
279
  * @return object
280
  * {
303
  *
304
  * On RSVPs Attendees and Orders are the same Post
305
  *
306
+ * @since 4.6.2
307
  *
308
  * @see self::get_connections_template
309
  *
720
  * Gets the Total of Stock, Sold and Pending for a given Post
721
  * And if there is any Unlimited
722
  *
723
+ * @since 4.6.2
724
  *
725
  * @param int|WP_Post $post Which ticket
726
  *
828
  /**
829
  * Returns whether a given object has the correct Provider for a Post or Ticket
830
  *
831
+ * @since 4.6.2
832
  *
833
  * @param int|WP_Post $ticket
834
  * @param mixed $provider
852
  $default_provider = tribe_tickets_get_ticket_provider( $post->ID );
853
  }
854
 
855
+ if ( ! $default_provider ) {
856
+ $default_provider = class_exists( 'Tribe__Tickets_Plus__Main' ) ? 'Tribe__Tickets_Plus__Commerce__WooCommerce__Main' : 'Tribe__Tickets__RSVP';
857
+ }
858
+
859
  if ( ! is_string( $default_provider ) ) {
860
  $default_provider = get_class( $default_provider );
861
  }
1084
  /**
1085
  * Gets the Default mode in which tickets will be generated
1086
  *
1087
+ * @since 4.6.2
1088
  *
1089
  * @return string
1090
  */
1108
  * Due to how we can have multiple Post Types where we can attach tickets we have one place where
1109
  * all panels will save, because `save_post_$post_type` requires a loop
1110
  *
1111
+ * @since 4.6.2
1112
  *
1113
  * @param int $post Post that will be saved
1114
  *
1147
  /**
1148
  * Allows us to Run any actions related to a Post that has Tickets
1149
  *
1150
+ * @since 4.6.2
1151
  *
1152
  * @param WP_Post $post Which post we are saving
1153
  */
1157
  /**
1158
  * Saves the Ticket Editor settings form
1159
  *
1160
+ * @since 4.6.2
1161
  *
1162
  * @param int $post Post that will be saved
1163
  * @param array $data Params that will be used to save
1325
  /**
1326
  * Slug of the admin page for attendees
1327
  *
1328
+ * @deprecated 4.6.2
1329
  *
1330
  * @var string
1331
  */
1334
  /**
1335
  * Save or delete the image header for tickets on an event
1336
  *
1337
+ * @deprecated 4.6.2
1338
  *
1339
  * @param int $post_id
1340
  */
1341
  public function save_image_header( $post_id ) {
1342
+ _deprecated_function( __METHOD__, '4.6.2', "tribe( 'tickets.handler' )->save_settings()" );
1343
  }
1344
 
1345
  /**
1346
  * Saves the event ticket settings via ajax
1347
  *
1348
+ * @deprecated 4.6.2
1349
  *
1350
  * @since 4.6
1351
  */
1352
  public function ajax_handler_save_settings() {
1353
+ _deprecated_function( __METHOD__, '4.6.2', "tribe( 'tickets.metabox' )->ajax_settings()" );
1354
  return tribe( 'tickets.metabox' )->ajax_settings();
1355
 
1356
  }
1358
  /**
1359
  * Includes the tickets metabox inside the Event edit screen
1360
  *
1361
+ * @deprecated 4.6.2
1362
  *
1363
  * @param WP_Post $post
1364
  *
1365
  * @return string
1366
  */
1367
  public function do_meta_box( $post ) {
1368
+ _deprecated_function( __METHOD__, '4.6.2', "tribe( 'tickets.metabox' )->render( \$post )" );
1369
  return tribe( 'tickets.metabox' )->render( $post );
1370
  }
1371
 
1372
  /**
1373
  * Returns the attachment ID for the header image for a event.
1374
  *
1375
+ * @deprecated 4.6.2
1376
  *
1377
  * @param $event_id
1378
  *
1379
  * @return mixed
1380
  */
1381
  public function get_header_image_id( $event_id ) {
1382
+ _deprecated_function( __METHOD__, '4.6.2', "get_post_meta( \$event_id, tribe( 'tickets.handler' )->key_image_header, true );" );
1383
  return get_post_meta( $event_id, tribe( 'tickets.handler' )->key_image_header, true );
1384
  }
1385
 
1386
  /**
1387
  * Render the ticket row into the ticket table
1388
  *
1389
+ * @deprecated 4.6.2
1390
  *
1391
  * @since 4.6
1392
  *
1393
  * @param Tribe__Tickets__Ticket_Object $ticket
1394
  */
1395
  public function render_ticket_row( $ticket ) {
1396
+ _deprecated_function( __METHOD__, '4.6.2', "tribe( 'tickets.admin.views' )->template( array( 'editor', 'ticket-row' ) )" );
1397
  tribe( 'tickets.admin.views' )->template( array( 'editor', 'list-row' ), array( 'ticket' => $ticket ) );
1398
  }
1399
 
1400
  /**
1401
  * Returns the markup for the History for a Given Ticket
1402
  *
1403
+ * @deprecated 4.6.2
1404
  *
1405
  * @param int $ticket_id
1406
  *
1407
  * @return string
1408
  */
1409
  public function get_history_content( $post_id, $ticket ) {
1410
+ _deprecated_function( __METHOD__, '4.6.2', "tribe( 'tickets.admin.views' )->template( 'settings_admin_panel' )" );
1411
  return tribe( 'tickets.admin.views' )->template( 'tickets-history', array( 'post_id' => $post_id, 'ticket' => $ticket ), false );
1412
  }
1413
 
1414
  /**
1415
  * Returns the markup for the Settings Panel for Tickets
1416
  *
1417
+ * @deprecated 4.6.2
1418
  *
1419
  * @param int $post_id
1420
  *
1421
  * @return string
1422
  */
1423
  public function get_settings_panel( $post_id ) {
1424
+ _deprecated_function( __METHOD__, '4.6.2', "tribe( 'tickets.admin.views' )->template( 'settings_admin_panel' )" );
1425
  return tribe( 'tickets.admin.views' )->template( 'settings_admin_panel', array( 'post_id' => $post_id ), false );
1426
  }
1427
 
1428
  /**
1429
  * Echoes the markup for the tickets list in the tickets metabox
1430
  *
1431
+ * @deprecated 4.6.2
1432
  *
1433
  * @param int $deprecated event ID
1434
  * @param array $tickets
1435
  */
1436
  public function ticket_list_markup( $deprecated, $tickets = array() ) {
1437
+ _deprecated_function( __METHOD__, '4.6.2', "tribe( 'tickets.admin.views' )->template( 'list' )" );
1438
 
1439
  tribe( 'tickets.admin.views' )->template( 'list', array( 'tickets' => $tickets ) );
1440
  }
1442
  /**
1443
  * Returns the markup for the tickets list in the tickets metabox
1444
  *
1445
+ * @deprecated 4.6.2
1446
  *
1447
  * @param array $tickets
1448
  *
1449
  * @return string
1450
  */
1451
  public function get_ticket_list_markup( $tickets = array() ) {
1452
+ _deprecated_function( __METHOD__, '4.6.2', "tribe( 'tickets.admin.views' )->template( 'list' )" );
1453
 
1454
  return tribe( 'tickets.admin.views' )->template( 'list', array( 'tickets' => $tickets ), false );
1455
  }
1457
  /**
1458
  * Whether the ticket handler should render the title in the attendees report.
1459
  *
1460
+ * @deprecated 4.6.2
1461
  *
1462
  * @param bool $should_render_title
1463
  */
1464
  public function should_render_title( $deprecated ) {
1465
+ _deprecated_function( __METHOD__, '4.6.2', 'add_filter( \'tribe_tickets_attendees_show_title\', \'_return_false\' );' );
1466
  return true;
1467
  }
1468
 
1469
  /**
1470
  * Returns the current post being handled.
1471
  *
1472
+ * @deprecated 4.6.2
1473
  *
1474
  * @return array|bool|null|WP_Post
1475
  */
1476
  public function get_post() {
1477
+ _deprecated_function( __METHOD__, '4.6.2', 'Tribe__Tickets__Attendees::get_post' );
1478
  return tribe( 'tickets.attendees' )->get_post();
1479
  }
1480
 
1481
  /**
1482
  * Print Check In Totals at top of Column
1483
  *
1484
+ * @deprecated 4.6.2
1485
  *
1486
  */
1487
  public function print_checkedin_totals() {
1488
+ _deprecated_function( __METHOD__, '4.6.2', 'Tribe__Tickets__Attendees::print_checkedin_totals' );
1489
  tribe( 'tickets.attendees' )->print_checkedin_totals();
1490
  }
1491
 
1492
  /**
1493
  * Returns the full URL to the attendees report page.
1494
  *
1495
+ * @deprecated 4.6.2
1496
  *
1497
  * @param WP_Post $post
1498
  *
1499
  * @return string
1500
  */
1501
  public function get_attendee_report_link( $post ) {
1502
+ _deprecated_function( __METHOD__, '4.6.2', 'Tribe__Tickets__Attendees::get_report_link' );
1503
  return tribe( 'tickets.attendees' )->get_report_link( $post );
1504
  }
1505
 
1506
  /**
1507
  * Adds the "attendees" link in the admin list row actions for each event.
1508
  *
1509
+ * @deprecated 4.6.2
1510
  *
1511
  * @param $actions
1512
  *
1513
  * @return array
1514
  */
1515
  public function attendees_row_action( $actions ) {
1516
+ _deprecated_function( __METHOD__, '4.6.2', 'Tribe__Tickets__Attendees::filter_admin_row_actions' );
1517
  return tribe( 'tickets.attendees' )->filter_admin_row_actions( $actions );
1518
  }
1519
 
1521
  * Registers the Attendees admin page
1522
  */
1523
  public function attendees_page_register() {
1524
+ _deprecated_function( __METHOD__, '4.6.2', 'Tribe__Tickets__Attendees::register_page' );
1525
  tribe( 'tickets.attendees' )->register_page();
1526
  }
1527
 
1528
  /**
1529
  * Enqueues the JS and CSS for the attendees page in the admin
1530
  *
1531
+ * @deprecated 4.6.2
1532
  *
1533
  * @param $hook
1534
  */
1535
  public function attendees_page_load_css_js( $hook ) {
1536
+ _deprecated_function( __METHOD__, '4.6.2', 'Tribe__Tickets__Attendees::enqueue_assets' );
1537
  tribe( 'tickets.attendees' )->enqueue_assets( $hook );
1538
  }
1539
 
1540
  /**
1541
  * Loads the WP-Pointer for the Attendees screen
1542
  *
1543
+ * @deprecated 4.6.2
1544
  *
1545
  * @param $hook
1546
  */
1547
  public function attendees_page_load_pointers( $hook ) {
1548
+ _deprecated_function( __METHOD__, '4.6.2', 'Tribe__Tickets__Attendees::load_pointers' );
1549
  tribe( 'tickets.attendees' )->load_pointers( $hook );
1550
  }
1551
 
1552
  /**
1553
  * Sets up the Attendees screen data.
1554
  *
1555
+ * @deprecated 4.6.2
1556
  *
1557
  */
1558
  public function attendees_page_screen_setup() {
1559
+ _deprecated_function( __METHOD__, '4.6.2', 'Tribe__Tickets__Attendees::screen_setup' );
1560
  tribe( 'tickets.attendees' )->screen_setup();
1561
  }
1562
 
1563
  /**
1564
+ * @deprecated 4.6.2
1565
  */
1566
  public function attendees_admin_body_class( $body_classes ) {
1567
+ _deprecated_function( __METHOD__, '4.6.2', 'Tribe__Tickets__Attendees::filter_admin_body_class' );
1568
  tribe( 'tickets.attendees' )->filter_admin_body_class( $body_classes );
1569
  }
1570
 
1572
  * Sets the browser title for the Attendees admin page.
1573
  * Uses the event title.
1574
  *
1575
+ * @deprecated 4.6.2
1576
  *
1577
  * @param $admin_title
1578
  * @param $unused_title
1580
  * @return string
1581
  */
1582
  public function attendees_admin_title( $admin_title, $unused_title ) {
1583
+ _deprecated_function( __METHOD__, '4.6.2', 'Tribe__Tickets__Attendees::filter_admin_title' );
1584
  tribe( 'tickets.attendees' )->filter_admin_title( $admin_title, $unused_title );
1585
  }
1586
 
1587
  /**
1588
  * Renders the Attendees page
1589
  *
1590
+ * @deprecated 4.6.2
1591
  */
1592
  public function attendees_page_inside() {
1593
+ _deprecated_function( __METHOD__, '4.6.2', 'Tribe__Tickets__Attendees::render' );
1594
  tribe( 'tickets.attendees' )->render();
1595
  }
1596
 
1598
  * Generates a list of attendees taking into account the Screen Options.
1599
  * It's used both for the Email functionality, as for the CSV export.
1600
  *
1601
+ * @deprecated 4.6.2
1602
  *
1603
  * @param $event_id
1604
  *
1605
  * @return array
1606
  */
1607
  private function generate_filtered_attendees_list( $event_id ) {
1608
+ _deprecated_function( __METHOD__, '4.6.2', 'Tribe__Tickets__Attendees::generate_filtered_list' );
1609
 
1610
  tribe( 'tickets.attendees' )->generate_filtered_list( $event_id );
1611
  }
1614
  * Checks if the user requested a CSV export from the attendees list.
1615
  * If so, generates the download and finishes the execution.
1616
  *
1617
+ * @deprecated 4.6.2
1618
  */
1619
  public function maybe_generate_attendees_csv() {
1620
+ _deprecated_function( __METHOD__, '4.6.2', 'Tribe__Tickets__Attendees::maybe_generate_csv' );
1621
  tribe( 'tickets.attendees' )->maybe_generate_csv();
1622
  }
1623
 
1624
  /**
1625
  * Handles the "send to email" action for the attendees list.
1626
  *
1627
+ * @deprecated 4.6.2
1628
  */
1629
  public function send_attendee_mail_list() {
1630
+ _deprecated_function( __METHOD__, '4.6.2', 'Tribe__Tickets__Attendees::send_mail_list' );
1631
  tribe( 'tickets.attendees' )->send_mail_list();
1632
  }
1633
 
1634
  /**
1635
  * Injects event post type
1636
  *
1637
+ * @deprecated 4.6.2
1638
  */
1639
  public function event_details_top() {
1640
+ _deprecated_function( __METHOD__, '4.6.2', 'Tribe__Tickets__Attendees::event_details_top' );
1641
  tribe( 'tickets.attendees' )->event_details_top();
1642
  }
1643
 
1644
  /**
1645
  * Injects action links into the attendee screen.
1646
  *
1647
+ * @deprecated 4.6.2
1648
  */
1649
  public function event_action_links() {
1650
+ _deprecated_function( __METHOD__, '4.6.2', 'Tribe__Tickets__Attendees::event_action_links' );
1651
  tribe( 'tickets.attendees' )->event_action_links();
1652
  }
1653
 
1655
  * Sets the content type for the attendees to email functionality.
1656
  * Allows for sending an HTML email.
1657
  *
1658
+ * @deprecated 4.6.2
1659
  *
1660
  * @param $content_type
1661
  *
1662
  * @return string
1663
  */
1664
  public function set_contenttype( $content_type ) {
1665
+ _deprecated_function( __METHOD__, '4.6.2', 'Tribe__Tickets__Attendees::set_contenttype' );
1666
  }
1667
 
1668
  /**
1672
  * For example, if tickets are created for the banana post type, the generic capability
1673
  * "edit_posts" will be mapped to "edit_bananas" or whatever is appropriate.
1674
  *
1675
+ * @deprecated 4.6.2
1676
  *
1677
  * @internal for internal plugin use only (in spite of having public visibility)
1678
  *
1681
  * @return boolean
1682
  */
1683
  public function user_can( $generic_cap, $event_id ) {
1684
+ _deprecated_function( __METHOD__, '4.6.2', 'Tribe__Tickets__Attendees::user_can' );
1685
  }
1686
 
1687
  // @codingStandardsIgnoreEnd
src/admin-views/attendees.php CHANGED
@@ -2,13 +2,13 @@
2
  tribe( 'tickets.attendees' )->attendees_table->prepare_items();
3
 
4
  $event_id = tribe( 'tickets.attendees' )->attendees_table->event->ID;
5
- $event = tribe( 'tickets.attendees' )->attendees_table->event;
6
- $tickets = Tribe__Tickets__Tickets::get_event_tickets( $event_id );
7
 
8
  /**
9
  * Wether or not we should display attendees title
10
  *
11
- * @since TBD
12
  *
13
  * @param boolean $show_title
14
  * @param Tribe__Tickets__Tickets_Handler $handler
2
  tribe( 'tickets.attendees' )->attendees_table->prepare_items();
3
 
4
  $event_id = tribe( 'tickets.attendees' )->attendees_table->event->ID;
5
+ $event = tribe( 'tickets.attendees' )->attendees_table->event;
6
+ $tickets = Tribe__Tickets__Tickets::get_event_tickets( $event_id );
7
 
8
  /**
9
  * Wether or not we should display attendees title
10
  *
11
+ * @since 4.6.2
12
  *
13
  * @param boolean $show_title
14
  * @param Tribe__Tickets__Tickets_Handler $handler
src/admin-views/editor/list-row.php CHANGED
@@ -39,7 +39,30 @@ if (
39
  value="<?php echo esc_attr( $ticket->menu_order ); ?>"
40
  <?php echo 'Tribe__Tickets__RSVP' === $ticket->provider_class ? 'disabled' : ''; ?>
41
  >
 
 
 
 
 
 
 
 
 
 
 
 
42
  <?php echo esc_html( $ticket->name ); ?>
 
 
 
 
 
 
 
 
 
 
 
43
  </td>
44
 
45
  <?php
39
  value="<?php echo esc_attr( $ticket->menu_order ); ?>"
40
  <?php echo 'Tribe__Tickets__RSVP' === $ticket->provider_class ? 'disabled' : ''; ?>
41
  >
42
+
43
+ <?php
44
+ /**
45
+ * Fires before the ticket name is printed in the tickets table.
46
+ *
47
+ * @since 4.6.2
48
+ *
49
+ * @param Tribe__Tickets__Ticket_Object $ticket The current ticket object.
50
+ * @param Tribe__Tickets__Tickets $provider_obj The current ticket provider object.
51
+ */
52
+ do_action( 'event_tickets_ticket_list_before_ticket_name', $ticket, $provider_obj ); ?>
53
+
54
  <?php echo esc_html( $ticket->name ); ?>
55
+
56
+ <?php
57
+ /**
58
+ * Fires after the ticket name is printed in the tickets table.
59
+ *
60
+ * @since 4.6.2
61
+ *
62
+ * @param Tribe__Tickets__Ticket_Object $ticket The current ticket object.
63
+ * @param Tribe__Tickets__Tickets $provider_obj The current ticket provider object.
64
+ */
65
+ do_action( 'event_tickets_ticket_list_after_ticket_name', $ticket, $provider_obj ); ?>
66
  </td>
67
 
68
  <?php
src/admin-views/editor/panel/settings.php CHANGED
@@ -27,7 +27,7 @@ if ( ! empty( $header_id ) ) {
27
  <section id="tribe-tickets-image">
28
  <div class="tribe-tickets-image-upload">
29
  <div class="input_block">
30
- <span class="ticket_form_label"><?php esc_html_e( 'Ticket header image:', 'event-tickets' ); ?></span>
31
  <p class="description">
32
  <?php esc_html_e( 'Select an image from your Media Library to display on emailed tickets. For best results, use a .jpg, .png, or .gif at least 1160px wide.', 'event-tickets' ); ?>
33
  </p>
27
  <section id="tribe-tickets-image">
28
  <div class="tribe-tickets-image-upload">
29
  <div class="input_block">
30
+ <span class="ticket_form_label tribe-strong-label"><?php esc_html_e( 'Ticket header image:', 'event-tickets' ); ?></span>
31
  <p class="description">
32
  <?php esc_html_e( 'Select an image from your Media Library to display on emailed tickets. For best results, use a .jpg, .png, or .gif at least 1160px wide.', 'event-tickets' ); ?>
33
  </p>
src/admin-views/editor/panel/ticket.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  if ( ! isset( $post_id ) ) {
3
  $post_id = get_the_ID();
4
  }
@@ -8,6 +10,10 @@ if ( ! isset( $ticket_id ) ) {
8
  $provider_class = null;
9
  $ticket_id = null;
10
  $ticket = null;
 
 
 
 
11
  } else {
12
  $provider = tribe_tickets_get_ticket_provider( $ticket_id );
13
  $provider_class = get_class( $provider );
1
  <?php
2
+ $is_admin = tribe_is_truthy( tribe_get_request_var( 'is_admin', is_admin() ) );
3
+
4
  if ( ! isset( $post_id ) ) {
5
  $post_id = get_the_ID();
6
  }
10
  $provider_class = null;
11
  $ticket_id = null;
12
  $ticket = null;
13
+
14
+ if ( ! $is_admin ) {
15
+ $provider_class = 'Tribe__Tickets_Plus__Commerce__WooCommerce__Main';
16
+ }
17
  } else {
18
  $provider = tribe_tickets_get_ticket_provider( $ticket_id );
19
  $provider_class = get_class( $provider );
src/resources/css/tickets-refresh.css CHANGED
@@ -54,7 +54,7 @@
54
  #event_tickets fieldset {
55
  border: 0;
56
  padding: 0;
57
- margin: 0;
58
  }
59
 
60
  #event_tickets .ticket_form_left {
@@ -439,7 +439,7 @@ p.description {
439
  border: 1px solid #b4b9be;
440
  float: left;
441
  font-size: inherit;
442
- margin-left: -5px;
443
  }
444
 
445
  #settings_global_capacity_edit:disabled {
@@ -449,6 +449,10 @@ p.description {
449
  color: #555;
450
  }
451
 
 
 
 
 
452
  #ticket_form .original_stock_cap span {
453
  margin-right: 0;
454
  }
54
  #event_tickets fieldset {
55
  border: 0;
56
  padding: 0;
57
+ margin: 0 0 1em 0;
58
  }
59
 
60
  #event_tickets .ticket_form_left {
439
  border: 1px solid #b4b9be;
440
  float: left;
441
  font-size: inherit;
442
+ margin-right: 10px;
443
  }
444
 
445
  #settings_global_capacity_edit:disabled {
449
  color: #555;
450
  }
451
 
452
+ #settings_global_capacity_edit:enabled {
453
+ margin-right: 7px;
454
+ }
455
+
456
  #ticket_form .original_stock_cap span {
457
  margin-right: 0;
458
  }
src/resources/css/tickets-refresh.min.css CHANGED
@@ -1 +1 @@
1
- .screen_reader_text{clip:rect(0 0 0 0);clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}#poststuff .inside{margin-top:12px}.tribe-tickets-editor-blocker{background:hsla(0,0%,100%,.7);bottom:0;display:none;left:0;position:absolute;right:0;top:0;z-index:100000}.tribe-tickets-editor-blocker .spinner{left:50%;margin-left:-10px;margin-top:-10px;position:absolute;top:50%;z-index:100404}.tribe-tickets-editor-history-list{margin-left:20px}#event_tickets{position:relative}#event_tickets fieldset{border:0;padding:0;margin:0}#event_tickets .ticket_form_left{font-weight:700}#event_tickets label{font-weight:400}#event_tickets input[type=color].ticket_form_right,#event_tickets input[type=date].ticket_form_right,#event_tickets input[type=datetime-local].ticket_form_right,#event_tickets input[type=datetime].ticket_form_right,#event_tickets input[type=email].ticket_form_right,#event_tickets input[type=month].ticket_form_right,#event_tickets input[type=number].ticket_form_right,#event_tickets input[type=password].ticket_form_right,#event_tickets input[type=range].ticket_form_right,#event_tickets input[type=search].ticket_form_right,#event_tickets input[type=tel].ticket_form_right,#event_tickets input[type=text].ticket_form_right,#event_tickets input[type=time].ticket_form_right,#event_tickets input[type=url].ticket_form_right,#event_tickets input[type=week].ticket_form_right,#event_tickets label.ticket_form_right,#event_tickets textarea.ticket_form_right{display:block}#event_tickets .tribe-description-small{font-size:.95em;margin-top:5px;color:#888}.ticket_panel{border:1px solid #a3a3a3;border-radius:5px;box-sizing:border-box;opacity:1;position:relative;padding:8px;visibility:visible;width:100%;will-change:transform}.ticket_panel[aria-hidden=true]{opacity:0;position:absolute;visibility:hidden}.ticket_panel section{margin:2em 0}.ticket_panel #tribe-tickets-image{margin-top:.5em}.ticket_panel.panel_base{border:0;padding:.5em 0 0}.ticket_panel.panel_edit{border:0}.ticket_panel.panel_settings h4{margin:0}.ticket_panel.panel_settings .settings_main{margin-bottom:0;margin-top:0}.ticket_panel.panel_settings .settings_main p{font-size:inherit}.ticket_panel h4,.ticket_title{text-transform:uppercase}.ticket_title{margin-top:0}.ticket_list_container{margin-bottom:20px}.tribe_no_capacity{margin:0}.ticket_delete{color:#a00}.ticket_delete:hover{color:#dc3232}#settings_form_toggle{margin-top:1em}.global_capacity_edit_button{background:none;border:0;color:#ccc;cursor:pointer;padding:0}.tribe-button-icon:before{font-family:dashicons;font-size:1.25em;left:-.25em;position:relative;vertical-align:middle}.tribe-button-icon .tribe-hidden{display:none}.tribe-button-icon.tribe-button-icon-plus:before{content:"\f132"}.tribe-button-icon.tribe-button-icon-edit:before{content:"\f464"}.tribe-button-icon.tribe-button-icon-settings:before{content:"\f111";top:-2px}.tribe-tickets-image-preview{margin-top:2em;max-width:200px}#tribe_ticket_header_image{margin-right:2em;vertical-align:baseline}#tribe_tickets_image_preview_filename{display:none;font-weight:700}#tribe_tickets_image_preview_filename.-active{display:inline}#tribe_tickets_image_preview_filename .dashicons{vertical-align:text-bottom}#tribe_tickets_image_preview_filename .filename{margin-left:.5em}.ticket_table_intro .button-secondary{float:right;margin-bottom:15px;margin-left:5px}.ticket_table_intro #ticket_form_total_capacity{display:inline-block;line-height:28px;position:relative}.ticket_table_intro #ticket_form_total_capacity .tooltip{background-color:#efefef;border-radius:3px;border:1px solid #a3a3a3;display:none;margin-left:.5em;padding:.5em;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:1}.ticket_table_intro #ticket_form_total_capacity:hover .tooltip{display:block}.ticket_table_intro #ticket_form_total_capacity .tooltip{left:100%;top:53%;white-space:nowrap}.input_block{margin-bottom:1em;position:relative}.input_block .ticket_form_left{display:block;box-sizing:border-box;float:left;margin:0;padding-left:0;padding-right:1em}.input_block input,.input_block textarea{max-width:calc(100% - 132px)}.input_block .ticket_field.hasDatepicker{border-radius:3px;font-size:13px;margin-bottom:0}.input_block .input_block,.input_block .ticket_form_right{display:block;margin-top:0}.input_block .input_block:last-child,.input_block .ticket_form_right:last-child{margin-bottom:0}.input_block .input_block{margin-top:1em}.input_block legend+.input_block{margin-top:0}.input_block .tribe_stock_block{padding-left:calc(20px + .4em)}.input_block .tribe_stock_block.tribe-active{padding-top:1em}.input_block label.ticket_form_right{margin-bottom:1em}.input_block .tribe_block_label{display:block}.input_block .ticket_stock_total{color:#666;font-style:italic;margin-left:1em}#ticket_form .input_block .ticket_stock_total_value{margin-right:0}.input_block .tribe-timepicker{width:6em}#tribe_ticket_provider_wrapper{clip:rect(0 0 0 0);clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}#event_tickets{font-size:12px}h4.ticket_form_title{font-size:1.2em;margin-top:0}#ticket_form input[type=checkbox],#ticket_form input[type=radio]{margin-right:.4em}.tribe_soft_note,p.description{color:#a3a3a3;font-size:inherit;font-style:normal}#ticket_form .ticket_advanced.history._show span:first-child,#ticket_form .ticket_advanced.history .toggle-history span:nth-child(2),#ticket_form .ticket_advanced.history ul{display:none}#ticket_form .ticket_advanced.history._show span:nth-child(2){display:inline}#ticket_form .ticket_advanced.history._show ul{display:block}.ticket_bottom{margin-top:1em}.tribe_preview{cursor:pointer}#ticket_form .tooltip_container{position:relative;display:inline;vertical-align:middle}#ticket_form .tooltip_container .tooltip{background-color:#efefef;border-radius:3px;border:1px solid #a3a3a3;display:none;margin-left:.5em;padding:.5em;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:1}#ticket_form .tooltip_container:hover .tooltip{display:block}#ticket_form .tooltip_container .tooltip{background-color:#efefef;left:100%;margin:0;width:200px}#settings_global_capacity_edit{background-color:#fff;border:1px solid #b4b9be;float:left;font-size:inherit;margin-left:-5px}#settings_global_capacity_edit:disabled{background-color:transparent;border:0;box-shadow:none;color:#555}#ticket_form .original_stock_cap span{margin-right:0}@media (min-width:782px){.ticket_panel{padding:16px}.input_block .input_block,.input_block .ticket_form_right{margin-left:132px}#ticket_bottom_right{float:right}}@media (min-width:400px){#settings_form_toggle{float:right;margin-top:0}}@media screen and (max-width:520px){.ticket_table_intro #ticket_form_total_capacity{width:100%}}@media screen and (max-width:782px){.ticket_table_intro #ticket_form_total_capacity .tooltip{left:auto;margin-top:5px;position:relative;top:auto;-webkit-transform:none;transform:none;width:100%}.input_block .ticket_form_left{float:none;display:inline-block;padding:0 0 6px}.input_block .tribe_stock_block{padding-left:36px}.input_block .tribe_stock_block.tribe-active{padding-top:5px}#ticket_form .tooltip_container .tooltip{left:auto;margin-top:5px;position:relative;top:auto;-webkit-transform:none;transform:none;width:100%}}@media (max-width:782px){#ticket_bottom_right{margin-top:1em}}@media screen and (max-width:390px){#ticket_form .tooltip_container{display:none}}
1
+ .screen_reader_text{clip:rect(0 0 0 0);clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}#poststuff .inside{margin-top:12px}.tribe-tickets-editor-blocker{background:hsla(0,0%,100%,.7);bottom:0;display:none;left:0;position:absolute;right:0;top:0;z-index:100000}.tribe-tickets-editor-blocker .spinner{left:50%;margin-left:-10px;margin-top:-10px;position:absolute;top:50%;z-index:100404}.tribe-tickets-editor-history-list{margin-left:20px}#event_tickets{position:relative}#event_tickets fieldset{border:0;padding:0;margin:0 0 1em}#event_tickets .ticket_form_left{font-weight:700}#event_tickets label{font-weight:400}#event_tickets input[type=color].ticket_form_right,#event_tickets input[type=date].ticket_form_right,#event_tickets input[type=datetime-local].ticket_form_right,#event_tickets input[type=datetime].ticket_form_right,#event_tickets input[type=email].ticket_form_right,#event_tickets input[type=month].ticket_form_right,#event_tickets input[type=number].ticket_form_right,#event_tickets input[type=password].ticket_form_right,#event_tickets input[type=range].ticket_form_right,#event_tickets input[type=search].ticket_form_right,#event_tickets input[type=tel].ticket_form_right,#event_tickets input[type=text].ticket_form_right,#event_tickets input[type=time].ticket_form_right,#event_tickets input[type=url].ticket_form_right,#event_tickets input[type=week].ticket_form_right,#event_tickets label.ticket_form_right,#event_tickets textarea.ticket_form_right{display:block}#event_tickets .tribe-description-small{font-size:.95em;margin-top:5px;color:#888}.ticket_panel{border:1px solid #a3a3a3;border-radius:5px;box-sizing:border-box;opacity:1;position:relative;padding:8px;visibility:visible;width:100%;will-change:transform}.ticket_panel[aria-hidden=true]{opacity:0;position:absolute;visibility:hidden}.ticket_panel section{margin:2em 0}.ticket_panel #tribe-tickets-image{margin-top:.5em}.ticket_panel.panel_base{border:0;padding:.5em 0 0}.ticket_panel.panel_edit{border:0}.ticket_panel.panel_settings h4{margin:0}.ticket_panel.panel_settings .settings_main{margin-bottom:0;margin-top:0}.ticket_panel.panel_settings .settings_main p{font-size:inherit}.ticket_panel h4,.ticket_title{text-transform:uppercase}.ticket_title{margin-top:0}.ticket_list_container{margin-bottom:20px}.tribe_no_capacity{margin:0}.ticket_delete{color:#a00}.ticket_delete:hover{color:#dc3232}#settings_form_toggle{margin-top:1em}.global_capacity_edit_button{background:none;border:0;color:#ccc;cursor:pointer;padding:0}.tribe-button-icon:before{font-family:dashicons;font-size:1.25em;left:-.25em;position:relative;vertical-align:middle}.tribe-button-icon .tribe-hidden{display:none}.tribe-button-icon.tribe-button-icon-plus:before{content:"\f132"}.tribe-button-icon.tribe-button-icon-edit:before{content:"\f464"}.tribe-button-icon.tribe-button-icon-settings:before{content:"\f111";top:-2px}.tribe-tickets-image-preview{margin-top:2em;max-width:200px}#tribe_ticket_header_image{margin-right:2em;vertical-align:baseline}#tribe_tickets_image_preview_filename{display:none;font-weight:700}#tribe_tickets_image_preview_filename.-active{display:inline}#tribe_tickets_image_preview_filename .dashicons{vertical-align:text-bottom}#tribe_tickets_image_preview_filename .filename{margin-left:.5em}.ticket_table_intro .button-secondary{float:right;margin-bottom:15px;margin-left:5px}.ticket_table_intro #ticket_form_total_capacity{display:inline-block;line-height:28px;position:relative}.ticket_table_intro #ticket_form_total_capacity .tooltip{background-color:#efefef;border-radius:3px;border:1px solid #a3a3a3;display:none;margin-left:.5em;padding:.5em;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:1}.ticket_table_intro #ticket_form_total_capacity:hover .tooltip{display:block}.ticket_table_intro #ticket_form_total_capacity .tooltip{left:100%;top:53%;white-space:nowrap}.input_block{margin-bottom:1em;position:relative}.input_block .ticket_form_left{display:block;box-sizing:border-box;float:left;margin:0;padding-left:0;padding-right:1em}.input_block input,.input_block textarea{max-width:calc(100% - 132px)}.input_block .ticket_field.hasDatepicker{border-radius:3px;font-size:13px;margin-bottom:0}.input_block .input_block,.input_block .ticket_form_right{display:block;margin-top:0}.input_block .input_block:last-child,.input_block .ticket_form_right:last-child{margin-bottom:0}.input_block .input_block{margin-top:1em}.input_block legend+.input_block{margin-top:0}.input_block .tribe_stock_block{padding-left:calc(20px + .4em)}.input_block .tribe_stock_block.tribe-active{padding-top:1em}.input_block label.ticket_form_right{margin-bottom:1em}.input_block .tribe_block_label{display:block}.input_block .ticket_stock_total{color:#666;font-style:italic;margin-left:1em}#ticket_form .input_block .ticket_stock_total_value{margin-right:0}.input_block .tribe-timepicker{width:6em}#tribe_ticket_provider_wrapper{clip:rect(0 0 0 0);clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}#event_tickets{font-size:12px}h4.ticket_form_title{font-size:1.2em;margin-top:0}#ticket_form input[type=checkbox],#ticket_form input[type=radio]{margin-right:.4em}.tribe_soft_note,p.description{color:#a3a3a3;font-size:inherit;font-style:normal}#ticket_form .ticket_advanced.history._show span:first-child,#ticket_form .ticket_advanced.history .toggle-history span:nth-child(2),#ticket_form .ticket_advanced.history ul{display:none}#ticket_form .ticket_advanced.history._show span:nth-child(2){display:inline}#ticket_form .ticket_advanced.history._show ul{display:block}.ticket_bottom{margin-top:1em}.tribe_preview{cursor:pointer}#ticket_form .tooltip_container{position:relative;display:inline;vertical-align:middle}#ticket_form .tooltip_container .tooltip{background-color:#efefef;border-radius:3px;border:1px solid #a3a3a3;display:none;margin-left:.5em;padding:.5em;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:1}#ticket_form .tooltip_container:hover .tooltip{display:block}#ticket_form .tooltip_container .tooltip{background-color:#efefef;left:100%;margin:0;width:200px}#settings_global_capacity_edit{background-color:#fff;border:1px solid #b4b9be;float:left;font-size:inherit;margin-right:10px}#settings_global_capacity_edit:disabled{background-color:transparent;border:0;box-shadow:none;color:#555}#settings_global_capacity_edit:enabled{margin-right:7px}#ticket_form .original_stock_cap span{margin-right:0}@media (min-width:782px){.ticket_panel{padding:16px}.input_block .input_block,.input_block .ticket_form_right{margin-left:132px}#ticket_bottom_right{float:right}}@media (min-width:400px){#settings_form_toggle{float:right;margin-top:0}}@media screen and (max-width:520px){.ticket_table_intro #ticket_form_total_capacity{width:100%}}@media screen and (max-width:782px){.ticket_table_intro #ticket_form_total_capacity .tooltip{left:auto;margin-top:5px;position:relative;top:auto;-webkit-transform:none;transform:none;width:100%}.input_block .ticket_form_left{float:none;display:inline-block;padding:0 0 6px}.input_block .tribe_stock_block{padding-left:36px}.input_block .tribe_stock_block.tribe-active{padding-top:5px}#ticket_form .tooltip_container .tooltip{left:auto;margin-top:5px;position:relative;top:auto;-webkit-transform:none;transform:none;width:100%}}@media (max-width:782px){#ticket_bottom_right{margin-top:1em}}@media screen and (max-width:390px){#ticket_form .tooltip_container{display:none}}
src/resources/css/tickets-tables.css CHANGED
@@ -20,14 +20,6 @@
20
  border-bottom: 1px solid #ccc;
21
  }
22
 
23
- .tribe-tickets-editor-table tbody.ui-sortable:before,
24
- .tribe-tickets-editor-table tbody.ui-sortable:after {
25
- content: '';
26
- display: table-row;
27
- height: 2px;
28
- width: 100%;
29
- }
30
-
31
  .tribe-tickets-editor-table tr {
32
  background-color: #fff;
33
  }
@@ -68,6 +60,7 @@
68
  font-size: 1.8em;
69
  margin-right: 10px;
70
  position: relative;
 
71
  display: none;
72
  }
73
 
@@ -156,6 +149,30 @@
156
  display: inline-block;
157
  }
158
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
159
  .tribe-tickets-editor-table .tribe-mobile-hidden {
160
  display: none;
161
  }
20
  border-bottom: 1px solid #ccc;
21
  }
22
 
 
 
 
 
 
 
 
 
23
  .tribe-tickets-editor-table tr {
24
  background-color: #fff;
25
  }
60
  font-size: 1.8em;
61
  margin-right: 10px;
62
  position: relative;
63
+ float: left;
64
  display: none;
65
  }
66
 
149
  display: inline-block;
150
  }
151
 
152
+ #tribe_panel_settings .tribe-tickets-editor-table tbody tr {
153
+ border-bottom: 1px solid #ccc;
154
+ display: block;
155
+ }
156
+
157
+ #tribe_panel_settings .tribe-tickets-editor-table tbody tr:before,
158
+ #tribe_panel_settings .tribe-tickets-editor-table tbody tr:after {
159
+ content: "";
160
+ display: table;
161
+ }
162
+
163
+ #tribe_panel_settings .tribe-tickets-editor-table tbody tr:after {
164
+ clear: both;
165
+ }
166
+
167
+ #tribe_panel_settings .tribe-tickets-editor-table tbody tr td:nth-last-child(2),
168
+ #tribe_panel_settings .tribe-tickets-editor-table tbody tr td:last-child {
169
+ border-bottom: 0;
170
+ }
171
+
172
+ #tribe_panel_settings .tribe-tickets-editor-table tbody tr.tribe-tickets-editor-table-row-capacity-independent td:first-child {
173
+ display: none;
174
+ }
175
+
176
  .tribe-tickets-editor-table .tribe-mobile-hidden {
177
  display: none;
178
  }
src/resources/css/tickets-tables.min.css CHANGED
@@ -1 +1 @@
1
- .tribe-tickets-editor-table{border-radius:3px;border-spacing:0;border:1px solid #ccc;margin:20px 0}.tribe-tickets-editor-table thead{background-color:#f9f9f9;border-bottom:1px solid #ccc}.tribe-tickets-editor-table tbody.ui-sortable:after,.tribe-tickets-editor-table tbody.ui-sortable:before{content:"";display:table-row;height:2px;width:100%}.tribe-tickets-editor-table tr{background-color:#fff}.tribe-tickets-editor-table tr td{border-bottom:1px solid #ccc}.tribe-tickets-editor-table tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.tribe-tickets-editor-table tr:first-child td:first-child{border-top-left-radius:3px}.tribe-tickets-editor-table tr:first-child td:last-child{border-top-right-radius:3px}.tribe-tickets-editor-table tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.tribe-tickets-editor-table tr:last-child td:first-child{border-bottom-left-radius:3px}.tribe-tickets-editor-table tr:last-child td:last-child{border-bottom-right-radius:3px}.tribe-tickets-editor-table td.column-primary .tribe-handle{color:#ccc;cursor:pointer;font-size:1.8em;margin-right:10px;position:relative;display:none}.tribe-tickets-editor-table .ui-sortable td.column-primary .tribe-handle{display:block}.tribe-tickets-editor-table .tribe-mobile-only{display:none}.tribe-tickets-editor-table .ticket_edit{width:100px}.tribe-tickets-editor-table .global_capacity_edit_button,.tribe-tickets-editor-table .ticket_edit_button{background:none;border:0;color:#ccc;cursor:pointer;padding:0}.tribe-tickets-editor-table .global_capacity_edit_button:hover,.tribe-tickets-editor-table .ticket_edit_button:hover{color:#00a0d2}.tribe-tickets-editor-table .global_capacity_edit_button .global_capacity_edit_text,.tribe-tickets-editor-table .global_capacity_edit_button .ticket_edit_text,.tribe-tickets-editor-table .ticket_edit_button .global_capacity_edit_text,.tribe-tickets-editor-table .ticket_edit_button .ticket_edit_text{font-size:0}.tribe-tickets-editor-table .global_capacity_edit_button .global_capacity_edit_text:before,.tribe-tickets-editor-table .global_capacity_edit_button .ticket_edit_text:before,.tribe-tickets-editor-table .ticket_edit_button .global_capacity_edit_text:before,.tribe-tickets-editor-table .ticket_edit_button .ticket_edit_text:before{content:"\f464";font-family:dashicons;font-size:x-large;vertical-align:top}.tribe-tickets-editor-table .global_capacity_edit_button{vertical-align:middle}#tribe_panel_settings .tribe-tickets-editor-table tbody tr{box-shadow:none}#tribe_panel_settings .tribe-tickets-editor-table tbody tr td{border-bottom:1px solid #ccc}#tribe_panel_settings .tribe-tickets-editor-table tbody tr:last-child td,#tribe_panel_settings .tribe-tickets-editor-table tbody tr:nth-last-child(2) td{border-bottom:0}#tribe_panel_settings .tribe-tickets-editor-table tbody tr:last-child td{border-top:1px dashed #ccc}.tribe-tickets-editor-table .tribe_capacity_table_ticket_list{color:#ccc}.tribe-tickets-editor-table .settings_total_global_stock{font-size:inherit;margin-left:-5px}.tribe-tickets-editor-table .settings_total_global_stock:disabled{background:none;border:0;box-shadow:none}@media screen and (max-width:782px){.tribe-tickets-editor-table .tribe-mobile-only{display:inline-block}.tribe-tickets-editor-table .tribe-mobile-hidden{display:none}.tribe-tickets-editor-table td.ticket_edit{position:absolute;right:0;top:0;width:37px}.tribe-tickets-editor-table tr{position:relative;border-bottom:1px solid #ccc}.tribe-tickets-editor-table th:not(.column-primary){display:none}.tribe-tickets-editor-table.tribe-tickets-editor-capacity-table td:first-child,.tribe-tickets-editor-table.tribe-tickets-editor-capacity-table td[colspan="2"],.tribe-tickets-editor-table thead th.column-primary{width:100%}.tribe-tickets-editor-table tr td{border:0;box-sizing:border-box;display:block;float:left;min-height:36px;padding:6px;position:relative;width:50%}.tribe-tickets-editor-table .is-expanded{display:block;overflow:hidden}}
1
+ .tribe-tickets-editor-table{border-radius:3px;border-spacing:0;border:1px solid #ccc;margin:20px 0}.tribe-tickets-editor-table thead{background-color:#f9f9f9;border-bottom:1px solid #ccc}.tribe-tickets-editor-table tr{background-color:#fff}.tribe-tickets-editor-table tr td{border-bottom:1px solid #ccc}.tribe-tickets-editor-table tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.tribe-tickets-editor-table tr:first-child td:first-child{border-top-left-radius:3px}.tribe-tickets-editor-table tr:first-child td:last-child{border-top-right-radius:3px}.tribe-tickets-editor-table tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.tribe-tickets-editor-table tr:last-child td:first-child{border-bottom-left-radius:3px}.tribe-tickets-editor-table tr:last-child td:last-child{border-bottom-right-radius:3px}.tribe-tickets-editor-table td.column-primary .tribe-handle{color:#ccc;cursor:pointer;font-size:1.8em;margin-right:10px;position:relative;float:left;display:none}.tribe-tickets-editor-table .ui-sortable td.column-primary .tribe-handle{display:block}.tribe-tickets-editor-table .tribe-mobile-only{display:none}.tribe-tickets-editor-table .ticket_edit{width:100px}.tribe-tickets-editor-table .global_capacity_edit_button,.tribe-tickets-editor-table .ticket_edit_button{background:none;border:0;color:#ccc;cursor:pointer;padding:0}.tribe-tickets-editor-table .global_capacity_edit_button:hover,.tribe-tickets-editor-table .ticket_edit_button:hover{color:#00a0d2}.tribe-tickets-editor-table .global_capacity_edit_button .global_capacity_edit_text,.tribe-tickets-editor-table .global_capacity_edit_button .ticket_edit_text,.tribe-tickets-editor-table .ticket_edit_button .global_capacity_edit_text,.tribe-tickets-editor-table .ticket_edit_button .ticket_edit_text{font-size:0}.tribe-tickets-editor-table .global_capacity_edit_button .global_capacity_edit_text:before,.tribe-tickets-editor-table .global_capacity_edit_button .ticket_edit_text:before,.tribe-tickets-editor-table .ticket_edit_button .global_capacity_edit_text:before,.tribe-tickets-editor-table .ticket_edit_button .ticket_edit_text:before{content:"\f464";font-family:dashicons;font-size:x-large;vertical-align:top}.tribe-tickets-editor-table .global_capacity_edit_button{vertical-align:middle}#tribe_panel_settings .tribe-tickets-editor-table tbody tr{box-shadow:none}#tribe_panel_settings .tribe-tickets-editor-table tbody tr td{border-bottom:1px solid #ccc}#tribe_panel_settings .tribe-tickets-editor-table tbody tr:last-child td,#tribe_panel_settings .tribe-tickets-editor-table tbody tr:nth-last-child(2) td{border-bottom:0}#tribe_panel_settings .tribe-tickets-editor-table tbody tr:last-child td{border-top:1px dashed #ccc}.tribe-tickets-editor-table .tribe_capacity_table_ticket_list{color:#ccc}.tribe-tickets-editor-table .settings_total_global_stock{font-size:inherit;margin-left:-5px}.tribe-tickets-editor-table .settings_total_global_stock:disabled{background:none;border:0;box-shadow:none}@media screen and (max-width:782px){.tribe-tickets-editor-table .tribe-mobile-only{display:inline-block}#tribe_panel_settings .tribe-tickets-editor-table tbody tr{border-bottom:1px solid #ccc;display:block}#tribe_panel_settings .tribe-tickets-editor-table tbody tr:after,#tribe_panel_settings .tribe-tickets-editor-table tbody tr:before{content:"";display:table}#tribe_panel_settings .tribe-tickets-editor-table tbody tr:after{clear:both}#tribe_panel_settings .tribe-tickets-editor-table tbody tr td:last-child,#tribe_panel_settings .tribe-tickets-editor-table tbody tr td:nth-last-child(2){border-bottom:0}#tribe_panel_settings .tribe-tickets-editor-table tbody tr.tribe-tickets-editor-table-row-capacity-independent td:first-child,.tribe-tickets-editor-table .tribe-mobile-hidden{display:none}.tribe-tickets-editor-table td.ticket_edit{position:absolute;right:0;top:0;width:37px}.tribe-tickets-editor-table tr{position:relative;border-bottom:1px solid #ccc}.tribe-tickets-editor-table th:not(.column-primary){display:none}.tribe-tickets-editor-table.tribe-tickets-editor-capacity-table td:first-child,.tribe-tickets-editor-table.tribe-tickets-editor-capacity-table td[colspan="2"],.tribe-tickets-editor-table thead th.column-primary{width:100%}.tribe-tickets-editor-table tr td{border:0;box-sizing:border-box;display:block;float:left;min-height:36px;padding:6px;position:relative;width:50%}.tribe-tickets-editor-table .is-expanded{display:block;overflow:hidden}}
src/resources/css/tickets.css CHANGED
@@ -77,6 +77,10 @@
77
  table-layout: fixed;
78
  }
79
 
 
 
 
 
80
  /* Specific goal of this rule is to prevent the number input busting the ticket form layout under Twenty Fifteen */
81
 
82
  .tribe-theme-twentyfifteen .tribe-events-tickets input[type='number'] {
77
  table-layout: fixed;
78
  }
79
 
80
+ .tribe-strong-label {
81
+ font-weight: bold;
82
+ }
83
+
84
  /* Specific goal of this rule is to prevent the number input busting the ticket form layout under Twenty Fifteen */
85
 
86
  .tribe-theme-twentyfifteen .tribe-events-tickets input[type='number'] {
src/resources/css/tickets.min.css CHANGED
@@ -1 +1 @@
1
- .tribe-tickets-column-attendees-link{display:inline-block}#ticket_form input[type=radio]{margin-right:5px}#ticket_form span.datetime_seperator{margin-left:10px}.ticket_list h4{border-bottom:1px solid #e5e5e5;padding-bottom:6px;text-transform:uppercase}.ticket_list h4 a{font-size:11px;font-weight:400;text-transform:none}.ticket_list tr:hover td div.ticket_controls{visibility:visible}.ticket_list tr td{padding:10px;vertical-align:middle}.ticket_list tr td div.ticket_controls{visibility:hidden}.ticket_name p:first-child{font-weight:700}#tribe_ticket_header_preview img{height:auto!important;max-width:95%!important}#tribe_ticket_header_remove,.ticket_time{display:none}.tribe-tickets-remaining{font-size:10px}.eventtable{margin:0;padding-top:0;width:100%}#event_tickets,.eventtable.ticket_list.eventForm{table-layout:fixed}.tribe-theme-twentyfifteen .tribe-events-tickets input[type=number]{padding:.375em;width:100%}
1
+ .tribe-tickets-column-attendees-link{display:inline-block}#ticket_form input[type=radio]{margin-right:5px}#ticket_form span.datetime_seperator{margin-left:10px}.ticket_list h4{border-bottom:1px solid #e5e5e5;padding-bottom:6px;text-transform:uppercase}.ticket_list h4 a{font-size:11px;font-weight:400;text-transform:none}.ticket_list tr:hover td div.ticket_controls{visibility:visible}.ticket_list tr td{padding:10px;vertical-align:middle}.ticket_list tr td div.ticket_controls{visibility:hidden}.ticket_name p:first-child{font-weight:700}#tribe_ticket_header_preview img{height:auto!important;max-width:95%!important}#tribe_ticket_header_remove,.ticket_time{display:none}.tribe-tickets-remaining{font-size:10px}.eventtable{margin:0;padding-top:0;width:100%}#event_tickets,.eventtable.ticket_list.eventForm{table-layout:fixed}.tribe-strong-label{font-weight:700}.tribe-theme-twentyfifteen .tribe-events-tickets input[type=number]{padding:.375em;width:100%}
src/resources/js/tickets-attendees.js CHANGED
@@ -6,7 +6,7 @@ var tribe_event_tickets_attendees = tribe_event_tickets_attendees || {};
6
  if ( typeof AttendeesPointer !== 'undefined' && null !== AttendeesPointer ) {
7
  options = $.extend( AttendeesPointer.options, {
8
  close: function() {
9
- $.post( ajaxurl, {
10
  pointer: AttendeesPointer.pointer_id,
11
  action : 'dismiss-wp-pointer'
12
  } );
@@ -136,7 +136,7 @@ var tribe_event_tickets_attendees = tribe_event_tickets_attendees || {};
136
  }
137
 
138
  $.post(
139
- ajaxurl,
140
  params,
141
  function( response ) {
142
  if ( response.success ) {
@@ -168,7 +168,7 @@ var tribe_event_tickets_attendees = tribe_event_tickets_attendees || {};
168
  }
169
 
170
  $.post(
171
- ajaxurl,
172
  params,
173
  function( response ) {
174
  if ( response.success ) {
@@ -312,7 +312,7 @@ var tribe_event_tickets_attendees = tribe_event_tickets_attendees || {};
312
  'ticket_id': ticket_id
313
  };
314
 
315
- $.post( ajaxurl, request, function( response ) {
316
  if ( 'undefined' === typeof response.data || 'string' !== typeof response.data.html ) {
317
  return;
318
  }
6
  if ( typeof AttendeesPointer !== 'undefined' && null !== AttendeesPointer ) {
7
  options = $.extend( AttendeesPointer.options, {
8
  close: function() {
9
+ $.post( Attendees.ajaxurl, {
10
  pointer: AttendeesPointer.pointer_id,
11
  action : 'dismiss-wp-pointer'
12
  } );
136
  }
137
 
138
  $.post(
139
+ Attendees.ajaxurl,
140
  params,
141
  function( response ) {
142
  if ( response.success ) {
168
  }
169
 
170
  $.post(
171
+ Attendees.ajaxurl,
172
  params,
173
  function( response ) {
174
  if ( response.success ) {
312
  'ticket_id': ticket_id
313
  };
314
 
315
+ $.post( Attendees.ajaxurl, request, function( response ) {
316
  if ( 'undefined' === typeof response.data || 'string' !== typeof response.data.html ) {
317
  return;
318
  }
src/resources/js/tickets-attendees.min.js CHANGED
@@ -1 +1 @@
1
- var tribe_event_tickets_attendees=tribe_event_tickets_attendees||{};!function(t,e){function n(){function n(e){t.isArray(e)||(e=[e]);var n=parseInt(.7*t(window).width());n=n>800?800:n;var i=parseInt(.9*t(window).height());i=i>800?800:i;var r="&ticket_ids="+e.join("|")+"&width="+n+"&height="+i,o=Attendees.move_url.replace("&TB_",r+"&TB_");tb_show(null,o,!1)}if("undefined"!=typeof AttendeesPointer&&null!==AttendeesPointer){options=t.extend(AttendeesPointer.options,{close:function(){t.post(ajaxurl,{pointer:AttendeesPointer.pointer_id,action:"dismiss-wp-pointer"})},open:function(t,e){e.pointer.css({top:parseInt(e.pointer.css("top").replace("px",""),10)+5}).find(".wp-pointer-arrow").css({right:"50px",left:"auto"}),e.element.on({click:function(){e.element.pointer("close")}})}});t(AttendeesPointer.target).pointer(options).pointer("open").pointer("widget")}t("input.print").on("click",function(){t(window).trigger("attendees-report-before-print.tribe-tickets");var e=t("table.wp-list-table.attendees"),n=e.find("thead th:visible").length,i=e.find("th,td"),r=2;i.css({width:100/(n-r)+"%"}),window.print(),i.css({width:""}),t(window).trigger("attendees-report-after-print.tribe-tickets")});var i=t(document.getElementById("filter_attendee"));i.on("keydown",function(t){if(13===t.keyCode)return!1}),i.on("keyup paste",function(){var e=jQuery(this).val().toLowerCase();t("#the-list").find("tr").each(function(){var n=t(this),i=n.find("td.status");if(t(n).hasClass("event-tickets-meta-row"))return void t(n).removeClass("event-tickets-meta-toggle-open");if(t(n).hasClass("event-tickets-meta-toggle-open")&&t(n).removeClass("event-tickets-meta-toggle-open"),!i.length)return void n.hide();var r=n.children("td.status").text().toLowerCase().trim(),o=n.children("td.ticket").text().toLowerCase().trim(),a=n.children("td.security").text().toLowerCase().trim(),c=0===o.indexOf(e)||0===r.indexOf(e)||0===r.indexOf("#"+e)||0===a.indexOf(e),s=n.find(".purchaser_name").text().toLowerCase().trim(),d=0===s.indexOf(e)||s.indexOf(" "+e)>1;c||d?n.show():n.hide()})}),t(".tribe-attendees-email").on({submit:function(e){t(".tribe-attendees-email").hide(),t(document.getElementById("tribe-loading")).show()}}),t(".tickets_checkin").click(function(e){var n=jQuery(this),i={action:"tribe-ticket-checkin",provider:n.attr("data-provider"),order_ID:n.attr("data-attendee-id"),nonce:Attendees.checkin_nonce};n.attr("data-event-id")&&(i.event_ID=n.attr("data-event-id")),t.post(ajaxurl,i,function(e){e.success&&(n.closest("tr").addClass("tickets_checked"),t("#total_checkedin").text(parseInt(t("#total_checkedin").text())+1))},"json"),e.preventDefault()}),t(".tickets_uncheckin").click(function(e){var n=jQuery(this),i={action:"tribe-ticket-uncheckin",provider:n.attr("data-provider"),order_ID:n.attr("data-attendee-id"),nonce:Attendees.uncheckin_nonce};n.attr("data-event-id")&&(i.event_ID=n.attr("data-event-id")),t.post(ajaxurl,i,function(e){e.success&&(n.closest("tr").removeClass("tickets_checked"),t("#total_checkedin").text(parseInt(t("#total_checkedin").text())-1))},"json"),e.preventDefault()}),t("table.wp-list-table").on("click",".row-actions .move-ticket",function(e){var i=t(this).parents("tr").find('input[name="attendee[]"]').val().match(/^[0-9]+/);return i&&n(i),e.stopPropagation(),!1}),t("#doaction, #doaction2").click(function(e){var i;switch(t(e.currentTarget).attr("id")){case"doaction":i="action";break;case"doaction2":i="action2"}if("undefined"!=typeof i&&"move"===t('select[name="'+i+'"]').val()){var r=jQuery('input[name="attendee[]"]:checked');if(r.length){var o=[];r.each(function(){var e=t(this).val().match(/^[0-9]+/);e&&o.push(e.toString())}),n(o)}else alert(Attendees.cannot_move);return e.stopPropagation(),!1}}),function(){var n=t(".ticket-history"),i=t(".hide-ticket-history");i.hide(),n.click(function(n){function i(){var n={action:"get_ticket_history",check:c,ticket_id:a};t.post(ajaxurl,n,function(n){if("undefined"!=typeof n.data&&"string"==typeof n.data.html){var i=r.parents("tr"),c=e.count_columns(i),s=t('<tr id="ticket-history-'+a+'"> <td colspan="'+c+'">'+n.data.html+"</td></tr>");s.hide().insertAfter(i).slideDown(),r.hide(),o.show()}})}var r=t(this),o=r.siblings(".hide-ticket-history"),a=parseInt(r.data("ticket-id"),10),c=r.data("check");if(a&&c){var s=t(document.getElementById("ticket-history-"+a));return s.length?(s.show(),r.hide(),o.show()):i(),n.stopPropagation(),!1}}),i.click(function(e){var n=t(this),i=n.siblings(".ticket-history"),r=parseInt(i.data("ticket-id"),10);t(document.getElementById("ticket-history-"+r)).hide(),i.show(),n.hide()})}()}e.count_columns=function(e){var n=0,i=e.find("td, th");return i.length?(i.each(function(){var e=parseInt(t(this).attr("colspan"),10);e=e>1?e-1:0,n+=1+e}),n):0},e.remove_tickets=function(e){t("#the-list").find("tr").each(function(){var n=t(this),i=n.find(".check-column").find("input").val();if("string"==typeof i){var r=i.match(/^[0-9]+/);r.length&&-1!==e.indexOf(parseInt(r[0],10))&&n.remove()}})},t(document).ready(n)}(jQuery,tribe_event_tickets_attendees);
1
+ var tribe_event_tickets_attendees=tribe_event_tickets_attendees||{};!function(t,e){function n(){function n(e){t.isArray(e)||(e=[e]);var n=parseInt(.7*t(window).width());n=n>800?800:n;var i=parseInt(.9*t(window).height());i=i>800?800:i;var r="&ticket_ids="+e.join("|")+"&width="+n+"&height="+i,o=Attendees.move_url.replace("&TB_",r+"&TB_");tb_show(null,o,!1)}if("undefined"!=typeof AttendeesPointer&&null!==AttendeesPointer){options=t.extend(AttendeesPointer.options,{close:function(){t.post(Attendees.ajaxurl,{pointer:AttendeesPointer.pointer_id,action:"dismiss-wp-pointer"})},open:function(t,e){e.pointer.css({top:parseInt(e.pointer.css("top").replace("px",""),10)+5}).find(".wp-pointer-arrow").css({right:"50px",left:"auto"}),e.element.on({click:function(){e.element.pointer("close")}})}});t(AttendeesPointer.target).pointer(options).pointer("open").pointer("widget")}t("input.print").on("click",function(){t(window).trigger("attendees-report-before-print.tribe-tickets");var e=t("table.wp-list-table.attendees"),n=e.find("thead th:visible").length,i=e.find("th,td"),r=2;i.css({width:100/(n-r)+"%"}),window.print(),i.css({width:""}),t(window).trigger("attendees-report-after-print.tribe-tickets")});var i=t(document.getElementById("filter_attendee"));i.on("keydown",function(t){if(13===t.keyCode)return!1}),i.on("keyup paste",function(){var e=jQuery(this).val().toLowerCase();t("#the-list").find("tr").each(function(){var n=t(this),i=n.find("td.status");if(t(n).hasClass("event-tickets-meta-row"))return void t(n).removeClass("event-tickets-meta-toggle-open");if(t(n).hasClass("event-tickets-meta-toggle-open")&&t(n).removeClass("event-tickets-meta-toggle-open"),!i.length)return void n.hide();var r=n.children("td.status").text().toLowerCase().trim(),o=n.children("td.ticket").text().toLowerCase().trim(),a=n.children("td.security").text().toLowerCase().trim(),c=0===o.indexOf(e)||0===r.indexOf(e)||0===r.indexOf("#"+e)||0===a.indexOf(e),s=n.find(".purchaser_name").text().toLowerCase().trim(),d=0===s.indexOf(e)||s.indexOf(" "+e)>1;c||d?n.show():n.hide()})}),t(".tribe-attendees-email").on({submit:function(e){t(".tribe-attendees-email").hide(),t(document.getElementById("tribe-loading")).show()}}),t(".tickets_checkin").click(function(e){var n=jQuery(this),i={action:"tribe-ticket-checkin",provider:n.attr("data-provider"),order_ID:n.attr("data-attendee-id"),nonce:Attendees.checkin_nonce};n.attr("data-event-id")&&(i.event_ID=n.attr("data-event-id")),t.post(Attendees.ajaxurl,i,function(e){e.success&&(n.closest("tr").addClass("tickets_checked"),t("#total_checkedin").text(parseInt(t("#total_checkedin").text())+1))},"json"),e.preventDefault()}),t(".tickets_uncheckin").click(function(e){var n=jQuery(this),i={action:"tribe-ticket-uncheckin",provider:n.attr("data-provider"),order_ID:n.attr("data-attendee-id"),nonce:Attendees.uncheckin_nonce};n.attr("data-event-id")&&(i.event_ID=n.attr("data-event-id")),t.post(Attendees.ajaxurl,i,function(e){e.success&&(n.closest("tr").removeClass("tickets_checked"),t("#total_checkedin").text(parseInt(t("#total_checkedin").text())-1))},"json"),e.preventDefault()}),t("table.wp-list-table").on("click",".row-actions .move-ticket",function(e){var i=t(this).parents("tr").find('input[name="attendee[]"]').val().match(/^[0-9]+/);return i&&n(i),e.stopPropagation(),!1}),t("#doaction, #doaction2").click(function(e){var i;switch(t(e.currentTarget).attr("id")){case"doaction":i="action";break;case"doaction2":i="action2"}if("undefined"!=typeof i&&"move"===t('select[name="'+i+'"]').val()){var r=jQuery('input[name="attendee[]"]:checked');if(r.length){var o=[];r.each(function(){var e=t(this).val().match(/^[0-9]+/);e&&o.push(e.toString())}),n(o)}else alert(Attendees.cannot_move);return e.stopPropagation(),!1}}),function(){var n=t(".ticket-history"),i=t(".hide-ticket-history");i.hide(),n.click(function(n){function i(){var n={action:"get_ticket_history",check:c,ticket_id:a};t.post(Attendees.ajaxurl,n,function(n){if("undefined"!=typeof n.data&&"string"==typeof n.data.html){var i=r.parents("tr"),c=e.count_columns(i),s=t('<tr id="ticket-history-'+a+'"> <td colspan="'+c+'">'+n.data.html+"</td></tr>");s.hide().insertAfter(i).slideDown(),r.hide(),o.show()}})}var r=t(this),o=r.siblings(".hide-ticket-history"),a=parseInt(r.data("ticket-id"),10),c=r.data("check");if(a&&c){var s=t(document.getElementById("ticket-history-"+a));return s.length?(s.show(),r.hide(),o.show()):i(),n.stopPropagation(),!1}}),i.click(function(e){var n=t(this),i=n.siblings(".ticket-history"),r=parseInt(i.data("ticket-id"),10);t(document.getElementById("ticket-history-"+r)).hide(),i.show(),n.hide()})}()}e.count_columns=function(e){var n=0,i=e.find("td, th");return i.length?(i.each(function(){var e=parseInt(t(this).attr("colspan"),10);e=e>1?e-1:0,n+=1+e}),n):0},e.remove_tickets=function(e){t("#the-list").find("tr").each(function(){var n=t(this),i=n.find(".check-column").find("input").val();if("string"==typeof i){var r=i.match(/^[0-9]+/);r.length&&-1!==e.indexOf(parseInt(r[0],10))&&n.remove()}})},t(document).ready(n)}(jQuery,tribe_event_tickets_attendees);
src/resources/js/tickets-tables.js CHANGED
@@ -27,9 +27,9 @@ tribe.tickets.table = {};
27
 
28
  $element.sortable( {
29
  axis: 'y',
30
- containment: 'parent',
31
  opacity: 0.7,
32
- tolerance: 'cursor',
33
  cursor: 'move',
34
  items: 'tr:not(.Tribe__Tickets__RSVP)',
35
  forcePlaceholderSize: true,
27
 
28
  $element.sortable( {
29
  axis: 'y',
30
+ containment: '#tribe_panel_base',
31
  opacity: 0.7,
32
+ tolerance: 'intersect',
33
  cursor: 'move',
34
  items: 'tr:not(.Tribe__Tickets__RSVP)',
35
  forcePlaceholderSize: true,
src/resources/js/tickets-tables.min.js CHANGED
@@ -1 +1 @@
1
- "undefined"==typeof tribe.tickets&&(tribe.tickets={}),tribe.tickets.table={},function(e,t,i){i.make_sortable=function(i){if(!(2>i.find("tr:not(.Tribe__Tickets__RSVP)").length)){var r=function(e,i){return i.children().each(function(){t(this).width(t(this).outerWidth(!0))}),i};i.sortable({axis:"y",containment:"parent",opacity:.7,tolerance:"cursor",cursor:"move",items:"tr:not(.Tribe__Tickets__RSVP)",forcePlaceholderSize:!0,handle:".tribe-handle",helper:r,update:function(i,r){tribe.tickets.editor&&t(e).off("beforeunload.tribe");var o=t(this),a=o.children("tr");a.each(function(e,i){var r=t(i);r.find(".tribe-ticket-field-order").val(e)}),tribe.tickets.editor&&t(e).on("beforeunload.tribe",tribe.tickets.editor.beforeUnload)}}),i.disableSelection(),i.find(".table-header").disableSelection(),i.sortable("option","disabled",!1)}},i.toggle_sortable=function(){var r=t(document.getElementById("tribe_ticket_list_table")).find(".tribe-tickets-editor-table-tickets-body");t(document.getElementById("tribetickets"));e.matchMedia("( min-width: 786px )").matches?r.hasClass("ui-sortable")?r.sortable("enable"):i.make_sortable(r):r.hasClass("ui-sortable")&&r.sortable("disable")},t(document).ready(function(){i.toggle_sortable();var r=_.debounce(i.toggle_sortable,300);t(e).resize(r)})}(window,jQuery,tribe.tickets.table);
1
+ "undefined"==typeof tribe.tickets&&(tribe.tickets={}),tribe.tickets.table={},function(e,t,i){i.make_sortable=function(i){if(!(2>i.find("tr:not(.Tribe__Tickets__RSVP)").length)){var r=function(e,i){return i.children().each(function(){t(this).width(t(this).outerWidth(!0))}),i};i.sortable({axis:"y",containment:"#tribe_panel_base",opacity:.7,tolerance:"intersect",cursor:"move",items:"tr:not(.Tribe__Tickets__RSVP)",forcePlaceholderSize:!0,handle:".tribe-handle",helper:r,update:function(i,r){tribe.tickets.editor&&t(e).off("beforeunload.tribe");var o=t(this),a=o.children("tr");a.each(function(e,i){var r=t(i);r.find(".tribe-ticket-field-order").val(e)}),tribe.tickets.editor&&t(e).on("beforeunload.tribe",tribe.tickets.editor.beforeUnload)}}),i.disableSelection(),i.find(".table-header").disableSelection(),i.sortable("option","disabled",!1)}},i.toggle_sortable=function(){var r=t(document.getElementById("tribe_ticket_list_table")).find(".tribe-tickets-editor-table-tickets-body");t(document.getElementById("tribetickets"));e.matchMedia("( min-width: 786px )").matches?r.hasClass("ui-sortable")?r.sortable("enable"):i.make_sortable(r):r.hasClass("ui-sortable")&&r.sortable("disable")},t(document).ready(function(){i.toggle_sortable();var r=_.debounce(i.toggle_sortable,300);t(e).resize(r)})}(window,jQuery,tribe.tickets.table);
src/resources/js/tickets.js CHANGED
@@ -7,7 +7,7 @@ tribe.tickets.editor = {};
7
 
8
  var ticketHeaderImage = window.ticketHeaderImage || {};
9
 
10
- (function( window, $, obj ) {
11
  'use strict';
12
 
13
  // base elements
@@ -93,12 +93,24 @@ var ticketHeaderImage = window.ticketHeaderImage || {};
93
  if ( 'undefined' === typeof force_rsvp ) {
94
  force_rsvp = true;
95
  }
96
- var $checked_provider = $tribe_tickets.find( '.tribe-ticket-editor-field-default_provider' ).filter( ':checked' );
97
- var provider_id = 'Tribe__Tickets__RSVP_radio';
98
 
99
- if ( ! force_rsvp && $checked_provider.length > 0 ) {
100
- provider_id = $checked_provider.val() + '_radio';
101
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
102
 
103
  $( document.getElementById( provider_id ) ).prop( 'checked', true ).trigger( 'change' );
104
  }
@@ -227,6 +239,31 @@ var ticketHeaderImage = window.ticketHeaderImage || {};
227
  );
228
  };
229
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
230
  obj.refreshPanels = function ( panels, swapTo ) {
231
  // After this point is safe to assume we have a valid set of panels
232
  $base_panel = $( panels.list );
@@ -359,7 +396,7 @@ var ticketHeaderImage = window.ticketHeaderImage || {};
359
  // Setup Drag and Drop
360
  if (
361
  tribe.tickets.table
362
- && 0 !== $base_panel.find( 'tribe-tickets-editor-table-tickets-body tr' ).length
363
  ) {
364
  tribe.tickets.table.toggle_sortable();
365
  }
@@ -513,6 +550,7 @@ var ticketHeaderImage = window.ticketHeaderImage || {};
513
  }
514
 
515
  obj.refreshPanels( response.data, 'ticket' );
 
516
  },
517
  'json'
518
  );
@@ -654,8 +692,7 @@ var ticketHeaderImage = window.ticketHeaderImage || {};
654
  var nonSharedCapacity = $capacity.data( 'nonSharedCapacity' );
655
 
656
  // Prevent Fails with empty stuff
657
- if ( '' === capacity || 0 > capacity ) {
658
- $capacity.val( 0 );
659
  capacity = 0;
660
  }
661
 
@@ -699,4 +736,4 @@ var ticketHeaderImage = window.ticketHeaderImage || {};
699
  obj.setupPanels();
700
  } );
701
 
702
- } )( window, jQuery, tribe.tickets.editor );
7
 
8
  var ticketHeaderImage = window.ticketHeaderImage || {};
9
 
10
+ (function( window, $, _, obj ) {
11
  'use strict';
12
 
13
  // base elements
93
  if ( 'undefined' === typeof force_rsvp ) {
94
  force_rsvp = true;
95
  }
96
+ var $checkedProvider = $tribe_tickets.find( '.tribe-ticket-editor-field-default_provider' );
 
97
 
98
+ if ( $checkedProvider.is( ':radio' ) ) {
99
+ $checkedProvider = $checkedProvider.filter( ':checked' );
100
+ }
101
+
102
+ var provider_id;
103
+
104
+ if ( force_rsvp ) {
105
+ provider_id = 'Tribe__Tickets__RSVP_radio';
106
+ } else {
107
+ // Allows default to WooCommerce
108
+ provider_id = 'Tribe__Tickets_Plus__Commerce__WooCommerce__Main_radio';
109
+ }
110
+
111
+ if ( ! force_rsvp && $checkedProvider.length > 0 ) {
112
+ provider_id = $checkedProvider.val() + '_radio';
113
+ }
114
 
115
  $( document.getElementById( provider_id ) ).prop( 'checked', true ).trigger( 'change' );
116
  }
239
  );
240
  };
241
 
242
+ obj.startWatchingMoveLinkIn = function() {
243
+ $tickets_container.find( '.tribe-ticket-move-link' ).one( 'click', function() {
244
+ // give ThickBox some time to load, in ms
245
+ window.setTimeout( obj.listentToThickboxEvents, 250 );
246
+ } )
247
+ };
248
+
249
+ obj.listentToThickboxEvents = function() {
250
+ /**
251
+ * ThickBox id from its source code.
252
+ *
253
+ * @see /wp-includes/js/thickbox/thickbox.js
254
+ */
255
+ var $tbWindow = $( '#TB_window' );
256
+
257
+ if ( $tbWindow.length === 0 ) {
258
+ return;
259
+ }
260
+
261
+ // refetch the panels when the ThickBox closes and swap to the ticket list
262
+ $tbWindow.one( 'tb_unload', function() {
263
+ obj.fetchPanels( null, 'list' );
264
+ } );
265
+ };
266
+
267
  obj.refreshPanels = function ( panels, swapTo ) {
268
  // After this point is safe to assume we have a valid set of panels
269
  $base_panel = $( panels.list );
396
  // Setup Drag and Drop
397
  if (
398
  tribe.tickets.table
399
+ && 0 !== $base_panel.find( '.tribe-tickets-editor-table-tickets-body tr' ).length
400
  ) {
401
  tribe.tickets.table.toggle_sortable();
402
  }
550
  }
551
 
552
  obj.refreshPanels( response.data, 'ticket' );
553
+ obj.startWatchingMoveLinkIn( '#event_tickets' )
554
  },
555
  'json'
556
  );
692
  var nonSharedCapacity = $capacity.data( 'nonSharedCapacity' );
693
 
694
  // Prevent Fails with empty stuff
695
+ if ( '' === capacity || 0 > capacity || _.isNaN( capacity ) ) {
 
696
  capacity = 0;
697
  }
698
 
736
  obj.setupPanels();
737
  } );
738
 
739
+ } )( window, jQuery, _, tribe.tickets.editor );
src/resources/js/tickets.min.js CHANGED
@@ -1 +1 @@
1
- "undefined"==typeof tribe.tickets&&(tribe.tickets={}),tribe.tickets.editor={};var ticketHeaderImage=window.ticketHeaderImage||{};!function(e,t,i){"use strict";function n(e){"undefined"==typeof e&&(e=!0);var i=r.find(".tribe-ticket-editor-field-default_provider").filter(":checked"),n="Tribe__Tickets__RSVP_radio";!e&&i.length>0&&(n=i.val()+"_radio"),t(document.getElementById(n)).prop("checked",!0).trigger("change")}var a=(t("html, body"),t(document)),r=t(document.getElementById("tribetickets"));if(0!==r.length){var c=(t(document.getElementById("event_tickets")),t(document.getElementById("post_ID"))),d=t(document.getElementById("publish")),o=r.find(".tribe-tickets-editor-blocker"),l=r.find(".spinner"),s=t(document.getElementById("tribe_panel_base")),_=t(document.getElementById("tribe_panel_edit")),p=t(document.getElementById("tribe_panel_settings")),m=["yy-mm-dd","m/d/yy","mm/dd/yy","d/m/yy","dd/mm/yy","m-d-yy","mm-dd-yy","d-m-yy","dd-mm-yy","yy.mm.dd","mm.dd.yy","dd.mm.yy"],u=m[0],f=function(e,i){if("undefined"==typeof i){var n=t(this);i=n.val()}if(void 0!==i){i||(i=0),i=parseInt(i,10);var a=t(".tribe-ticket-capacity-max"),r=a.find(".tribe-ticket-capacity-value"),c=t('.tribe-ticket-field-capacity[name="tribe-ticket[capacity]"]');c.attr("placeholder",i),i?c.attr("max",i):i=0,r.text(i)}};i.beforeUnload=function(e){var t=!1;return"true"===s.attr("aria-hidden")&&(t=tribe_global_stock_admin_ui.nav_away_msg),e.returnValue=t,t},ticketHeaderImage={uploader:function(){var e=wp.media({title:HeaderImageData.title,multiple:!1,library:{type:"image"},button:{text:HeaderImageData.button}});return e.on("close",function(){var t=e.state().get("selection").toJSON();t.length&&ticketHeaderImage.render(t[0])}),e.open(),!1},render:function(e){t(document.getElementById("tribe_ticket_header_preview")).html(ticketHeaderImage.imgHTML(e)),t(document.getElementById("tribe_ticket_header_image_id")).val(e.id),t(document.getElementById("tribe_ticket_header_remove")).show(),t(document.getElementById("tribe_tickets_image_preview_filename")).show().find(".filename").text(e.filename)},imgHTML:function(e){var t='<img src="'+e.url+'" ';return t+='width="'+e.width+'" ',t+='height="'+e.height+'" ',t+="/>"}},i.panels={list:"#tribe_panel_base",ticket:"#tribe_panel_edit",settings:"#tribe_panel_settings"},i.swapPanel=function(n){var a;a=n instanceof jQuery?n:"undefined"!=typeof i.panels[n]?t(i.panels[n]):s,r.find(".ticket_panel").each(function(){t(this).attr("aria-hidden",!0)}),a.attr("aria-hidden",!1),a.is(s)?t(e).off("beforeunload.tribe"):t(e).on("beforeunload.tribe",i.beforeUnload)},i.fetchPanels=function(e,n){"undefined"==typeof e&&(e=[]);var a={action:"tribe-ticket-panels",notice:!1,post_id:c.val(),nonce:TribeTickets.add_ticket_nonce,data:e,is_admin:t("body").hasClass("wp-admin")};t.post(ajaxurl,a,function(e){e.success&&i.refreshPanels(e.data,n)},"json")},i.refreshPanels=function(e,n){s=t(e.list),_=t(e.ticket),p=t(e.settings),r.find(i.panels.list).replaceWith(s),r.find(i.panels.ticket).replaceWith(_),r.find(i.panels.settings).replaceWith(p),i.setupPanels(),i.swapPanel(n)},i.setupPanels=function(){e.MTAccordion({target:".accordion"});var i=t(document.getElementById("tribe-event-datepickers")),n=t(document.getElementById("ticket_start_date")),a=t(document.getElementById("ticket_end_date")),c=(t(document.getElementById("ticket_start_time")),t(document.getElementById("ticket_end_time")),0);if(i.length&&(c=i.data("startofweek")),"undefined"!=typeof tribe_dynamic_help_text){var d=t.isNumeric(tribe_dynamic_help_text.datepicker_format_index)?tribe_dynamic_help_text.datepicker_format_index:0;u=m[d]}var o={dateFormat:u,showAnim:"fadeIn",changeMonth:!0,changeYear:!0,numberOfMonths:3,firstDay:c,showButtonPanel:!1,onChange:function(){},beforeShow:function(e,i){i.input.data("prevDate",i.input.datepicker("getDate"));var n=t(i.dpDiv);n.addClass("tribe-ui-datepicker"),n.attrchange({trackValues:!0,callback:function(e){(e.newValue.indexOf("display: none")>=0||e.newValue.indexOf("display:none")>=0)&&n.removeClass("tribe-ui-datepicker")}})},onSelect:function(e,i){var r=t.datepicker.parseDate(u,e);"ticket_start_date"===i.id?a.datepicker("option","minDate",r):n.datepicker("option","maxDate",r)}};t.extend(o,tribe_l10n_datatables.datepicker);var l=r.find(".tribe-timepicker:not(.ui-timepicker-input)");if(tribe_timepickers.setup_timepickers(l),n.datepicker(o).datepicker("option","defaultDate",t(document.getElementById("EventStartDate")).val()).keyup(function(e){8!==e.keyCode&&46!==e.keyCode||t.datepicker._clearDate(this)}),a.datepicker(o).datepicker("option","defaultDate",t(document.getElementById("EventEndDate")).val()).keyup(function(e){8!==e.keyCode&&46!==e.keyCode||t.datepicker._clearDate(this)}),t(document.getElementById("tribe_ticket_header_preview")).find("img").length){t(document.getElementById("tribe_ticket_header_remove")).show();var _=t(document.getElementById("tribe_ticket_header_preview")).find("img");_.removeAttr("width").removeAttr("height"),r.width()<_.width()&&_.css("width","95%")}"undefined"!=typeof tribe_event_tickets_plus&&t.isPlainObject(tribe_event_tickets_plus)&&t.isPlainObject(tribe_event_tickets_plus.meta)&&t.isPlainObject(tribe_event_tickets_plus.meta.admin)&&t.isFunction(tribe_event_tickets_plus.meta.admin.init_ticket_fields)&&tribe_event_tickets_plus.meta.admin.init_ticket_fields(),tribe.tickets.table&&0!==s.find("tribe-tickets-editor-table-tickets-body tr").length&&tribe.tickets.table.toggle_sortable(),r.find(tribe.validation.selectors.item).validation(),r.find(".tribe-dependent").dependency(),r.find(".tribe-dependency").trigger("verify.dependency")},a.ajaxSend(function(e,i,n){"string"===t.type(n.data)&&-1!==n.data.indexOf("action=tribe-ticket")&&r.trigger("spin.tribe","start")}),a.ajaxComplete(function(e,i,n){"string"===t.type(n.data)&&-1!==n.data.indexOf("action=tribe-ticket")&&r.trigger("spin.tribe","stop")}),a.on({"spin.tribe":function(e,i){("undefined"==typeof i||t.inArray(i,["start","stop"]))&&(i="stop"),"stop"===i?(o.hide(),l.removeClass("is-active")):(o.show(),l.addClass("is-active"))}}),d.on("click",function(i){t(e).off("beforeunload.tribe")}),a.on("click","#settings_form_toggle",function(e){return e.preventDefault(),i.fetchPanels(null,"settings"),!1}),a.on("click","#tribe_settings_form_cancel, #ticket_form_cancel",function(e){return e.preventDefault(),i.fetchPanels(null,"list"),!1}),a.on("click","#tribe_settings_form_save",function(e){e.preventDefault();var t=p.find("input,textarea").serialize();return i.fetchPanels(t,"list"),!1}),a.on("click",".ticket_form_toggle",function(e){e.preventDefault();var a=t(this);return n("rsvp_form_toggle"===a.attr("id")),_.find(".tribe-dependency").trigger("verify.dependency"),i.swapPanel("ticket"),!1}),a.on("click",".ticket_edit_button",function(e){e.preventDefault();var n=t(this),a={action:"tribe-ticket-edit",post_id:c.val(),ticket_id:n.data("ticketId"),nonce:TribeTickets.edit_ticket_nonce,is_admin:t("body").hasClass("wp-admin")};return t.post(ajaxurl,a,function(e){e.success&&i.refreshPanels(e.data,"ticket")},"json"),!1}),a.on("click.tribe",'[name="ticket_form_save"]',function(e){var n=t(document.getElementById("ticket_form_table"));if(n.trigger("validation.tribe"),!tribe.validation.hasErrors(n)){r.trigger("pre-save-ticket.tribe",e);var a=s.find(".tribe-ticket-field-order"),d={action:"tribe-ticket-add",data:_.find("input,textarea").serialize(),post_id:c.val(),nonce:TribeTickets.add_ticket_nonce,menu_order:a.length,is_admin:t("body").hasClass("wp-admin")};t.post(ajaxurl,d,function(e){e.success&&i.refreshPanels(e.data)},"json")}}),a.on("click",".ticket_delete",function(e){if(!confirm(tribe_ticket_notices.confirm_alert))return!1;e.preventDefault(),r.trigger("delete-ticket.tribe",e);var n=t(this).attr("attr-ticket-id"),a={action:"tribe-ticket-delete",post_id:c.val(),ticket_id:n,nonce:TribeTickets.remove_ticket_nonce,is_admin:t("body").hasClass("wp-admin")};t.post(ajaxurl,a,function(e){e.success&&i.refreshPanels(e.data)},"json")}),a.on("change",".tribe-ticket-field-capacity",function(e){var i=t(this),n=i.parents(".input_block").eq(0).find(".tribe-ticket-field-mode");i.val()&&n.val("capped")}),a.on("keyup","#ticket_price",function(e){e.preventDefault();var i=price_format.decimal,n=new RegExp("[^-0-9%\\"+i+"]+","gi"),a=t(this).val(),r=a.replace(n,"");a!==r&&t(this).val(r)}),a.on("click","#tribe_ticket_header_image, #tribe_ticket_header_preview",function(e){e.preventDefault(),ticketHeaderImage.uploader("","")}),a.on("focus","#settings_global_capacity_edit",function(){var e=t(this),i=0,n=t(".tribe-tickets-editor-capacity-table").find("[data-capacity]");n.each(function(){var e=t(this);i+=parseInt(e.data("capacity"),10)}),e.data("nonSharedCapacity",i)}),a.on("blur change","#settings_global_capacity_edit",function(){var e=t(".tribe-tickets-editor-table-row-capacity-total"),i=parseInt(e.data("totalCapacity"),10);if(-1!==i){var n=t(this),a=e.find(".tribe-tickets-editor-total-capacity"),r=parseInt(n.val(),10),c=n.data("nonSharedCapacity");(""===r||0>r)&&(n.val(0),r=0);var d=c+r;a.text(d)}}),a.on("click","#global_capacity_edit_button",function(e){e.preventDefault(),t(document.getElementById("settings_global_capacity_edit")).prop("disabled",!1).focus()}),a.on("blur",'[name="tribe-ticket[event_capacity]"]',f),a.on("change",'[name="tribe-ticket[capacity]"]',function(e){var i=t(this),n=parseInt(i.attr("max"),10),a=parseInt(i.val(),10);n&&n<a&&i.val(n)}),a.on("click","#tribe_ticket_header_remove",function(e){e.preventDefault(),t(document.getElementById("tribe_ticket_header_preview")).html(""),t(document.getElementById("tribe_ticket_header_remove")).hide(),t(document.getElementById("tribe_tickets_image_preview_filename")).hide().find(".filename").text(""),t(document.getElementById("tribe_ticket_header_image_id")).val("")}),a.ready(function(){i.setupPanels()})}}(window,jQuery,tribe.tickets.editor);
1
+ "undefined"==typeof tribe.tickets&&(tribe.tickets={}),tribe.tickets.editor={};var ticketHeaderImage=window.ticketHeaderImage||{};!function(e,t,i,n){"use strict";function a(e){"undefined"==typeof e&&(e=!0);var i=c.find(".tribe-ticket-editor-field-default_provider");i.is(":radio")&&(i=i.filter(":checked"));var n;n=e?"Tribe__Tickets__RSVP_radio":"Tribe__Tickets_Plus__Commerce__WooCommerce__Main_radio",!e&&i.length>0&&(n=i.val()+"_radio"),t(document.getElementById(n)).prop("checked",!0).trigger("change")}var r=(t("html, body"),t(document)),c=t(document.getElementById("tribetickets"));if(0!==c.length){var d=t(document.getElementById("event_tickets")),o=t(document.getElementById("post_ID")),s=t(document.getElementById("publish")),l=c.find(".tribe-tickets-editor-blocker"),_=c.find(".spinner"),m=t(document.getElementById("tribe_panel_base")),u=t(document.getElementById("tribe_panel_edit")),p=t(document.getElementById("tribe_panel_settings")),f=["yy-mm-dd","m/d/yy","mm/dd/yy","d/m/yy","dd/mm/yy","m-d-yy","mm-dd-yy","d-m-yy","dd-mm-yy","yy.mm.dd","mm.dd.yy","dd.mm.yy"],k=f[0],b=function(e,i){if("undefined"==typeof i){var n=t(this);i=n.val()}if(void 0!==i){i||(i=0),i=parseInt(i,10);var a=t(".tribe-ticket-capacity-max"),r=a.find(".tribe-ticket-capacity-value"),c=t('.tribe-ticket-field-capacity[name="tribe-ticket[capacity]"]');c.attr("placeholder",i),i?c.attr("max",i):i=0,r.text(i)}};n.beforeUnload=function(e){var t=!1;return"true"===m.attr("aria-hidden")&&(t=tribe_global_stock_admin_ui.nav_away_msg),e.returnValue=t,t},ticketHeaderImage={uploader:function(){var e=wp.media({title:HeaderImageData.title,multiple:!1,library:{type:"image"},button:{text:HeaderImageData.button}});return e.on("close",function(){var t=e.state().get("selection").toJSON();t.length&&ticketHeaderImage.render(t[0])}),e.open(),!1},render:function(e){t(document.getElementById("tribe_ticket_header_preview")).html(ticketHeaderImage.imgHTML(e)),t(document.getElementById("tribe_ticket_header_image_id")).val(e.id),t(document.getElementById("tribe_ticket_header_remove")).show(),t(document.getElementById("tribe_tickets_image_preview_filename")).show().find(".filename").text(e.filename)},imgHTML:function(e){var t='<img src="'+e.url+'" ';return t+='width="'+e.width+'" ',t+='height="'+e.height+'" ',t+="/>"}},n.panels={list:"#tribe_panel_base",ticket:"#tribe_panel_edit",settings:"#tribe_panel_settings"},n.swapPanel=function(i){var a;a=i instanceof jQuery?i:"undefined"!=typeof n.panels[i]?t(n.panels[i]):m,c.find(".ticket_panel").each(function(){t(this).attr("aria-hidden",!0)}),a.attr("aria-hidden",!1),a.is(m)?t(e).off("beforeunload.tribe"):t(e).on("beforeunload.tribe",n.beforeUnload)},n.fetchPanels=function(e,i){"undefined"==typeof e&&(e=[]);var a={action:"tribe-ticket-panels",notice:!1,post_id:o.val(),nonce:TribeTickets.add_ticket_nonce,data:e,is_admin:t("body").hasClass("wp-admin")};t.post(ajaxurl,a,function(e){e.success&&n.refreshPanels(e.data,i)},"json")},n.startWatchingMoveLinkIn=function(){d.find(".tribe-ticket-move-link").one("click",function(){e.setTimeout(n.listentToThickboxEvents,250)})},n.listentToThickboxEvents=function(){var e=t("#TB_window");0!==e.length&&e.one("tb_unload",function(){n.fetchPanels(null,"list")})},n.refreshPanels=function(e,i){m=t(e.list),u=t(e.ticket),p=t(e.settings),c.find(n.panels.list).replaceWith(m),c.find(n.panels.ticket).replaceWith(u),c.find(n.panels.settings).replaceWith(p),n.setupPanels(),n.swapPanel(i)},n.setupPanels=function(){e.MTAccordion({target:".accordion"});var i=t(document.getElementById("tribe-event-datepickers")),n=t(document.getElementById("ticket_start_date")),a=t(document.getElementById("ticket_end_date")),r=(t(document.getElementById("ticket_start_time")),t(document.getElementById("ticket_end_time")),0);if(i.length&&(r=i.data("startofweek")),"undefined"!=typeof tribe_dynamic_help_text){var d=t.isNumeric(tribe_dynamic_help_text.datepicker_format_index)?tribe_dynamic_help_text.datepicker_format_index:0;k=f[d]}var o={dateFormat:k,showAnim:"fadeIn",changeMonth:!0,changeYear:!0,numberOfMonths:3,firstDay:r,showButtonPanel:!1,onChange:function(){},beforeShow:function(e,i){i.input.data("prevDate",i.input.datepicker("getDate"));var n=t(i.dpDiv);n.addClass("tribe-ui-datepicker"),n.attrchange({trackValues:!0,callback:function(e){(e.newValue.indexOf("display: none")>=0||e.newValue.indexOf("display:none")>=0)&&n.removeClass("tribe-ui-datepicker")}})},onSelect:function(e,i){var r=t.datepicker.parseDate(k,e);"ticket_start_date"===i.id?a.datepicker("option","minDate",r):n.datepicker("option","maxDate",r)}};t.extend(o,tribe_l10n_datatables.datepicker);var s=c.find(".tribe-timepicker:not(.ui-timepicker-input)");if(tribe_timepickers.setup_timepickers(s),n.datepicker(o).datepicker("option","defaultDate",t(document.getElementById("EventStartDate")).val()).keyup(function(e){8!==e.keyCode&&46!==e.keyCode||t.datepicker._clearDate(this)}),a.datepicker(o).datepicker("option","defaultDate",t(document.getElementById("EventEndDate")).val()).keyup(function(e){8!==e.keyCode&&46!==e.keyCode||t.datepicker._clearDate(this)}),t(document.getElementById("tribe_ticket_header_preview")).find("img").length){t(document.getElementById("tribe_ticket_header_remove")).show();var l=t(document.getElementById("tribe_ticket_header_preview")).find("img");l.removeAttr("width").removeAttr("height"),c.width()<l.width()&&l.css("width","95%")}"undefined"!=typeof tribe_event_tickets_plus&&t.isPlainObject(tribe_event_tickets_plus)&&t.isPlainObject(tribe_event_tickets_plus.meta)&&t.isPlainObject(tribe_event_tickets_plus.meta.admin)&&t.isFunction(tribe_event_tickets_plus.meta.admin.init_ticket_fields)&&tribe_event_tickets_plus.meta.admin.init_ticket_fields(),tribe.tickets.table&&0!==m.find(".tribe-tickets-editor-table-tickets-body tr").length&&tribe.tickets.table.toggle_sortable(),c.find(tribe.validation.selectors.item).validation(),c.find(".tribe-dependent").dependency(),c.find(".tribe-dependency").trigger("verify.dependency")},r.ajaxSend(function(e,i,n){"string"===t.type(n.data)&&-1!==n.data.indexOf("action=tribe-ticket")&&c.trigger("spin.tribe","start")}),r.ajaxComplete(function(e,i,n){"string"===t.type(n.data)&&-1!==n.data.indexOf("action=tribe-ticket")&&c.trigger("spin.tribe","stop")}),r.on({"spin.tribe":function(e,i){("undefined"==typeof i||t.inArray(i,["start","stop"]))&&(i="stop"),"stop"===i?(l.hide(),_.removeClass("is-active")):(l.show(),_.addClass("is-active"))}}),s.on("click",function(i){t(e).off("beforeunload.tribe")}),r.on("click","#settings_form_toggle",function(e){return e.preventDefault(),n.fetchPanels(null,"settings"),!1}),r.on("click","#tribe_settings_form_cancel, #ticket_form_cancel",function(e){return e.preventDefault(),n.fetchPanels(null,"list"),!1}),r.on("click","#tribe_settings_form_save",function(e){e.preventDefault();var t=p.find("input,textarea").serialize();return n.fetchPanels(t,"list"),!1}),r.on("click",".ticket_form_toggle",function(e){e.preventDefault();var i=t(this);return a("rsvp_form_toggle"===i.attr("id")),u.find(".tribe-dependency").trigger("verify.dependency"),n.swapPanel("ticket"),!1}),r.on("click",".ticket_edit_button",function(e){e.preventDefault();var i=t(this),a={action:"tribe-ticket-edit",post_id:o.val(),ticket_id:i.data("ticketId"),nonce:TribeTickets.edit_ticket_nonce,is_admin:t("body").hasClass("wp-admin")};return t.post(ajaxurl,a,function(e){e.success&&(n.refreshPanels(e.data,"ticket"),n.startWatchingMoveLinkIn("#event_tickets"))},"json"),!1}),r.on("click.tribe",'[name="ticket_form_save"]',function(e){var i=t(document.getElementById("ticket_form_table"));if(i.trigger("validation.tribe"),!tribe.validation.hasErrors(i)){c.trigger("pre-save-ticket.tribe",e);var a=m.find(".tribe-ticket-field-order"),r={action:"tribe-ticket-add",data:u.find("input,textarea").serialize(),post_id:o.val(),nonce:TribeTickets.add_ticket_nonce,menu_order:a.length,is_admin:t("body").hasClass("wp-admin")};t.post(ajaxurl,r,function(e){e.success&&n.refreshPanels(e.data)},"json")}}),r.on("click",".ticket_delete",function(e){if(!confirm(tribe_ticket_notices.confirm_alert))return!1;e.preventDefault(),c.trigger("delete-ticket.tribe",e);var i=t(this).attr("attr-ticket-id"),a={action:"tribe-ticket-delete",post_id:o.val(),ticket_id:i,nonce:TribeTickets.remove_ticket_nonce,is_admin:t("body").hasClass("wp-admin")};t.post(ajaxurl,a,function(e){e.success&&n.refreshPanels(e.data)},"json")}),r.on("change",".tribe-ticket-field-capacity",function(e){var i=t(this),n=i.parents(".input_block").eq(0).find(".tribe-ticket-field-mode");i.val()&&n.val("capped")}),r.on("keyup","#ticket_price",function(e){e.preventDefault();var i=price_format.decimal,n=new RegExp("[^-0-9%\\"+i+"]+","gi"),a=t(this).val(),r=a.replace(n,"");a!==r&&t(this).val(r)}),r.on("click","#tribe_ticket_header_image, #tribe_ticket_header_preview",function(e){e.preventDefault(),ticketHeaderImage.uploader("","")}),r.on("focus","#settings_global_capacity_edit",function(){var e=t(this),i=0,n=t(".tribe-tickets-editor-capacity-table").find("[data-capacity]");n.each(function(){var e=t(this);i+=parseInt(e.data("capacity"),10)}),e.data("nonSharedCapacity",i)}),r.on("blur change","#settings_global_capacity_edit",function(){var e=t(".tribe-tickets-editor-table-row-capacity-total"),n=parseInt(e.data("totalCapacity"),10);if(-1!==n){var a=t(this),r=e.find(".tribe-tickets-editor-total-capacity"),c=parseInt(a.val(),10),d=a.data("nonSharedCapacity");(""===c||0>c||i.isNaN(c))&&(c=0);var o=d+c;r.text(o)}}),r.on("click","#global_capacity_edit_button",function(e){e.preventDefault(),t(document.getElementById("settings_global_capacity_edit")).prop("disabled",!1).focus()}),r.on("blur",'[name="tribe-ticket[event_capacity]"]',b),r.on("change",'[name="tribe-ticket[capacity]"]',function(e){var i=t(this),n=parseInt(i.attr("max"),10),a=parseInt(i.val(),10);n&&n<a&&i.val(n)}),r.on("click","#tribe_ticket_header_remove",function(e){e.preventDefault(),t(document.getElementById("tribe_ticket_header_preview")).html(""),t(document.getElementById("tribe_ticket_header_remove")).hide(),t(document.getElementById("tribe_tickets_image_preview_filename")).hide().find(".filename").text(""),t(document.getElementById("tribe_ticket_header_image_id")).val("")}),r.ready(function(){n.setupPanels()})}}(window,jQuery,_,tribe.tickets.editor);
src/resources/postcss/tickets-refresh.pcss CHANGED
@@ -76,7 +76,7 @@
76
  fieldset {
77
  border: 0;
78
  padding: 0;
79
- margin: 0;
80
  }
81
 
82
  .ticket_form_left {
@@ -507,7 +507,7 @@ p.description {
507
  border: 1px solid #b4b9be;
508
  float: left;
509
  font-size: inherit;
510
- margin-left: -5px;
511
 
512
  &:disabled {
513
  background-color: transparent;
@@ -515,6 +515,10 @@ p.description {
515
  box-shadow: none;
516
  color: #555;
517
  }
 
 
 
 
518
  }
519
 
520
  #ticket_form .original_stock_cap span {
76
  fieldset {
77
  border: 0;
78
  padding: 0;
79
+ margin: 0 0 1em 0;
80
  }
81
 
82
  .ticket_form_left {
507
  border: 1px solid #b4b9be;
508
  float: left;
509
  font-size: inherit;
510
+ margin-right: 10px;
511
 
512
  &:disabled {
513
  background-color: transparent;
515
  box-shadow: none;
516
  color: #555;
517
  }
518
+
519
+ &:enabled {
520
+ margin-right: 7px;
521
+ }
522
  }
523
 
524
  #ticket_form .original_stock_cap span {
src/resources/postcss/tickets-tables.pcss CHANGED
@@ -14,16 +14,6 @@
14
  border-bottom: 1px solid var(--border-color);
15
  }
16
 
17
- tbody.ui-sortable {
18
- &:before,
19
- &:after {
20
- content: '';
21
- display: table-row;
22
- height: 2px;
23
- width: 100%;
24
- }
25
- }
26
-
27
  tr {
28
  background-color: #fff;
29
  }
@@ -65,6 +55,7 @@
65
  font-size: 1.8em;
66
  margin-right: 10px;
67
  position: relative;
 
68
  display: none;
69
  }
70
  }
@@ -124,6 +115,32 @@
124
  tbody tr {
125
  box-shadow: none;
126
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
127
  td {
128
  border-bottom: 1px solid var(--border-color);
129
  }
14
  border-bottom: 1px solid var(--border-color);
15
  }
16
 
 
 
 
 
 
 
 
 
 
 
17
  tr {
18
  background-color: #fff;
19
  }
55
  font-size: 1.8em;
56
  margin-right: 10px;
57
  position: relative;
58
+ float: left;
59
  display: none;
60
  }
61
  }
115
  tbody tr {
116
  box-shadow: none;
117
 
118
+
119
+ @media screen and ( max-width: 782px ) {
120
+ border-bottom: 1px solid var(--border-color);
121
+ display: block;
122
+
123
+ &:before,
124
+ &:after {
125
+ content: "";
126
+ display: table;
127
+ }
128
+ &:after {
129
+ clear: both;
130
+ }
131
+
132
+ td:nth-last-child(2),
133
+ td:last-child {
134
+ border-bottom: 0;
135
+ }
136
+
137
+ &.tribe-tickets-editor-table-row-capacity-independent {
138
+ td:first-child {
139
+ display: none;
140
+ }
141
+ }
142
+ }
143
+
144
  td {
145
  border-bottom: 1px solid var(--border-color);
146
  }
src/resources/postcss/tickets.pcss CHANGED
@@ -75,6 +75,10 @@
75
  table-layout: fixed;
76
  }
77
 
 
 
 
 
78
  /* Specific goal of this rule is to prevent the number input busting the ticket form layout under Twenty Fifteen */
79
  .tribe-theme-twentyfifteen .tribe-events-tickets input[type='number'] {
80
  padding: .375em;
75
  table-layout: fixed;
76
  }
77
 
78
+ .tribe-strong-label {
79
+ font-weight: bold;
80
+ }
81
+
82
  /* Specific goal of this rule is to prevent the number input busting the ticket form layout under Twenty Fifteen */
83
  .tribe-theme-twentyfifteen .tribe-events-tickets input[type='number'] {
84
  padding: .375em;
src/template-tags/tickets.php CHANGED
@@ -709,7 +709,7 @@ if ( ! function_exists( 'tribe_tickets_has_meta_fields' ) ) {
709
  /**
710
  * Updates a given Object Capacity
711
  *
712
- * @since TBD
713
  *
714
  * @param int $object Post We are trying to save capacity
715
  *
@@ -748,7 +748,7 @@ function tribe_tickets_delete_capacity( $object ) {
748
  /**
749
  * Updates a given Object Capacity
750
  *
751
- * @since TBD
752
  *
753
  * @param int $object Post We are trying to save capacity
754
  * @param int $capacty How much we are trying to update the capacity to
709
  /**
710
  * Updates a given Object Capacity
711
  *
712
+ * @since 4.6.2
713
  *
714
  * @param int $object Post We are trying to save capacity
715
  *
748
  /**
749
  * Updates a given Object Capacity
750
  *
751
+ * @since 4.6.2
752
  *
753
  * @param int $object Post We are trying to save capacity
754
  * @param int $capacty How much we are trying to update the capacity to