Business Profile - Version 1.0.6

Version Description

This update fixes validation errors with the address and contact point schema.org markup. It is strongly recommended that you update to improve Google compatibility.

Download this release

Release Info

Developer NateWr
Plugin Icon 128x128 Business Profile
Version 1.0.6
Comparing to
See all releases

Code changes from version 1.0.5 to 1.0.6

Files changed (78) hide show
  1. business-profile.php +7 -4
  2. includes/Compatibility.class.php +52 -0
  3. includes/Integrations.class.php +3 -3
  4. includes/Settings.class.php +68 -27
  5. includes/WP_Widget.ContactCardWidget.class.php +10 -10
  6. includes/template-functions.php +20 -22
  7. languages/business-profile.pot +494 -0
  8. lib/simple-admin-pages/README.md +37 -22
  9. lib/simple-admin-pages/classes/AdminPage.Menu.class.php +1 -1
  10. lib/simple-admin-pages/classes/AdminPage.Submenu.class.php +1 -1
  11. lib/simple-admin-pages/classes/AdminPage.Themes.class.php +1 -1
  12. lib/simple-admin-pages/classes/AdminPage.class.php +18 -1
  13. lib/simple-admin-pages/classes/AdminPageSection.class.php +36 -1
  14. lib/simple-admin-pages/classes/AdminPageSetting.Address.class.php +29 -24
  15. lib/simple-admin-pages/classes/AdminPageSetting.Editor.class.php +1 -1
  16. lib/simple-admin-pages/classes/AdminPageSetting.HTML.class.php +1 -1
  17. lib/simple-admin-pages/classes/AdminPageSetting.OpeningHours.class.php +1 -1
  18. lib/simple-admin-pages/classes/AdminPageSetting.Scheduler.class.php +81 -44
  19. lib/simple-admin-pages/classes/AdminPageSetting.Select.class.php +1 -1
  20. lib/simple-admin-pages/classes/AdminPageSetting.SelectPost.class.php +7 -5
  21. lib/simple-admin-pages/classes/AdminPageSetting.SelectTaxonomy.class.php +1 -1
  22. lib/simple-admin-pages/classes/AdminPageSetting.Text.class.php +1 -1
  23. lib/simple-admin-pages/classes/AdminPageSetting.Textarea.class.php +1 -1
  24. lib/simple-admin-pages/classes/AdminPageSetting.Toggle.class.php +1 -1
  25. lib/simple-admin-pages/classes/AdminPageSetting.class.php +62 -7
  26. lib/simple-admin-pages/classes/Library.class.php +4 -4
  27. lib/simple-admin-pages/css/admin.css +3 -0
  28. lib/simple-admin-pages/js/address.js +14 -6
  29. lib/simple-admin-pages/js/scheduler.js +32 -1
  30. lib/simple-admin-pages/lib/pickadate/picker.date.js +1 -1
  31. lib/simple-admin-pages/lib/pickadate/picker.js +1 -1
  32. lib/simple-admin-pages/lib/pickadate/picker.time.js +1 -1
  33. lib/simple-admin-pages/lib/pickadate/themes/default.css +1 -1
  34. lib/simple-admin-pages/lib/pickadate/themes/default.date.css +1 -1
  35. lib/simple-admin-pages/lib/pickadate/themes/default.time.css +1 -1
  36. lib/simple-admin-pages/lib/pickadate/translations/ar.js +1 -1
  37. lib/simple-admin-pages/lib/pickadate/translations/bg_BG.js +1 -1
  38. lib/simple-admin-pages/lib/pickadate/translations/bs_BA.js +1 -1
  39. lib/simple-admin-pages/lib/pickadate/translations/ca_ES.js +1 -1
  40. lib/simple-admin-pages/lib/pickadate/translations/cs_CZ.js +1 -1
  41. lib/simple-admin-pages/lib/pickadate/translations/da_DK.js +1 -1
  42. lib/simple-admin-pages/lib/pickadate/translations/de_DE.js +1 -1
  43. lib/simple-admin-pages/lib/pickadate/translations/el_GR.js +1 -1
  44. lib/simple-admin-pages/lib/pickadate/translations/es_ES.js +1 -1
  45. lib/simple-admin-pages/lib/pickadate/translations/et_EE.js +1 -1
  46. lib/simple-admin-pages/lib/pickadate/translations/eu_ES.js +1 -1
  47. lib/simple-admin-pages/lib/pickadate/translations/fi_FI.js +1 -1
  48. lib/simple-admin-pages/lib/pickadate/translations/fr_FR.js +1 -1
  49. lib/simple-admin-pages/lib/pickadate/translations/gl_ES.js +1 -1
  50. lib/simple-admin-pages/lib/pickadate/translations/he_IL.js +1 -1
  51. lib/simple-admin-pages/lib/pickadate/translations/hi_IN.js +1 -0
  52. lib/simple-admin-pages/lib/pickadate/translations/hr_HR.js +1 -1
  53. lib/simple-admin-pages/lib/pickadate/translations/hu_HU.js +1 -1
  54. lib/simple-admin-pages/lib/pickadate/translations/id_ID.js +1 -1
  55. lib/simple-admin-pages/lib/pickadate/translations/is_IS.js +1 -1
  56. lib/simple-admin-pages/lib/pickadate/translations/it_IT.js +1 -1
  57. lib/simple-admin-pages/lib/pickadate/translations/ja_JP.js +1 -1
  58. lib/simple-admin-pages/lib/pickadate/translations/ko_KR.js +1 -1
  59. lib/simple-admin-pages/lib/pickadate/translations/lv_LV.js +1 -0
  60. lib/simple-admin-pages/lib/pickadate/translations/nb_NO.js +1 -0
  61. lib/simple-admin-pages/lib/pickadate/translations/ne_NP.js +1 -0
  62. lib/simple-admin-pages/lib/pickadate/translations/nl_NL.js +1 -1
  63. lib/simple-admin-pages/lib/pickadate/translations/pl_PL.js +1 -1
  64. lib/simple-admin-pages/lib/pickadate/translations/pt_BR.js +1 -1
  65. lib/simple-admin-pages/lib/pickadate/translations/pt_PT.js +1 -1
  66. lib/simple-admin-pages/lib/pickadate/translations/ro_RO.js +1 -1
  67. lib/simple-admin-pages/lib/pickadate/translations/ru_RU.js +1 -1
  68. lib/simple-admin-pages/lib/pickadate/translations/sk_SK.js +1 -1
  69. lib/simple-admin-pages/lib/pickadate/translations/sl_SI.js +1 -1
  70. lib/simple-admin-pages/lib/pickadate/translations/sv_SE.js +1 -1
  71. lib/simple-admin-pages/lib/pickadate/translations/th_TH.js +1 -1
  72. lib/simple-admin-pages/lib/pickadate/translations/tr_TR.js +1 -1
  73. lib/simple-admin-pages/lib/pickadate/translations/uk_UA.js +1 -1
  74. lib/simple-admin-pages/lib/pickadate/translations/vi_VN.js +1 -0
  75. lib/simple-admin-pages/lib/pickadate/translations/zh_CN.js +1 -1
  76. lib/simple-admin-pages/lib/pickadate/translations/zh_TW.js +1 -1
  77. lib/simple-admin-pages/simple-admin-pages.php +0 -5
  78. readme.txt +9 -2
business-profile.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Business Profile
4
  * Plugin URI: http://themeofthecrop.com
5
  * Description: Contact information, Google Maps and opening hours made easy for businesses.
6
- * Version: 1.0.5
7
  * Author: Theme of the Crop
8
  * Author URI: http://themeofthecrop.com
9
  * License: GNU General Public License v2.0 or later
@@ -40,7 +40,6 @@ class bpfwpInit {
40
  public function __construct() {
41
 
42
  // Common strings
43
- define( 'BPFWP_TEXTDOMAIN', 'bpfwpdomain' );
44
  define( 'BPFWP_PLUGIN_DIR', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
45
  define( 'BPFWP_PLUGIN_URL', untrailingslashit( plugins_url( basename( plugin_dir_path( __FILE__ ) ), basename( __FILE__ ) ) ) );
46
  define( 'BPFWP_PLUGIN_FNAME', plugin_basename( __FILE__ ) );
@@ -68,6 +67,10 @@ class bpfwpInit {
68
  // Add links to plugin listing
69
  add_filter('plugin_action_links', array( $this, 'plugin_action_links' ), 10, 2);
70
 
 
 
 
 
71
  }
72
 
73
  /**
@@ -75,7 +78,7 @@ class bpfwpInit {
75
  * @since 0.0.1
76
  */
77
  public function load_textdomain() {
78
- load_plugin_textdomain( BPFWP_TEXTDOMAIN, false, plugin_basename( dirname( __FILE__ ) ) . "/languages/" );
79
  }
80
 
81
  /**
@@ -104,7 +107,7 @@ class bpfwpInit {
104
 
105
  if ( $plugin == BPFWP_PLUGIN_FNAME ) {
106
 
107
- $links['help'] = '<a href="' . BPFWP_PLUGIN_URL . '/docs" title="' . __( 'View the help documentation for Business Profile', BPFWP_TEXTDOMAIN ) . '">' . __( 'Help', BPFWP_TEXTDOMAIN ) . '</a>';
108
  }
109
 
110
  return $links;
3
  * Plugin Name: Business Profile
4
  * Plugin URI: http://themeofthecrop.com
5
  * Description: Contact information, Google Maps and opening hours made easy for businesses.
6
+ * Version: 1.0.6
7
  * Author: Theme of the Crop
8
  * Author URI: http://themeofthecrop.com
9
  * License: GNU General Public License v2.0 or later
40
  public function __construct() {
41
 
42
  // Common strings
 
43
  define( 'BPFWP_PLUGIN_DIR', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
44
  define( 'BPFWP_PLUGIN_URL', untrailingslashit( plugins_url( basename( plugin_dir_path( __FILE__ ) ), basename( __FILE__ ) ) ) );
45
  define( 'BPFWP_PLUGIN_FNAME', plugin_basename( __FILE__ ) );
67
  // Add links to plugin listing
68
  add_filter('plugin_action_links', array( $this, 'plugin_action_links' ), 10, 2);
69
 
70
+ // Load backwards compatibility functions
71
+ require_once( BPFWP_PLUGIN_DIR . '/includes/Compatibility.class.php' );
72
+ new bpfwpCompatibility();
73
+
74
  }
75
 
76
  /**
78
  * @since 0.0.1
79
  */
80
  public function load_textdomain() {
81
+ load_plugin_textdomain( 'business-profile', false, plugin_basename( dirname( __FILE__ ) ) . "/languages/" );
82
  }
83
 
84
  /**
107
 
108
  if ( $plugin == BPFWP_PLUGIN_FNAME ) {
109
 
110
+ $links['help'] = '<a href="' . BPFWP_PLUGIN_URL . '/docs" title="' . __( 'View the help documentation for Business Profile', 'business-profile' ) . '">' . __( 'Help', 'business-profile' ) . '</a>';
111
  }
112
 
113
  return $links;
includes/Compatibility.class.php ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ if ( ! class_exists( 'bpfwpCompatibility', false ) ) {
7
+ /**
8
+ * Class to handle backwards compatibility issues for Business Profile.
9
+ *
10
+ * @since 1.0.6
11
+ */
12
+ class bpfwpCompatibility {
13
+
14
+ /**
15
+ * Set up hooks
16
+ */
17
+ public function __construct() {
18
+
19
+ // Preserve this defined constant in case anyone relied on it
20
+ // to check if the plugin was active
21
+ define( 'BPFWP_TEXTDOMAIN', 'bpfwpdomain' );
22
+
23
+ // Load a .mo file for an old textdomain if one exists
24
+ add_filter( 'load_textdomain_mofile', array( $this, 'load_old_textdomain' ), 10, 2 );
25
+
26
+ }
27
+
28
+ /**
29
+ * Load a .mo file for an old textdomain if one exists
30
+ *
31
+ * In versions prior to 1.0.6, the textdomain did not match the plugin
32
+ * slug. This had to be changed to comply with upcoming changes to
33
+ * how translations are managed in the .org repo. This function
34
+ * checks to see if an old translation file exists and loads it if
35
+ * it does, so that people don't lose their translations.
36
+ *
37
+ * Old textdomain: bpfwpdomain
38
+ */
39
+ public function load_old_textdomain( $mofile, $textdomain ) {
40
+ if ( 'business-profile' !== $textdomain ) {
41
+ return $mofile;
42
+ }
43
+
44
+ if ( 0 === strpos( $mofile, WP_LANG_DIR . '/plugins/' ) && ! file_exists( $mofile ) ) {
45
+ $mofile = dirname( $mofile ) . DIRECTORY_SEPARATOR . str_replace( $textdomain, 'bpfwpdomain', basename( $mofile ) );
46
+ }
47
+
48
+ return $mofile;
49
+ }
50
+
51
+ }
52
+ } // end class exists check.
includes/Integrations.class.php CHANGED
@@ -104,7 +104,7 @@ class bpfwpIntegrations {
104
  ?>
105
 
106
  <div class="bp-booking">
107
- <a href="<?php echo get_permalink( $rtb_controller->settings->get_setting( 'booking-page' ) ); ?>"><?php _e( 'Book a table', BPFWP_TEXTDOMAIN ); ?></a>
108
  </div>
109
 
110
  <?php
@@ -124,11 +124,11 @@ class bpfwpIntegrations {
124
  if ( !empty( $pos ) ) {
125
  $a = array_slice( $toggles, 0, $pos );
126
  $b = array_slice( $toggles, $pos );
127
- $toggles = array_merge( $a, array( 'show_booking_link' => __( 'Show book a table link', BPFWP_TEXTDOMAIN ) ) , $b );
128
 
129
  // If no short links are being displayed, just add it to the bottom.
130
  } else {
131
- $toggles['show_booking_link'] = __( 'Show book a table link', BPFWP_TEXTDOMAIN );
132
  }
133
 
134
  return $toggles;
104
  ?>
105
 
106
  <div class="bp-booking">
107
+ <a href="<?php echo get_permalink( $rtb_controller->settings->get_setting( 'booking-page' ) ); ?>"><?php _e( 'Book a table', 'business-profile' ); ?></a>
108
  </div>
109
 
110
  <?php
124
  if ( !empty( $pos ) ) {
125
  $a = array_slice( $toggles, 0, $pos );
126
  $b = array_slice( $toggles, $pos );
127
+ $toggles = array_merge( $a, array( 'show_booking_link' => __( 'Show book a table link', 'business-profile' ) ) , $b );
128
 
129
  // If no short links are being displayed, just add it to the bottom.
130
  } else {
131
+ $toggles['show_booking_link'] = __( 'Show book a table link', 'business-profile' );
132
  }
133
 
134
  return $toggles;
includes/Settings.class.php CHANGED
@@ -74,7 +74,7 @@ class bpfwpSettings {
74
  require_once( BPFWP_PLUGIN_DIR . '/lib/simple-admin-pages/simple-admin-pages.php' );
75
  $sap = sap_initialize_library(
76
  $args = array(
77
- 'version' => '2.0.a.7',
78
  'lib_url' => BPFWP_PLUGIN_URL . '/lib/simple-admin-pages/',
79
  )
80
  );
@@ -83,8 +83,8 @@ class bpfwpSettings {
83
  'menu',
84
  array(
85
  'id' => 'bpfwp-settings',
86
- 'title' => __( 'Business Profile', BPFWP_TEXTDOMAIN ),
87
- 'menu_title' => __( 'Business Profile', BPFWP_TEXTDOMAIN ),
88
  'capability' => 'manage_options',
89
  'icon' => 'dashicons-businessman',
90
  'position' => null
@@ -95,7 +95,7 @@ class bpfwpSettings {
95
  'bpfwp-settings',
96
  array(
97
  'id' => 'bpfwp-seo',
98
- 'title' => __( 'Search Engine Optimization', BPFWP_TEXTDOMAIN ),
99
  )
100
  );
101
 
@@ -105,8 +105,8 @@ class bpfwpSettings {
105
  'select',
106
  array(
107
  'id' => 'schema_type',
108
- 'title' => __( 'Schema Type', BPFWP_TEXTDOMAIN ),
109
- 'description' => __( 'Select the option that best describes your business to improve how search engines understand your website', BPFWP_TEXTDOMAIN ) . ' <a href="http://schema.org/" target="_blank">Schema.org</a>',
110
  'blank_option' => false,
111
  'options' => array(
112
  'Organization' => 'Organization',
@@ -149,7 +149,7 @@ class bpfwpSettings {
149
  'bpfwp-settings',
150
  array(
151
  'id' => 'bpfwp-contact',
152
- 'title' => __( 'Contact Information', BPFWP_TEXTDOMAIN ),
153
  )
154
  );
155
 
@@ -159,8 +159,8 @@ class bpfwpSettings {
159
  'text',
160
  array(
161
  'id' => 'name',
162
- 'title' => __( 'Name', BPFWP_TEXTDOMAIN ),
163
- 'description' => __( 'Enter the name of your business if it is different than the website name.', BPFWP_TEXTDOMAIN ),
164
  'placeholder' => $this->defaults['name'],
165
  )
166
  );
@@ -171,7 +171,23 @@ class bpfwpSettings {
171
  'address',
172
  array(
173
  'id' => 'address',
174
- 'title' => __( 'Address', BPFWP_TEXTDOMAIN ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
  )
176
  );
177
 
@@ -181,7 +197,7 @@ class bpfwpSettings {
181
  'text',
182
  array(
183
  'id' => 'phone',
184
- 'title' => __( 'Phone', BPFWP_TEXTDOMAIN ),
185
  )
186
  );
187
 
@@ -191,8 +207,8 @@ class bpfwpSettings {
191
  'post',
192
  array(
193
  'id' => 'contact-page',
194
- 'title' => __( 'Contact Page', BPFWP_TEXTDOMAIN ),
195
- 'description' => __( 'Select a page on your site where users can reach you, such as a contact form.', BPFWP_TEXTDOMAIN ),
196
  'blank_option' => true,
197
  'args' => array(
198
  'post_type' => 'page',
@@ -208,8 +224,8 @@ class bpfwpSettings {
208
  'text',
209
  array(
210
  'id' => 'contact-email',
211
- 'title' => __( 'Email Address (optional)', BPFWP_TEXTDOMAIN ),
212
- 'description' => __( 'Enter an email address only if you want to display this publicly. Showing your email address on your site may cause you to receive excessive spam.', BPFWP_TEXTDOMAIN ),
213
  )
214
  );
215
 
@@ -217,7 +233,7 @@ class bpfwpSettings {
217
  'bpfwp-settings',
218
  array(
219
  'id' => 'bpfwp-schedule',
220
- 'title' => __( 'Schedule', BPFWP_TEXTDOMAIN ),
221
  )
222
  );
223
 
@@ -227,21 +243,46 @@ class bpfwpSettings {
227
  'scheduler',
228
  array(
229
  'id' => 'opening-hours',
230
- 'title' => __( 'Opening Hours', BPFWP_TEXTDOMAIN ),
231
- 'description' => __( 'Define your weekly opening hours by adding scheduling rules.', BPFWP_TEXTDOMAIN ),
232
  'weekdays' => array(
233
- 'monday' => _x( 'Mo', 'Monday abbreviation', BPFWP_TEXTDOMAIN ),
234
- 'tuesday' => _x( 'Tu', 'Tuesday abbreviation', BPFWP_TEXTDOMAIN ),
235
- 'wednesday' => _x( 'We', 'Wednesday abbreviation', BPFWP_TEXTDOMAIN ),
236
- 'thursday' => _x( 'Th', 'Thursday abbreviation', BPFWP_TEXTDOMAIN ),
237
- 'friday' => _x( 'Fr', 'Friday abbreviation', BPFWP_TEXTDOMAIN ),
238
- 'saturday' => _x( 'Sa', 'Saturday abbreviation', BPFWP_TEXTDOMAIN ),
239
- 'sunday' => _x( 'Su', 'Sunday abbreviation', BPFWP_TEXTDOMAIN )
240
  ),
241
- 'time_format' => _x( 'h:i A', 'Time format displayed in the opening hours setting panel in your admin area. Must match formatting rules at http://amsul.ca/pickadate.js/time.htm#formats', BPFWP_TEXTDOMAIN ),
242
- 'date_format' => _x( 'mmmm d, yyyy', 'Date format displayed in the opening hours setting panel in your admin area. Must match formatting rules at http://amsul.ca/pickadate.js/date.htm#formatting-rules', BPFWP_TEXTDOMAIN ),
243
  'disable_weeks' => true,
244
  'disable_date' => true,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
245
  )
246
  );
247
 
74
  require_once( BPFWP_PLUGIN_DIR . '/lib/simple-admin-pages/simple-admin-pages.php' );
75
  $sap = sap_initialize_library(
76
  $args = array(
77
+ 'version' => '2.0.a.9',
78
  'lib_url' => BPFWP_PLUGIN_URL . '/lib/simple-admin-pages/',
79
  )
80
  );
83
  'menu',
84
  array(
85
  'id' => 'bpfwp-settings',
86
+ 'title' => __( 'Business Profile', 'business-profile' ),
87
+ 'menu_title' => __( 'Business Profile', 'business-profile' ),
88
  'capability' => 'manage_options',
89
  'icon' => 'dashicons-businessman',
90
  'position' => null
95
  'bpfwp-settings',
96
  array(
97
  'id' => 'bpfwp-seo',
98
+ 'title' => __( 'Search Engine Optimization', 'business-profile' ),
99
  )
100
  );
101
 
105
  'select',
106
  array(
107
  'id' => 'schema_type',
108
+ 'title' => __( 'Schema Type', 'business-profile' ),
109
+ 'description' => __( 'Select the option that best describes your business to improve how search engines understand your website', 'business-profile' ) . ' <a href="http://schema.org/" target="_blank">Schema.org</a>',
110
  'blank_option' => false,
111
  'options' => array(
112
  'Organization' => 'Organization',
149
  'bpfwp-settings',
150
  array(
151
  'id' => 'bpfwp-contact',
152
+ 'title' => __( 'Contact Information', 'business-profile' ),
153
  )
154
  );
155
 
159
  'text',
160
  array(
161
  'id' => 'name',
162
+ 'title' => __( 'Name', 'business-profile' ),
163
+ 'description' => __( 'Enter the name of your business if it is different than the website name.', 'business-profile' ),
164
  'placeholder' => $this->defaults['name'],
165
  )
166
  );
171
  'address',
172
  array(
173
  'id' => 'address',
174
+ 'title' => __( 'Address', 'business-profile' ),
175
+ 'strings' => array(
176
+ 'sep-action-links' => _x( ' | ', 'separator between admin action links in address component', 'business-profile' ),
177
+ 'sep-lat-lon' => _x( ', ', 'separates latitude and longitude', 'business-profile' ),
178
+ 'no-setting' => __( 'No map coordinates set.', 'business-profile' ),
179
+ 'retrieving' => __( 'Requesting new coordinates', 'business-profile' ),
180
+ 'select' => __( 'Select a match below', 'business-profile' ),
181
+ 'view' => __( 'View', 'business-profile' ),
182
+ 'retrieve' => __( 'Retrieve map coordinates', 'business-profile' ),
183
+ 'remove' => __( 'Remove map coordinates', 'business-profile' ),
184
+ 'try_again' => __( 'Try again?', 'business-profile' ),
185
+ 'result_error' => __( 'Error', 'business-profile' ),
186
+ 'result_invalid' => __( 'Invalid request. Be sure to fill out the address field before retrieving coordinates.', 'business-profile' ),
187
+ 'result_denied' => __( 'Request denied.', 'business-profile' ),
188
+ 'result_limit' => __( 'Request denied because you are over your request quota.', 'business-profile' ),
189
+ 'result_empty' => __( 'Nothing was found at that address', 'business-profile' ),
190
+ ),
191
  )
192
  );
193
 
197
  'text',
198
  array(
199
  'id' => 'phone',
200
+ 'title' => __( 'Phone', 'business-profile' ),
201
  )
202
  );
203
 
207
  'post',
208
  array(
209
  'id' => 'contact-page',
210
+ 'title' => __( 'Contact Page', 'business-profile' ),
211
+ 'description' => __( 'Select a page on your site where users can reach you, such as a contact form.', 'business-profile' ),
212
  'blank_option' => true,
213
  'args' => array(
214
  'post_type' => 'page',
224
  'text',
225
  array(
226
  'id' => 'contact-email',
227
+ 'title' => __( 'Email Address (optional)', 'business-profile' ),
228
+ 'description' => __( 'Enter an email address only if you want to display this publicly. Showing your email address on your site may cause you to receive excessive spam.', 'business-profile' ),
229
  )
230
  );
231
 
233
  'bpfwp-settings',
234
  array(
235
  'id' => 'bpfwp-schedule',
236
+ 'title' => __( 'Schedule', 'business-profile' ),
237
  )
238
  );
239
 
243
  'scheduler',
244
  array(
245
  'id' => 'opening-hours',
246
+ 'title' => __( 'Opening Hours', 'business-profile' ),
247
+ 'description' => __( 'Define your weekly opening hours by adding scheduling rules.', 'business-profile' ),
248
  'weekdays' => array(
249
+ 'monday' => _x( 'Mo', 'Monday abbreviation', 'business-profile' ),
250
+ 'tuesday' => _x( 'Tu', 'Tuesday abbreviation', 'business-profile' ),
251
+ 'wednesday' => _x( 'We', 'Wednesday abbreviation', 'business-profile' ),
252
+ 'thursday' => _x( 'Th', 'Thursday abbreviation', 'business-profile' ),
253
+ 'friday' => _x( 'Fr', 'Friday abbreviation', 'business-profile' ),
254
+ 'saturday' => _x( 'Sa', 'Saturday abbreviation', 'business-profile' ),
255
+ 'sunday' => _x( 'Su', 'Sunday abbreviation', 'business-profile' )
256
  ),
257
+ 'time_format' => _x( 'h:i A', 'Time format displayed in the opening hours setting panel in your admin area. Must match formatting rules at http://amsul.ca/pickadate.js/time.htm#formats', 'business-profile' ),
258
+ 'date_format' => _x( 'mmmm d, yyyy', 'Date format displayed in the opening hours setting panel in your admin area. Must match formatting rules at http://amsul.ca/pickadate.js/date.htm#formatting-rules', 'business-profile' ),
259
  'disable_weeks' => true,
260
  'disable_date' => true,
261
+ 'strings' => array(
262
+ 'add_rule' => __( 'Add another opening time', 'business-profile' ),
263
+ 'weekly' => _x( 'Weekly', 'Format of a scheduling rule', 'business-profile' ),
264
+ 'monthly' => _x( 'Monthly', 'Format of a scheduling rule', 'business-profile' ),
265
+ 'date' => _x( 'Date', 'Format of a scheduling rule', 'business-profile' ),
266
+ 'weekdays' => _x( 'Days of the week', 'Label for selecting days of the week in a scheduling rule', 'business-profile' ),
267
+ 'month_weeks' => _x( 'Weeks of the month', 'Label for selecting weeks of the month in a scheduling rule', 'business-profile' ),
268
+ 'date_label' => _x( 'Date', 'Label to select a date for a scheduling rule', 'business-profile' ),
269
+ 'time_label' => _x( 'Time', 'Label to select a time slot for a scheduling rule', 'business-profile' ),
270
+ 'allday' => _x( 'All day', 'Label to set a scheduling rule to last all day', 'business-profile' ),
271
+ 'start' => _x( 'Start', 'Label for the starting time of a scheduling rule', 'business-profile' ),
272
+ 'end' => _x( 'End', 'Label for the ending time of a scheduling rule', 'business-profile' ),
273
+ 'set_time_prompt' => _x( 'All day long. Want to %sset a time slot%s?', 'Prompt displayed when a scheduling rule is set without any time restrictions', 'business-profile' ),
274
+ 'toggle' => _x( 'Open and close this rule', 'Toggle a scheduling rule open and closed', 'business-profile' ),
275
+ 'delete' => _x( 'Delete rule', 'Delete a scheduling rule', 'business-profile' ),
276
+ 'delete_schedule' => __( 'Delete scheduling rule', 'business-profile' ),
277
+ 'never' => _x( 'Never', 'Brief default description of a scheduling rule when no weekdays or weeks are included in the rule', 'business-profile' ),
278
+ 'weekly_always' => _x( 'Every day', 'Brief default description of a scheduling rule when all the weekdays/weeks are included in the rule', 'business-profile' ),
279
+ 'monthly_weekdays' => _x( '%s on the %s week of the month', 'Brief default description of a scheduling rule when some weekdays are included on only some weeks of the month. %s should be left alone and will be replaced by a comma-separated list of days and weeks in the following format: M, T, W on the first, second week of the month', 'business-profile' ),
280
+ 'monthly_weeks' => _x( '%s week of the month', 'Brief default description of a scheduling rule when some weeks of the month are included but all or no weekdays are selected. %s should be left alone and will be replaced by a comma-separated list of weeks in the following format: First, second week of the month', 'business-profile' ),
281
+ 'all_day' => _x( 'All day', 'Brief default description of a scheduling rule when no times are set', 'business-profile' ),
282
+ 'before' => _x( 'Ends at', 'Brief default description of a scheduling rule when an end time is set but no start time. If the end time is 6pm, it will read: Ends at 6pm', 'business-profile' ),
283
+ 'after' => _x( 'Starts at', 'Brief default description of a scheduling rule when a start time is set but no end time. If the start time is 6pm, it will read: Starts at 6pm', 'business-profile' ),
284
+ 'separator' => _x( '&mdash;', 'Separator between times of a scheduling rule', 'business-profile' ),
285
+ ),
286
  )
287
  );
288
 
includes/WP_Widget.ContactCardWidget.class.php CHANGED
@@ -22,21 +22,21 @@ class bpfwpContactCardWidget extends WP_Widget {
22
 
23
  // Display toggles
24
  $this->toggles = apply_filters( 'bpfwp_widget_display_toggles', array(
25
- 'show_name' => __( 'Show Name', BPFWP_TEXTDOMAIN ),
26
- 'show_address' => __( 'Show Address', BPFWP_TEXTDOMAIN ),
27
- 'show_get_directions' => __( 'Show link to get directions on Google Maps', BPFWP_TEXTDOMAIN ),
28
- 'show_phone' => __( 'Show Phone number', BPFWP_TEXTDOMAIN ),
29
- 'show_contact' => __( 'Show contact details', BPFWP_TEXTDOMAIN ),
30
- 'show_opening_hours' => __( 'Show Opening Hours', BPFWP_TEXTDOMAIN ),
31
- 'show_opening_hours_brief' => __( 'Show brief opening hours on one line', BPFWP_TEXTDOMAIN ),
32
- 'show_map' => __( 'Show Google Map', BPFWP_TEXTDOMAIN ),
33
  )
34
  );
35
 
36
  parent::__construct(
37
  'bpfwp_contact_card_widget',
38
- __('Contact Card', BPFWP_TEXTDOMAIN),
39
- array( 'description' => __( 'Display a contact card with your name, address, phone number, opening hours and map.', BPFWP_TEXTDOMAIN ), )
40
  );
41
 
42
  }
22
 
23
  // Display toggles
24
  $this->toggles = apply_filters( 'bpfwp_widget_display_toggles', array(
25
+ 'show_name' => __( 'Show Name', 'business-profile' ),
26
+ 'show_address' => __( 'Show Address', 'business-profile' ),
27
+ 'show_get_directions' => __( 'Show link to get directions on Google Maps', 'business-profile' ),
28
+ 'show_phone' => __( 'Show Phone number', 'business-profile' ),
29
+ 'show_contact' => __( 'Show contact details', 'business-profile' ),
30
+ 'show_opening_hours' => __( 'Show Opening Hours', 'business-profile' ),
31
+ 'show_opening_hours_brief' => __( 'Show brief opening hours on one line', 'business-profile' ),
32
+ 'show_map' => __( 'Show Google Map', 'business-profile' ),
33
  )
34
  );
35
 
36
  parent::__construct(
37
  'bpfwp_contact_card_widget',
38
+ __('Contact Card', 'business-profile'),
39
+ array( 'description' => __( 'Display a contact card with your name, address, phone number, opening hours and map.', 'business-profile' ), )
40
  );
41
 
42
  }
includes/template-functions.php CHANGED
@@ -117,22 +117,19 @@ function bpwfwp_print_address() {
117
  global $bpfwp_controller;
118
 
119
  $address = $bpfwp_controller->settings->get_setting( 'address' );
120
-
121
- if ( $bpfwp_controller->display_settings['show_address'] ) :
122
  ?>
123
 
124
- <div class="bp-address" itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
125
- <?php echo nl2br( $address['text'] ); ?>
126
- </div>
127
-
128
- <?php else : ?>
129
  <meta itemprop="address" content="<?php echo esc_attr( $address['text'] ); ?>">
130
 
 
 
 
 
131
  <?php endif; ?>
132
 
133
  <?php if ( $bpfwp_controller->display_settings['show_get_directions'] ) : ?>
134
  <div class="bp-directions">
135
- <a href="//maps.google.com/maps?saddr=current+location&daddr=<?php echo urlencode( esc_attr( $address['text'] ) ); ?>"><?php _e( 'Get directions', BPFWP_TEXTDOMAIN ); ?></a>
136
  </div>
137
  <?php endif;
138
 
@@ -175,7 +172,7 @@ function bpwfwp_print_contact() {
175
  if ( !empty( $email ) ) :
176
  ?>
177
 
178
- <div class="bp-contact bp-contact-email" itemprop="email">
179
  <a href="mailto:<?php echo esc_attr( $email ); ?>"><?php echo $email; ?></a>
180
  </div>
181
 
@@ -188,7 +185,8 @@ function bpwfwp_print_contact() {
188
  ?>
189
 
190
  <div class="bp-contact bp-contact-page" itemprop="ContactPoint" itemscope itemtype="http://schema.org/ContactPoint">
191
- <a href="<?php echo get_post_permalink( $contact ); ?>"><?php _e( 'Contact', BPFWP_TEXTDOMAIN ); ?></a>
 
192
  </div>
193
 
194
  <?php endif;
@@ -293,7 +291,7 @@ function bpwfwp_print_opening_hours() {
293
 
294
 
295
  if ( empty( $slot['time'] ) ) {
296
- $string .= __( ' all day', BPFWP_TEXTDOMAIN );
297
  } else {
298
  if ( !empty( $slot['time']['start'] ) ) {
299
  $start = new DateTime( $slot['time']['start'] );
@@ -303,18 +301,18 @@ function bpwfwp_print_opening_hours() {
303
  }
304
 
305
  if ( empty( $start ) ) {
306
- $string .= __( ' open until ', BPFWP_TEXTDOMAIN ) . $end->format( get_option( 'time_format' ) );
307
  } elseif ( empty( $end ) ) {
308
- $string .= __( ' open from ', BPFWP_TEXTDOMAIN ) . $start->format( get_option( 'time_format' ) );
309
  } else {
310
- $string .= ' ' . $start->format( get_option( 'time_format' ) ) . _x( '-', 'Separator between opening and closing times. Example: 9:00am-5:00pm', BPFWP_TEXTDOMAIN ) . $end->format( get_option( 'time_format' ) );
311
  }
312
  }
313
 
314
  $slots[] = $string;
315
  }
316
 
317
- echo join( _x( '; ', 'Separator between multiple opening times in the brief opening hours. Example: Mo,We 9:00 AM - 5:00 PM; Tu,Th 10:00 AM - 5:00 PM', BPFWP_TEXTDOMAIN ), $slots );
318
  ?>
319
 
320
  </div>
@@ -342,7 +340,7 @@ function bpwfwp_print_opening_hours() {
342
  }
343
 
344
  if ( empty( $rule['time'] ) ) {
345
- $time = __( 'Open', BPFWP_TEXTDOMAIN );
346
 
347
  } else {
348
 
@@ -354,11 +352,11 @@ function bpwfwp_print_opening_hours() {
354
  }
355
 
356
  if ( empty( $start ) ) {
357
- $time = __( 'Open until ', BPFWP_TEXTDOMAIN ) . $end->format( get_option( 'time_format' ) );
358
  } elseif ( empty( $end ) ) {
359
- $time = __( 'Open from ', BPFWP_TEXTDOMAIN ) . $start->format( get_option( 'time_format' ) );
360
  } else {
361
- $time = $start->format( get_option( 'time_format' ) ) . _x( '-', 'Separator between opening and closing times. Example: 9:00am-5:00pm', BPFWP_TEXTDOMAIN ) . $end->format( get_option( 'time_format' ) );
362
  }
363
  }
364
 
@@ -378,7 +376,7 @@ function bpwfwp_print_opening_hours() {
378
  $weekdays_ordered = array();
379
  foreach( $weekdays_display as $slug => $name ) {
380
  if ( !array_key_exists( $slug, $weekdays ) ) {
381
- $weekdays_ordered[$slug] = array( __( 'Closed', BPFWP_TEXTDOMAIN ) );
382
  } else {
383
  $weekdays_ordered[$slug] = $weekdays[$slug];
384
  }
@@ -386,7 +384,7 @@ function bpwfwp_print_opening_hours() {
386
  ?>
387
 
388
  <div class="bp-opening-hours">
389
- <span class="bp-title"><?php _e( 'Opening Hours', BPFWP_TEXTDOMAIN ); ?></span>
390
  <?php foreach ( $weekdays_ordered as $weekday => $times ) : ?>
391
  <div class="bp-weekday">
392
  <span class="bp-weekday-name bp-weekday-<?php echo $weekday; ?>"><?php echo $weekdays_display[$weekday]; ?></span>
@@ -421,7 +419,7 @@ function bpwfwp_print_map() {
421
  'bpfwp_map',
422
  array(
423
  'strings' => array(
424
- 'get_directions' => __( 'Get directions', BPFWP_TEXTDOMAIN ),
425
  )
426
  )
427
  );
117
  global $bpfwp_controller;
118
 
119
  $address = $bpfwp_controller->settings->get_setting( 'address' );
 
 
120
  ?>
121
 
 
 
 
 
 
122
  <meta itemprop="address" content="<?php echo esc_attr( $address['text'] ); ?>">
123
 
124
+ <?php if ( $bpfwp_controller->display_settings['show_address'] ) : ?>
125
+ <div class="bp-address">
126
+ <?php echo nl2br( $address['text'] ); ?>
127
+ </div>
128
  <?php endif; ?>
129
 
130
  <?php if ( $bpfwp_controller->display_settings['show_get_directions'] ) : ?>
131
  <div class="bp-directions">
132
+ <a href="//maps.google.com/maps?saddr=current+location&daddr=<?php echo urlencode( esc_attr( $address['text'] ) ); ?>"><?php _e( 'Get directions', 'business-profile' ); ?></a>
133
  </div>
134
  <?php endif;
135
 
172
  if ( !empty( $email ) ) :
173
  ?>
174
 
175
+ <div class="bp-contact bp-contact-email" itemprop="email" content="<?php echo esc_attr( $email ); ?>">
176
  <a href="mailto:<?php echo esc_attr( $email ); ?>"><?php echo $email; ?></a>
177
  </div>
178
 
185
  ?>
186
 
187
  <div class="bp-contact bp-contact-page" itemprop="ContactPoint" itemscope itemtype="http://schema.org/ContactPoint">
188
+ <meta itemprop="contactType" content="customer support">
189
+ <a href="<?php echo get_post_permalink( $contact ); ?>" itemprop="url" content="<?php echo esc_attr( get_post_permalink( $contact ) ); ?>"><?php _e( 'Contact', 'business-profile' ); ?></a>
190
  </div>
191
 
192
  <?php endif;
291
 
292
 
293
  if ( empty( $slot['time'] ) ) {
294
+ $string .= __( ' all day', 'business-profile' );
295
  } else {
296
  if ( !empty( $slot['time']['start'] ) ) {
297
  $start = new DateTime( $slot['time']['start'] );
301
  }
302
 
303
  if ( empty( $start ) ) {
304
+ $string .= __( ' open until ', 'business-profile' ) . $end->format( get_option( 'time_format' ) );
305
  } elseif ( empty( $end ) ) {
306
+ $string .= __( ' open from ', 'business-profile' ) . $start->format( get_option( 'time_format' ) );
307
  } else {
308
+ $string .= ' ' . $start->format( get_option( 'time_format' ) ) . _x( '-', 'Separator between opening and closing times. Example: 9:00am-5:00pm', 'business-profile' ) . $end->format( get_option( 'time_format' ) );
309
  }
310
  }
311
 
312
  $slots[] = $string;
313
  }
314
 
315
+ echo join( _x( '; ', 'Separator between multiple opening times in the brief opening hours. Example: Mo,We 9:00 AM - 5:00 PM; Tu,Th 10:00 AM - 5:00 PM', 'business-profile' ), $slots );
316
  ?>
317
 
318
  </div>
340
  }
341
 
342
  if ( empty( $rule['time'] ) ) {
343
+ $time = __( 'Open', 'business-profile' );
344
 
345
  } else {
346
 
352
  }
353
 
354
  if ( empty( $start ) ) {
355
+ $time = __( 'Open until ', 'business-profile' ) . $end->format( get_option( 'time_format' ) );
356
  } elseif ( empty( $end ) ) {
357
+ $time = __( 'Open from ', 'business-profile' ) . $start->format( get_option( 'time_format' ) );
358
  } else {
359
+ $time = $start->format( get_option( 'time_format' ) ) . _x( '-', 'Separator between opening and closing times. Example: 9:00am-5:00pm', 'business-profile' ) . $end->format( get_option( 'time_format' ) );
360
  }
361
  }
362
 
376
  $weekdays_ordered = array();
377
  foreach( $weekdays_display as $slug => $name ) {
378
  if ( !array_key_exists( $slug, $weekdays ) ) {
379
+ $weekdays_ordered[$slug] = array( __( 'Closed', 'business-profile' ) );
380
  } else {
381
  $weekdays_ordered[$slug] = $weekdays[$slug];
382
  }
384
  ?>
385
 
386
  <div class="bp-opening-hours">
387
+ <span class="bp-title"><?php _e( 'Opening Hours', 'business-profile' ); ?></span>
388
  <?php foreach ( $weekdays_ordered as $weekday => $times ) : ?>
389
  <div class="bp-weekday">
390
  <span class="bp-weekday-name bp-weekday-<?php echo $weekday; ?>"><?php echo $weekdays_display[$weekday]; ?></span>
419
  'bpfwp_map',
420
  array(
421
  'strings' => array(
422
+ 'get_directions' => __( 'Get directions', 'business-profile' ),
423
  )
424
  )
425
  );
languages/business-profile.pot ADDED
@@ -0,0 +1,494 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2015 Business Profile
2
+ # This file is distributed under the same license as the Business Profile package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Business Profile 1.0.6\n"
6
+ "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/business-profile\n"
7
+ "POT-Creation-Date: 2015-04-03 10:46:49+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: 2015-MO-DA HO:MI+ZONE\n"
12
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
+ "Language-Team: LANGUAGE <LL@li.org>\n"
14
+ "X-Generator: grunt-wp-i18n 0.4.9\n"
15
+ "X-Poedit-KeywordsList: "
16
+ "__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
17
+ "attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
18
+ "Language: en\n"
19
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
+ "X-Poedit-Country: United States\n"
21
+ "X-Poedit-SourceCharset: UTF-8\n"
22
+ "X-Poedit-Basepath: ../\n"
23
+ "X-Poedit-SearchPath-0: .\n"
24
+ "X-Poedit-Bookmarks: \n"
25
+ "X-Textdomain-Support: yes\n"
26
+
27
+ #: business-profile.php:110
28
+ msgid "View the help documentation for Business Profile"
29
+ msgstr ""
30
+
31
+ #: business-profile.php:110
32
+ msgid "Help"
33
+ msgstr ""
34
+
35
+ #: includes/Integrations.class.php:107
36
+ msgid "Book a table"
37
+ msgstr ""
38
+
39
+ #: includes/Integrations.class.php:127 includes/Integrations.class.php:131
40
+ msgid "Show book a table link"
41
+ msgstr ""
42
+
43
+ #: includes/Settings.class.php:86 includes/Settings.class.php:87
44
+ #. #-#-#-#-# business-profile.pot (Business Profile 1.0.6) #-#-#-#-#
45
+ #. Plugin Name of the plugin/theme
46
+ msgid "Business Profile"
47
+ msgstr ""
48
+
49
+ #: includes/Settings.class.php:98
50
+ msgid "Search Engine Optimization"
51
+ msgstr ""
52
+
53
+ #: includes/Settings.class.php:108
54
+ msgid "Schema Type"
55
+ msgstr ""
56
+
57
+ #: includes/Settings.class.php:109
58
+ msgid ""
59
+ "Select the option that best describes your business to improve how search "
60
+ "engines understand your website"
61
+ msgstr ""
62
+
63
+ #: includes/Settings.class.php:152
64
+ msgid "Contact Information"
65
+ msgstr ""
66
+
67
+ #: includes/Settings.class.php:162
68
+ msgid "Name"
69
+ msgstr ""
70
+
71
+ #: includes/Settings.class.php:163
72
+ msgid "Enter the name of your business if it is different than the website name."
73
+ msgstr ""
74
+
75
+ #: includes/Settings.class.php:174
76
+ msgid "Address"
77
+ msgstr ""
78
+
79
+ #: includes/Settings.class.php:178
80
+ msgid "No map coordinates set."
81
+ msgstr ""
82
+
83
+ #: includes/Settings.class.php:179
84
+ msgid "Requesting new coordinates"
85
+ msgstr ""
86
+
87
+ #: includes/Settings.class.php:180
88
+ msgid "Select a match below"
89
+ msgstr ""
90
+
91
+ #: includes/Settings.class.php:181
92
+ msgid "View"
93
+ msgstr ""
94
+
95
+ #: includes/Settings.class.php:182
96
+ msgid "Retrieve map coordinates"
97
+ msgstr ""
98
+
99
+ #: includes/Settings.class.php:183
100
+ msgid "Remove map coordinates"
101
+ msgstr ""
102
+
103
+ #: includes/Settings.class.php:184
104
+ msgid "Try again?"
105
+ msgstr ""
106
+
107
+ #: includes/Settings.class.php:185
108
+ msgid "Error"
109
+ msgstr ""
110
+
111
+ #: includes/Settings.class.php:186
112
+ msgid ""
113
+ "Invalid request. Be sure to fill out the address field before retrieving "
114
+ "coordinates."
115
+ msgstr ""
116
+
117
+ #: includes/Settings.class.php:187
118
+ msgid "Request denied."
119
+ msgstr ""
120
+
121
+ #: includes/Settings.class.php:188
122
+ msgid "Request denied because you are over your request quota."
123
+ msgstr ""
124
+
125
+ #: includes/Settings.class.php:189
126
+ msgid "Nothing was found at that address"
127
+ msgstr ""
128
+
129
+ #: includes/Settings.class.php:200
130
+ msgid "Phone"
131
+ msgstr ""
132
+
133
+ #: includes/Settings.class.php:210
134
+ msgid "Contact Page"
135
+ msgstr ""
136
+
137
+ #: includes/Settings.class.php:211
138
+ msgid ""
139
+ "Select a page on your site where users can reach you, such as a contact "
140
+ "form."
141
+ msgstr ""
142
+
143
+ #: includes/Settings.class.php:227
144
+ msgid "Email Address (optional)"
145
+ msgstr ""
146
+
147
+ #: includes/Settings.class.php:228
148
+ msgid ""
149
+ "Enter an email address only if you want to display this publicly. Showing "
150
+ "your email address on your site may cause you to receive excessive spam."
151
+ msgstr ""
152
+
153
+ #: includes/Settings.class.php:236
154
+ msgid "Schedule"
155
+ msgstr ""
156
+
157
+ #: includes/Settings.class.php:246 includes/template-functions.php:387
158
+ msgid "Opening Hours"
159
+ msgstr ""
160
+
161
+ #: includes/Settings.class.php:247
162
+ msgid "Define your weekly opening hours by adding scheduling rules."
163
+ msgstr ""
164
+
165
+ #: includes/Settings.class.php:262
166
+ msgid "Add another opening time"
167
+ msgstr ""
168
+
169
+ #: includes/Settings.class.php:276
170
+ msgid "Delete scheduling rule"
171
+ msgstr ""
172
+
173
+ #: includes/WP_Widget.ContactCardWidget.class.php:25
174
+ msgid "Show Name"
175
+ msgstr ""
176
+
177
+ #: includes/WP_Widget.ContactCardWidget.class.php:26
178
+ msgid "Show Address"
179
+ msgstr ""
180
+
181
+ #: includes/WP_Widget.ContactCardWidget.class.php:27
182
+ msgid "Show link to get directions on Google Maps"
183
+ msgstr ""
184
+
185
+ #: includes/WP_Widget.ContactCardWidget.class.php:28
186
+ msgid "Show Phone number"
187
+ msgstr ""
188
+
189
+ #: includes/WP_Widget.ContactCardWidget.class.php:29
190
+ msgid "Show contact details"
191
+ msgstr ""
192
+
193
+ #: includes/WP_Widget.ContactCardWidget.class.php:30
194
+ msgid "Show Opening Hours"
195
+ msgstr ""
196
+
197
+ #: includes/WP_Widget.ContactCardWidget.class.php:31
198
+ msgid "Show brief opening hours on one line"
199
+ msgstr ""
200
+
201
+ #: includes/WP_Widget.ContactCardWidget.class.php:32
202
+ msgid "Show Google Map"
203
+ msgstr ""
204
+
205
+ #: includes/WP_Widget.ContactCardWidget.class.php:38
206
+ msgid "Contact Card"
207
+ msgstr ""
208
+
209
+ #: includes/WP_Widget.ContactCardWidget.class.php:39
210
+ msgid ""
211
+ "Display a contact card with your name, address, phone number, opening hours "
212
+ "and map."
213
+ msgstr ""
214
+
215
+ #: includes/WP_Widget.ContactCardWidget.class.php:71
216
+ msgid "Title"
217
+ msgstr ""
218
+
219
+ #: includes/template-functions.php:132 includes/template-functions.php:422
220
+ msgid "Get directions"
221
+ msgstr ""
222
+
223
+ #: includes/template-functions.php:189
224
+ msgid "Contact"
225
+ msgstr ""
226
+
227
+ #: includes/template-functions.php:294
228
+ msgid " all day"
229
+ msgstr ""
230
+
231
+ #: includes/template-functions.php:304
232
+ msgid " open until "
233
+ msgstr ""
234
+
235
+ #: includes/template-functions.php:306
236
+ msgid " open from "
237
+ msgstr ""
238
+
239
+ #: includes/template-functions.php:325
240
+ msgid "Monday"
241
+ msgstr ""
242
+
243
+ #: includes/template-functions.php:326
244
+ msgid "Tuesday"
245
+ msgstr ""
246
+
247
+ #: includes/template-functions.php:327
248
+ msgid "Wednesday"
249
+ msgstr ""
250
+
251
+ #: includes/template-functions.php:328
252
+ msgid "Thursday"
253
+ msgstr ""
254
+
255
+ #: includes/template-functions.php:329
256
+ msgid "Friday"
257
+ msgstr ""
258
+
259
+ #: includes/template-functions.php:330
260
+ msgid "Saturday"
261
+ msgstr ""
262
+
263
+ #: includes/template-functions.php:331
264
+ msgid "Sunday"
265
+ msgstr ""
266
+
267
+ #: includes/template-functions.php:343
268
+ msgid "Open"
269
+ msgstr ""
270
+
271
+ #: includes/template-functions.php:355
272
+ msgid "Open until "
273
+ msgstr ""
274
+
275
+ #: includes/template-functions.php:357
276
+ msgid "Open from "
277
+ msgstr ""
278
+
279
+ #: includes/template-functions.php:379
280
+ msgid "Closed"
281
+ msgstr ""
282
+
283
+ #: lib/simple-admin-pages/classes/AdminPage.class.php:173
284
+ msgid "You do not have sufficient permissions to access this page."
285
+ msgstr ""
286
+
287
+ #. #-#-#-#-# business-profile.pot (Business Profile 1.0.6) #-#-#-#-#
288
+ #. Plugin URI of the plugin/theme
289
+ #. #-#-#-#-# business-profile.pot (Business Profile 1.0.6) #-#-#-#-#
290
+ #. Author URI of the plugin/theme
291
+ msgid "http://themeofthecrop.com"
292
+ msgstr ""
293
+
294
+ #. Description of the plugin/theme
295
+ msgid "Contact information, Google Maps and opening hours made easy for businesses."
296
+ msgstr ""
297
+
298
+ #. Author of the plugin/theme
299
+ msgid "Theme of the Crop"
300
+ msgstr ""
301
+
302
+ #: includes/Settings.class.php:176
303
+ msgctxt "separator between admin action links in address component"
304
+ msgid " | "
305
+ msgstr ""
306
+
307
+ #: includes/Settings.class.php:177
308
+ msgctxt "separates latitude and longitude"
309
+ msgid ", "
310
+ msgstr ""
311
+
312
+ #: includes/Settings.class.php:249
313
+ msgctxt "Monday abbreviation"
314
+ msgid "Mo"
315
+ msgstr ""
316
+
317
+ #: includes/Settings.class.php:250
318
+ msgctxt "Tuesday abbreviation"
319
+ msgid "Tu"
320
+ msgstr ""
321
+
322
+ #: includes/Settings.class.php:251
323
+ msgctxt "Wednesday abbreviation"
324
+ msgid "We"
325
+ msgstr ""
326
+
327
+ #: includes/Settings.class.php:252
328
+ msgctxt "Thursday abbreviation"
329
+ msgid "Th"
330
+ msgstr ""
331
+
332
+ #: includes/Settings.class.php:253
333
+ msgctxt "Friday abbreviation"
334
+ msgid "Fr"
335
+ msgstr ""
336
+
337
+ #: includes/Settings.class.php:254
338
+ msgctxt "Saturday abbreviation"
339
+ msgid "Sa"
340
+ msgstr ""
341
+
342
+ #: includes/Settings.class.php:255
343
+ msgctxt "Sunday abbreviation"
344
+ msgid "Su"
345
+ msgstr ""
346
+
347
+ #: includes/Settings.class.php:257
348
+ msgctxt ""
349
+ "Time format displayed in the opening hours setting panel in your admin "
350
+ "area. Must match formatting rules at "
351
+ "http://amsul.ca/pickadate.js/time.htm#formats"
352
+ msgid "h:i A"
353
+ msgstr ""
354
+
355
+ #: includes/Settings.class.php:258
356
+ msgctxt ""
357
+ "Date format displayed in the opening hours setting panel in your admin "
358
+ "area. Must match formatting rules at "
359
+ "http://amsul.ca/pickadate.js/date.htm#formatting-rules"
360
+ msgid "mmmm d, yyyy"
361
+ msgstr ""
362
+
363
+ #: includes/Settings.class.php:263
364
+ msgctxt "Format of a scheduling rule"
365
+ msgid "Weekly"
366
+ msgstr ""
367
+
368
+ #: includes/Settings.class.php:264
369
+ msgctxt "Format of a scheduling rule"
370
+ msgid "Monthly"
371
+ msgstr ""
372
+
373
+ #: includes/Settings.class.php:265
374
+ msgctxt "Format of a scheduling rule"
375
+ msgid "Date"
376
+ msgstr ""
377
+
378
+ #: includes/Settings.class.php:266
379
+ msgctxt "Label for selecting days of the week in a scheduling rule"
380
+ msgid "Days of the week"
381
+ msgstr ""
382
+
383
+ #: includes/Settings.class.php:267
384
+ msgctxt "Label for selecting weeks of the month in a scheduling rule"
385
+ msgid "Weeks of the month"
386
+ msgstr ""
387
+
388
+ #: includes/Settings.class.php:268
389
+ msgctxt "Label to select a date for a scheduling rule"
390
+ msgid "Date"
391
+ msgstr ""
392
+
393
+ #: includes/Settings.class.php:269
394
+ msgctxt "Label to select a time slot for a scheduling rule"
395
+ msgid "Time"
396
+ msgstr ""
397
+
398
+ #: includes/Settings.class.php:270
399
+ msgctxt "Label to set a scheduling rule to last all day"
400
+ msgid "All day"
401
+ msgstr ""
402
+
403
+ #: includes/Settings.class.php:271
404
+ msgctxt "Label for the starting time of a scheduling rule"
405
+ msgid "Start"
406
+ msgstr ""
407
+
408
+ #: includes/Settings.class.php:272
409
+ msgctxt "Label for the ending time of a scheduling rule"
410
+ msgid "End"
411
+ msgstr ""
412
+
413
+ #: includes/Settings.class.php:273
414
+ msgctxt "Prompt displayed when a scheduling rule is set without any time restrictions"
415
+ msgid "All day long. Want to %sset a time slot%s?"
416
+ msgstr ""
417
+
418
+ #: includes/Settings.class.php:274
419
+ msgctxt "Toggle a scheduling rule open and closed"
420
+ msgid "Open and close this rule"
421
+ msgstr ""
422
+
423
+ #: includes/Settings.class.php:275
424
+ msgctxt "Delete a scheduling rule"
425
+ msgid "Delete rule"
426
+ msgstr ""
427
+
428
+ #: includes/Settings.class.php:277
429
+ msgctxt ""
430
+ "Brief default description of a scheduling rule when no weekdays or weeks "
431
+ "are included in the rule"
432
+ msgid "Never"
433
+ msgstr ""
434
+
435
+ #: includes/Settings.class.php:278
436
+ msgctxt ""
437
+ "Brief default description of a scheduling rule when all the weekdays/weeks "
438
+ "are included in the rule"
439
+ msgid "Every day"
440
+ msgstr ""
441
+
442
+ #: includes/Settings.class.php:279
443
+ msgctxt ""
444
+ "Brief default description of a scheduling rule when some weekdays are "
445
+ "included on only some weeks of the month. %s should be left alone and will "
446
+ "be replaced by a comma-separated list of days and weeks in the following "
447
+ "format: M, T, W on the first, second week of the month"
448
+ msgid "%s on the %s week of the month"
449
+ msgstr ""
450
+
451
+ #: includes/Settings.class.php:280
452
+ msgctxt ""
453
+ "Brief default description of a scheduling rule when some weeks of the month "
454
+ "are included but all or no weekdays are selected. %s should be left alone "
455
+ "and will be replaced by a comma-separated list of weeks in the following "
456
+ "format: First, second week of the month"
457
+ msgid "%s week of the month"
458
+ msgstr ""
459
+
460
+ #: includes/Settings.class.php:281
461
+ msgctxt "Brief default description of a scheduling rule when no times are set"
462
+ msgid "All day"
463
+ msgstr ""
464
+
465
+ #: includes/Settings.class.php:282
466
+ msgctxt ""
467
+ "Brief default description of a scheduling rule when an end time is set but "
468
+ "no start time. If the end time is 6pm, it will read: Ends at 6pm"
469
+ msgid "Ends at"
470
+ msgstr ""
471
+
472
+ #: includes/Settings.class.php:283
473
+ msgctxt ""
474
+ "Brief default description of a scheduling rule when a start time is set but "
475
+ "no end time. If the start time is 6pm, it will read: Starts at 6pm"
476
+ msgid "Starts at"
477
+ msgstr ""
478
+
479
+ #: includes/Settings.class.php:284
480
+ msgctxt "Separator between times of a scheduling rule"
481
+ msgid "&mdash;"
482
+ msgstr ""
483
+
484
+ #: includes/template-functions.php:308 includes/template-functions.php:359
485
+ msgctxt "Separator between opening and closing times. Example: 9:00am-5:00pm"
486
+ msgid "-"
487
+ msgstr ""
488
+
489
+ #: includes/template-functions.php:315
490
+ msgctxt ""
491
+ "Separator between multiple opening times in the brief opening hours. "
492
+ "Example: Mo,We 9:00 AM - 5:00 PM; Tu,Th 10:00 AM - 5:00 PM"
493
+ msgid "; "
494
+ msgstr ""
lib/simple-admin-pages/README.md CHANGED
@@ -19,14 +19,17 @@ yet.*
19
 
20
  - Text field
21
  - Textarea field
22
- - Checkbox (single option to enable/disable setting)
23
  - Select dropdown with custom options
24
  - Select dropdown of any post type
25
  - Select dropdown of any taxonomy type
26
  - HTML Content (for instructions, links or other inert text)
 
27
 
28
  ## Controls Supported for Special Use Cases
29
 
 
 
30
  - Business Opening Hours
31
 
32
  ## Usage
@@ -38,7 +41,7 @@ Here's a simple example of how you can use this library to create an admin page.
38
  require_once( 'path/to/simple-admin-pages/simple-admin-pages.php' );
39
  $sap = sap_initialize_library(
40
  array(
41
- 'version' => '2.0.a.7', // Version of the library
42
  'lib_url' => PLUGIN_URL . '/lib/simple-admin-pages/', // URL path to sap library
43
  )
44
  );
@@ -48,8 +51,8 @@ Here's a simple example of how you can use this library to create an admin page.
48
  'options', // Admin menu which this page should be added to
49
  array( // Array of key/value pairs matching the AdminPage class constructor variables
50
  'id' => 'basic-settings',
51
- 'title' => __( 'Page Title', SAP_TEXTDOMAIN ),
52
- 'menu_title' => __( 'menu Title', SAP_TEXTDOMAIN ),
53
  'description' => '',
54
  'capability' => 'manage_options' // User permissions access level
55
  )
@@ -60,8 +63,8 @@ Here's a simple example of how you can use this library to create an admin page.
60
  'basic-settings', // Page to add this section to
61
  array( // Array of key/value pairs matching the AdminPageSection class constructor variables
62
  'id' => 'basic-details',
63
- 'title' => __( 'Basic Details', SAP_TEXTDOMAIN ),
64
- 'description' => __( 'This section includes some basic details for you to configure.', SAP_TEXTDOMAIN )
65
  )
66
  );
67
 
@@ -72,12 +75,12 @@ Here's a simple example of how you can use this library to create an admin page.
72
  'select', // Type of setting (see sapLibrary::get_setting_classname()
73
  array(
74
  'id' => 'select-field',
75
- 'title' => __( 'Select Field', SAP_TEXTDOMAIN ),
76
- 'description' => __( 'A demonstration of the select field type.', SAP_TEXTDOMAIN ),
77
  'options' => array(
78
- 'one' => __( 'Option 1', SAP_TEXTDOMAIN ),
79
- 'two' => __( 'Option 2', SAP_TEXTDOMAIN ),
80
- 'three' => __( 'Option 3', SAP_TEXTDOMAIN )
81
  )
82
  )
83
  );
@@ -127,7 +130,7 @@ The lib_url is used to print stylesheets or scripts attached to the library.
127
  require_once( 'path/to/simple-admin-pages/simple-admin-pages.php' );
128
  $sap = sap_initialize_library(
129
  $args = array(
130
- 'version' => '2.0.a.7', // Version of the library
131
  'lib_url' => PLUGIN_URL . '/lib/simple-admin-pages/', // URL path to sap library
132
  )
133
  );
@@ -184,8 +187,8 @@ $sap->add_page(
184
  $type,
185
  $args = array(
186
  'id' => 'my-settings',
187
- 'title' => __( 'Page Title', SAP_TEXTDOMAIN ),
188
- 'menu_title' => __( 'menu Title', SAP_TEXTDOMAIN ),
189
  'description' => '',
190
  'capability' => 'manage_options'
191
  'default_tab' => 'tab-one',
@@ -237,8 +240,8 @@ $sap->add_section(
237
  $page_id,
238
  $args = array(
239
  'id' => 'basic-details-section',
240
- 'title' => __( 'Basic Details', SAP_TEXTDOMAIN ),
241
- 'description' => __( 'This section includes some basic details for you to configure.', SAP_TEXTDOMAIN )
242
  )
243
  );
244
  ```
@@ -252,8 +255,8 @@ $sap->add_section(
252
  $page_id,
253
  $args = array(
254
  'id' => 'tab-one',
255
- 'title' => __( 'Tab One', SAP_TEXTDOMAIN ),
256
- 'description' => __( 'This tab includes some settings for you to configure.', SAP_TEXTDOMAIN ),
257
  'is_tab' => true,
258
  )
259
  );
@@ -265,8 +268,8 @@ $sap->add_section(
265
  $page_id,
266
  $args = array(
267
  'id' => 'section-one-under-tab-one',
268
- 'title' => __( 'Section One', SAP_TEXTDOMAIN ),
269
- 'description' => __( 'This section includes some settings for you to configure.', SAP_TEXTDOMAIN ),
270
  'tab' => 'tab-one',
271
  )
272
  );
@@ -327,8 +330,8 @@ $sap->add_setting(
327
  $type,
328
  array(
329
  'id' => 'my-first-setting',
330
- 'title' => __( 'My First Setting', SAP_TEXTDOMAIN ),
331
- 'description' => __( 'A demonstration of my first setting', SAP_TEXTDOMAIN );
332
  ...
333
  )
334
  );
@@ -368,6 +371,18 @@ $all_page_settings[ $my_setting_id ];
368
 
369
  ## Changelog
370
 
 
 
 
 
 
 
 
 
 
 
 
 
371
  - 2.0.a.5 - 2014-05-15
372
  - Fix a bug with the Textarea component callback
373
 
19
 
20
  - Text field
21
  - Textarea field
22
+ - Toggle (checkbox to enable/disable setting)
23
  - Select dropdown with custom options
24
  - Select dropdown of any post type
25
  - Select dropdown of any taxonomy type
26
  - HTML Content (for instructions, links or other inert text)
27
+ - WordPress Editor
28
 
29
  ## Controls Supported for Special Use Cases
30
 
31
+ - Date and Time Scheduler
32
+ - Google Map Address (with GeoLocation)
33
  - Business Opening Hours
34
 
35
  ## Usage
41
  require_once( 'path/to/simple-admin-pages/simple-admin-pages.php' );
42
  $sap = sap_initialize_library(
43
  array(
44
+ 'version' => '2.0.a.9', // Version of the library
45
  'lib_url' => PLUGIN_URL . '/lib/simple-admin-pages/', // URL path to sap library
46
  )
47
  );
51
  'options', // Admin menu which this page should be added to
52
  array( // Array of key/value pairs matching the AdminPage class constructor variables
53
  'id' => 'basic-settings',
54
+ 'title' => __( 'Page Title', 'textdomain' ),
55
+ 'menu_title' => __( 'menu Title', 'textdomain' ),
56
  'description' => '',
57
  'capability' => 'manage_options' // User permissions access level
58
  )
63
  'basic-settings', // Page to add this section to
64
  array( // Array of key/value pairs matching the AdminPageSection class constructor variables
65
  'id' => 'basic-details',
66
+ 'title' => __( 'Basic Details', 'textdomain' ),
67
+ 'description' => __( 'This section includes some basic details for you to configure.', 'textdomain' )
68
  )
69
  );
70
 
75
  'select', // Type of setting (see sapLibrary::get_setting_classname()
76
  array(
77
  'id' => 'select-field',
78
+ 'title' => __( 'Select Field', 'textdomain' ),
79
+ 'description' => __( 'A demonstration of the select field type.', 'textdomain' ),
80
  'options' => array(
81
+ 'one' => __( 'Option 1', 'textdomain' ),
82
+ 'two' => __( 'Option 2', 'textdomain' ),
83
+ 'three' => __( 'Option 3', 'textdomain' )
84
  )
85
  )
86
  );
130
  require_once( 'path/to/simple-admin-pages/simple-admin-pages.php' );
131
  $sap = sap_initialize_library(
132
  $args = array(
133
+ 'version' => '2.0.a.9', // Version of the library
134
  'lib_url' => PLUGIN_URL . '/lib/simple-admin-pages/', // URL path to sap library
135
  )
136
  );
187
  $type,
188
  $args = array(
189
  'id' => 'my-settings',
190
+ 'title' => __( 'Page Title', 'textdomain' ),
191
+ 'menu_title' => __( 'menu Title', 'textdomain' ),
192
  'description' => '',
193
  'capability' => 'manage_options'
194
  'default_tab' => 'tab-one',
240
  $page_id,
241
  $args = array(
242
  'id' => 'basic-details-section',
243
+ 'title' => __( 'Basic Details', 'textdomain' ),
244
+ 'description' => __( 'This section includes some basic details for you to configure.', 'textdomain' )
245
  )
246
  );
247
  ```
255
  $page_id,
256
  $args = array(
257
  'id' => 'tab-one',
258
+ 'title' => __( 'Tab One', 'textdomain' ),
259
+ 'description' => __( 'This tab includes some settings for you to configure.', 'textdomain' ),
260
  'is_tab' => true,
261
  )
262
  );
268
  $page_id,
269
  $args = array(
270
  'id' => 'section-one-under-tab-one',
271
+ 'title' => __( 'Section One', 'textdomain' ),
272
+ 'description' => __( 'This section includes some settings for you to configure.', 'textdomain' ),
273
  'tab' => 'tab-one',
274
  )
275
  );
330
  $type,
331
  array(
332
  'id' => 'my-first-setting',
333
+ 'title' => __( 'My First Setting', 'textdomain' ),
334
+ 'description' => __( 'A demonstration of my first setting', 'textdomain' );
335
  ...
336
  )
337
  );
371
 
372
  ## Changelog
373
 
374
+ - 2_0_a_9 - 2014-11-12
375
+ - SelectPost: Use WP_Query instead of get_posts() so that filters can effect the list
376
+ - Require translateable strings to be declared when adding the setting so the library can conform to the upcoming single textdomain best practice in the .org repos
377
+
378
+ - 2_0_a_7 - 2014-08-20
379
+ - Only enqueue assets on appropriate admin pages to prevent version conflicts and be a good citizen
380
+ - Enforce stored date/time formats so date format is reliable
381
+
382
+ - 2.0.a.6 - 2014-08-12
383
+ - Add Google Map Address component
384
+ - Custom settings loaded through the extension path should not use versions
385
+
386
  - 2.0.a.5 - 2014-05-15
387
  - Fix a bug with the Textarea component callback
388
 
lib/simple-admin-pages/classes/AdminPage.Menu.class.php CHANGED
@@ -8,7 +8,7 @@
8
  * @package Simple Admin Pages
9
  */
10
 
11
- class sapAdminPageMenu_2_0_a_7 extends sapAdminPage_2_0_a_7 {
12
 
13
  public $setup_function = 'add_menu_page'; // WP function to register the page
14
 
8
  * @package Simple Admin Pages
9
  */
10
 
11
+ class sapAdminPageMenu_2_0_a_9 extends sapAdminPage_2_0_a_9 {
12
 
13
  public $setup_function = 'add_menu_page'; // WP function to register the page
14
 
lib/simple-admin-pages/classes/AdminPage.Submenu.class.php CHANGED
@@ -8,7 +8,7 @@
8
  * @package Simple Admin Pages
9
  */
10
 
11
- class sapAdminPageSubmenu_2_0_a_7 extends sapAdminPage_2_0_a_7 {
12
 
13
  public $setup_function = 'add_submenu_page'; // WP function to register the page
14
 
8
  * @package Simple Admin Pages
9
  */
10
 
11
+ class sapAdminPageSubmenu_2_0_a_9 extends sapAdminPage_2_0_a_9 {
12
 
13
  public $setup_function = 'add_submenu_page'; // WP function to register the page
14
 
lib/simple-admin-pages/classes/AdminPage.Themes.class.php CHANGED
@@ -8,7 +8,7 @@
8
  * @package Simple Admin Pages
9
  */
10
 
11
- class sapAdminPageThemes_2_0_a_7 extends sapAdminPage_2_0_a_7 {
12
 
13
  public $setup_function = 'add_theme_page'; // WP function to register the page
14
 
8
  * @package Simple Admin Pages
9
  */
10
 
11
+ class sapAdminPageThemes_2_0_a_9 extends sapAdminPage_2_0_a_9 {
12
 
13
  public $setup_function = 'add_theme_page'; // WP function to register the page
14
 
lib/simple-admin-pages/classes/AdminPage.class.php CHANGED
@@ -7,7 +7,7 @@
7
  * @package Simple Admin Pages
8
  */
9
 
10
- class sapAdminPage_2_0_a_7 {
11
 
12
  public $title;
13
  public $menu_title;
@@ -29,6 +29,11 @@ class sapAdminPage_2_0_a_7 {
29
  // Parse the values passed
30
  $this->parse_args( $args );
31
 
 
 
 
 
 
32
  }
33
 
34
  /**
@@ -50,6 +55,14 @@ class sapAdminPage_2_0_a_7 {
50
  }
51
  }
52
 
 
 
 
 
 
 
 
 
53
  /**
54
  * Add the page to the appropriate menu slot.
55
  * @note The default will be to post to the options page, but other classes
@@ -156,6 +169,10 @@ class sapAdminPage_2_0_a_7 {
156
  return;
157
  }
158
 
 
 
 
 
159
  $current_page = $this->get_current_page( $_GET );
160
 
161
  ?>
7
  * @package Simple Admin Pages
8
  */
9
 
10
+ class sapAdminPage_2_0_a_9 {
11
 
12
  public $title;
13
  public $menu_title;
29
  // Parse the values passed
30
  $this->parse_args( $args );
31
 
32
+ // Modify capability required to save the settings if it's not
33
+ // the default `manage_options`
34
+ if ( !empty( $this->capability ) && $this->capability !== 'manage_options') {
35
+ add_filter( 'option_page_capability_' . $this->id, array( $this, 'modify_required_capability' ) );
36
+ }
37
  }
38
 
39
  /**
55
  }
56
  }
57
 
58
+ /**
59
+ * Modify the capability required to save settings on this page
60
+ * @since 2.0
61
+ */
62
+ public function modify_required_capability( $cap ) {
63
+ return $this->capability;
64
+ }
65
+
66
  /**
67
  * Add the page to the appropriate menu slot.
68
  * @note The default will be to post to the options page, but other classes
169
  return;
170
  }
171
 
172
+ if ( !current_user_can( $this->capability ) ) {
173
+ wp_die( __('You do not have sufficient permissions to access this page.') );
174
+ }
175
+
176
  $current_page = $this->get_current_page( $_GET );
177
 
178
  ?>
lib/simple-admin-pages/classes/AdminPageSection.class.php CHANGED
@@ -7,7 +7,7 @@
7
  * @package Simple Admin Pages
8
  */
9
 
10
- class sapAdminPageSection_2_0_a_7 {
11
 
12
  // Page defaults
13
  public $id; // unique id for this section
@@ -63,10 +63,45 @@ class sapAdminPageSection_2_0_a_7 {
63
  * @since 1.0
64
  */
65
  public function add_setting( $setting ) {
 
66
  if ( !$setting ) {
67
  return;
68
  }
69
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
  $this->settings[ $setting->id ] = $setting;
71
  }
72
 
7
  * @package Simple Admin Pages
8
  */
9
 
10
+ class sapAdminPageSection_2_0_a_9 {
11
 
12
  // Page defaults
13
  public $id; // unique id for this section
63
  * @since 1.0
64
  */
65
  public function add_setting( $setting ) {
66
+
67
  if ( !$setting ) {
68
  return;
69
  }
70
 
71
+ if ( $setting->has_position() ) {
72
+
73
+ // Top
74
+ if ( $setting->position[0] == 'top' ) {
75
+ $this->settings = array_merge( array( $setting->id => $setting ), $this->settings );
76
+ return;
77
+ }
78
+
79
+ // Position setting relative to another setting
80
+ if ( !empty( $setting->position[1] ) ) {
81
+
82
+ $new_settings = array();
83
+ foreach( $this->settings as $id => $current ) {
84
+
85
+ // Above
86
+ if ( $setting->position[1] == $id && $setting->position[0] == 'above' ) {
87
+ $new_settings[ $setting->id ] = $setting;
88
+ }
89
+
90
+ $new_settings[ $id ] = $current;
91
+
92
+ // Below
93
+ if ( $setting->position[1] == $id && $setting->position[0] == 'below' ) {
94
+ $new_settings[ $setting->id ] = $setting;
95
+ }
96
+ }
97
+
98
+ $this->settings = $new_settings;
99
+
100
+ return;
101
+ }
102
+ }
103
+
104
+ // Fallback to appending it at the end
105
  $this->settings[ $setting->id ] = $setting;
106
  }
107
 
lib/simple-admin-pages/classes/AdminPageSetting.Address.class.php CHANGED
@@ -7,7 +7,7 @@
7
  * @package Simple Admin Pages
8
  */
9
 
10
- class sapAdminPageSettingAddress_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
11
 
12
  /*
13
  * Size of this textarea
@@ -33,6 +33,27 @@ class sapAdminPageSettingAddress_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
33
 
34
  public $sanitize_callback = 'sanitize_text_field';
35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  /**
37
  * Escape the value to display it safely HTML textarea fields
38
  * @since 2.0.a.5
@@ -77,28 +98,12 @@ class sapAdminPageSettingAddress_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
77
  * @since 2.0.a.5
78
  */
79
  public function display_setting() {
80
-
81
- $strings = array(
82
- 'sep-lat-lon' => _x( ', ', 'separates latitude and longitude', SAP_TEXTDOMAIN ),
83
- 'no-setting' => __( 'No map coordinates set.', SAP_TEXTDOMAIN ),
84
- 'retrieving' => __( 'Requesting new coordinates', SAP_TEXTDOMAIN ),
85
- 'select' => __( 'Select a match below', SAP_TEXTDOMAIN ),
86
- 'view' => __( 'View', SAP_TEXTDOMAIN ),
87
- 'retrieve' => __( 'Retrieve map coordinates', SAP_TEXTDOMAIN ),
88
- 'remove' => __( 'Remove map coordinates', SAP_TEXTDOMAIN ),
89
- 'try_again' => __( 'Try again?', SAP_TEXTDOMAIN ),
90
- 'result_error' => __( 'Error', SAP_TEXTDOMAIN ),
91
- 'result_invalid' => __( 'Invalid request. Be sure to fill out the address field before retrieving coordinates.', SAP_TEXTDOMAIN ),
92
- 'result_denied' => __( 'Request denied.', SAP_TEXTDOMAIN ),
93
- 'result_limit' => __( 'Request denied because you are over your request quota.', SAP_TEXTDOMAIN ),
94
- 'result_empty' => __( 'Nothing was found at that address', SAP_TEXTDOMAIN ),
95
- );
96
 
97
  wp_localize_script(
98
  'sap-address',
99
  'sap_address',
100
  array(
101
- 'strings' => $strings,
102
  )
103
  );
104
 
@@ -112,20 +117,20 @@ class sapAdminPageSettingAddress_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
112
  <span class="dashicons dashicons-location-alt"></span>
113
  <span class="sap-map-coords">
114
  <?php if ( empty( $this->value['lat'] ) || empty( $this->value['lon'] ) ) : ?>
115
- <?php echo $strings['no-setting']; ?>
116
  <?php else : ?>
117
- <?php echo $this->value['lat'] . $strings['sep-lat-lon'] . $this->value['lon']; ?>
118
- <a href="//maps.google.com/maps?q=<?php echo esc_attr( $this->value['lat'] ) . ',' . esc_attr( $this->value['lon'] ); ?>" class="sap-view-coords" target="_blank"><?php echo $strings['view']; ?></a>
119
  <?php endif; ?>
120
  </span>
121
  </p>
122
  <p class="sap-coords-action-wrapper">
123
  <a href="#" class="sap-get-coords">
124
- <?php echo $strings['retrieve']; ?>
125
  </a>
126
- <?php _ex( ' | ', 'separator between admin action links in address component', SAP_TEXTDOMAIN ); ?>
127
  <a href="#" class="sap-remove-coords">
128
- <?php echo $strings['remove']; ?>
129
  </a>
130
  </p>
131
  <input type="hidden" class="lat" name="<?php echo $this->get_input_name(); ?>[lat]" value="<?php echo $this->value['lat']; ?>">
7
  * @package Simple Admin Pages
8
  */
9
 
10
+ class sapAdminPageSettingAddress_2_0_a_9 extends sapAdminPageSetting_2_0_a_9 {
11
 
12
  /*
13
  * Size of this textarea
33
 
34
  public $sanitize_callback = 'sanitize_text_field';
35
 
36
+ /**
37
+ * Translateable strings required for this component
38
+ * @since 2.0.a.8
39
+ */
40
+ public $strings = array(
41
+ 'sep-action-links' => null, // _x( ' | ', 'separator between admin action links in address component', 'textdomain' ),
42
+ 'sep-lat-lon' => null, // _x( ', ', 'separates latitude and longitude', 'textdomain' ),
43
+ 'no-setting' => null, // __( 'No map coordinates set.', 'textdomain' ),
44
+ 'retrieving' => null, // __( 'Requesting new coordinates', 'textdomain' ),
45
+ 'select' => null, // __( 'Select a match below', 'textdomain' ),
46
+ 'view' => null, // __( 'View', 'textdomain' ),
47
+ 'retrieve' => null, // __( 'Retrieve map coordinates', 'textdomain' ),
48
+ 'remove' => null, // __( 'Remove map coordinates', 'textdomain' ),
49
+ 'try_again' => null, // __( 'Try again?', 'textdomain' ),
50
+ 'result_error' => null, // __( 'Error', 'textdomain' ),
51
+ 'result_invalid' => null, // __( 'Invalid request. Be sure to fill out the address field before retrieving coordinates.', 'textdomain' ),
52
+ 'result_denied' => null, // __( 'Request denied.', 'textdomain' ),
53
+ 'result_limit' => null, // __( 'Request denied because you are over your request quota.', 'textdomain' ),
54
+ 'result_empty' => null, // __( 'Nothing was found at that address', 'textdomain' ),
55
+ );
56
+
57
  /**
58
  * Escape the value to display it safely HTML textarea fields
59
  * @since 2.0.a.5
98
  * @since 2.0.a.5
99
  */
100
  public function display_setting() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101
 
102
  wp_localize_script(
103
  'sap-address',
104
  'sap_address',
105
  array(
106
+ 'strings' => $this->strings,
107
  )
108
  );
109
 
117
  <span class="dashicons dashicons-location-alt"></span>
118
  <span class="sap-map-coords">
119
  <?php if ( empty( $this->value['lat'] ) || empty( $this->value['lon'] ) ) : ?>
120
+ <?php echo $this->strings['no-setting']; ?>
121
  <?php else : ?>
122
+ <?php echo $this->value['lat'] . $this->strings['sep-lat-lon'] . $this->value['lon']; ?>
123
+ <a href="//maps.google.com/maps?q=<?php echo esc_attr( $this->value['lat'] ) . ',' . esc_attr( $this->value['lon'] ); ?>" class="sap-view-coords" target="_blank"><?php echo $this->strings['view']; ?></a>
124
  <?php endif; ?>
125
  </span>
126
  </p>
127
  <p class="sap-coords-action-wrapper">
128
  <a href="#" class="sap-get-coords">
129
+ <?php echo $this->strings['retrieve']; ?>
130
  </a>
131
+ <?php echo $this->strings['sep-action-links']; ?>
132
  <a href="#" class="sap-remove-coords">
133
+ <?php echo $this->strings['remove']; ?>
134
  </a>
135
  </p>
136
  <input type="hidden" class="lat" name="<?php echo $this->get_input_name(); ?>[lat]" value="<?php echo $this->value['lat']; ?>">
lib/simple-admin-pages/classes/AdminPageSetting.Editor.class.php CHANGED
@@ -7,7 +7,7 @@
7
  * @package Simple Admin Pages
8
  */
9
 
10
- class sapAdminPageSettingEditor_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
11
 
12
  public $sanitize_callback = 'wp_kses_post';
13
 
7
  * @package Simple Admin Pages
8
  */
9
 
10
+ class sapAdminPageSettingEditor_2_0_a_9 extends sapAdminPageSetting_2_0_a_9 {
11
 
12
  public $sanitize_callback = 'wp_kses_post';
13
 
lib/simple-admin-pages/classes/AdminPageSetting.HTML.class.php CHANGED
@@ -14,7 +14,7 @@
14
  * @package Simple Admin Pages
15
  */
16
 
17
- class sapAdminPageSettingHTML_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
18
 
19
  public $sanitize_callback = 'sanitize_text_field';
20
 
14
  * @package Simple Admin Pages
15
  */
16
 
17
+ class sapAdminPageSettingHTML_2_0_a_9 extends sapAdminPageSetting_2_0_a_9 {
18
 
19
  public $sanitize_callback = 'sanitize_text_field';
20
 
lib/simple-admin-pages/classes/AdminPageSetting.OpeningHours.class.php CHANGED
@@ -25,7 +25,7 @@
25
  * @package Simple Admin Pages
26
  */
27
 
28
- class sapAdminPageSettingOpeningHours_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
29
 
30
  public $sanitize_callback = 'sanitize_text_field';
31
 
25
  * @package Simple Admin Pages
26
  */
27
 
28
+ class sapAdminPageSettingOpeningHours_2_0_a_9 extends sapAdminPageSetting_2_0_a_9 {
29
 
30
  public $sanitize_callback = 'sanitize_text_field';
31
 
lib/simple-admin-pages/classes/AdminPageSetting.Scheduler.class.php CHANGED
@@ -10,10 +10,10 @@
10
  * @package Simple Admin Pages
11
  */
12
 
13
- class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
14
 
15
  public $sanitize_callback = 'sanitize_text_field';
16
-
17
  /**
18
  * Scripts that must be loaded for this component
19
  * @since 2.0.a.4
@@ -22,31 +22,31 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
22
  'pickadate' => array(
23
  'path' => 'lib/pickadate/picker.js',
24
  'dependencies' => array( 'jquery' ),
25
- 'version' => '3.5.0',
26
  'footer' => true,
27
  ),
28
  'pickadate-date' => array(
29
  'path' => 'lib/pickadate/picker.date.js',
30
  'dependencies' => array( 'jquery' ),
31
- 'version' => '3.5.0',
32
  'footer' => true,
33
  ),
34
  'pickadate-time' => array(
35
  'path' => 'lib/pickadate/picker.time.js',
36
  'dependencies' => array( 'jquery' ),
37
- 'version' => '3.5.0',
38
  'footer' => true,
39
  ),
40
  'pickadate-legacy' => array(
41
  'path' => 'lib/pickadate/legacy.js',
42
  'dependencies' => array( 'jquery' ),
43
- 'version' => '3.5.0',
44
  'footer' => true,
45
  ),
46
  'sap-scheduler' => array(
47
  'path' => 'js/scheduler.js',
48
  'dependencies' => array( 'jquery' ),
49
- 'version' => '2.0.a.5',
50
  'footer' => true,
51
  ),
52
  // @todo there should be some way to load alternate language .js files
@@ -78,6 +78,9 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
78
  ),
79
  );
80
 
 
 
 
81
  public $weekdays = array(
82
  'monday' => 'Mo',
83
  'tuesday' => 'Tu',
@@ -88,6 +91,9 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
88
  'sunday' => 'Su',
89
  );
90
 
 
 
 
91
  public $weeks = array(
92
  'first' => '1st',
93
  'second' => '2nd',
@@ -96,6 +102,36 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
96
  'last' => 'last',
97
  );
98
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  /**
100
  * Number of minutes between time selection intervals
101
  */
@@ -139,11 +175,9 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
139
  public $disable_end_time = false;
140
 
141
  /**
142
- * Array containing strings for schedule summaries. See the default
143
- * summaries at set_schedule_summaries(). Use this to overwrite the defaults
144
- * with anything more useful to this instance.
145
  */
146
- public $instance_schedule_summaries;
147
 
148
  /**
149
  * Escape the value to display it in text fields and other input fields
@@ -223,6 +257,7 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
223
  'disable_weeks' => $this->disable_weeks,
224
  'disable_date' => $this->disable_date,
225
  'disable_time' => $this->disable_time,
 
226
  'summaries' => $this->schedule_summaries,
227
  );
228
 
@@ -261,9 +296,10 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
261
  }
262
  ?>
263
  </div>
264
- <div class="sap-add-scheduler">
 
265
  <a href="#" class="button">
266
- <?php _e( 'Add new scheduling rule', SAP_TEXTDOMAIN ); ?>
267
  </a>
268
  </div>
269
 
@@ -290,11 +326,11 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
290
  <li>
291
  <div class="dashicons dashicons-calendar"></div>
292
  <?php if ( $date_format == 'weekly' ) : ?>
293
- <?php _ex( 'Weekly', 'Format of a scheduling rule', SAP_TEXTDOMAIN ); ?>
294
  <?php elseif ( $date_format == 'monthly' ) : ?>
295
- <?php _ex( 'Monthly', 'Format of a scheduling rule', SAP_TEXTDOMAIN ); ?>
296
  <?php elseif ( $date_format == 'date' ) : ?>
297
- <?php _ex( 'Date', 'Format of a scheduling rule', SAP_TEXTDOMAIN ); ?>
298
  <?php endif; ?>
299
  </li>
300
  <?php else : ?>
@@ -303,7 +339,7 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
303
  <li>
304
  <div class="dashicons dashicons-calendar"></div>
305
  <a href="#" data-format="weekly"<?php echo $date_format == 'weekly' ? ' class="selected"' : ''; ?>>
306
- <?php _ex( 'Weekly', 'Format of a scheduling rule', SAP_TEXTDOMAIN ); ?>
307
  </a>
308
  </li>
309
  <?php endif; ?>
@@ -311,7 +347,7 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
311
  <?php if ( $this->disable_weeks === false ) : ?>
312
  <li>
313
  <a href="#" data-format="monthly"<?php echo $date_format == 'monthly' ? ' class="selected"' : ''; ?>>
314
- <?php _ex( 'Monthly', 'Format of a scheduling rule', SAP_TEXTDOMAIN ); ?>
315
  </a>
316
  </li>
317
  <?php endif; ?>
@@ -319,7 +355,7 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
319
  <?php if ( $this->disable_date === false ) : ?>
320
  <li>
321
  <a href="#" data-format="date"<?php echo $date_format == 'date' ? ' class="selected"' : ''; ?>>
322
- <?php _ex( 'Date', 'Format of a scheduling rule', SAP_TEXTDOMAIN ); ?>
323
  </a>
324
  </li>
325
  <?php endif; ?>
@@ -330,7 +366,7 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
330
  <?php if ( $this->disable_weekdays === false ) : ?>
331
  <ul class="sap-scheduler-weekdays">
332
  <li class="label">
333
- <?php _ex( 'Days of the week', 'Label for selecting days of the week in a scheduling rule', SAP_TEXTDOMAIN ); ?>
334
  </li>
335
  <?php
336
  foreach ( $this->weekdays as $slug => $label ) :
@@ -346,7 +382,7 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
346
  <?php if ( $this->disable_weeks === false ) : ?>
347
  <ul class="sap-scheduler-weeks">
348
  <li class="label">
349
- <?php _ex( 'Weeks of the month', 'Label for selecting weeks of the month in a scheduling rule', SAP_TEXTDOMAIN ); ?>
350
  </li>
351
  <?php
352
  foreach ( $this->weeks as $slug => $label ) :
@@ -362,7 +398,7 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
362
  <?php if ( $this->disable_date === false ) : ?>
363
  <div class="sap-scheduler-date-input">
364
  <label for="<?php echo $this->get_input_name(); ?>[<?php echo $id; ?>][date]">
365
- <?php _e( 'Date', SAP_TEXTDOMAIN ); ?>
366
  </label>
367
  <input type="text" name="<?php echo $this->get_input_name(); ?>[<?php echo $id; ?>][date]" id="<?php echo $this->get_input_name(); ?>[<?php echo $id; ?>][date]" value="<?php echo empty( $values['date'] ) ? '' : $values['date']; ?>">
368
  </div>
@@ -377,12 +413,12 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
377
  <li>
378
  <div class="dashicons dashicons-clock"></div>
379
  <a href="#" data-format="time-slot"<?php echo $time_format == 'time-slot' ? ' class="selected"' : ''; ?>>
380
- <?php _ex( 'Time', 'Label to select time slot for a scheduling rule', SAP_TEXTDOMAIN ); ?>
381
  </a>
382
  </li>
383
  <li>
384
  <a href="#" data-format="all-day"<?php echo $time_format == 'all-day' ? ' class="selected"' : ''; ?>>
385
- <?php _ex( 'All day', 'Label to set a scheduling rule to last all day', SAP_TEXTDOMAIN ); ?>
386
  </a>
387
  </li>
388
  </ul>
@@ -391,7 +427,7 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
391
 
392
  <div class="start">
393
  <label for="<?php echo $this->get_input_name(); ?>[<?php echo $id; ?>][time][start]">
394
- <?php _ex( 'Start', 'Label for the starting time of a scheduling rule', SAP_TEXTDOMAIN ); ?>
395
  </label>
396
  <input type="text" name="<?php echo $this->get_input_name() . '[' . $id . '][time][start]'; ?>" id="<?php echo $this->get_input_name() . '[' . $id . '][time][start]'; ?>" value="<?php echo empty( $values['time']['start'] ) ? '' : $values['time']['start']; ?>">
397
  </div>
@@ -399,7 +435,7 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
399
  <?php if ( $this->disable_end_time === false ) : ?>
400
  <div class="end">
401
  <label for="<?php echo $this->get_input_name(); ?>[<?php echo $id; ?>][time][end]">
402
- <?php _ex( 'End', 'Label for the ending time of a scheduling rule', SAP_TEXTDOMAIN ); ?>
403
  </label>
404
  <input type="text" name="<?php echo $this->get_input_name() . '[' . $id . '][time][end]'; ?>" id="<?php echo $this->get_input_name() . '[' . $id . '][time][end]'; ?>" value="<?php echo empty( $values['time']['end'] ) ? '' : $values['time']['end']; ?>">
405
  </div>
@@ -408,7 +444,7 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
408
  </div>
409
 
410
  <div class="sap-scheduler-all-day">
411
- <?php _ex( 'All day long. Want to <a href="#" data-format="time-slot">set a time slot</a>?', 'Prompt displayed when a scheduling rule is set without any time restrictions.', SAP_TEXTDOMAIN ); ?>
412
  </div>
413
 
414
  </div>
@@ -427,16 +463,16 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
427
  <?php endif; ?>
428
  </div>
429
  <div class="sap-scheduler-control">
430
- <a href="#" class="toggle" title="<?php _e( 'Open and close this rule', SAP_TEXTDOMAIN ); ?>">
431
  <div class="dashicons dashicons-<?php echo $list ? 'edit' : 'arrow-up-alt2'; ?>"></div>
432
  <span class="screen-reader-text">
433
- <?php _e( 'Open and close this rule', SAP_TEXTDOMAIN ); ?>
434
  </span>
435
  </a>
436
- <a href="#" class="delete" title="<?php _e( 'Delete rule', SAP_TEXTDOMAIN ); ?>">
437
  <div class="dashicons dashicons-dismiss"></div>
438
  <span class="screen-reader-text">
439
- <?php _e( 'Delete scheduling rule', SAP_TEXTDOMAIN ); ?>
440
  </span>
441
  </a>
442
  </div>
@@ -520,19 +556,15 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
520
  }
521
 
522
  $this->schedule_summaries = array(
523
- 'never' => _x( 'Never', 'Brief default description of a scheduling rule when no weekdays or weeks are included in the rule.', SAP_TEXTDOMAIN ),
524
- 'weekly_always' => _x( 'Every day', 'Brief default description of a scheduling rule when all the weekdays/weeks are included in the rule.', SAP_TEXTDOMAIN ),
525
- 'monthly_weekdays' => _x( '{days} on the {weeks} week of the month', 'Brief default description of a scheduling rule when some weekdays are included on only some weeks of the month. The {days} and {weeks} bits should be left alone and will be replaced by a comma-separated list of days (the first one) and weeks (the second one) in the following format: M, T, W on the first, second week of the month', SAP_TEXTDOMAIN ),
526
- 'monthly_weeks' => _x( '{weeks} week of the month', 'Brief description of a scheduling rule when some weeks of the month are included but all or no weekdays are selected. {weeks} should be left alone and will be replaced by a comma-separated list of weeks (the second one) in the following format: First, second week of the month', SAP_TEXTDOMAIN ),
527
- 'all_day' => _x( 'All day', 'Brief default description of a scheduling rule when no times are set', SAP_TEXTDOMAIN ),
528
- 'before' => _x( 'Ends at', 'Brief default description of a scheduling rule when an end time is set but no start time. If the end time is 6pm, it will read: Ends at 6pm.', SAP_TEXTDOMAIN ),
529
- 'after' => _x( 'Starts at', 'Brief default description of a scheduling rule when a start time is set but no end time. If the start time is 6pm, it will read: Starts at 6pm.', SAP_TEXTDOMAIN ),
530
- 'separator' => _x( '&mdash;', 'Default separator between times of a scheduling rule.', SAP_TEXTDOMAIN ),
531
  );
532
-
533
- if ( !empty( $this->instance_schedule_summaries ) ) {
534
- $this->schedule_summaries = array_merge( $this->schedule_summaries, $this->instance_schedule_summaries );
535
- }
536
  }
537
 
538
  /**
@@ -612,7 +644,7 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
612
  public function sanitize_callback_wrapper( $values ) {
613
 
614
  $output = array();
615
-
616
  if ( !is_array( $values ) || !count( $values ) ) {
617
  return $output;
618
  }
@@ -658,6 +690,11 @@ class sapAdminPageSettingScheduler_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
658
  }
659
  }
660
 
 
 
 
 
 
661
  return $output;
662
  }
663
 
10
  * @package Simple Admin Pages
11
  */
12
 
13
+ class sapAdminPageSettingScheduler_2_0_a_9 extends sapAdminPageSetting_2_0_a_9 {
14
 
15
  public $sanitize_callback = 'sanitize_text_field';
16
+
17
  /**
18
  * Scripts that must be loaded for this component
19
  * @since 2.0.a.4
22
  'pickadate' => array(
23
  'path' => 'lib/pickadate/picker.js',
24
  'dependencies' => array( 'jquery' ),
25
+ 'version' => '3.5.5',
26
  'footer' => true,
27
  ),
28
  'pickadate-date' => array(
29
  'path' => 'lib/pickadate/picker.date.js',
30
  'dependencies' => array( 'jquery' ),
31
+ 'version' => '3.5.5',
32
  'footer' => true,
33
  ),
34
  'pickadate-time' => array(
35
  'path' => 'lib/pickadate/picker.time.js',
36
  'dependencies' => array( 'jquery' ),
37
+ 'version' => '3.5.5',
38
  'footer' => true,
39
  ),
40
  'pickadate-legacy' => array(
41
  'path' => 'lib/pickadate/legacy.js',
42
  'dependencies' => array( 'jquery' ),
43
+ 'version' => '3.5.5',
44
  'footer' => true,
45
  ),
46
  'sap-scheduler' => array(
47
  'path' => 'js/scheduler.js',
48
  'dependencies' => array( 'jquery' ),
49
+ 'version' => '2.0.a.9',
50
  'footer' => true,
51
  ),
52
  // @todo there should be some way to load alternate language .js files
78
  ),
79
  );
80
 
81
+ /**
82
+ * Used for data storage. Not translated
83
+ */
84
  public $weekdays = array(
85
  'monday' => 'Mo',
86
  'tuesday' => 'Tu',
91
  'sunday' => 'Su',
92
  );
93
 
94
+ /**
95
+ * Used for data storage. Not translated
96
+ */
97
  public $weeks = array(
98
  'first' => '1st',
99
  'second' => '2nd',
102
  'last' => 'last',
103
  );
104
 
105
+ /**
106
+ * Translateable strings required for this component
107
+ * @since 2.0.a.8
108
+ */
109
+ public $strings = array(
110
+ 'add_rule' => null, // __( 'Add new scheduling rule', 'textdomain' ),
111
+ 'weekly' => null, // _x( 'Weekly', 'Format of a scheduling rule', 'textdomain' ),
112
+ 'monthly' => null, // _x( 'Monthly', 'Format of a scheduling rule', 'textdomain' ),
113
+ 'date' => null, // _x( 'Date', 'Format of a scheduling rule', 'textdomain' ),
114
+ 'weekdays' => null, // _x( 'Days of the week', 'Label for selecting days of the week in a scheduling rule', 'textdomain' ),
115
+ 'month_weeks' => null, // _x( 'Weeks of the month', 'Label for selecting weeks of the month in a scheduling rule', 'textdomain' ),
116
+ 'date_label' => null, // _x( 'Date', 'Label to select a date for a scheduling rule', 'textdomain' ),
117
+ 'time_label' => null, // _x( 'Time', 'Label to select a time slot for a scheduling rule', 'textdomain' ),
118
+ 'allday' => null, // _x( 'All day', 'Label to set a scheduling rule to last all day', 'textdomain' ),
119
+ 'start' => null, // _x( 'Start', 'Label for the starting time of a scheduling rule', 'textdomain' ),
120
+ 'end' => null, // _x( 'End', 'Label for the ending time of a scheduling rule', 'textdomain' ),
121
+ 'set_time_prompt' => null, // _x( 'All day long. Want to %sset a time slot%s?', 'Prompt displayed when a scheduling rule is set without any time restrictions', 'textdomain' ),
122
+ 'toggle' => null, // _x( 'Open and close this rule', 'Toggle a scheduling rule open and closed', 'textdomain' ),
123
+ 'delete' => null, // _x( 'Delete rule', 'Delete a scheduling rule', 'textdomain' ),
124
+ 'delete_schedule' => null, // __( 'Delete scheduling rule', 'textdomain' ),
125
+ 'never' => null, // _x( 'Never', 'Brief default description of a scheduling rule when no weekdays or weeks are included in the rule', 'textdomain' ),
126
+ 'weekly_always' => null, // _x( 'Every day', 'Brief default description of a scheduling rule when all the weekdays/weeks are included in the rule', 'textdomain' ),
127
+ 'monthly_weekdays' => null, // _x( '%s on the %s week of the month', 'Brief default description of a scheduling rule when some weekdays are included on only some weeks of the month. %s should be left alone and will be replaced by a comma-separated list of days and weeks in the following format: M, T, W on the first, second week of the month', 'textdomain' ),
128
+ 'monthly_weeks' => null, // _x( '%s week of the month', 'Brief default description of a scheduling rule when some weeks of the month are included but all or no weekdays are selected. %s should be left alone and will be replaced by a comma-separated list of weeks in the following format: First, second week of the month', 'textdomain' ),
129
+ 'all_day' => null, // _x( 'All day', 'Brief default description of a scheduling rule when no times are set', 'textdomain' ),
130
+ 'before' => null, // _x( 'Ends at', 'Brief default description of a scheduling rule when an end time is set but no start time. If the end time is 6pm, it will read: Ends at 6pm', 'textdomain' ),
131
+ 'after' => null, // _x( 'Starts at', 'Brief default description of a scheduling rule when a start time is set but no end time. If the start time is 6pm, it will read: Starts at 6pm', 'textdomain' ),
132
+ 'separator' => null, // _x( '&mdash;', 'Separator between times of a scheduling rule', 'textdomain' ),
133
+ );
134
+
135
  /**
136
  * Number of minutes between time selection intervals
137
  */
175
  public $disable_end_time = false;
176
 
177
  /**
178
+ * Boolean to disable multiple rules per component
 
 
179
  */
180
+ public $disable_multiple = false;
181
 
182
  /**
183
  * Escape the value to display it in text fields and other input fields
257
  'disable_weeks' => $this->disable_weeks,
258
  'disable_date' => $this->disable_date,
259
  'disable_time' => $this->disable_time,
260
+ 'disable_multiple' => $this->disable_multiple,
261
  'summaries' => $this->schedule_summaries,
262
  );
263
 
296
  }
297
  ?>
298
  </div>
299
+
300
+ <div class="sap-add-scheduler<?php if ( $this->disable_multiple && count( $this->value ) ) : ?> disabled<?php endif; ?>">
301
  <a href="#" class="button">
302
+ <?php echo $this->strings['add_rule']; ?>
303
  </a>
304
  </div>
305
 
326
  <li>
327
  <div class="dashicons dashicons-calendar"></div>
328
  <?php if ( $date_format == 'weekly' ) : ?>
329
+ <?php echo $this->strings['weekly']; ?>
330
  <?php elseif ( $date_format == 'monthly' ) : ?>
331
+ <?php echo $this->strings['monthly']; ?>
332
  <?php elseif ( $date_format == 'date' ) : ?>
333
+ <?php echo $this->strings['date']; ?>
334
  <?php endif; ?>
335
  </li>
336
  <?php else : ?>
339
  <li>
340
  <div class="dashicons dashicons-calendar"></div>
341
  <a href="#" data-format="weekly"<?php echo $date_format == 'weekly' ? ' class="selected"' : ''; ?>>
342
+ <?php echo $this->strings['weekly']; ?>
343
  </a>
344
  </li>
345
  <?php endif; ?>
347
  <?php if ( $this->disable_weeks === false ) : ?>
348
  <li>
349
  <a href="#" data-format="monthly"<?php echo $date_format == 'monthly' ? ' class="selected"' : ''; ?>>
350
+ <?php echo $this->strings['monthly']; ?>
351
  </a>
352
  </li>
353
  <?php endif; ?>
355
  <?php if ( $this->disable_date === false ) : ?>
356
  <li>
357
  <a href="#" data-format="date"<?php echo $date_format == 'date' ? ' class="selected"' : ''; ?>>
358
+ <?php echo $this->strings['date']; ?>
359
  </a>
360
  </li>
361
  <?php endif; ?>
366
  <?php if ( $this->disable_weekdays === false ) : ?>
367
  <ul class="sap-scheduler-weekdays">
368
  <li class="label">
369
+ <?php echo $this->strings['weekdays']; ?>
370
  </li>
371
  <?php
372
  foreach ( $this->weekdays as $slug => $label ) :
382
  <?php if ( $this->disable_weeks === false ) : ?>
383
  <ul class="sap-scheduler-weeks">
384
  <li class="label">
385
+ <?php echo $this->strings['month_weeks']; ?>
386
  </li>
387
  <?php
388
  foreach ( $this->weeks as $slug => $label ) :
398
  <?php if ( $this->disable_date === false ) : ?>
399
  <div class="sap-scheduler-date-input">
400
  <label for="<?php echo $this->get_input_name(); ?>[<?php echo $id; ?>][date]">
401
+ <?php echo $this->strings['date_label']; ?>
402
  </label>
403
  <input type="text" name="<?php echo $this->get_input_name(); ?>[<?php echo $id; ?>][date]" id="<?php echo $this->get_input_name(); ?>[<?php echo $id; ?>][date]" value="<?php echo empty( $values['date'] ) ? '' : $values['date']; ?>">
404
  </div>
413
  <li>
414
  <div class="dashicons dashicons-clock"></div>
415
  <a href="#" data-format="time-slot"<?php echo $time_format == 'time-slot' ? ' class="selected"' : ''; ?>>
416
+ <?php echo $this->strings['time_label']; ?>
417
  </a>
418
  </li>
419
  <li>
420
  <a href="#" data-format="all-day"<?php echo $time_format == 'all-day' ? ' class="selected"' : ''; ?>>
421
+ <?php echo $this->strings['allday']; ?>
422
  </a>
423
  </li>
424
  </ul>
427
 
428
  <div class="start">
429
  <label for="<?php echo $this->get_input_name(); ?>[<?php echo $id; ?>][time][start]">
430
+ <?php echo $this->strings['start']; ?>
431
  </label>
432
  <input type="text" name="<?php echo $this->get_input_name() . '[' . $id . '][time][start]'; ?>" id="<?php echo $this->get_input_name() . '[' . $id . '][time][start]'; ?>" value="<?php echo empty( $values['time']['start'] ) ? '' : $values['time']['start']; ?>">
433
  </div>
435
  <?php if ( $this->disable_end_time === false ) : ?>
436
  <div class="end">
437
  <label for="<?php echo $this->get_input_name(); ?>[<?php echo $id; ?>][time][end]">
438
+ <?php echo $this->strings['end']; ?>
439
  </label>
440
  <input type="text" name="<?php echo $this->get_input_name() . '[' . $id . '][time][end]'; ?>" id="<?php echo $this->get_input_name() . '[' . $id . '][time][end]'; ?>" value="<?php echo empty( $values['time']['end'] ) ? '' : $values['time']['end']; ?>">
441
  </div>
444
  </div>
445
 
446
  <div class="sap-scheduler-all-day">
447
+ <?php printf( $this->strings['set_time_prompt'], '<a href="#" data-format="time-slot">', '</a>' ); ?>
448
  </div>
449
 
450
  </div>
463
  <?php endif; ?>
464
  </div>
465
  <div class="sap-scheduler-control">
466
+ <a href="#" class="toggle" title="<?php echo $this->strings['toggle']; ?>">
467
  <div class="dashicons dashicons-<?php echo $list ? 'edit' : 'arrow-up-alt2'; ?>"></div>
468
  <span class="screen-reader-text">
469
+ <?php echo $this->strings['toggle']; ?>
470
  </span>
471
  </a>
472
+ <a href="#" class="delete" title="<?php echo $this->strings['delete']; ?>">
473
  <div class="dashicons dashicons-dismiss"></div>
474
  <span class="screen-reader-text">
475
+ <?php echo $this->strings['delete_schedule']; ?>
476
  </span>
477
  </a>
478
  </div>
556
  }
557
 
558
  $this->schedule_summaries = array(
559
+ 'never' => $this->strings['never'],
560
+ 'weekly_always' => $this->strings['weekly_always'],
561
+ 'monthly_weekdays' => sprintf( $this->strings['monthly_weekdays'], '{days}', '{weeks}' ),
562
+ 'monthly_weeks' => sprintf( $this->strings['monthly_weeks'], '{weeks}' ),
563
+ 'all_day' => $this->strings['all_day'],
564
+ 'before' => $this->strings['before'],
565
+ 'after' => $this->strings['after'],
566
+ 'separator' => $this->strings['separator'],
567
  );
 
 
 
 
568
  }
569
 
570
  /**
644
  public function sanitize_callback_wrapper( $values ) {
645
 
646
  $output = array();
647
+
648
  if ( !is_array( $values ) || !count( $values ) ) {
649
  return $output;
650
  }
690
  }
691
  }
692
 
693
+ // Only return the first rule if multiple rules are disabled
694
+ if ( $this->disable_multiple && count( $output ) > 1 ) {
695
+ $output = array( array_shift( $output ) );
696
+ }
697
+
698
  return $output;
699
  }
700
 
lib/simple-admin-pages/classes/AdminPageSetting.Select.class.php CHANGED
@@ -21,7 +21,7 @@
21
  * @package Simple Admin Pages
22
  */
23
 
24
- class sapAdminPageSettingSelect_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
25
 
26
  public $sanitize_callback = 'sanitize_text_field';
27
 
21
  * @package Simple Admin Pages
22
  */
23
 
24
+ class sapAdminPageSettingSelect_2_0_a_9 extends sapAdminPageSetting_2_0_a_9 {
25
 
26
  public $sanitize_callback = 'sanitize_text_field';
27
 
lib/simple-admin-pages/classes/AdminPageSetting.SelectPost.class.php CHANGED
@@ -17,7 +17,7 @@
17
  * @package Simple Admin Pages
18
  */
19
 
20
- class sapAdminPageSettingSelectPost_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
21
 
22
  public $sanitize_callback = 'intval';
23
 
@@ -36,7 +36,7 @@ class sapAdminPageSettingSelectPost_2_0_a_7 extends sapAdminPageSetting_2_0_a_7
36
  */
37
  public function display_setting() {
38
 
39
- $posts = get_posts( $this->args );
40
 
41
  ?>
42
 
@@ -46,14 +46,16 @@ class sapAdminPageSettingSelectPost_2_0_a_7 extends sapAdminPageSetting_2_0_a_7
46
  <option></option>
47
  <?php endif; ?>
48
 
49
- <?php foreach ( $posts as $post ) : ?>
50
- <option value="<?php echo esc_attr( $post->ID ); ?>"<?php if( $this->value == $post->ID ) : ?> selected="selected"<?php endif; ?>><?php echo esc_html( $post->post_title ); ?></option>
51
- <?php endforeach; ?>
52
 
53
  </select>
54
 
55
  <?php
56
 
 
 
57
  $this->display_description();
58
 
59
  }
17
  * @package Simple Admin Pages
18
  */
19
 
20
+ class sapAdminPageSettingSelectPost_2_0_a_9 extends sapAdminPageSetting_2_0_a_9 {
21
 
22
  public $sanitize_callback = 'intval';
23
 
36
  */
37
  public function display_setting() {
38
 
39
+ $posts = new WP_Query( $this->args );
40
 
41
  ?>
42
 
46
  <option></option>
47
  <?php endif; ?>
48
 
49
+ <?php while( $posts->have_posts() ) : $posts->next_post(); ?>
50
+ <option value="<?php echo absint( $posts->post->ID ); ?>" <?php selected( $this->value, $posts->post->ID ); ?>><?php echo esc_attr( $posts->post->post_title ); ?></option>
51
+ <?php endwhile; ?>
52
 
53
  </select>
54
 
55
  <?php
56
 
57
+ wp_reset_postdata();
58
+
59
  $this->display_description();
60
 
61
  }
lib/simple-admin-pages/classes/AdminPageSetting.SelectTaxonomy.class.php CHANGED
@@ -19,7 +19,7 @@
19
  * @package Simple Admin Pages
20
  */
21
 
22
- class sapAdminPageSettingSelectTaxonomy_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
23
 
24
  public $sanitize_callback = 'intval';
25
 
19
  * @package Simple Admin Pages
20
  */
21
 
22
+ class sapAdminPageSettingSelectTaxonomy_2_0_a_9 extends sapAdminPageSetting_2_0_a_9 {
23
 
24
  public $sanitize_callback = 'intval';
25
 
lib/simple-admin-pages/classes/AdminPageSetting.Text.class.php CHANGED
@@ -7,7 +7,7 @@
7
  * @package Simple Admin Pages
8
  */
9
 
10
- class sapAdminPageSettingText_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
11
 
12
  public $sanitize_callback = 'sanitize_text_field';
13
 
7
  * @package Simple Admin Pages
8
  */
9
 
10
+ class sapAdminPageSettingText_2_0_a_9 extends sapAdminPageSetting_2_0_a_9 {
11
 
12
  public $sanitize_callback = 'sanitize_text_field';
13
 
lib/simple-admin-pages/classes/AdminPageSetting.Textarea.class.php CHANGED
@@ -9,7 +9,7 @@
9
  * @todo textareas should have an option to swap new lines for <br>s
10
  */
11
 
12
- class sapAdminPageSettingTextarea_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
13
 
14
  /*
15
  * Size of this textarea
9
  * @todo textareas should have an option to swap new lines for <br>s
10
  */
11
 
12
+ class sapAdminPageSettingTextarea_2_0_a_9 extends sapAdminPageSetting_2_0_a_9 {
13
 
14
  /*
15
  * Size of this textarea
lib/simple-admin-pages/classes/AdminPageSetting.Toggle.class.php CHANGED
@@ -17,7 +17,7 @@
17
  * @package Simple Admin Pages
18
  */
19
 
20
- class sapAdminPageSettingToggle_2_0_a_7 extends sapAdminPageSetting_2_0_a_7 {
21
 
22
  public $sanitize_callback = 'sanitize_text_field';
23
 
17
  * @package Simple Admin Pages
18
  */
19
 
20
+ class sapAdminPageSettingToggle_2_0_a_9 extends sapAdminPageSetting_2_0_a_9 {
21
 
22
  public $sanitize_callback = 'sanitize_text_field';
23
 
lib/simple-admin-pages/classes/AdminPageSetting.class.php CHANGED
@@ -15,7 +15,7 @@
15
  * @package Simple Admin Pages
16
  */
17
 
18
- abstract class sapAdminPageSetting_2_0_a_7 {
19
 
20
  // Page defaults
21
  public $id; // used in form fields and database to track and store setting
@@ -26,7 +26,26 @@ abstract class sapAdminPageSetting_2_0_a_7 {
26
  // Array to store errors
27
  public $errors = array();
28
 
29
- /*
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  * Function to use when sanitizing the data
31
  *
32
  * We set this to a strict sanitization function as a default, but a
@@ -72,6 +91,23 @@ abstract class sapAdminPageSetting_2_0_a_7 {
72
  */
73
  );
74
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
  /**
76
  * Initialize the setting
77
  *
@@ -88,10 +124,8 @@ abstract class sapAdminPageSetting_2_0_a_7 {
88
  // Get any existing value
89
  $this->set_value();
90
 
91
- // Set an error if the object is missing necessary data
92
- if ( $this->missing_data() ) {
93
- $this->set_error();
94
- }
95
  }
96
 
97
  /**
@@ -117,7 +151,7 @@ abstract class sapAdminPageSetting_2_0_a_7 {
117
  * Check for missing data when setup.
118
  * @since 1.0
119
  */
120
- private function missing_data( ) {
121
 
122
  $error_type = 'missing_data';
123
 
@@ -138,6 +172,19 @@ abstract class sapAdminPageSetting_2_0_a_7 {
138
  )
139
  );
140
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
141
  }
142
 
143
  /**
@@ -258,4 +305,12 @@ abstract class sapAdminPageSetting_2_0_a_7 {
258
  )
259
  );
260
  }
 
 
 
 
 
 
 
 
261
  }
15
  * @package Simple Admin Pages
16
  */
17
 
18
+ abstract class sapAdminPageSetting_2_0_a_9 {
19
 
20
  // Page defaults
21
  public $id; // used in form fields and database to track and store setting
26
  // Array to store errors
27
  public $errors = array();
28
 
29
+ /**
30
+ * Position in section
31
+ *
32
+ * An array with two elements describing where this setting should
33
+ * be placed in its section. The first element describes a position
34
+ * and the second (optional) element identifies the id of an
35
+ * existing setting. Examples:
36
+ *
37
+ * array( 'bottom' ) // Default. bottom of section
38
+ * array( 'top' ) // top of section
39
+ * array( 'before', 'my-setting' ) // before a specific setting
40
+ * array( 'after', 'my-setting' ) // after a specific setting
41
+ *
42
+ * This setting is intended for use when you have to hook in after
43
+ * the settings page has been defined, such as adding a new setting
44
+ * from a third-party plugin.
45
+ */
46
+ public $position;
47
+
48
+ /**
49
  * Function to use when sanitizing the data
50
  *
51
  * We set this to a strict sanitization function as a default, but a
91
  */
92
  );
93
 
94
+ /**
95
+ * Translateable strings required for this component
96
+ *
97
+ * Settings classes which require translateable strings should be
98
+ * defined with string id's pointing to null values. The actual
99
+ * strings should be passed with the $sap->add_setting() call.
100
+ *
101
+ * @since 2.0.a.8
102
+ */
103
+ public $strings = array(
104
+ /**
105
+ * Example
106
+ *
107
+ 'string_id' => null
108
+ */
109
+ );
110
+
111
  /**
112
  * Initialize the setting
113
  *
124
  // Get any existing value
125
  $this->set_value();
126
 
127
+ // Check for missing data
128
+ $this->missing_data();
 
 
129
  }
130
 
131
  /**
151
  * Check for missing data when setup.
152
  * @since 1.0
153
  */
154
+ private function missing_data() {
155
 
156
  $error_type = 'missing_data';
157
 
172
  )
173
  );
174
  }
175
+
176
+ // Check for strings
177
+ foreach ( $this->strings as $id => $string ) {
178
+
179
+ if ( $string === null ) {
180
+ $this->set_error(
181
+ array(
182
+ 'type' => $error_type,
183
+ 'data' => 'string: ' . $id,
184
+ )
185
+ );
186
+ }
187
+ }
188
  }
189
 
190
  /**
305
  )
306
  );
307
  }
308
+
309
+ /**
310
+ * Check if a setting has a position
311
+ * @since 2.0.a.9
312
+ */
313
+ public function has_position() {
314
+ return !empty( $this->position ) && is_array( $this->position ) && !empty( $this->position[0] );
315
+ }
316
  }
lib/simple-admin-pages/classes/Library.class.php CHANGED
@@ -1,5 +1,5 @@
1
  <?php
2
- if ( !class_exists( 'sapLibrary_2_0_a_7' ) ) {
3
  /**
4
  * This library class loads and provides access to the correct version of the
5
  * Simple Admin Pages library.
@@ -7,10 +7,10 @@ if ( !class_exists( 'sapLibrary_2_0_a_7' ) ) {
7
  * @since 1.0
8
  * @package Simple Admin Pages
9
  */
10
- class sapLibrary_2_0_a_7 {
11
 
12
  // Version of the library
13
- private $version = '2.0.a.7';
14
 
15
  // A full URL to the library which is used to correctly link scripts and
16
  // stylesheets.
@@ -383,7 +383,7 @@ class sapLibrary_2_0_a_7 {
383
  public function enqueue_scripts() {
384
 
385
  $screen = get_current_screen();
386
-
387
  foreach ( $this->pages as $page_id => $page ) {
388
 
389
  // Only enqueue assets for the current page
1
  <?php
2
+ if ( !class_exists( 'sapLibrary_2_0_a_9' ) ) {
3
  /**
4
  * This library class loads and provides access to the correct version of the
5
  * Simple Admin Pages library.
7
  * @since 1.0
8
  * @package Simple Admin Pages
9
  */
10
+ class sapLibrary_2_0_a_9 {
11
 
12
  // Version of the library
13
+ private $version = '2.0.a.9';
14
 
15
  // A full URL to the library which is used to correctly link scripts and
16
  // stylesheets.
383
  public function enqueue_scripts() {
384
 
385
  $screen = get_current_screen();
386
+
387
  foreach ( $this->pages as $page_id => $page ) {
388
 
389
  // Only enqueue assets for the current page
lib/simple-admin-pages/css/admin.css CHANGED
@@ -189,6 +189,9 @@ input.sap-opening-hours-hours {
189
  .sap-scheduler-brief .date {
190
  margin-right: 1em;
191
  }
 
 
 
192
  @media (min-width: 783px) {
193
  .sap-selector li {
194
  font-size: 13px;
189
  .sap-scheduler-brief .date {
190
  margin-right: 1em;
191
  }
192
+ .sap-add-scheduler.disabled {
193
+ display: none;
194
+ }
195
  @media (min-width: 783px) {
196
  .sap-selector li {
197
  font-size: 13px;
lib/simple-admin-pages/js/address.js CHANGED
@@ -13,7 +13,7 @@ jQuery(document).ready(function ($) {
13
  control.find( '.sap-coords-result' ).remove();
14
  control.find( 'input.lat' ).val( lat );
15
  control.find( 'input.lon' ).val( lon );
16
-
17
  if ( lat == '' && lon == '' ) {
18
  control.find( '.sap-map-coords' ).text( lat + sap_address.strings['no-setting'] + lon ).attr( 'style', '' );
19
  } else {
@@ -31,7 +31,11 @@ jQuery(document).ready(function ($) {
31
  /**
32
  * Retrieve coordinates
33
  */
34
- $('.sap-get-coords').click( function() {
 
 
 
 
35
  var control = $(this).parent().parent();
36
  var address = control.find( 'textarea' ).val();
37
 
@@ -65,8 +69,8 @@ jQuery(document).ready(function ($) {
65
  }
66
 
67
  } else {
68
- sap_address_set_coords( control, control.find( 'input.lat' ).val(), control.find( 'input.lon' ).val() );
69
-
70
  if ( data.status == 'UNKNOWN_ERROR' ) {
71
  control.find( '.sap-coords-action-wrapper' ).prepend( '<div class="error">' + sap_address.strings.result_error + '</div>' );
72
  } else if ( data.status == 'INVALID_REQUEST' ) {
@@ -84,11 +88,15 @@ jQuery(document).ready(function ($) {
84
  }
85
  )
86
  });
87
-
88
  /**
89
  * Remove coordinates from settings
90
  */
91
- $('.sap-remove-coords').click( function() {
 
 
 
 
92
  var control = $(this).parent().parent();
93
  sap_address_set_coords( control, '', '' );
94
  });
13
  control.find( '.sap-coords-result' ).remove();
14
  control.find( 'input.lat' ).val( lat );
15
  control.find( 'input.lon' ).val( lon );
16
+
17
  if ( lat == '' && lon == '' ) {
18
  control.find( '.sap-map-coords' ).text( lat + sap_address.strings['no-setting'] + lon ).attr( 'style', '' );
19
  } else {
31
  /**
32
  * Retrieve coordinates
33
  */
34
+ $('.sap-get-coords').click( function(e) {
35
+
36
+ e.stopPropagation();
37
+ e.preventDefault();
38
+
39
  var control = $(this).parent().parent();
40
  var address = control.find( 'textarea' ).val();
41
 
69
  }
70
 
71
  } else {
72
+ sap_address_set_coords( control, control.find( 'input.lat' ).val(), control.find( 'input.lon' ).val() );
73
+
74
  if ( data.status == 'UNKNOWN_ERROR' ) {
75
  control.find( '.sap-coords-action-wrapper' ).prepend( '<div class="error">' + sap_address.strings.result_error + '</div>' );
76
  } else if ( data.status == 'INVALID_REQUEST' ) {
88
  }
89
  )
90
  });
91
+
92
  /**
93
  * Remove coordinates from settings
94
  */
95
+ $('.sap-remove-coords').click( function(e) {
96
+
97
+ e.stopPropagation();
98
+ e.preventDefault();
99
+
100
  var control = $(this).parent().parent();
101
  sap_address_set_coords( control, '', '' );
102
  });
lib/simple-admin-pages/js/scheduler.js CHANGED
@@ -182,6 +182,13 @@ jQuery(document).ready(function ($) {
182
  $(this).attr( 'id', name );
183
  });
184
  });
 
 
 
 
 
 
 
185
  });
186
 
187
  return false;
@@ -356,7 +363,13 @@ jQuery(document).ready(function ($) {
356
  /**
357
  * Add a new scheduler panel
358
  */
359
- $( '.sap-add-scheduler a' ).click( function() {
 
 
 
 
 
 
360
  var scheduler = $(this).parent().siblings( '.sap-scheduler' );
361
  var scheduler_id = scheduler.attr( 'id' );
362
  var scheduler_settings = sap_scheduler.settings[ scheduler_id ];
@@ -365,8 +378,26 @@ jQuery(document).ready(function ($) {
365
  sap_scheduler_register_timepicker( scheduler.last( '#' + scheduler_id + ' .sap-scheduler-rule' ).find( '.sap-scheduler-time-input input[type="text"]' ) );
366
  sap_scheduler_register_events();
367
 
 
 
 
 
 
368
  return false;
369
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
370
  }
371
 
372
  });
182
  $(this).attr( 'id', name );
183
  });
184
  });
185
+
186
+ // Show the add rule button when multiple rules are
187
+ // disabled and there are no more children
188
+ var scheduler_id = scheduler.attr( 'id' );
189
+ if ( sap_scheduler.settings[scheduler_id].disable_multiple && !scheduler.children().length ) {
190
+ sap_scheduler_toggle_button( true, scheduler );
191
+ }
192
  });
193
 
194
  return false;
363
  /**
364
  * Add a new scheduler panel
365
  */
366
+ $( '.sap-add-scheduler a' ).click( function(e) {
367
+
368
+ if ( $(this).parent().hasClass( 'disabled' ) ) {
369
+ e.preventDefault();
370
+ return;
371
+ }
372
+
373
  var scheduler = $(this).parent().siblings( '.sap-scheduler' );
374
  var scheduler_id = scheduler.attr( 'id' );
375
  var scheduler_settings = sap_scheduler.settings[ scheduler_id ];
378
  sap_scheduler_register_timepicker( scheduler.last( '#' + scheduler_id + ' .sap-scheduler-rule' ).find( '.sap-scheduler-time-input input[type="text"]' ) );
379
  sap_scheduler_register_events();
380
 
381
+ // Hide the add rule button if we've disabled multiple rules
382
+ if ( sap_scheduler.settings[scheduler_id].disable_multiple ) {
383
+ sap_scheduler_toggle_button( false, scheduler );
384
+ }
385
+
386
  return false;
387
  });
388
+
389
+ /**
390
+ * Enable/disable the add new rule button
391
+ */
392
+ function sap_scheduler_toggle_button( on, scheduler ) {
393
+ if ( on ) {
394
+ scheduler.siblings( '.sap-add-scheduler' ).removeClass( 'disabled' );
395
+ } else {
396
+ scheduler.siblings( '.sap-add-scheduler' ).addClass( 'disabled' );
397
+ }
398
+ }
399
+
400
+
401
  }
402
 
403
  });
lib/simple-admin-pages/lib/pickadate/picker.date.js CHANGED
@@ -2,4 +2,4 @@
2
  * Date picker for pickadate.js v3.5.0
3
  * http://amsul.github.io/pickadate.js/date.htm
4
  */
5
- !function(a){"function"==typeof define&&define.amd?define(["picker","jquery"],a):a(Picker,jQuery)}(function(a,b){function c(a,b){var c=this,d=a.$node[0].value,e=a.$node.data("value"),f=e||d,g=e?b.formatSubmit:b.format,h=function(){return"rtl"===getComputedStyle(a.$root[0]).direction};c.settings=b,c.$node=a.$node,c.queue={min:"measure create",max:"measure create",now:"now create",select:"parse create validate",highlight:"parse navigate create validate",view:"parse create validate viewset",disable:"deactivate",enable:"activate"},c.item={},c.item.clear=null,c.item.disable=(b.disable||[]).slice(0),c.item.enable=-function(a){return a[0]===!0?a.shift():-1}(c.item.disable),c.set("min",b.min).set("max",b.max).set("now"),f?c.set("select",f,{format:g}):c.set("select",null).set("highlight",c.item.now),c.key={40:7,38:-7,39:function(){return h()?-1:1},37:function(){return h()?1:-1},go:function(a){var b=c.item.highlight,d=new Date(b.year,b.month,b.date+a);c.set("highlight",[d.getFullYear(),d.getMonth(),d.getDate()],{interval:a}),this.render()}},a.on("render",function(){a.$root.find("."+b.klass.selectMonth).on("change",function(){var c=this.value;c&&(a.set("highlight",[a.get("view").year,c,a.get("highlight").date]),a.$root.find("."+b.klass.selectMonth).trigger("focus"))}),a.$root.find("."+b.klass.selectYear).on("change",function(){var c=this.value;c&&(a.set("highlight",[c,a.get("view").month,a.get("highlight").date]),a.$root.find("."+b.klass.selectYear).trigger("focus"))})}).on("open",function(){a.$root.find("button, select").attr("disabled",!1)}).on("close",function(){a.$root.find("button, select").attr("disabled",!0)})}var d=7,e=6,f=a._;c.prototype.set=function(a,b,c){var d=this,e=d.item;return null===b?("clear"==a&&(a="select"),e[a]=b,d):(e["enable"==a?"disable":"flip"==a?"enable":a]=d.queue[a].split(" ").map(function(e){return b=d[e](a,b,c)}).pop(),"select"==a?d.set("highlight",e.select,c):"highlight"==a?d.set("view",e.highlight,c):a.match(/^(flip|min|max|disable|enable)$/)&&(e.select&&d.disabled(e.select)&&d.set("select",e.select,c),e.highlight&&d.disabled(e.highlight)&&d.set("highlight",e.highlight,c)),d)},c.prototype.get=function(a){return this.item[a]},c.prototype.create=function(a,c,d){var e,g=this;return c=void 0===c?a:c,c==-1/0||1/0==c?e=c:b.isPlainObject(c)&&f.isInteger(c.pick)?c=c.obj:b.isArray(c)?(c=new Date(c[0],c[1],c[2]),c=f.isDate(c)?c:g.create().obj):c=f.isInteger(c)||f.isDate(c)?g.normalize(new Date(c),d):g.now(a,c,d),{year:e||c.getFullYear(),month:e||c.getMonth(),date:e||c.getDate(),day:e||c.getDay(),obj:e||c,pick:e||c.getTime()}},c.prototype.createRange=function(a,c){var d=this,e=function(a){return a===!0||b.isArray(a)||f.isDate(a)?d.create(a):a};return f.isInteger(a)||(a=e(a)),f.isInteger(c)||(c=e(c)),f.isInteger(a)&&b.isPlainObject(c)?a=[c.year,c.month,c.date+a]:f.isInteger(c)&&b.isPlainObject(a)&&(c=[a.year,a.month,a.date+c]),{from:e(a),to:e(c)}},c.prototype.withinRange=function(a,b){return a=this.createRange(a.from,a.to),b.pick>=a.from.pick&&b.pick<=a.to.pick},c.prototype.overlapRanges=function(a,b){var c=this;return a=c.createRange(a.from,a.to),b=c.createRange(b.from,b.to),c.withinRange(a,b.from)||c.withinRange(a,b.to)||c.withinRange(b,a.from)||c.withinRange(b,a.to)},c.prototype.now=function(a,b,c){return b=new Date,c&&c.rel&&b.setDate(b.getDate()+c.rel),this.normalize(b,c)},c.prototype.navigate=function(a,c,d){var e,f,g,h,i=b.isArray(c),j=b.isPlainObject(c),k=this.item.view;if(i||j){for(j?(f=c.year,g=c.month,h=c.date):(f=+c[0],g=+c[1],h=+c[2]),d&&d.nav&&k&&k.month!==g&&(f=k.year,g=k.month),e=new Date(f,g+(d&&d.nav?d.nav:0),1),f=e.getFullYear(),g=e.getMonth();new Date(f,g,h).getMonth()!==g;)h-=1;c=[f,g,h]}return c},c.prototype.normalize=function(a){return a.setHours(0,0,0,0),a},c.prototype.measure=function(a,b){var c=this;return b?f.isInteger(b)&&(b=c.now(a,b,{rel:b})):b="min"==a?-1/0:1/0,b},c.prototype.viewset=function(a,b){return this.create([b.year,b.month,1])},c.prototype.validate=function(a,c,d){var e,g,h,i,j=this,k=c,l=d&&d.interval?d.interval:1,m=-1===j.item.enable,n=j.item.min,o=j.item.max,p=m&&j.item.disable.filter(function(a){if(b.isArray(a)){var d=j.create(a).pick;d<c.pick?e=!0:d>c.pick&&(g=!0)}return f.isInteger(a)}).length;if((!d||!d.nav)&&(!m&&j.disabled(c)||m&&j.disabled(c)&&(p||e||g)||!m&&(c.pick<=n.pick||c.pick>=o.pick)))for(m&&!p&&(!g&&l>0||!e&&0>l)&&(l*=-1);j.disabled(c)&&(Math.abs(l)>1&&(c.month<k.month||c.month>k.month)&&(c=k,l=l>0?1:-1),c.pick<=n.pick?(h=!0,l=1,c=j.create([n.year,n.month,n.date+(c.pick===n.pick?0:-1)])):c.pick>=o.pick&&(i=!0,l=-1,c=j.create([o.year,o.month,o.date+(c.pick===o.pick?0:1)])),!h||!i);)c=j.create([c.year,c.month,c.date+l]);return c},c.prototype.disabled=function(a){var c=this,d=c.item.disable.filter(function(d){return f.isInteger(d)?a.day===(c.settings.firstDay?d:d-1)%7:b.isArray(d)||f.isDate(d)?a.pick===c.create(d).pick:b.isPlainObject(d)?c.withinRange(d,a):void 0});return d=d.length&&!d.filter(function(a){return b.isArray(a)&&"inverted"==a[3]||b.isPlainObject(a)&&a.inverted}).length,-1===c.item.enable?!d:d||a.pick<c.item.min.pick||a.pick>c.item.max.pick},c.prototype.parse=function(a,b,c){var d=this,e={};return b&&"string"==typeof b?(c&&c.format||(c=c||{},c.format=d.settings.format),d.formats.toArray(c.format).map(function(a){var c=d.formats[a],g=c?f.trigger(c,d,[b,e]):a.replace(/^!/,"").length;c&&(e[a]=b.substr(0,g)),b=b.substr(g)}),[e.yyyy||e.yy,+(e.mm||e.m)-1,e.dd||e.d]):b},c.prototype.formats=function(){function a(a,b,c){var d=a.match(/\w+/)[0];return c.mm||c.m||(c.m=b.indexOf(d)+1),d.length}function b(a){return a.match(/\w+/)[0].length}return{d:function(a,b){return a?f.digits(a):b.date},dd:function(a,b){return a?2:f.lead(b.date)},ddd:function(a,c){return a?b(a):this.settings.weekdaysShort[c.day]},dddd:function(a,c){return a?b(a):this.settings.weekdaysFull[c.day]},m:function(a,b){return a?f.digits(a):b.month+1},mm:function(a,b){return a?2:f.lead(b.month+1)},mmm:function(b,c){var d=this.settings.monthsShort;return b?a(b,d,c):d[c.month]},mmmm:function(b,c){var d=this.settings.monthsFull;return b?a(b,d,c):d[c.month]},yy:function(a,b){return a?2:(""+b.year).slice(2)},yyyy:function(a,b){return a?4:b.year},toArray:function(a){return a.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g)},toString:function(a,b){var c=this;return c.formats.toArray(a).map(function(a){return f.trigger(c.formats[a],c,[0,b])||a.replace(/^!/,"")}).join("")}}}(),c.prototype.isDateExact=function(a,c){var d=this;return f.isInteger(a)&&f.isInteger(c)||"boolean"==typeof a&&"boolean"==typeof c?a===c:(f.isDate(a)||b.isArray(a))&&(f.isDate(c)||b.isArray(c))?d.create(a).pick===d.create(c).pick:b.isPlainObject(a)&&b.isPlainObject(c)?d.isDateExact(a.from,c.from)&&d.isDateExact(a.to,c.to):!1},c.prototype.isDateOverlap=function(a,c){var d=this;return f.isInteger(a)&&(f.isDate(c)||b.isArray(c))?a===d.create(c).day+1:f.isInteger(c)&&(f.isDate(a)||b.isArray(a))?c===d.create(a).day+1:b.isPlainObject(a)&&b.isPlainObject(c)?d.overlapRanges(a,c):!1},c.prototype.flipEnable=function(a){var b=this.item;b.enable=a||(-1==b.enable?1:-1)},c.prototype.deactivate=function(a,c){var d=this,e=d.item.disable.slice(0);return"flip"==c?d.flipEnable():c===!1?(d.flipEnable(1),e=[]):c===!0?(d.flipEnable(-1),e=[]):c.map(function(a){for(var c,g=0;g<e.length;g+=1)if(d.isDateExact(a,e[g])){c=!0;break}c||(f.isInteger(a)||f.isDate(a)||b.isArray(a)||b.isPlainObject(a)&&a.from&&a.to)&&e.push(a)}),e},c.prototype.activate=function(a,c){var d=this,e=d.item.disable,g=e.length;return"flip"==c?d.flipEnable():c===!0?(d.flipEnable(1),e=[]):c===!1?(d.flipEnable(-1),e=[]):c.map(function(a){var c,h,i,j;for(i=0;g>i;i+=1){if(h=e[i],d.isDateExact(h,a)){c=e[i]=null,j=!0;break}if(d.isDateOverlap(h,a)){b.isPlainObject(a)?(a.inverted=!0,c=a):b.isArray(a)?(c=a,c[3]||c.push("inverted")):f.isDate(a)&&(c=[a.getFullYear(),a.getMonth(),a.getDate(),"inverted"]);break}}if(c)for(i=0;g>i;i+=1)if(d.isDateExact(e[i],a)){e[i]=null;break}if(j)for(i=0;g>i;i+=1)if(d.isDateOverlap(e[i],a)){e[i]=null;break}c&&e.push(c)}),e.filter(function(a){return null!=a})},c.prototype.nodes=function(a){var b=this,c=b.settings,g=b.item,h=g.now,i=g.select,j=g.highlight,k=g.view,l=g.disable,m=g.min,n=g.max,o=function(a,b){return c.firstDay&&(a.push(a.shift()),b.push(b.shift())),f.node("thead",f.node("tr",f.group({min:0,max:d-1,i:1,node:"th",item:function(d){return[a[d],c.klass.weekdays,'scope=col title="'+b[d]+'"']}})))}((c.showWeekdaysFull?c.weekdaysFull:c.weekdaysShort).slice(0),c.weekdaysFull.slice(0)),p=function(a){return f.node("div"," ",c.klass["nav"+(a?"Next":"Prev")]+(a&&k.year>=n.year&&k.month>=n.month||!a&&k.year<=m.year&&k.month<=m.month?" "+c.klass.navDisabled:""),"data-nav="+(a||-1)+" "+f.ariaAttr({role:"button",controls:b.$node[0].id+"_table"})+' title="'+(a?c.labelMonthNext:c.labelMonthPrev)+'"')},q=function(){var d=c.showMonthsShort?c.monthsShort:c.monthsFull;return c.selectMonths?f.node("select",f.group({min:0,max:11,i:1,node:"option",item:function(a){return[d[a],0,"value="+a+(k.month==a?" selected":"")+(k.year==m.year&&a<m.month||k.year==n.year&&a>n.month?" disabled":"")]}}),c.klass.selectMonth,(a?"":"disabled")+" "+f.ariaAttr({controls:b.$node[0].id+"_table"})+' title="'+c.labelMonthSelect+'"'):f.node("div",d[k.month],c.klass.month)},r=function(){var d=k.year,e=c.selectYears===!0?5:~~(c.selectYears/2);if(e){var g=m.year,h=n.year,i=d-e,j=d+e;if(g>i&&(j+=g-i,i=g),j>h){var l=i-g,o=j-h;i-=l>o?o:l,j=h}return f.node("select",f.group({min:i,max:j,i:1,node:"option",item:function(a){return[a,0,"value="+a+(d==a?" selected":"")]}}),c.klass.selectYear,(a?"":"disabled")+" "+f.ariaAttr({controls:b.$node[0].id+"_table"})+' title="'+c.labelYearSelect+'"')}return f.node("div",d,c.klass.year)};return f.node("div",(c.selectYears?r()+q():q()+r())+p()+p(1),c.klass.header)+f.node("table",o+f.node("tbody",f.group({min:0,max:e-1,i:1,node:"tr",item:function(a){var e=c.firstDay&&0===b.create([k.year,k.month,1]).day?-7:0;return[f.group({min:d*a-k.day+e+1,max:function(){return this.min+d-1},i:1,node:"td",item:function(a){a=b.create([k.year,k.month,a+(c.firstDay?1:0)]);var d=i&&i.pick==a.pick,e=j&&j.pick==a.pick,g=l&&b.disabled(a)||a.pick<m.pick||a.pick>n.pick;return[f.node("div",a.date,function(b){return b.push(k.month==a.month?c.klass.infocus:c.klass.outfocus),h.pick==a.pick&&b.push(c.klass.now),d&&b.push(c.klass.selected),e&&b.push(c.klass.highlighted),g&&b.push(c.klass.disabled),b.join(" ")}([c.klass.day]),"data-pick="+a.pick+" "+f.ariaAttr({role:"gridcell",selected:d&&b.$node.val()===f.trigger(b.formats.toString,b,[c.format,a])?!0:null,activedescendant:e?!0:null,disabled:g?!0:null})),"",f.ariaAttr({role:"presentation"})]}})]}})),c.klass.table,'id="'+b.$node[0].id+'_table" '+f.ariaAttr({role:"grid",controls:b.$node[0].id,readonly:!0}))+f.node("div",f.node("button",c.today,c.klass.buttonToday,"type=button data-pick="+h.pick+(a?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id}))+f.node("button",c.clear,c.klass.buttonClear,"type=button data-clear=1"+(a?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id})),c.klass.footer)},c.defaults=function(a){return{labelMonthNext:"Next month",labelMonthPrev:"Previous month",labelMonthSelect:"Select a month",labelYearSelect:"Select a year",monthsFull:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdaysFull:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],today:"Today",clear:"Clear",format:"d mmmm, yyyy",klass:{table:a+"table",header:a+"header",navPrev:a+"nav--prev",navNext:a+"nav--next",navDisabled:a+"nav--disabled",month:a+"month",year:a+"year",selectMonth:a+"select--month",selectYear:a+"select--year",weekdays:a+"weekday",day:a+"day",disabled:a+"day--disabled",selected:a+"day--selected",highlighted:a+"day--highlighted",now:a+"day--today",infocus:a+"day--infocus",outfocus:a+"day--outfocus",footer:a+"footer",buttonClear:a+"button--clear",buttonToday:a+"button--today"}}}(a.klasses().picker+"__"),a.extend("pickadate",c)});
2
  * Date picker for pickadate.js v3.5.0
3
  * http://amsul.github.io/pickadate.js/date.htm
4
  */
5
+ !function(a){"function"==typeof define&&define.amd?define(["picker","jquery"],a):"object"==typeof exports?module.exports=a(require("./picker.js"),require("jquery")):a(Picker,jQuery)}(function(a,b){function c(a,b){var c=this,d=a.$node[0],e=d.value,f=a.$node.data("value"),g=f||e,h=f?b.formatSubmit:b.format,i=function(){return d.currentStyle?"rtl"==d.currentStyle.direction:"rtl"==getComputedStyle(a.$root[0]).direction};c.settings=b,c.$node=a.$node,c.queue={min:"measure create",max:"measure create",now:"now create",select:"parse create validate",highlight:"parse navigate create validate",view:"parse create validate viewset",disable:"deactivate",enable:"activate"},c.item={},c.item.clear=null,c.item.disable=(b.disable||[]).slice(0),c.item.enable=-function(a){return a[0]===!0?a.shift():-1}(c.item.disable),c.set("min",b.min).set("max",b.max).set("now"),g?c.set("select",g,{format:h}):c.set("select",null).set("highlight",c.item.now),c.key={40:7,38:-7,39:function(){return i()?-1:1},37:function(){return i()?1:-1},go:function(a){var b=c.item.highlight,d=new Date(b.year,b.month,b.date+a);c.set("highlight",d,{interval:a}),this.render()}},a.on("render",function(){a.$root.find("."+b.klass.selectMonth).on("change",function(){var c=this.value;c&&(a.set("highlight",[a.get("view").year,c,a.get("highlight").date]),a.$root.find("."+b.klass.selectMonth).trigger("focus"))}),a.$root.find("."+b.klass.selectYear).on("change",function(){var c=this.value;c&&(a.set("highlight",[c,a.get("view").month,a.get("highlight").date]),a.$root.find("."+b.klass.selectYear).trigger("focus"))})},1).on("open",function(){var d="";c.disabled(c.get("now"))&&(d=":not(."+b.klass.buttonToday+")"),a.$root.find("button"+d+", select").attr("disabled",!1)},1).on("close",function(){a.$root.find("button, select").attr("disabled",!0)},1)}var d=7,e=6,f=a._;c.prototype.set=function(a,b,c){var d=this,e=d.item;return null===b?("clear"==a&&(a="select"),e[a]=b,d):(e["enable"==a?"disable":"flip"==a?"enable":a]=d.queue[a].split(" ").map(function(e){return b=d[e](a,b,c)}).pop(),"select"==a?d.set("highlight",e.select,c):"highlight"==a?d.set("view",e.highlight,c):a.match(/^(flip|min|max|disable|enable)$/)&&(e.select&&d.disabled(e.select)&&d.set("select",e.select,c),e.highlight&&d.disabled(e.highlight)&&d.set("highlight",e.highlight,c)),d)},c.prototype.get=function(a){return this.item[a]},c.prototype.create=function(a,c,d){var e,g=this;return c=void 0===c?a:c,c==-1/0||1/0==c?e=c:b.isPlainObject(c)&&f.isInteger(c.pick)?c=c.obj:b.isArray(c)?(c=new Date(c[0],c[1],c[2]),c=f.isDate(c)?c:g.create().obj):c=f.isInteger(c)||f.isDate(c)?g.normalize(new Date(c),d):g.now(a,c,d),{year:e||c.getFullYear(),month:e||c.getMonth(),date:e||c.getDate(),day:e||c.getDay(),obj:e||c,pick:e||c.getTime()}},c.prototype.createRange=function(a,c){var d=this,e=function(a){return a===!0||b.isArray(a)||f.isDate(a)?d.create(a):a};return f.isInteger(a)||(a=e(a)),f.isInteger(c)||(c=e(c)),f.isInteger(a)&&b.isPlainObject(c)?a=[c.year,c.month,c.date+a]:f.isInteger(c)&&b.isPlainObject(a)&&(c=[a.year,a.month,a.date+c]),{from:e(a),to:e(c)}},c.prototype.withinRange=function(a,b){return a=this.createRange(a.from,a.to),b.pick>=a.from.pick&&b.pick<=a.to.pick},c.prototype.overlapRanges=function(a,b){var c=this;return a=c.createRange(a.from,a.to),b=c.createRange(b.from,b.to),c.withinRange(a,b.from)||c.withinRange(a,b.to)||c.withinRange(b,a.from)||c.withinRange(b,a.to)},c.prototype.now=function(a,b,c){return b=new Date,c&&c.rel&&b.setDate(b.getDate()+c.rel),this.normalize(b,c)},c.prototype.navigate=function(a,c,d){var e,f,g,h,i=b.isArray(c),j=b.isPlainObject(c),k=this.item.view;if(i||j){for(j?(f=c.year,g=c.month,h=c.date):(f=+c[0],g=+c[1],h=+c[2]),d&&d.nav&&k&&k.month!==g&&(f=k.year,g=k.month),e=new Date(f,g+(d&&d.nav?d.nav:0),1),f=e.getFullYear(),g=e.getMonth();new Date(f,g,h).getMonth()!==g;)h-=1;c=[f,g,h]}return c},c.prototype.normalize=function(a){return a.setHours(0,0,0,0),a},c.prototype.measure=function(a,b){var c=this;return b?"string"==typeof b?b=c.parse(a,b):f.isInteger(b)&&(b=c.now(a,b,{rel:b})):b="min"==a?-1/0:1/0,b},c.prototype.viewset=function(a,b){return this.create([b.year,b.month,1])},c.prototype.validate=function(a,c,d){var e,g,h,i,j=this,k=c,l=d&&d.interval?d.interval:1,m=-1===j.item.enable,n=j.item.min,o=j.item.max,p=m&&j.item.disable.filter(function(a){if(b.isArray(a)){var d=j.create(a).pick;d<c.pick?e=!0:d>c.pick&&(g=!0)}return f.isInteger(a)}).length;if((!d||!d.nav)&&(!m&&j.disabled(c)||m&&j.disabled(c)&&(p||e||g)||!m&&(c.pick<=n.pick||c.pick>=o.pick)))for(m&&!p&&(!g&&l>0||!e&&0>l)&&(l*=-1);j.disabled(c)&&(Math.abs(l)>1&&(c.month<k.month||c.month>k.month)&&(c=k,l=l>0?1:-1),c.pick<=n.pick?(h=!0,l=1,c=j.create([n.year,n.month,n.date+(c.pick===n.pick?0:-1)])):c.pick>=o.pick&&(i=!0,l=-1,c=j.create([o.year,o.month,o.date+(c.pick===o.pick?0:1)])),!h||!i);)c=j.create([c.year,c.month,c.date+l]);return c},c.prototype.disabled=function(a){var c=this,d=c.item.disable.filter(function(d){return f.isInteger(d)?a.day===(c.settings.firstDay?d:d-1)%7:b.isArray(d)||f.isDate(d)?a.pick===c.create(d).pick:b.isPlainObject(d)?c.withinRange(d,a):void 0});return d=d.length&&!d.filter(function(a){return b.isArray(a)&&"inverted"==a[3]||b.isPlainObject(a)&&a.inverted}).length,-1===c.item.enable?!d:d||a.pick<c.item.min.pick||a.pick>c.item.max.pick},c.prototype.parse=function(a,b,c){var d=this,e={};return b&&"string"==typeof b?(c&&c.format||(c=c||{},c.format=d.settings.format),d.formats.toArray(c.format).map(function(a){var c=d.formats[a],g=c?f.trigger(c,d,[b,e]):a.replace(/^!/,"").length;c&&(e[a]=b.substr(0,g)),b=b.substr(g)}),[e.yyyy||e.yy,+(e.mm||e.m)-1,e.dd||e.d]):b},c.prototype.formats=function(){function a(a,b,c){var d=a.match(/\w+/)[0];return c.mm||c.m||(c.m=b.indexOf(d)+1),d.length}function b(a){return a.match(/\w+/)[0].length}return{d:function(a,b){return a?f.digits(a):b.date},dd:function(a,b){return a?2:f.lead(b.date)},ddd:function(a,c){return a?b(a):this.settings.weekdaysShort[c.day]},dddd:function(a,c){return a?b(a):this.settings.weekdaysFull[c.day]},m:function(a,b){return a?f.digits(a):b.month+1},mm:function(a,b){return a?2:f.lead(b.month+1)},mmm:function(b,c){var d=this.settings.monthsShort;return b?a(b,d,c):d[c.month]},mmmm:function(b,c){var d=this.settings.monthsFull;return b?a(b,d,c):d[c.month]},yy:function(a,b){return a?2:(""+b.year).slice(2)},yyyy:function(a,b){return a?4:b.year},toArray:function(a){return a.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g)},toString:function(a,b){var c=this;return c.formats.toArray(a).map(function(a){return f.trigger(c.formats[a],c,[0,b])||a.replace(/^!/,"")}).join("")}}}(),c.prototype.isDateExact=function(a,c){var d=this;return f.isInteger(a)&&f.isInteger(c)||"boolean"==typeof a&&"boolean"==typeof c?a===c:(f.isDate(a)||b.isArray(a))&&(f.isDate(c)||b.isArray(c))?d.create(a).pick===d.create(c).pick:b.isPlainObject(a)&&b.isPlainObject(c)?d.isDateExact(a.from,c.from)&&d.isDateExact(a.to,c.to):!1},c.prototype.isDateOverlap=function(a,c){var d=this,e=d.settings.firstDay?1:0;return f.isInteger(a)&&(f.isDate(c)||b.isArray(c))?(a=a%7+e,a===d.create(c).day+1):f.isInteger(c)&&(f.isDate(a)||b.isArray(a))?(c=c%7+e,c===d.create(a).day+1):b.isPlainObject(a)&&b.isPlainObject(c)?d.overlapRanges(a,c):!1},c.prototype.flipEnable=function(a){var b=this.item;b.enable=a||(-1==b.enable?1:-1)},c.prototype.deactivate=function(a,c){var d=this,e=d.item.disable.slice(0);return"flip"==c?d.flipEnable():c===!1?(d.flipEnable(1),e=[]):c===!0?(d.flipEnable(-1),e=[]):c.map(function(a){for(var c,g=0;g<e.length;g+=1)if(d.isDateExact(a,e[g])){c=!0;break}c||(f.isInteger(a)||f.isDate(a)||b.isArray(a)||b.isPlainObject(a)&&a.from&&a.to)&&e.push(a)}),e},c.prototype.activate=function(a,c){var d=this,e=d.item.disable,g=e.length;return"flip"==c?d.flipEnable():c===!0?(d.flipEnable(1),e=[]):c===!1?(d.flipEnable(-1),e=[]):c.map(function(a){var c,h,i,j;for(i=0;g>i;i+=1){if(h=e[i],d.isDateExact(h,a)){c=e[i]=null,j=!0;break}if(d.isDateOverlap(h,a)){b.isPlainObject(a)?(a.inverted=!0,c=a):b.isArray(a)?(c=a,c[3]||c.push("inverted")):f.isDate(a)&&(c=[a.getFullYear(),a.getMonth(),a.getDate(),"inverted"]);break}}if(c)for(i=0;g>i;i+=1)if(d.isDateExact(e[i],a)){e[i]=null;break}if(j)for(i=0;g>i;i+=1)if(d.isDateOverlap(e[i],a)){e[i]=null;break}c&&e.push(c)}),e.filter(function(a){return null!=a})},c.prototype.nodes=function(a){var b=this,c=b.settings,g=b.item,h=g.now,i=g.select,j=g.highlight,k=g.view,l=g.disable,m=g.min,n=g.max,o=function(a,b){return c.firstDay&&(a.push(a.shift()),b.push(b.shift())),f.node("thead",f.node("tr",f.group({min:0,max:d-1,i:1,node:"th",item:function(d){return[a[d],c.klass.weekdays,'scope=col title="'+b[d]+'"']}})))}((c.showWeekdaysFull?c.weekdaysFull:c.weekdaysShort).slice(0),c.weekdaysFull.slice(0)),p=function(a){return f.node("div"," ",c.klass["nav"+(a?"Next":"Prev")]+(a&&k.year>=n.year&&k.month>=n.month||!a&&k.year<=m.year&&k.month<=m.month?" "+c.klass.navDisabled:""),"data-nav="+(a||-1)+" "+f.ariaAttr({role:"button",controls:b.$node[0].id+"_table"})+' title="'+(a?c.labelMonthNext:c.labelMonthPrev)+'"')},q=function(){var d=c.showMonthsShort?c.monthsShort:c.monthsFull;return c.selectMonths?f.node("select",f.group({min:0,max:11,i:1,node:"option",item:function(a){return[d[a],0,"value="+a+(k.month==a?" selected":"")+(k.year==m.year&&a<m.month||k.year==n.year&&a>n.month?" disabled":"")]}}),c.klass.selectMonth,(a?"":"disabled")+" "+f.ariaAttr({controls:b.$node[0].id+"_table"})+' title="'+c.labelMonthSelect+'"'):f.node("div",d[k.month],c.klass.month)},r=function(){var d=k.year,e=c.selectYears===!0?5:~~(c.selectYears/2);if(e){var g=m.year,h=n.year,i=d-e,j=d+e;if(g>i&&(j+=g-i,i=g),j>h){var l=i-g,o=j-h;i-=l>o?o:l,j=h}return f.node("select",f.group({min:i,max:j,i:1,node:"option",item:function(a){return[a,0,"value="+a+(d==a?" selected":"")]}}),c.klass.selectYear,(a?"":"disabled")+" "+f.ariaAttr({controls:b.$node[0].id+"_table"})+' title="'+c.labelYearSelect+'"')}return f.node("div",d,c.klass.year)};return f.node("div",(c.selectYears?r()+q():q()+r())+p()+p(1),c.klass.header)+f.node("table",o+f.node("tbody",f.group({min:0,max:e-1,i:1,node:"tr",item:function(a){var e=c.firstDay&&0===b.create([k.year,k.month,1]).day?-7:0;return[f.group({min:d*a-k.day+e+1,max:function(){return this.min+d-1},i:1,node:"td",item:function(a){a=b.create([k.year,k.month,a+(c.firstDay?1:0)]);var d=i&&i.pick==a.pick,e=j&&j.pick==a.pick,g=l&&b.disabled(a)||a.pick<m.pick||a.pick>n.pick,o=f.trigger(b.formats.toString,b,[c.format,a]);return[f.node("div",a.date,function(b){return b.push(k.month==a.month?c.klass.infocus:c.klass.outfocus),h.pick==a.pick&&b.push(c.klass.now),d&&b.push(c.klass.selected),e&&b.push(c.klass.highlighted),g&&b.push(c.klass.disabled),b.join(" ")}([c.klass.day]),"data-pick="+a.pick+" "+f.ariaAttr({role:"gridcell",label:o,selected:d&&b.$node.val()===o?!0:null,activedescendant:e?!0:null,disabled:g?!0:null})),"",f.ariaAttr({role:"presentation"})]}})]}})),c.klass.table,'id="'+b.$node[0].id+'_table" '+f.ariaAttr({role:"grid",controls:b.$node[0].id,readonly:!0}))+f.node("div",f.node("button",c.today,c.klass.buttonToday,"type=button data-pick="+h.pick+(a&&!b.disabled(h)?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id}))+f.node("button",c.clear,c.klass.buttonClear,"type=button data-clear=1"+(a?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id}))+f.node("button",c.close,c.klass.buttonClose,"type=button data-close=true "+(a?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id})),c.klass.footer)},c.defaults=function(a){return{labelMonthNext:"Next month",labelMonthPrev:"Previous month",labelMonthSelect:"Select a month",labelYearSelect:"Select a year",monthsFull:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdaysFull:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],today:"Today",clear:"Clear",close:"Close",format:"d mmmm, yyyy",klass:{table:a+"table",header:a+"header",navPrev:a+"nav--prev",navNext:a+"nav--next",navDisabled:a+"nav--disabled",month:a+"month",year:a+"year",selectMonth:a+"select--month",selectYear:a+"select--year",weekdays:a+"weekday",day:a+"day",disabled:a+"day--disabled",selected:a+"day--selected",highlighted:a+"day--highlighted",now:a+"day--today",infocus:a+"day--infocus",outfocus:a+"day--outfocus",footer:a+"footer",buttonClear:a+"button--clear",buttonToday:a+"button--today",buttonClose:a+"button--close"}}}(a.klasses().picker+"__"),a.extend("pickadate",c)});
lib/simple-admin-pages/lib/pickadate/picker.js CHANGED
@@ -4,4 +4,4 @@
4
  * Hosted on http://amsul.github.io/pickadate.js
5
  * Licensed under MIT
6
  */
7
- !function(a){"function"==typeof define&&define.amd?define("picker",["jquery"],a):this.Picker=a(jQuery)}(function(a){function b(f,g,i,j){function k(){return b._.node("div",b._.node("div",b._.node("div",b._.node("div",v.component.nodes(q.open),s.box),s.wrap),s.frame),s.holder)}function l(){t.data(g,v).addClass(s.input).val(t.data("value")?v.get("select",r.format):f.value).on("focus."+q.id+" click."+q.id,o),r.editable||t.on("keydown."+q.id,function(a){var b=a.keyCode,c=/^(8|46)$/.test(b);return 27==b?(v.close(),!1):void((32==b||c||!q.open&&v.component.key[b])&&(a.preventDefault(),a.stopPropagation(),c?v.clear().close():v.open()))}),e(f,{haspopup:!0,expanded:!1,readonly:!1,owns:f.id+"_root"+(v._hidden?" "+v._hidden.id:"")})}function m(){v.$root.on({focusin:function(a){v.$root.removeClass(s.focused),a.stopPropagation()},"mousedown click":function(b){var c=b.target;c!=v.$root.children()[0]&&(b.stopPropagation(),"mousedown"!=b.type||a(c).is(":input")||"OPTION"==c.nodeName||(b.preventDefault(),f.focus()))}}).on("click","[data-pick], [data-nav], [data-clear]",function(){var c=a(this),d=c.data(),e=c.hasClass(s.navDisabled)||c.hasClass(s.disabled),g=document.activeElement;g=g&&(g.type||g.href)&&g,(e||g&&!a.contains(v.$root[0],g))&&f.focus(),d.nav&&!e?v.set("highlight",v.component.item.highlight,{nav:d.nav}):b._.isInteger(d.pick)&&!e?v.set("select",d.pick).close(!0):d.clear&&v.clear().close(!0)}),e(v.$root[0],"hidden",!0)}function n(){var b,c;r.hiddenName===!0?(b=f.name+"_hidden",c=f.name,f.name=""):(c=["string"==typeof r.hiddenPrefix?r.hiddenPrefix:"","string"==typeof r.hiddenSuffix?r.hiddenSuffix:"_submit"],c=b=c[0]+f.name+c[1]),v._hidden=a('<input type=hidden name="'+c+'"id="'+b+'"'+(t.data("value")||f.value?' value="'+v.get("select",r.formatSubmit)+'"':"")+">")[0],t.on("change."+q.id,function(){v._hidden.value=f.value?v.get("select",r.formatSubmit):""}).after(v._hidden)}function o(a){a.stopPropagation(),"focus"==a.type&&v.$root.addClass(s.focused),v.open()}if(!f)return b;var p=!1,q={id:f.id||"P"+Math.abs(~~(Math.random()*new Date))},r=i?a.extend(!0,{},i.defaults,j):j||{},s=a.extend({},b.klasses(),r.klass),t=a(f),u=function(){return this.start()},v=u.prototype={constructor:u,$node:t,start:function(){return q&&q.start?v:(q.methods={},q.start=!0,q.open=!1,q.type=f.type,f.autofocus=f==document.activeElement,f.type="text",f.readOnly=!r.editable,f.id=f.id||q.id,v.component=new i(v,r),v.$root=a(b._.node("div",k(),s.picker,'id="'+f.id+'_root"')),m(),r.formatSubmit&&n(),l(),r.container?a(r.container).append(v.$root):t.after(v.$root),v.on({start:v.component.onStart,render:v.component.onRender,stop:v.component.onStop,open:v.component.onOpen,close:v.component.onClose,set:v.component.onSet}).on({start:r.onStart,render:r.onRender,stop:r.onStop,open:r.onOpen,close:r.onClose,set:r.onSet}),p=c(v.$root.children()[0]),f.autofocus&&v.open(),v.trigger("start").trigger("render"))},render:function(a){return a?v.$root.html(k()):v.$root.find("."+s.box).html(v.component.nodes(q.open)),v.trigger("render")},stop:function(){return q.start?(v.close(),v._hidden&&v._hidden.parentNode.removeChild(v._hidden),v.$root.remove(),t.removeClass(s.input).removeData(g),setTimeout(function(){t.off("."+q.id)},0),f.type=q.type,f.readOnly=!1,v.trigger("stop"),q.methods={},q.start=!1,v):v},open:function(c){return q.open?v:(t.addClass(s.active),e(f,"expanded",!0),setTimeout(function(){v.$root.addClass(s.opened),e(v.$root[0],"hidden",!1)},0),c!==!1&&(q.open=!0,p&&a("html").css("overflow","hidden").css("padding-right","+="+d()),t.trigger("focus"),h.on("click."+q.id+" focusin."+q.id,function(a){var b=a.target;b!=f&&b!=document&&3!=a.which&&v.close(b===v.$root.children()[0])}).on("keydown."+q.id,function(c){var d=c.keyCode,e=v.component.key[d],g=c.target;27==d?v.close(!0):g!=f||!e&&13!=d?a.contains(v.$root[0],g)&&13==d&&(c.preventDefault(),g.click()):(c.preventDefault(),e?b._.trigger(v.component.key.go,v,[b._.trigger(e)]):v.$root.find("."+s.highlighted).hasClass(s.disabled)||v.set("select",v.component.item.highlight).close())})),v.trigger("open"))},close:function(b){return b&&(t.off("focus."+q.id).trigger("focus"),setTimeout(function(){t.on("focus."+q.id,o)},0)),t.removeClass(s.active),e(f,"expanded",!1),setTimeout(function(){v.$root.removeClass(s.opened+" "+s.focused),e(v.$root[0],"hidden",!0)},0),q.open?(q.open=!1,p&&a("html").css("overflow","").css("padding-right","-="+d()),h.off("."+q.id),v.trigger("close")):v},clear:function(){return v.set("clear")},set:function(b,c,d){var e,f,g=a.isPlainObject(b),h=g?b:{};if(d=g&&a.isPlainObject(c)?c:d||{},b){g||(h[b]=c);for(e in h)f=h[e],e in v.component.item&&(void 0===f&&(f=null),v.component.set(e,f,d)),("select"==e||"clear"==e)&&t.val("clear"==e?"":v.get(e,r.format)).trigger("change");v.render()}return d.muted?v:v.trigger("set",h)},get:function(a,c){return a=a||"value",null!=q[a]?q[a]:"value"==a?f.value:a in v.component.item?"string"==typeof c?b._.trigger(v.component.formats.toString,v.component,[c,v.component.get(a)]):v.component.get(a):void 0},on:function(b,c){var d,e,f=a.isPlainObject(b),g=f?b:{};if(b){f||(g[b]=c);for(d in g)e=g[d],q.methods[d]=q.methods[d]||[],q.methods[d].push(e)}return v},off:function(){var a,b,c=arguments;for(a=0,namesCount=c.length;namesCount>a;a+=1)b=c[a],b in q.methods&&delete q.methods[b];return v},trigger:function(a,c){var d=q.methods[a];return d&&d.map(function(a){b._.trigger(a,v,[c])}),v}};return new u}function c(a){var b,c="position";return a.currentStyle?b=a.currentStyle[c]:window.getComputedStyle&&(b=getComputedStyle(a)[c]),"fixed"==b}function d(){var b=a('<div style="visibility:hidden;width:100px" />').appendTo("body"),c=b[0].offsetWidth;b.css("overflow","scroll");var d=a('<div style="width:100%" />').appendTo(b),e=d[0].offsetWidth;return b.remove(),c-e}function e(b,c,d){if(a.isPlainObject(c))for(var e in c)f(b,e,c[e]);else f(b,c,d)}function f(a,b,c){a.setAttribute(("role"==b?"":"aria-")+b,c)}function g(b,c){a.isPlainObject(b)||(b={attribute:c}),c="";for(var d in b){var e=("role"==d?"":"aria-")+d,f=b[d];c+=null==f?"":e+'="'+b[d]+'"'}return c}var h=a(document);return b.klasses=function(a){return a=a||"picker",{picker:a,opened:a+"--opened",focused:a+"--focused",input:a+"__input",active:a+"__input--active",holder:a+"__holder",frame:a+"__frame",wrap:a+"__wrap",box:a+"__box"}},b._={group:function(a){for(var c,d="",e=b._.trigger(a.min,a);e<=b._.trigger(a.max,a,[e]);e+=a.i)c=b._.trigger(a.item,a,[e]),d+=b._.node(a.node,c[0],c[1],c[2]);return d},node:function(b,c,d,e){return c?(c=a.isArray(c)?c.join(""):c,d=d?' class="'+d+'"':"",e=e?" "+e:"","<"+b+d+e+">"+c+"</"+b+">"):""},lead:function(a){return(10>a?"0":"")+a},trigger:function(a,b,c){return"function"==typeof a?a.apply(b,c||[]):a},digits:function(a){return/\d/.test(a[1])?2:1},isDate:function(a){return{}.toString.call(a).indexOf("Date")>-1&&this.isInteger(a.getDate())},isInteger:function(a){return{}.toString.call(a).indexOf("Number")>-1&&a%1===0},ariaAttr:g},b.extend=function(c,d){a.fn[c]=function(e,f){var g=this.data(c);return"picker"==e?g:g&&"string"==typeof e?b._.trigger(g[e],g,[f]):this.each(function(){var f=a(this);f.data(c)||new b(this,c,d,e)})},a.fn[c].defaults=d.defaults},b});
4
  * Hosted on http://amsul.github.io/pickadate.js
5
  * Licensed under MIT
6
  */
7
+ !function(a){"function"==typeof define&&define.amd?define("picker",["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):this.Picker=a(jQuery)}(function(a){function b(f,g,i,l){function m(){return b._.node("div",b._.node("div",b._.node("div",b._.node("div",y.component.nodes(t.open),v.box),v.wrap),v.frame),v.holder)}function n(){w.data(g,y).addClass(v.input).attr("tabindex",-1).val(w.data("value")?y.get("select",u.format):f.value),u.editable||w.on("focus."+t.id+" click."+t.id,function(a){a.preventDefault(),y.$root[0].focus()}).on("keydown."+t.id,q),e(f,{haspopup:!0,expanded:!1,readonly:!1,owns:f.id+"_root"})}function o(){y.$root.on({keydown:q,focusin:function(a){y.$root.removeClass(v.focused),a.stopPropagation()},"mousedown click":function(b){var c=b.target;c!=y.$root.children()[0]&&(b.stopPropagation(),"mousedown"!=b.type||a(c).is("input, select, textarea, button, option")||(b.preventDefault(),y.$root[0].focus()))}}).on({focus:function(){w.addClass(v.target)},blur:function(){w.removeClass(v.target)}}).on("focus.toOpen",r).on("click","[data-pick], [data-nav], [data-clear], [data-close]",function(){var b=a(this),c=b.data(),d=b.hasClass(v.navDisabled)||b.hasClass(v.disabled),e=h();e=e&&(e.type||e.href),(d||e&&!a.contains(y.$root[0],e))&&y.$root[0].focus(),!d&&c.nav?y.set("highlight",y.component.item.highlight,{nav:c.nav}):!d&&"pick"in c?y.set("select",c.pick).close(!0):c.clear?y.clear().close(!0):c.close&&y.close(!0)}),e(y.$root[0],"hidden",!0)}function p(){var b;u.hiddenName===!0?(b=f.name,f.name=""):(b=["string"==typeof u.hiddenPrefix?u.hiddenPrefix:"","string"==typeof u.hiddenSuffix?u.hiddenSuffix:"_submit"],b=b[0]+f.name+b[1]),y._hidden=a('<input type=hidden name="'+b+'"'+(w.data("value")||f.value?' value="'+y.get("select",u.formatSubmit)+'"':"")+">")[0],w.on("change."+t.id,function(){y._hidden.value=f.value?y.get("select",u.formatSubmit):""}),u.container?a(u.container).append(y._hidden):w.after(y._hidden)}function q(a){var b=a.keyCode,c=/^(8|46)$/.test(b);return 27==b?(y.close(),!1):void((32==b||c||!t.open&&y.component.key[b])&&(a.preventDefault(),a.stopPropagation(),c?y.clear().close():y.open()))}function r(a){a.stopPropagation(),"focus"==a.type&&y.$root.addClass(v.focused),y.open()}if(!f)return b;var s=!1,t={id:f.id||"P"+Math.abs(~~(Math.random()*new Date))},u=i?a.extend(!0,{},i.defaults,l):l||{},v=a.extend({},b.klasses(),u.klass),w=a(f),x=function(){return this.start()},y=x.prototype={constructor:x,$node:w,start:function(){return t&&t.start?y:(t.methods={},t.start=!0,t.open=!1,t.type=f.type,f.autofocus=f==h(),f.readOnly=!u.editable,f.id=f.id||t.id,"text"!=f.type&&(f.type="text"),y.component=new i(y,u),y.$root=a(b._.node("div",m(),v.picker,'id="'+f.id+'_root" tabindex="0"')),o(),u.formatSubmit&&p(),n(),u.container?a(u.container).append(y.$root):w.after(y.$root),y.on({start:y.component.onStart,render:y.component.onRender,stop:y.component.onStop,open:y.component.onOpen,close:y.component.onClose,set:y.component.onSet}).on({start:u.onStart,render:u.onRender,stop:u.onStop,open:u.onOpen,close:u.onClose,set:u.onSet}),s=c(y.$root.children()[0]),f.autofocus&&y.open(),y.trigger("start").trigger("render"))},render:function(a){return a?y.$root.html(m()):y.$root.find("."+v.box).html(y.component.nodes(t.open)),y.trigger("render")},stop:function(){return t.start?(y.close(),y._hidden&&y._hidden.parentNode.removeChild(y._hidden),y.$root.remove(),w.removeClass(v.input).removeData(g),setTimeout(function(){w.off("."+t.id)},0),f.type=t.type,f.readOnly=!1,y.trigger("stop"),t.methods={},t.start=!1,y):y},open:function(c){return t.open?y:(w.addClass(v.active),e(f,"expanded",!0),setTimeout(function(){y.$root.addClass(v.opened),e(y.$root[0],"hidden",!1)},0),c!==!1&&(t.open=!0,s&&k.css("overflow","hidden").css("padding-right","+="+d()),y.$root[0].focus(),j.on("click."+t.id+" focusin."+t.id,function(a){var b=a.target;b!=f&&b!=document&&3!=a.which&&y.close(b===y.$root.children()[0])}).on("keydown."+t.id,function(c){var d=c.keyCode,e=y.component.key[d],f=c.target;27==d?y.close(!0):f!=y.$root[0]||!e&&13!=d?a.contains(y.$root[0],f)&&13==d&&(c.preventDefault(),f.click()):(c.preventDefault(),e?b._.trigger(y.component.key.go,y,[b._.trigger(e)]):y.$root.find("."+v.highlighted).hasClass(v.disabled)||y.set("select",y.component.item.highlight).close())})),y.trigger("open"))},close:function(a){return a&&(y.$root.off("focus.toOpen")[0].focus(),setTimeout(function(){y.$root.on("focus.toOpen",r)},0)),w.removeClass(v.active),e(f,"expanded",!1),setTimeout(function(){y.$root.removeClass(v.opened+" "+v.focused),e(y.$root[0],"hidden",!0)},0),t.open?(t.open=!1,s&&k.css("overflow","").css("padding-right","-="+d()),j.off("."+t.id),y.trigger("close")):y},clear:function(a){return y.set("clear",null,a)},set:function(b,c,d){var e,f,g=a.isPlainObject(b),h=g?b:{};if(d=g&&a.isPlainObject(c)?c:d||{},b){g||(h[b]=c);for(e in h)f=h[e],e in y.component.item&&(void 0===f&&(f=null),y.component.set(e,f,d)),("select"==e||"clear"==e)&&w.val("clear"==e?"":y.get(e,u.format)).trigger("change");y.render()}return d.muted?y:y.trigger("set",h)},get:function(a,c){if(a=a||"value",null!=t[a])return t[a];if("valueSubmit"==a){if(y._hidden)return y._hidden.value;a="value"}if("value"==a)return f.value;if(a in y.component.item){if("string"==typeof c){var d=y.component.get(a);return d?b._.trigger(y.component.formats.toString,y.component,[c,d]):""}return y.component.get(a)}},on:function(b,c,d){var e,f,g=a.isPlainObject(b),h=g?b:{};if(b){g||(h[b]=c);for(e in h)f=h[e],d&&(e="_"+e),t.methods[e]=t.methods[e]||[],t.methods[e].push(f)}return y},off:function(){var a,b,c=arguments;for(a=0,namesCount=c.length;namesCount>a;a+=1)b=c[a],b in t.methods&&delete t.methods[b];return y},trigger:function(a,c){var d=function(a){var d=t.methods[a];d&&d.map(function(a){b._.trigger(a,y,[c])})};return d("_"+a),d(a),y}};return new x}function c(a){var b,c="position";return a.currentStyle?b=a.currentStyle[c]:window.getComputedStyle&&(b=getComputedStyle(a)[c]),"fixed"==b}function d(){if(k.height()<=i.height())return 0;var b=a('<div style="visibility:hidden;width:100px" />').appendTo("body"),c=b[0].offsetWidth;b.css("overflow","scroll");var d=a('<div style="width:100%" />').appendTo(b),e=d[0].offsetWidth;return b.remove(),c-e}function e(b,c,d){if(a.isPlainObject(c))for(var e in c)f(b,e,c[e]);else f(b,c,d)}function f(a,b,c){a.setAttribute(("role"==b?"":"aria-")+b,c)}function g(b,c){a.isPlainObject(b)||(b={attribute:c}),c="";for(var d in b){var e=("role"==d?"":"aria-")+d,f=b[d];c+=null==f?"":e+'="'+b[d]+'"'}return c}function h(){try{return document.activeElement}catch(a){}}var i=a(window),j=a(document),k=a(document.documentElement);return b.klasses=function(a){return a=a||"picker",{picker:a,opened:a+"--opened",focused:a+"--focused",input:a+"__input",active:a+"__input--active",target:a+"__input--target",holder:a+"__holder",frame:a+"__frame",wrap:a+"__wrap",box:a+"__box"}},b._={group:function(a){for(var c,d="",e=b._.trigger(a.min,a);e<=b._.trigger(a.max,a,[e]);e+=a.i)c=b._.trigger(a.item,a,[e]),d+=b._.node(a.node,c[0],c[1],c[2]);return d},node:function(b,c,d,e){return c?(c=a.isArray(c)?c.join(""):c,d=d?' class="'+d+'"':"",e=e?" "+e:"","<"+b+d+e+">"+c+"</"+b+">"):""},lead:function(a){return(10>a?"0":"")+a},trigger:function(a,b,c){return"function"==typeof a?a.apply(b,c||[]):a},digits:function(a){return/\d/.test(a[1])?2:1},isDate:function(a){return{}.toString.call(a).indexOf("Date")>-1&&this.isInteger(a.getDate())},isInteger:function(a){return{}.toString.call(a).indexOf("Number")>-1&&a%1===0},ariaAttr:g},b.extend=function(c,d){a.fn[c]=function(e,f){var g=this.data(c);return"picker"==e?g:g&&"string"==typeof e?b._.trigger(g[e],g,[f]):this.each(function(){var f=a(this);f.data(c)||new b(this,c,d,e)})},a.fn[c].defaults=d.defaults},b});
lib/simple-admin-pages/lib/pickadate/picker.time.js CHANGED
@@ -2,4 +2,4 @@
2
  * Time picker for pickadate.js v3.5.0
3
  * http://amsul.github.io/pickadate.js/time.htm
4
  */
5
- !function(a){"function"==typeof define&&define.amd?define(["picker","jquery"],a):a(Picker,jQuery)}(function(a,b){function c(a,b){var c=this,d=a.$node[0].value,e=a.$node.data("value"),f=e||d,g=e?b.formatSubmit:b.format;c.settings=b,c.$node=a.$node,c.queue={interval:"i",min:"measure create",max:"measure create",now:"now create",select:"parse create validate",highlight:"parse create validate",view:"parse create validate",disable:"deactivate",enable:"activate"},c.item={},c.item.clear=null,c.item.interval=b.interval||30,c.item.disable=(b.disable||[]).slice(0),c.item.enable=-function(a){return a[0]===!0?a.shift():-1}(c.item.disable),c.set("min",b.min).set("max",b.max).set("now"),f?c.set("select",f,{format:g,fromValue:!!d}):c.set("select",null).set("highlight",c.item.now),c.key={40:1,38:-1,39:1,37:-1,go:function(a){c.set("highlight",c.item.highlight.pick+a*c.item.interval,{interval:a*c.item.interval}),this.render()}},a.on("render",function(){var c=a.$root.children(),d=c.find("."+b.klass.viewset);d.length&&(c[0].scrollTop=~~d.position().top-2*d[0].clientHeight)}).on("open",function(){a.$root.find("button").attr("disabled",!1)}).on("close",function(){a.$root.find("button").attr("disabled",!0)})}var d=24,e=60,f=12,g=d*e,h=a._;c.prototype.set=function(a,b,c){var d=this,e=d.item;return null===b?("clear"==a&&(a="select"),e[a]=b,d):(e["enable"==a?"disable":"flip"==a?"enable":a]=d.queue[a].split(" ").map(function(e){return b=d[e](a,b,c)}).pop(),"select"==a?d.set("highlight",e.select,c):"highlight"==a?d.set("view",e.highlight,c):"interval"==a?d.set("min",e.min,c).set("max",e.max,c):a.match(/^(flip|min|max|disable|enable)$/)&&("min"==a&&d.set("max",e.max,c),e.select&&d.disabled(e.select)&&d.set("select",e.select,c),e.highlight&&d.disabled(e.highlight)&&d.set("highlight",e.highlight,c)),d)},c.prototype.get=function(a){return this.item[a]},c.prototype.create=function(a,c,f){var i=this;return c=void 0===c?a:c,h.isDate(c)&&(c=[c.getHours(),c.getMinutes()]),b.isPlainObject(c)&&h.isInteger(c.pick)?c=c.pick:b.isArray(c)?c=+c[0]*e+ +c[1]:h.isInteger(c)||(c=i.now(a,c,f)),"max"==a&&c<i.item.min.pick&&(c+=g),"min"!=a&&"max"!=a&&(c-i.item.min.pick)%i.item.interval!==0&&(c+=i.item.interval),c=i.normalize(a,c,f),{hour:~~(d+c/e)%d,mins:(e+c%e)%e,time:(g+c)%g,pick:c}},c.prototype.createRange=function(a,c){var d=this,e=function(a){return a===!0||b.isArray(a)||h.isDate(a)?d.create(a):a};return h.isInteger(a)||(a=e(a)),h.isInteger(c)||(c=e(c)),h.isInteger(a)&&b.isPlainObject(c)?a=[c.hour,c.mins+a*d.settings.interval]:h.isInteger(c)&&b.isPlainObject(a)&&(c=[a.hour,a.mins+c*d.settings.interval]),{from:e(a),to:e(c)}},c.prototype.withinRange=function(a,b){return a=this.createRange(a.from,a.to),b.pick>=a.from.pick&&b.pick<=a.to.pick},c.prototype.overlapRanges=function(a,b){var c=this;return a=c.createRange(a.from,a.to),b=c.createRange(b.from,b.to),c.withinRange(a,b.from)||c.withinRange(a,b.to)||c.withinRange(b,a.from)||c.withinRange(b,a.to)},c.prototype.now=function(a,b){var c,d=this.item.interval,f=new Date,g=f.getHours()*e+f.getMinutes(),i=h.isInteger(b);return g-=g%d,c=0>b&&-d>=d*b+g,g+="min"==a&&c?0:d,i&&(g+=d*(c&&"max"!=a?b+1:b)),g},c.prototype.normalize=function(a,b){var c=this.item.interval,d=this.item.min&&this.item.min.pick||0;return b-="min"==a?0:(b-d)%c},c.prototype.measure=function(a,c,f){var g=this;return c?c===!0||h.isInteger(c)?c=g.now(a,c,f):b.isPlainObject(c)&&h.isInteger(c.pick)&&(c=g.normalize(a,c.pick,f)):c="min"==a?[0,0]:[d-1,e-1],c},c.prototype.validate=function(a,b,c){var d=this,e=c&&c.interval?c.interval:d.item.interval;return d.disabled(b)&&(b=d.shift(b,e)),b=d.scope(b),d.disabled(b)&&(b=d.shift(b,-1*e)),b},c.prototype.disabled=function(a){var c=this,d=c.item.disable.filter(function(d){return h.isInteger(d)?a.hour==d:b.isArray(d)||h.isDate(d)?a.pick==c.create(d).pick:b.isPlainObject(d)?c.withinRange(d,a):void 0});return d=d.length&&!d.filter(function(a){return b.isArray(a)&&"inverted"==a[2]||b.isPlainObject(a)&&a.inverted}).length,-1===c.item.enable?!d:d||a.pick<c.item.min.pick||a.pick>c.item.max.pick},c.prototype.shift=function(a,b){var c=this,d=c.item.min.pick,e=c.item.max.pick;for(b=b||c.item.interval;c.disabled(a)&&(a=c.create(a.pick+=b),!(a.pick<=d||a.pick>=e)););return a},c.prototype.scope=function(a){var b=this.item.min.pick,c=this.item.max.pick;return this.create(a.pick>c?c:a.pick<b?b:a)},c.prototype.parse=function(a,b,c){var d,f,g,i,j,k=this,l={};if(!b||"string"!=typeof b)return b;c&&c.format||(c=c||{},c.format=k.settings.format),k.formats.toArray(c.format).map(function(a){var c,d=k.formats[a],e=d?h.trigger(d,k,[b,l]):a.replace(/^!/,"").length;d&&(c=b.substr(0,e),l[a]=c.match(/^\d+$/)?+c:c),b=b.substr(e)});for(i in l)j=l[i],h.isInteger(j)?i.match(/^(h|hh)$/i)?(d=j,("h"==i||"hh"==i)&&(d%=12)):"i"==i&&(f=j):i.match(/^a$/i)&&j.match(/^p/i)&&("h"in l||"hh"in l)&&(g=!0);return(g?d+12:d)*e+f},c.prototype.formats={h:function(a,b){return a?h.digits(a):b.hour%f||f},hh:function(a,b){return a?2:h.lead(b.hour%f||f)},H:function(a,b){return a?h.digits(a):""+b.hour%24},HH:function(a,b){return a?h.digits(a):h.lead(b.hour%24)},i:function(a,b){return a?2:h.lead(b.mins)},a:function(a,b){return a?4:g/2>b.time%g?"a.m.":"p.m."},A:function(a,b){return a?2:g/2>b.time%g?"AM":"PM"},toArray:function(a){return a.split(/(h{1,2}|H{1,2}|i|a|A|!.)/g)},toString:function(a,b){var c=this;return c.formats.toArray(a).map(function(a){return h.trigger(c.formats[a],c,[0,b])||a.replace(/^!/,"")}).join("")}},c.prototype.isTimeExact=function(a,c){var d=this;return h.isInteger(a)&&h.isInteger(c)||"boolean"==typeof a&&"boolean"==typeof c?a===c:(h.isDate(a)||b.isArray(a))&&(h.isDate(c)||b.isArray(c))?d.create(a).pick===d.create(c).pick:b.isPlainObject(a)&&b.isPlainObject(c)?d.isTimeExact(a.from,c.from)&&d.isTimeExact(a.to,c.to):!1},c.prototype.isTimeOverlap=function(a,c){var d=this;return h.isInteger(a)&&(h.isDate(c)||b.isArray(c))?a===d.create(c).hour:h.isInteger(c)&&(h.isDate(a)||b.isArray(a))?c===d.create(a).hour:b.isPlainObject(a)&&b.isPlainObject(c)?d.overlapRanges(a,c):!1},c.prototype.flipEnable=function(a){var b=this.item;b.enable=a||(-1==b.enable?1:-1)},c.prototype.deactivate=function(a,c){var d=this,e=d.item.disable.slice(0);return"flip"==c?d.flipEnable():c===!1?(d.flipEnable(1),e=[]):c===!0?(d.flipEnable(-1),e=[]):c.map(function(a){for(var c,f=0;f<e.length;f+=1)if(d.isTimeExact(a,e[f])){c=!0;break}c||(h.isInteger(a)||h.isDate(a)||b.isArray(a)||b.isPlainObject(a)&&a.from&&a.to)&&e.push(a)}),e},c.prototype.activate=function(a,c){var d=this,e=d.item.disable,f=e.length;return"flip"==c?d.flipEnable():c===!0?(d.flipEnable(1),e=[]):c===!1?(d.flipEnable(-1),e=[]):c.map(function(a){var c,g,i,j;for(i=0;f>i;i+=1){if(g=e[i],d.isTimeExact(g,a)){c=e[i]=null,j=!0;break}if(d.isTimeOverlap(g,a)){b.isPlainObject(a)?(a.inverted=!0,c=a):b.isArray(a)?(c=a,c[2]||c.push("inverted")):h.isDate(a)&&(c=[a.getFullYear(),a.getMonth(),a.getDate(),"inverted"]);break}}if(c)for(i=0;f>i;i+=1)if(d.isTimeExact(e[i],a)){e[i]=null;break}if(j)for(i=0;f>i;i+=1)if(d.isTimeOverlap(e[i],a)){e[i]=null;break}c&&e.push(c)}),e.filter(function(a){return null!=a})},c.prototype.i=function(a,b){return h.isInteger(b)&&b>0?b:this.item.interval},c.prototype.nodes=function(a){var b=this,c=b.settings,d=b.item.select,e=b.item.highlight,f=b.item.view,g=b.item.disable;return h.node("ul",h.group({min:b.item.min.pick,max:b.item.max.pick,i:b.item.interval,node:"li",item:function(a){a=b.create(a);var i=a.pick,j=d&&d.pick==i,k=e&&e.pick==i,l=g&&b.disabled(a);return[h.trigger(b.formats.toString,b,[h.trigger(c.formatLabel,b,[a])||c.format,a]),function(a){return j&&a.push(c.klass.selected),k&&a.push(c.klass.highlighted),f&&f.pick==i&&a.push(c.klass.viewset),l&&a.push(c.klass.disabled),a.join(" ")}([c.klass.listItem]),"data-pick="+a.pick+" "+h.ariaAttr({role:"option",selected:j&&b.$node.val()===h.trigger(b.formats.toString,b,[c.format,a])?!0:null,activedescendant:k?!0:null,disabled:l?!0:null})]}})+h.node("li",h.node("button",c.clear,c.klass.buttonClear,"type=button data-clear=1"+(a?"":" disabled")+" "+h.ariaAttr({controls:b.$node[0].id})),"",h.ariaAttr({role:"presentation"})),c.klass.list,h.ariaAttr({role:"listbox",controls:b.$node[0].id}))},c.defaults=function(a){return{clear:"Clear",format:"h:i A",interval:30,klass:{picker:a+" "+a+"--time",holder:a+"__holder",list:a+"__list",listItem:a+"__list-item",disabled:a+"__list-item--disabled",selected:a+"__list-item--selected",highlighted:a+"__list-item--highlighted",viewset:a+"__list-item--viewset",now:a+"__list-item--now",buttonClear:a+"__button--clear"}}}(a.klasses().picker),a.extend("pickatime",c)});
2
  * Time picker for pickadate.js v3.5.0
3
  * http://amsul.github.io/pickadate.js/time.htm
4
  */
5
+ !function(a){"function"==typeof define&&define.amd?define(["picker","jquery"],a):"object"==typeof exports?module.exports=a(require("./picker.js"),require("jquery")):a(Picker,jQuery)}(function(a,b){function c(a,b){var c=this,d=a.$node[0].value,e=a.$node.data("value"),f=e||d,g=e?b.formatSubmit:b.format;c.settings=b,c.$node=a.$node,c.queue={interval:"i",min:"measure create",max:"measure create",now:"now create",select:"parse create validate",highlight:"parse create validate",view:"parse create validate",disable:"deactivate",enable:"activate"},c.item={},c.item.clear=null,c.item.interval=b.interval||30,c.item.disable=(b.disable||[]).slice(0),c.item.enable=-function(a){return a[0]===!0?a.shift():-1}(c.item.disable),c.set("min",b.min).set("max",b.max).set("now"),f?c.set("select",f,{format:g,fromValue:!!d}):c.set("select",null).set("highlight",c.item.now),c.key={40:1,38:-1,39:1,37:-1,go:function(a){c.set("highlight",c.item.highlight.pick+a*c.item.interval,{interval:a*c.item.interval}),this.render()}},a.on("render",function(){var c=a.$root.children(),d=c.find("."+b.klass.viewset),e=function(a){return["webkit","moz","ms","o",""].map(function(b){return(b?"-"+b+"-":"")+a})},f=function(a,b){e("transform").map(function(c){a.css(c,b)}),e("transition").map(function(c){a.css(c,b)})};d.length&&(f(c,"none"),c[0].scrollTop=~~d.position().top-2*d[0].clientHeight,f(c,""))},1).on("open",function(){a.$root.find("button").attr("disabled",!1)},1).on("close",function(){a.$root.find("button").attr("disabled",!0)},1)}var d=24,e=60,f=12,g=d*e,h=a._;c.prototype.set=function(a,b,c){var d=this,e=d.item;return null===b?("clear"==a&&(a="select"),e[a]=b,d):(e["enable"==a?"disable":"flip"==a?"enable":a]=d.queue[a].split(" ").map(function(e){return b=d[e](a,b,c)}).pop(),"select"==a?d.set("highlight",e.select,c):"highlight"==a?d.set("view",e.highlight,c):"interval"==a?d.set("min",e.min,c).set("max",e.max,c):a.match(/^(flip|min|max|disable|enable)$/)&&(e.select&&d.disabled(e.select)&&d.set("select",b,c),e.highlight&&d.disabled(e.highlight)&&d.set("highlight",b,c),"min"==a&&d.set("max",e.max,c)),d)},c.prototype.get=function(a){return this.item[a]},c.prototype.create=function(a,c,f){var i=this;return c=void 0===c?a:c,h.isDate(c)&&(c=[c.getHours(),c.getMinutes()]),b.isPlainObject(c)&&h.isInteger(c.pick)?c=c.pick:b.isArray(c)?c=+c[0]*e+ +c[1]:h.isInteger(c)||(c=i.now(a,c,f)),"max"==a&&c<i.item.min.pick&&(c+=g),"min"!=a&&"max"!=a&&(c-i.item.min.pick)%i.item.interval!==0&&(c+=i.item.interval),c=i.normalize(a,c,f),{hour:~~(d+c/e)%d,mins:(e+c%e)%e,time:(g+c)%g,pick:c%g}},c.prototype.createRange=function(a,c){var d=this,e=function(a){return a===!0||b.isArray(a)||h.isDate(a)?d.create(a):a};return h.isInteger(a)||(a=e(a)),h.isInteger(c)||(c=e(c)),h.isInteger(a)&&b.isPlainObject(c)?a=[c.hour,c.mins+a*d.settings.interval]:h.isInteger(c)&&b.isPlainObject(a)&&(c=[a.hour,a.mins+c*d.settings.interval]),{from:e(a),to:e(c)}},c.prototype.withinRange=function(a,b){return a=this.createRange(a.from,a.to),b.pick>=a.from.pick&&b.pick<=a.to.pick},c.prototype.overlapRanges=function(a,b){var c=this;return a=c.createRange(a.from,a.to),b=c.createRange(b.from,b.to),c.withinRange(a,b.from)||c.withinRange(a,b.to)||c.withinRange(b,a.from)||c.withinRange(b,a.to)},c.prototype.now=function(a,b){var c,d=this.item.interval,f=new Date,g=f.getHours()*e+f.getMinutes(),i=h.isInteger(b);return g-=g%d,c=0>b&&-d>=d*b+g,g+="min"==a&&c?0:d,i&&(g+=d*(c&&"max"!=a?b+1:b)),g},c.prototype.normalize=function(a,b){var c=this.item.interval,d=this.item.min&&this.item.min.pick||0;return b-="min"==a?0:(b-d)%c},c.prototype.measure=function(a,c,f){var g=this;return c||(c="min"==a?[0,0]:[d-1,e-1]),"string"==typeof c?c=g.parse(a,c):c===!0||h.isInteger(c)?c=g.now(a,c,f):b.isPlainObject(c)&&h.isInteger(c.pick)&&(c=g.normalize(a,c.pick,f)),c},c.prototype.validate=function(a,b,c){var d=this,e=c&&c.interval?c.interval:d.item.interval;return d.disabled(b)&&(b=d.shift(b,e)),b=d.scope(b),d.disabled(b)&&(b=d.shift(b,-1*e)),b},c.prototype.disabled=function(a){var c=this,d=c.item.disable.filter(function(d){return h.isInteger(d)?a.hour==d:b.isArray(d)||h.isDate(d)?a.pick==c.create(d).pick:b.isPlainObject(d)?c.withinRange(d,a):void 0});return d=d.length&&!d.filter(function(a){return b.isArray(a)&&"inverted"==a[2]||b.isPlainObject(a)&&a.inverted}).length,-1===c.item.enable?!d:d||a.pick<c.item.min.pick||a.pick>c.item.max.pick},c.prototype.shift=function(a,b){var c=this,d=c.item.min.pick,e=c.item.max.pick;for(b=b||c.item.interval;c.disabled(a)&&(a=c.create(a.pick+=b),!(a.pick<=d||a.pick>=e)););return a},c.prototype.scope=function(a){var b=this.item.min.pick,c=this.item.max.pick;return this.create(a.pick>c?c:a.pick<b?b:a)},c.prototype.parse=function(a,b,c){var d,f,g,i,j,k=this,l={};if(!b||"string"!=typeof b)return b;c&&c.format||(c=c||{},c.format=k.settings.format),k.formats.toArray(c.format).map(function(a){var c,d=k.formats[a],e=d?h.trigger(d,k,[b,l]):a.replace(/^!/,"").length;d&&(c=b.substr(0,e),l[a]=c.match(/^\d+$/)?+c:c),b=b.substr(e)});for(i in l)j=l[i],h.isInteger(j)?i.match(/^(h|hh)$/i)?(d=j,("h"==i||"hh"==i)&&(d%=12)):"i"==i&&(f=j):i.match(/^a$/i)&&j.match(/^p/i)&&("h"in l||"hh"in l)&&(g=!0);return(g?d+12:d)*e+f},c.prototype.formats={h:function(a,b){return a?h.digits(a):b.hour%f||f},hh:function(a,b){return a?2:h.lead(b.hour%f||f)},H:function(a,b){return a?h.digits(a):""+b.hour%24},HH:function(a,b){return a?h.digits(a):h.lead(b.hour%24)},i:function(a,b){return a?2:h.lead(b.mins)},a:function(a,b){return a?4:g/2>b.time%g?"a.m.":"p.m."},A:function(a,b){return a?2:g/2>b.time%g?"AM":"PM"},toArray:function(a){return a.split(/(h{1,2}|H{1,2}|i|a|A|!.)/g)},toString:function(a,b){var c=this;return c.formats.toArray(a).map(function(a){return h.trigger(c.formats[a],c,[0,b])||a.replace(/^!/,"")}).join("")}},c.prototype.isTimeExact=function(a,c){var d=this;return h.isInteger(a)&&h.isInteger(c)||"boolean"==typeof a&&"boolean"==typeof c?a===c:(h.isDate(a)||b.isArray(a))&&(h.isDate(c)||b.isArray(c))?d.create(a).pick===d.create(c).pick:b.isPlainObject(a)&&b.isPlainObject(c)?d.isTimeExact(a.from,c.from)&&d.isTimeExact(a.to,c.to):!1},c.prototype.isTimeOverlap=function(a,c){var d=this;return h.isInteger(a)&&(h.isDate(c)||b.isArray(c))?a===d.create(c).hour:h.isInteger(c)&&(h.isDate(a)||b.isArray(a))?c===d.create(a).hour:b.isPlainObject(a)&&b.isPlainObject(c)?d.overlapRanges(a,c):!1},c.prototype.flipEnable=function(a){var b=this.item;b.enable=a||(-1==b.enable?1:-1)},c.prototype.deactivate=function(a,c){var d=this,e=d.item.disable.slice(0);return"flip"==c?d.flipEnable():c===!1?(d.flipEnable(1),e=[]):c===!0?(d.flipEnable(-1),e=[]):c.map(function(a){for(var c,f=0;f<e.length;f+=1)if(d.isTimeExact(a,e[f])){c=!0;break}c||(h.isInteger(a)||h.isDate(a)||b.isArray(a)||b.isPlainObject(a)&&a.from&&a.to)&&e.push(a)}),e},c.prototype.activate=function(a,c){var d=this,e=d.item.disable,f=e.length;return"flip"==c?d.flipEnable():c===!0?(d.flipEnable(1),e=[]):c===!1?(d.flipEnable(-1),e=[]):c.map(function(a){var c,g,i,j;for(i=0;f>i;i+=1){if(g=e[i],d.isTimeExact(g,a)){c=e[i]=null,j=!0;break}if(d.isTimeOverlap(g,a)){b.isPlainObject(a)?(a.inverted=!0,c=a):b.isArray(a)?(c=a,c[2]||c.push("inverted")):h.isDate(a)&&(c=[a.getFullYear(),a.getMonth(),a.getDate(),"inverted"]);break}}if(c)for(i=0;f>i;i+=1)if(d.isTimeExact(e[i],a)){e[i]=null;break}if(j)for(i=0;f>i;i+=1)if(d.isTimeOverlap(e[i],a)){e[i]=null;break}c&&e.push(c)}),e.filter(function(a){return null!=a})},c.prototype.i=function(a,b){return h.isInteger(b)&&b>0?b:this.item.interval},c.prototype.nodes=function(a){var b=this,c=b.settings,d=b.item.select,e=b.item.highlight,f=b.item.view,g=b.item.disable;return h.node("ul",h.group({min:b.item.min.pick,max:b.item.max.pick,i:b.item.interval,node:"li",item:function(a){a=b.create(a);var i=a.pick,j=d&&d.pick==i,k=e&&e.pick==i,l=g&&b.disabled(a),m=h.trigger(b.formats.toString,b,[c.format,a]);return[h.trigger(b.formats.toString,b,[h.trigger(c.formatLabel,b,[a])||c.format,a]),function(a){return j&&a.push(c.klass.selected),k&&a.push(c.klass.highlighted),f&&f.pick==i&&a.push(c.klass.viewset),l&&a.push(c.klass.disabled),a.join(" ")}([c.klass.listItem]),"data-pick="+a.pick+" "+h.ariaAttr({role:"option",label:m,selected:j&&b.$node.val()===m?!0:null,activedescendant:k?!0:null,disabled:l?!0:null})]}})+h.node("li",h.node("button",c.clear,c.klass.buttonClear,"type=button data-clear=1"+(a?"":" disabled")+" "+h.ariaAttr({controls:b.$node[0].id})),"",h.ariaAttr({role:"presentation"})),c.klass.list,h.ariaAttr({role:"listbox",controls:b.$node[0].id}))},c.defaults=function(a){return{clear:"Clear",format:"h:i A",interval:30,klass:{picker:a+" "+a+"--time",holder:a+"__holder",list:a+"__list",listItem:a+"__list-item",disabled:a+"__list-item--disabled",selected:a+"__list-item--selected",highlighted:a+"__list-item--highlighted",viewset:a+"__list-item--viewset",now:a+"__list-item--now",buttonClear:a+"__button--clear"}}}(a.klasses().picker),a.extend("pickatime",c)});
lib/simple-admin-pages/lib/pickadate/themes/default.css CHANGED
@@ -1,4 +1,4 @@
1
  .picker{font-size:16px;text-align:left;line-height:1.2;color:#000;position:absolute;z-index:10000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.picker__input{cursor:default}.picker__input.picker__input--active{border-color:#0089ec}.picker__holder{width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}/*!
2
  * Default mobile-first, responsive styling for pickadate.js
3
  * Demo: http://amsul.github.io/pickadate.js
4
- */.picker__frame,.picker__holder{bottom:0;left:0;right:0;top:100%}.picker__holder{position:fixed;-webkit-transition:background .15s ease-out,top 0s .15s;-moz-transition:background .15s ease-out,top 0s .15s;transition:background .15s ease-out,top 0s .15s}.picker__frame{position:absolute;margin:0 auto;min-width:256px;max-width:666px;width:100%;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;opacity:0;-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}@media (min-height:33.875em){.picker__frame{overflow:visible;top:auto;bottom:-100%;max-height:80%}}@media (min-height:40.125em){.picker__frame{margin-bottom:7.5%}}.picker__wrap{display:table;width:100%;height:100%}@media (min-height:33.875em){.picker__wrap{display:block}}.picker__box{background:#fff;display:table-cell;vertical-align:middle}@media (min-height:26.5em){.picker__box{font-size:1.25em}}@media (min-height:33.875em){.picker__box{display:block;font-size:1.33em;border:1px solid #777;border-top-color:#898989;border-bottom-width:0;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;-webkit-box-shadow:0 12px 36px 16px rgba(0,0,0,.24);-moz-box-shadow:0 12px 36px 16px rgba(0,0,0,.24);box-shadow:0 12px 36px 16px rgba(0,0,0,.24)}}@media (min-height:40.125em){.picker__box{font-size:1.5em;border-bottom-width:1px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}}.picker--opened .picker__holder{top:0;zoom:1;background:rgba(0,0,0,.32);-webkit-transition:background .15s ease-out;-moz-transition:background .15s ease-out;transition:background .15s ease-out}.picker--opened .picker__frame{top:0;-ms-filter:"alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;opacity:1}@media (min-height:33.875em){.picker--opened .picker__frame{top:auto;bottom:0}}
1
  .picker{font-size:16px;text-align:left;line-height:1.2;color:#000;position:absolute;z-index:10000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.picker__input{cursor:default}.picker__input.picker__input--active{border-color:#0089ec}.picker__holder{width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}/*!
2
  * Default mobile-first, responsive styling for pickadate.js
3
  * Demo: http://amsul.github.io/pickadate.js
4
+ */.picker__frame,.picker__holder{top:0;bottom:0;left:0;right:0;-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.picker__holder{position:fixed;transition:background .15s ease-out,-webkit-transform 0s .15s;transition:background .15s ease-out,transform 0s .15s;-webkit-backface-visibility:hidden}.picker__frame{position:absolute;margin:0 auto;min-width:256px;max-width:666px;width:100%;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;opacity:0;transition:all .15s ease-out}@media (min-height:33.875em){.picker__frame{overflow:visible;top:auto;bottom:-100%;max-height:80%}}@media (min-height:40.125em){.picker__frame{margin-bottom:7.5%}}.picker__wrap{display:table;width:100%;height:100%}@media (min-height:33.875em){.picker__wrap{display:block}}.picker__box{background:#fff;display:table-cell;vertical-align:middle}@media (min-height:26.5em){.picker__box{font-size:1.25em}}@media (min-height:33.875em){.picker__box{display:block;font-size:1.33em;border:1px solid #777;border-top-color:#898989;border-bottom-width:0;border-radius:5px 5px 0 0;box-shadow:0 12px 36px 16px rgba(0,0,0,.24)}}@media (min-height:40.125em){.picker__box{font-size:1.5em;border-bottom-width:1px;border-radius:5px}}.picker--opened .picker__holder{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);zoom:1;background:rgba(0,0,0,.32);transition:background .15s ease-out}.picker--opened .picker__frame{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-ms-filter:"alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;opacity:1}@media (min-height:33.875em){.picker--opened .picker__frame{top:auto;bottom:0}}
lib/simple-admin-pages/lib/pickadate/themes/default.date.css CHANGED
@@ -1 +1 @@
1
- .picker__box{padding:0 1em}.picker__header{text-align:center;position:relative;margin-top:.75em}.picker__month,.picker__year{font-weight:500;display:inline-block;margin-left:.25em;margin-right:.25em}.picker__year{color:#999;font-size:.8em;font-style:italic}.picker__select--month,.picker__select--year{border:1px solid #b7b7b7;height:2em;padding:.5em;margin-left:.25em;margin-right:.25em}@media (min-width:24.5em){.picker__select--month,.picker__select--year{margin-top:-.5em}}.picker__select--month{width:35%}.picker__select--year{width:22.5%}.picker__select--month:focus,.picker__select--year:focus{border-color:#0089ec}.picker__nav--next,.picker__nav--prev{position:absolute;padding:.5em 1.25em;width:1em;height:1em;top:-.25em}@media (min-width:24.5em){.picker__nav--next,.picker__nav--prev{top:-.33em}}.picker__nav--prev{left:-1em;padding-right:1.25em}@media (min-width:24.5em){.picker__nav--prev{padding-right:1.5em}}.picker__nav--next{right:-1em;padding-left:1.25em}@media (min-width:24.5em){.picker__nav--next{padding-left:1.5em}}.picker__nav--next:before,.picker__nav--prev:before{content:" ";border-top:.5em solid transparent;border-bottom:.5em solid transparent;border-right:.75em solid #000;width:0;height:0;display:block;margin:0 auto}.picker__nav--next:before{border-right:0;border-left:.75em solid #000}.picker__nav--next:hover,.picker__nav--prev:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker__nav--disabled,.picker__nav--disabled:before,.picker__nav--disabled:before:hover,.picker__nav--disabled:hover{cursor:default;background:0 0;border-right-color:#f5f5f5;border-left-color:#f5f5f5}.picker__table{text-align:center;border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:inherit;width:100%;margin-top:.75em;margin-bottom:.5em}@media (min-height:33.875em){.picker__table{margin-bottom:.75em}}.picker__table td{margin:0;padding:0}.picker__weekday{width:14.285714286%;font-size:.75em;padding-bottom:.25em;color:#999;font-weight:500}@media (min-height:33.875em){.picker__weekday{padding-bottom:.5em}}.picker__day{padding:.3125em 0;font-weight:200;border:1px solid transparent}.picker__day--today{color:#0089ec;position:relative}.picker__day--today:before{content:" ";position:absolute;top:2px;right:2px;width:0;height:0;border-top:.5em solid #0059bc;border-left:.5em solid transparent}.picker__day--selected,.picker__day--selected:hover{border-color:#0089ec}.picker__day--highlighted{background:#b1dcfb}.picker__day--disabled:before{border-top-color:#aaa}.picker__day--outfocus{color:#ddd}.picker__day--infocus:hover,.picker__day--outfocus:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker--focused .picker__day--highlighted,.picker__day--highlighted:hover{background:#0089ec;color:#fff}.picker__day--disabled,.picker__day--disabled:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__day--highlighted.picker__day--disabled,.picker__day--highlighted.picker__day--disabled:hover{background:#bbb}.picker__footer{text-align:center}.picker__button--clear,.picker__button--today{border:1px solid #fff;background:#fff;font-size:.8em;padding:.66em 0;font-weight:700;width:50%;display:inline-block;vertical-align:bottom}.picker__button--clear:hover,.picker__button--today:hover{cursor:pointer;color:#000;background:#b1dcfb;border-bottom-color:#b1dcfb}.picker__button--clear:focus,.picker__button--today:focus{background:#b1dcfb;border-color:#0089ec;outline:0}.picker__button--clear:before,.picker__button--today:before{position:relative;display:inline-block;height:0}.picker__button--today:before{content:" ";margin-right:.45em;top:-.05em;width:0;border-top:.66em solid #0059bc;border-left:.66em solid transparent}.picker__button--clear:before{content:"\D7";margin-right:.35em;top:-.1em;color:#e20;vertical-align:top;font-size:1.1em}
1
+ .picker__box{padding:0 1em}.picker__header{text-align:center;position:relative;margin-top:.75em}.picker__month,.picker__year{font-weight:500;display:inline-block;margin-left:.25em;margin-right:.25em}.picker__year{color:#999;font-size:.8em;font-style:italic}.picker__select--month,.picker__select--year{border:1px solid #b7b7b7;height:2em;padding:.5em;margin-left:.25em;margin-right:.25em}@media (min-width:24.5em){.picker__select--month,.picker__select--year{margin-top:-.5em}}.picker__select--month{width:35%}.picker__select--year{width:22.5%}.picker__select--month:focus,.picker__select--year:focus{border-color:#0089ec}.picker__nav--next,.picker__nav--prev{position:absolute;padding:.5em 1.25em;width:1em;height:1em;box-sizing:content-box;top:-.25em}@media (min-width:24.5em){.picker__nav--next,.picker__nav--prev{top:-.33em}}.picker__nav--prev{left:-1em;padding-right:1.25em}@media (min-width:24.5em){.picker__nav--prev{padding-right:1.5em}}.picker__nav--next{right:-1em;padding-left:1.25em}@media (min-width:24.5em){.picker__nav--next{padding-left:1.5em}}.picker__nav--next:before,.picker__nav--prev:before{content:" ";border-top:.5em solid transparent;border-bottom:.5em solid transparent;border-right:.75em solid #000;width:0;height:0;display:block;margin:0 auto}.picker__nav--next:before{border-right:0;border-left:.75em solid #000}.picker__nav--next:hover,.picker__nav--prev:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker__nav--disabled,.picker__nav--disabled:before,.picker__nav--disabled:before:hover,.picker__nav--disabled:hover{cursor:default;background:0 0;border-right-color:#f5f5f5;border-left-color:#f5f5f5}.picker__table{text-align:center;border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:inherit;width:100%;margin-top:.75em;margin-bottom:.5em}@media (min-height:33.875em){.picker__table{margin-bottom:.75em}}.picker__table td{margin:0;padding:0}.picker__weekday{width:14.285714286%;font-size:.75em;padding-bottom:.25em;color:#999;font-weight:500}@media (min-height:33.875em){.picker__weekday{padding-bottom:.5em}}.picker__day{padding:.3125em 0;font-weight:200;border:1px solid transparent}.picker__day--today{position:relative}.picker__day--today:before{content:" ";position:absolute;top:2px;right:2px;width:0;height:0;border-top:.5em solid #0059bc;border-left:.5em solid transparent}.picker__day--disabled:before{border-top-color:#aaa}.picker__day--outfocus{color:#ddd}.picker__day--infocus:hover,.picker__day--outfocus:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker__day--highlighted{border-color:#0089ec}.picker--focused .picker__day--highlighted,.picker__day--highlighted:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker--focused .picker__day--selected,.picker__day--selected,.picker__day--selected:hover{background:#0089ec;color:#fff}.picker--focused .picker__day--disabled,.picker__day--disabled,.picker__day--disabled:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__day--highlighted.picker__day--disabled,.picker__day--highlighted.picker__day--disabled:hover{background:#bbb}.picker__footer{text-align:center}.picker__button--clear,.picker__button--close,.picker__button--today{border:1px solid #fff;background:#fff;font-size:.8em;padding:.66em 0;font-weight:700;width:33%;display:inline-block;vertical-align:bottom}.picker__button--clear:hover,.picker__button--close:hover,.picker__button--today:hover{cursor:pointer;color:#000;background:#b1dcfb;border-bottom-color:#b1dcfb}.picker__button--clear:focus,.picker__button--close:focus,.picker__button--today:focus{background:#b1dcfb;border-color:#0089ec;outline:0}.picker__button--clear:before,.picker__button--close:before,.picker__button--today:before{position:relative;display:inline-block;height:0}.picker__button--clear:before,.picker__button--today:before{content:" ";margin-right:.45em}.picker__button--today:before{top:-.05em;width:0;border-top:.66em solid #0059bc;border-left:.66em solid transparent}.picker__button--clear:before{top:-.25em;width:.66em;border-top:3px solid #e20}.picker__button--close:before{content:"\D7";top:-.1em;vertical-align:top;font-size:1.1em;margin-right:.35em;color:#777}.picker__button--today[disabled],.picker__button--today[disabled]:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__button--today[disabled]:before{border-top-color:#aaa}
lib/simple-admin-pages/lib/pickadate/themes/default.time.css CHANGED
@@ -1 +1 @@
1
- .picker__list{list-style:none;padding:.75em 0 4.2em;margin:0}.picker__list-item{border-bottom:1px solid #ddd;border-top:1px solid #ddd;margin-bottom:-1px;position:relative;background:#fff;padding:.75em 1.25em}@media (min-height:46.75em){.picker__list-item{padding:.5em 1em}}.picker__list-item:hover{cursor:pointer;color:#000;background:#b1dcfb;border-color:#0089ec;z-index:10}.picker__list-item--selected,.picker__list-item--selected:hover{border-color:#0089ec;z-index:10}.picker__list-item--highlighted{background:#b1dcfb}.picker--focused .picker__list-item--highlighted,.picker__list-item--highlighted:hover{background:#0089ec;color:#fff}.picker--focused .picker__list-item--disabled,.picker__list-item--disabled,.picker__list-item--disabled:hover{background:#f5f5f5;color:#ddd;cursor:default;border-color:#ddd;z-index:auto}.picker--time .picker__button--clear{display:block;width:80%;margin:1em auto 0;padding:1em 1.25em;background:0 0;border:0;font-weight:500;font-size:.67em;text-align:center;text-transform:uppercase;color:#666}.picker--time .picker__button--clear:focus,.picker--time .picker__button--clear:hover{background:#b1dcfb;background:#e20;border-color:#e20;cursor:pointer;color:#fff;outline:0}.picker--time .picker__button--clear:before{top:-.25em;color:#666;font-size:1.25em;font-weight:700}.picker--time .picker__button--clear:focus:before,.picker--time .picker__button--clear:hover:before{color:#fff}.picker--time .picker__frame{min-width:256px;max-width:320px}.picker--time .picker__box{font-size:1em;background:#f2f2f2;padding:0}@media (min-height:40.125em){.picker--time .picker__box{margin-bottom:5em}}
1
+ .picker__list{list-style:none;padding:.75em 0 4.2em;margin:0}.picker__list-item{border-bottom:1px solid #ddd;border-top:1px solid #ddd;margin-bottom:-1px;position:relative;background:#fff;padding:.75em 1.25em}@media (min-height:46.75em){.picker__list-item{padding:.5em 1em}}.picker__list-item:hover{cursor:pointer;color:#000;background:#b1dcfb;border-color:#0089ec;z-index:10}.picker__list-item--highlighted{border-color:#0089ec;z-index:10}.picker--focused .picker__list-item--highlighted,.picker__list-item--highlighted:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker--focused .picker__list-item--selected,.picker__list-item--selected,.picker__list-item--selected:hover{background:#0089ec;color:#fff;z-index:10}.picker--focused .picker__list-item--disabled,.picker__list-item--disabled,.picker__list-item--disabled:hover{background:#f5f5f5;color:#ddd;cursor:default;border-color:#ddd;z-index:auto}.picker--time .picker__button--clear{display:block;width:80%;margin:1em auto 0;padding:1em 1.25em;background:0 0;border:0;font-weight:500;font-size:.67em;text-align:center;text-transform:uppercase;color:#666}.picker--time .picker__button--clear:focus,.picker--time .picker__button--clear:hover{background:#b1dcfb;background:#e20;border-color:#e20;cursor:pointer;color:#fff;outline:0}.picker--time .picker__button--clear:before{top:-.25em;color:#666;font-size:1.25em;font-weight:700}.picker--time .picker__button--clear:focus:before,.picker--time .picker__button--clear:hover:before{color:#fff;border-color:#fff}.picker--time .picker__frame{min-width:256px;max-width:320px}.picker--time .picker__box{font-size:1em;background:#f2f2f2;padding:0}@media (min-height:40.125em){.picker--time .picker__box{margin-bottom:5em}}
lib/simple-admin-pages/lib/pickadate/translations/ar.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر"],monthsShort:["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر"],weekdaysFull:["الاحد","الاثنين","الثلاثاء","الاربعاء","الخميس","الجمعة","السبت"],weekdaysShort:["الاحد","الاثنين","الثلاثاء","الاربعاء","الخميس","الجمعة","السبت"],today:"اليوم",clear:"مسح",format:"yyyy mmmm dd",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر"],monthsShort:["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر"],weekdaysFull:["الاحد","الاثنين","الثلاثاء","الاربعاء","الخميس","الجمعة","السبت"],weekdaysShort:["الاحد","الاثنين","الثلاثاء","الاربعاء","الخميس","الجمعة","السبت"],today:"اليوم",clear:"مسح",format:"yyyy mmmm dd",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"مسح"});
lib/simple-admin-pages/lib/pickadate/translations/bg_BG.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["януари","февруари","март","април","май","юни","юли","август","септември","октомври","ноември","декември"],monthsShort:["янр","фев","мар","апр","май","юни","юли","авг","сеп","окт","ное","дек"],weekdaysFull:["неделя","понеделник","вторник","сряда","четвъртък","петък","събота"],weekdaysShort:["нд","пн","вт","ср","чт","пт","сб"],today:"днес",clear:"изтривам",firstDay:1,format:"d mmmm yyyy г.",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["януари","февруари","март","април","май","юни","юли","август","септември","октомври","ноември","декември"],monthsShort:["янр","фев","мар","апр","май","юни","юли","авг","сеп","окт","ное","дек"],weekdaysFull:["неделя","понеделник","вторник","сряда","четвъртък","петък","събота"],weekdaysShort:["нд","пн","вт","ср","чт","пт","сб"],today:"днес",clear:"изтривам",firstDay:1,format:"d mmmm yyyy г.",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"изтривам"});
lib/simple-admin-pages/lib/pickadate/translations/bs_BA.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["januar","februar","mart","april","maj","juni","juli","august","septembar","oktobar","novembar","decembar"],monthsShort:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],weekdaysFull:["nedjelja","ponedjeljak","utorak","srijeda","cetvrtak","petak","subota"],weekdaysShort:["ne","po","ut","sr","če","pe","su"],today:"danas",clear:"izbrisati",firstDay:1,format:"dd. mmmm yyyy.",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["januar","februar","mart","april","maj","juni","juli","august","septembar","oktobar","novembar","decembar"],monthsShort:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],weekdaysFull:["nedjelja","ponedjeljak","utorak","srijeda","cetvrtak","petak","subota"],weekdaysShort:["ne","po","ut","sr","če","pe","su"],today:"danas",clear:"izbrisati",firstDay:1,format:"dd. mmmm yyyy.",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"izbrisati"});
lib/simple-admin-pages/lib/pickadate/translations/ca_ES.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Gener","Febrer","Març","Abril","Maig","juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"],monthsShort:["Gen","Feb","Mar","Abr","Mai","Jun","Jul","Ago","Set","Oct","Nov","Des"],weekdaysFull:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],weekdaysShort:["diu","dil","dim","dmc","dij","div","dis"],today:"avui",clear:"esborrar",firstDay:1,format:"dddd d !de mmmm !de yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Gener","Febrer","Març","Abril","Maig","juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"],monthsShort:["Gen","Feb","Mar","Abr","Mai","Jun","Jul","Ago","Set","Oct","Nov","Des"],weekdaysFull:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],weekdaysShort:["diu","dil","dim","dmc","dij","div","dis"],today:"avui",clear:"esborrar",close:"tancar",firstDay:1,format:"dddd d !de mmmm !de yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"esborrar"});
lib/simple-admin-pages/lib/pickadate/translations/cs_CZ.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],monthsShort:["led","úno","bře","dub","kvě","čer","čvc","srp","zář","říj","lis","pro"],weekdaysFull:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],weekdaysShort:["ne","po","út","st","čt","pá","so"],today:"dnes",clear:"vymazat",firstDay:1,format:"d. mmmm yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],monthsShort:["led","úno","bře","dub","kvě","čer","čvc","srp","zář","říj","lis","pro"],weekdaysFull:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],weekdaysShort:["ne","po","út","st","čt","pá","so"],today:"dnes",clear:"vymazat",firstDay:1,format:"d. mmmm yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"vymazat"});
lib/simple-admin-pages/lib/pickadate/translations/da_DK.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],monthsShort:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],weekdaysFull:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],weekdaysShort:["søn","man","tir","ons","tor","fre","lør"],today:"i dag",clear:"slet",firstDay:1,format:"d. mmmm yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],monthsShort:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],weekdaysFull:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],weekdaysShort:["søn","man","tir","ons","tor","fre","lør"],today:"i dag",clear:"slet",close:"luk",firstDay:1,format:"d. mmmm yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"slet"});
lib/simple-admin-pages/lib/pickadate/translations/de_DE.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthsShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],weekdaysFull:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],weekdaysShort:["So","Mo","Di","Mi","Do","Fr","Sa"],today:"Heute",clear:"Löschen",firstDay:1,format:"dddd, dd. mmmm yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthsShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],weekdaysFull:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],weekdaysShort:["So","Mo","Di","Mi","Do","Fr","Sa"],today:"Heute",clear:"Löschen",close:"Schließen",firstDay:1,format:"dddd, dd. mmmm yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"Löschen"});
lib/simple-admin-pages/lib/pickadate/translations/el_GR.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],monthsShort:["Ιαν","Φεβ","Μαρ","Απρ","Μαι","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],weekdaysFull:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],weekdaysShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],today:"σήμερα",clear:"Διαγραφή",firstDay:1,format:"d mmmm yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],monthsShort:["Ιαν","Φεβ","Μαρ","Απρ","Μαι","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],weekdaysFull:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],weekdaysShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],today:"σήμερα",clear:"Διαγραφή",firstDay:1,format:"d mmmm yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"Διαγραφή"});
lib/simple-admin-pages/lib/pickadate/translations/es_ES.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],monthsShort:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],weekdaysFull:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],weekdaysShort:["dom","lun","mar","mié","jue","vie","sáb"],today:"hoy",clear:"borrar",firstDay:1,format:"dddd d !de mmmm !de yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],monthsShort:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],weekdaysFull:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],weekdaysShort:["dom","lun","mar","mié","jue","vie","sáb"],today:"hoy",clear:"borrar",close:"cerrar",firstDay:1,format:"dddd d !de mmmm !de yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"borrar"});
lib/simple-admin-pages/lib/pickadate/translations/et_EE.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["jaanuar","veebruar","märts","aprill","mai","juuni","juuli","august","september","oktoober","november","detsember"],monthsShort:["jaan","veebr","märts","apr","mai","juuni","juuli","aug","sept","okt","nov","dets"],weekdaysFull:["pühapäev","esmaspäev","teisipäev","kolmapäev","neljapäev","reede","laupäev"],weekdaysShort:["püh","esm","tei","kol","nel","ree","lau"],today:"täna",clear:"kustutama",firstDay:1,format:"d. mmmm yyyy. a",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["jaanuar","veebruar","märts","aprill","mai","juuni","juuli","august","september","oktoober","november","detsember"],monthsShort:["jaan","veebr","märts","apr","mai","juuni","juuli","aug","sept","okt","nov","dets"],weekdaysFull:["pühapäev","esmaspäev","teisipäev","kolmapäev","neljapäev","reede","laupäev"],weekdaysShort:["püh","esm","tei","kol","nel","ree","lau"],today:"täna",clear:"kustutama",firstDay:1,format:"d. mmmm yyyy. a",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"kustutama"});
lib/simple-admin-pages/lib/pickadate/translations/eu_ES.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["urtarrila","otsaila","martxoa","apirila","maiatza","ekaina","uztaila","abuztua","iraila","urria","azaroa","abendua"],monthsShort:["urt","ots","mar","api","mai","eka","uzt","abu","ira","urr","aza","abe"],weekdaysFull:["igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata"],weekdaysShort:["ig.","al.","ar.","az.","og.","or.","lr."],today:"gaur",clear:"garbitu",firstDay:1,format:"dddd, yyyy(e)ko mmmmren da",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["urtarrila","otsaila","martxoa","apirila","maiatza","ekaina","uztaila","abuztua","iraila","urria","azaroa","abendua"],monthsShort:["urt","ots","mar","api","mai","eka","uzt","abu","ira","urr","aza","abe"],weekdaysFull:["igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata"],weekdaysShort:["ig.","al.","ar.","az.","og.","or.","lr."],today:"gaur",clear:"garbitu",firstDay:1,format:"dddd, yyyy(e)ko mmmmren da",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"garbitu"});
lib/simple-admin-pages/lib/pickadate/translations/fi_FI.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],monthsShort:["tammi","helmi","maalis","huhti","touko","kesä","heinä","elo","syys","loka","marras","joulu"],weekdaysFull:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],weekdaysShort:["su","ma","ti","ke","to","pe","la"],today:"tänään",clear:"tyhjennä",firstDay:1,format:"d.m.yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],monthsShort:["tammi","helmi","maalis","huhti","touko","kesä","heinä","elo","syys","loka","marras","joulu"],weekdaysFull:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],weekdaysShort:["su","ma","ti","ke","to","pe","la"],today:"tänään",clear:"tyhjennä",firstDay:1,format:"d.m.yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"tyhjennä"});
lib/simple-admin-pages/lib/pickadate/translations/fr_FR.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],monthsShort:["Jan","Fev","Mar","Avr","Mai","Juin","Juil","Aou","Sep","Oct","Nov","Dec"],weekdaysFull:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],weekdaysShort:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],today:"Aujourd'hui",clear:"Effacer",firstDay:1,format:"dd mmmm yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],monthsShort:["Jan","Fev","Mar","Avr","Mai","Juin","Juil","Aou","Sep","Oct","Nov","Dec"],weekdaysFull:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],weekdaysShort:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],today:"Aujourd'hui",clear:"Effacer",close:"Fermer",firstDay:1,format:"dd mmmm yyyy",formatSubmit:"yyyy/mm/dd",labelMonthNext:"Mois suivant",labelMonthPrev:"Mois précédent",labelMonthSelect:"Sélectionner un mois",labelYearSelect:"Sélectionner une année"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"Effacer"});
lib/simple-admin-pages/lib/pickadate/translations/gl_ES.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Xaneiro","Febreiro","Marzo","Abril","Maio","Xuño","Xullo","Agosto","Setembro","Outubro","Novembro","Decembro"],monthsShort:["xan","feb","mar","abr","mai","xun","xul","ago","sep","out","nov","dec"],weekdaysFull:["domingo","luns","martes","mércores","xoves","venres","sábado"],weekdaysShort:["dom","lun","mar","mér","xov","ven","sab"],today:"hoxe",clear:"borrar",firstDay:1,format:"dddd d !de mmmm !de yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Xaneiro","Febreiro","Marzo","Abril","Maio","Xuño","Xullo","Agosto","Setembro","Outubro","Novembro","Decembro"],monthsShort:["xan","feb","mar","abr","mai","xun","xul","ago","sep","out","nov","dec"],weekdaysFull:["domingo","luns","martes","mércores","xoves","venres","sábado"],weekdaysShort:["dom","lun","mar","mér","xov","ven","sab"],today:"hoxe",clear:"borrar",firstDay:1,format:"dddd d !de mmmm !de yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"borrar"});
lib/simple-admin-pages/lib/pickadate/translations/he_IL.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],monthsShort:["ינו","פבר","מרץ","אפר","מאי","יונ","יול","אוג","ספט","אוק","נוב","דצמ"],weekdaysFull:["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום ששי","יום שבת"],weekdaysShort:["א","ב","ג","ד","ה","ו","ש"],today:"היום",clear:"למחוק",format:"yyyy mmmmב d dddd",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],monthsShort:["ינו","פבר","מרץ","אפר","מאי","יונ","יול","אוג","ספט","אוק","נוב","דצמ"],weekdaysFull:["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום ששי","יום שבת"],weekdaysShort:["א","ב","ג","ד","ה","ו","ש"],today:"היום",clear:"למחוק",format:"yyyy mmmmב d dddd",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"למחוק"});
lib/simple-admin-pages/lib/pickadate/translations/hi_IN.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["जनवरी","फरवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्टूबर","नवम्बर","दिसम्बर"],monthsShort:["जन","फर","मार्च","अप्रैल","मई","जून","जु","अग","सित","अक्टू","नव","दिस"],weekdaysFull:["रविवार","सोमवार","मंगलवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"],weekdaysShort:["रवि","सोम","मंगल","बुध","गुरु","शुक्र","शनि"],today:"आज की तारीख चयन करें",clear:"चुनी हुई तारीख को मिटाएँ",close:"विंडो बंद करे",firstDay:1,format:"dd/mm/yyyy",formatSubmit:"yyyy/mm/dd",labelMonthNext:"अगले माह का चयन करें",labelMonthPrev:"पिछले माह का चयन करें",labelMonthSelect:"किसि एक महीने का चयन करें",labelYearSelect:"किसि एक वर्ष का चयन करें"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"चुनी हुई तारीख को मिटाएँ"});
lib/simple-admin-pages/lib/pickadate/translations/hr_HR.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["sijećanj","veljača","ožujak","travanj","svibanj","lipanj","srpanj","kolovoz","rujan","listopad","studeni","prosinac"],monthsShort:["sij","velj","ožu","tra","svi","lip","srp","kol","ruj","lis","stu","pro"],weekdaysFull:["nedjelja","ponedjeljak","utorak","srijeda","četvrtak","petak","subota"],weekdaysShort:["ned","pon","uto","sri","čet","pet","sub"],today:"danas",clear:"izbrisati",firstDay:1,format:"d. mmmm yyyy.",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["sijećanj","veljača","ožujak","travanj","svibanj","lipanj","srpanj","kolovoz","rujan","listopad","studeni","prosinac"],monthsShort:["sij","velj","ožu","tra","svi","lip","srp","kol","ruj","lis","stu","pro"],weekdaysFull:["nedjelja","ponedjeljak","utorak","srijeda","četvrtak","petak","subota"],weekdaysShort:["ned","pon","uto","sri","čet","pet","sub"],today:"danas",clear:"izbrisati",firstDay:1,format:"d. mmmm yyyy.",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"izbrisati"});
lib/simple-admin-pages/lib/pickadate/translations/hu_HU.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["január","február","március","aprilis","május","június","július","augusztus","szeptember","október","november","december"],monthsShort:["jan","febr","márc","apr","máj","jún","júl","aug","szept","okt","nov","dec"],weekdaysFull:["vasámap","hétfö","kedd","szerda","csütörtök","péntek","szombat"],weekdaysShort:["V","H","K","SZ","CS","P","SZ"],today:"ma",clear:"töröl",firstDay:1,format:"yyyy. mmmm dd.",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],monthsShort:["jan","febr","márc","ápr","máj","jún","júl","aug","szept","okt","nov","dec"],weekdaysFull:["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],weekdaysShort:["V","H","K","SZe","CS","P","SZo"],today:"Ma",clear:"Törlés",firstDay:1,format:"yyyy. mmmm dd.",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"Törlés"});
lib/simple-admin-pages/lib/pickadate/translations/id_ID.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],monthsShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des"],weekdaysFull:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],weekdaysShort:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],today:"hari ini",clear:"menghapus",firstDay:1,format:"d mmmm yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],monthsShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des"],weekdaysFull:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],weekdaysShort:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],today:"hari ini",clear:"menghapus",firstDay:1,format:"d mmmm yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"menghapus"});
lib/simple-admin-pages/lib/pickadate/translations/is_IS.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["janúar","febrúar","mars","apríl","maí","júní","júlí","ágúst","september","október","nóvember","desember"],monthsShort:["jan","feb","mar","apr","maí","jún","júl","ágú","sep","okt","nóv","des"],weekdaysFull:["sunnudagur","mánudagur","þriðjudagur","miðvikudagur","fimmtudagur","föstudagur","laugardagur"],weekdaysShort:["sun","mán","þri","mið","fim","fös","lau"],today:"Í dag",clear:"Hreinsa",firstDay:1,format:"dd. mmmm yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["janúar","febrúar","mars","apríl","maí","júní","júlí","ágúst","september","október","nóvember","desember"],monthsShort:["jan","feb","mar","apr","maí","jún","júl","ágú","sep","okt","nóv","des"],weekdaysFull:["sunnudagur","mánudagur","þriðjudagur","miðvikudagur","fimmtudagur","föstudagur","laugardagur"],weekdaysShort:["sun","mán","þri","mið","fim","fös","lau"],today:"Í dag",clear:"Hreinsa",firstDay:1,format:"dd. mmmm yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"Hreinsa"});
lib/simple-admin-pages/lib/pickadate/translations/it_IT.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],monthsShort:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],weekdaysFull:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"],weekdaysShort:["dom","lun","mar","mer","gio","ven","sab"],today:"oggi",clear:"cancellare",firstDay:1,format:"dddd d mmmm yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],monthsShort:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],weekdaysFull:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"],weekdaysShort:["dom","lun","mar","mer","gio","ven","sab"],today:"Oggi",clear:"Cancella",close:"Chiudi",firstDay:1,format:"dddd d mmmm yyyy",formatSubmit:"yyyy/mm/dd",labelMonthNext:"Mese successivo",labelMonthPrev:"Mese precedente",labelMonthSelect:"Seleziona un mese",labelYearSelect:"Seleziona un anno"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"Cancella",format:"HH:i",formatSubmit:"HH:i"});
lib/simple-admin-pages/lib/pickadate/translations/ja_JP.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],monthsShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],weekdaysFull:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],weekdaysShort:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],today:"今日",clear:"消去",firstDay:1,format:"yyyy mm dd",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],monthsShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],weekdaysFull:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],weekdaysShort:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],today:"今日",clear:"消去",firstDay:1,format:"yyyy mm dd",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"消去"});
lib/simple-admin-pages/lib/pickadate/translations/ko_KR.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],monthsShort:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],weekdaysFull:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],weekdaysShort:["일","월","화","수","목","금","토"],today:"오늘",clear:"취소",firstDay:1,format:"yyyy 년 mm 월 dd 일",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],monthsShort:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],weekdaysFull:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],weekdaysShort:["일","월","화","수","목","금","토"],today:"오늘",clear:"취소",firstDay:1,format:"yyyy 년 mm 월 dd 일",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"취소"});
lib/simple-admin-pages/lib/pickadate/translations/lv_LV.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Janvāris","Februāris","Marts","Aprīlis","Maijs","Jūnijs","Jūlijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],monthsShort:["Jan","Feb","Mar","Apr","Mai","Jūn","Jūl","Aug","Sep","Okt","Nov","Dec"],weekdaysFull:["Svētdiena","Pirmdiena","Otrdiena","Trešdiena","Ceturtdiena","Piektdiena","Sestdiena"],weekdaysShort:["Sv","P","O","T","C","Pk","S"],today:"Šodiena",clear:"Atcelt",firstDay:1,format:"yyyy.mm.dd. dddd",formatSubmit:"yyyy/mm/dd"});
lib/simple-admin-pages/lib/pickadate/translations/nb_NO.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],monthsShort:["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],weekdaysFull:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],weekdaysShort:["søn","man","tir","ons","tor","fre","lør"],today:"i dag",clear:"nullstill",close:"lukk",firstDay:1,format:"dd. mmm. yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"nullstill"});
lib/simple-admin-pages/lib/pickadate/translations/ne_NP.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["जनवरी","फेब्रुअरी","मार्च","अप्रिल","मे","जुन","जुलाई","अगस्त","सेप्टेम्बर","अक्टोबर","नोवेम्बर","डिसेम्बर"],monthsShort:["जन","फेब्रु","मार्च","अप्रिल","मे","जुन","जुल","अग","सेप्टे","अक्टो","नोभे","डिसे"],weekdaysFull:["सोमबार","मङ्लबार","बुधबार","बिहीबार","शुक्रबार","शनिबार","आईतबार"],weekdaysShort:["सोम","मंगल्","बुध","बिही","शुक्र","शनि","आईत"],numbers:["०","१","२","३","४","५","६","७","८","९"],today:"आज",clear:"मेटाउनुहोस्",format:"dddd, dd mmmm, yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"मेटाउनुहोस्"});
lib/simple-admin-pages/lib/pickadate/translations/nl_NL.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthsShort:["jan","feb","maa","apr","mei","jun","jul","aug","sep","okt","nov","dec"],weekdaysFull:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],weekdaysShort:["zo","ma","di","wo","do","vr","za"],today:"vandaag",clear:"verwijderen",firstDay:1,format:"dddd d mmmm yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthsShort:["jan","feb","maa","apr","mei","jun","jul","aug","sep","okt","nov","dec"],weekdaysFull:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],weekdaysShort:["zo","ma","di","wo","do","vr","za"],today:"vandaag",clear:"verwijderen",firstDay:1,format:"dddd d mmmm yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"verwijderen"});
lib/simple-admin-pages/lib/pickadate/translations/pl_PL.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],monthsShort:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],weekdaysFull:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],weekdaysShort:["N","Pn","Wt","Śr","Cz","Pt","So"],today:"dzisiaj",clear:"usunąć",firstDay:1,format:"d mmmm yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],monthsShort:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],weekdaysFull:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],weekdaysShort:["niedz.","pn.","wt.","śr.","cz.","pt.","sob."],today:"Dzisiaj",clear:"Usuń",close:"Zamknij",firstDay:1,format:"d mmmm yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"usunąć"});
lib/simple-admin-pages/lib/pickadate/translations/pt_BR.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],monthsShort:["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],weekdaysFull:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],weekdaysShort:["dom","seg","ter","qua","qui","sex","sab"],today:"hoje",clear:"excluir",format:"dddd, d !de mmmm !de yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],monthsShort:["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],weekdaysFull:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],weekdaysShort:["dom","seg","ter","qua","qui","sex","sab"],today:"hoje",clear:"limpar",close:"fechar",format:"dddd, d !de mmmm !de yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"limpar"});
lib/simple-admin-pages/lib/pickadate/translations/pt_PT.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],monthsShort:["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],weekdaysFull:["domingo","segunda","terça","quarta","quinta","sexta","sábado"],weekdaysShort:["dom","seg","ter","qua","qui","sex","sab"],today:"hoje",clear:"excluir",format:"d !de mmmm !de yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],monthsShort:["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],weekdaysFull:["domingo","segunda","terça","quarta","quinta","sexta","sábado"],weekdaysShort:["dom","seg","ter","qua","qui","sex","sab"],today:"hoje",clear:"excluir",format:"d !de mmmm !de yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"excluir"});
lib/simple-admin-pages/lib/pickadate/translations/ro_RO.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie"],monthsShort:["ian","feb","mar","apr","mai","iun","iul","aug","sep","oct","noi","dec"],weekdaysFull:["duminică","luni","marţi","miercuri","joi","vineri","sâmbătă"],weekdaysShort:["D","L","Ma","Mi","J","V","S"],today:"azi",clear:"șterge",firstDay:1,format:"dd mmmm yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie"],monthsShort:["ian","feb","mar","apr","mai","iun","iul","aug","sep","oct","noi","dec"],weekdaysFull:["duminică","luni","marţi","miercuri","joi","vineri","sâmbătă"],weekdaysShort:["D","L","Ma","Mi","J","V","S"],today:"azi",clear:"șterge",firstDay:1,format:"dd mmmm yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"șterge"});
lib/simple-admin-pages/lib/pickadate/translations/ru_RU.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Января","Февраля","Марта","Апреля","Мая","Июня","Июля","Августа","Сентября","Октября","Ноября","Декабря"],monthsShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],weekdaysFull:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],weekdaysShort:["вс","пн","вт","ср","чт","пт","сб"],today:"сегодня",clear:"удалить",firstDay:1,format:"d mmmm yyyy г.",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"],monthsShort:["янв","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек"],weekdaysFull:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],weekdaysShort:["вс","пн","вт","ср","чт","пт","сб"],today:"сегодня",clear:"удалить",close:"закрыть",firstDay:1,format:"d mmmm yyyy г.",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"удалить"});
lib/simple-admin-pages/lib/pickadate/translations/sk_SK.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["január","február","marec","apríl","máj","jún","júl","august","september","október","november","december"],monthsShort:["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII"],weekdaysFull:["nedeļľa","pondelok","utorok","streda","š̌švrtok","piatok","sobota"],weekdaysShort:["Ne","Po","Ut","St","Št","Pi","So"],today:"dnes",clear:"vymazať",firstDay:1,format:"d. mmmm yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["január","február","marec","apríl","máj","jún","júl","august","september","október","november","december"],monthsShort:["jan","feb","mar","apr","máj","jún","júl","aug","sep","okt","nov","dec"],weekdaysFull:["nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota"],weekdaysShort:["Ne","Po","Ut","St","Št","Pi","So"],today:"dnes",clear:"vymazať",close:"zavrieť",firstDay:1,format:"d. mmmm yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"vymazať"});
lib/simple-admin-pages/lib/pickadate/translations/sl_SI.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december"],monthsShort:["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec"],weekdaysFull:["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"],weekdaysShort:["ned","pon","tor","sre","čet","pet","sob"],today:"danes",clear:"izbriši",firstDay:1,format:"d. mmmm yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december"],monthsShort:["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec"],weekdaysFull:["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"],weekdaysShort:["ned","pon","tor","sre","čet","pet","sob"],today:"danes",clear:"izbriši",firstDay:1,format:"d. mmmm yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"izbriši"});
lib/simple-admin-pages/lib/pickadate/translations/sv_SE.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],monthsShort:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],weekdaysFull:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],weekdaysShort:["sön","mån","tis","ons","tor","fre","lör"],today:"i dag",clear:"bort",firstDay:1,format:"d/m yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],monthsShort:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],weekdaysFull:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],weekdaysShort:["sön","mån","tis","ons","tor","fre","lör"],today:"Idag",clear:"Rensa",close:"Stäng",firstDay:1,format:"yyyy-mm-dd",formatSubmit:"yyyy/mm/dd",labelMonthNext:"Nästa månad",labelMonthPrev:"Föregående månad",labelMonthSelect:"Välj månad",labelYearSelect:"Välj år"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"Rensa"});
lib/simple-admin-pages/lib/pickadate/translations/th_TH.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],monthsShort:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],weekdaysFull:["อาทติย","จันทร","องัคาร","พุธ","พฤหสั บดี","ศกุร","เสาร"],weekdaysShort:["อ.","จ.","อ.","พ.","พฤ.","ศ.","ส."],today:"วันนี้",clear:"ลบ",format:"d mmmm yyyy",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],monthsShort:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],weekdaysFull:["อาทติย","จันทร","องัคาร","พุธ","พฤหสั บดี","ศกุร","เสาร"],weekdaysShort:["อ.","จ.","อ.","พ.","พฤ.","ศ.","ส."],today:"วันนี้",clear:"ลบ",format:"d mmmm yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"ลบ"});
lib/simple-admin-pages/lib/pickadate/translations/tr_TR.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],monthsShort:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],weekdaysFull:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],weekdaysShort:["Pzr","Pzt","Sal","Çrş","Prş","Cum","Cmt"],today:"bugün",clear:"sil",firstDay:1,format:"dd mmmm yyyy dddd",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],monthsShort:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],weekdaysFull:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],weekdaysShort:["Pzr","Pzt","Sal","Çrş","Prş","Cum","Cmt"],today:"Bugün",clear:"Sil",close:"Kapat",firstDay:1,format:"dd mmmm yyyy dddd",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"sil"});
lib/simple-admin-pages/lib/pickadate/translations/uk_UA.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],monthsShort:["січ","лют","бер","кві","тра","чер","лип","сер","вер","жов","лис","гру"],weekdaysFull:["неділя","понеділок","вівторок","середа","четвер","п‘ятниця","субота"],weekdaysShort:["нд","пн","вт","ср","чт","пт","сб"],today:"сьогодні",clear:"викреслити",firstDay:1,format:"dd mmmm yyyy p.",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],monthsShort:["січ","лют","бер","кві","тра","чер","лип","сер","вер","жов","лис","гру"],weekdaysFull:["неділя","понеділок","вівторок","середа","четвер","п‘ятниця","субота"],weekdaysShort:["нд","пн","вт","ср","чт","пт","сб"],today:"сьогодні",clear:"викреслити",firstDay:1,format:"dd mmmm yyyy p.",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"викреслити"});
lib/simple-admin-pages/lib/pickadate/translations/vi_VN.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Tháng Một","Tháng Hai","Tháng Ba","Tháng Tư","Tháng Năm","Tháng Sáu","Tháng Bảy","Tháng Tám","Tháng Chín","Tháng Mười","Tháng Mười Một","Tháng Mười Hai"],monthsShort:["Một","Hai","Ba","Tư","Năm","Sáu","Bảy","Tám","Chín","Mưới","Mười Một","Mười Hai"],weekdaysFull:["Chủ Nhật","Thứ Hai","Thứ Ba","Thứ Tư","Thứ Năm","Thứ Sáu","Thứ Bảy"],weekdaysShort:["C.Nhật","T.Hai","T.Ba","T.Tư","T.Năm","T.Sáu","T.Bảy"],today:"Hôm Nay",clear:"Xoá",firstDay:1}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"Xoá"});
lib/simple-admin-pages/lib/pickadate/translations/zh_CN.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthsShort:["一","二","三","四","五","六","七","八","九","十","十一","十二"],weekdaysFull:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],weekdaysShort:["日","一","二","三","四","五","六"],today:"今日",clear:"删",firstDay:1,format:"yyyy 年 mm 月 dd 日",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthsShort:["一","二","三","四","五","六","七","八","九","十","十一","十二"],weekdaysFull:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],weekdaysShort:["日","一","二","三","四","五","六"],today:"今日",clear:"删",firstDay:1,format:"yyyy 年 mm 月 dd 日",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"删"});
lib/simple-admin-pages/lib/pickadate/translations/zh_TW.js CHANGED
@@ -1 +1 @@
1
- jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthsShort:["一","二","三","四","五","六","七","八","九","十","十一","十二"],weekdaysFull:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],weekdaysShort:["日","一","二","三","四","五","六"],today:"今天",clear:"清除",firstDay:1,format:"yyyy 年 mm 月 dd 日",formatSubmit:"yyyy/mm/dd"});
1
+ jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthsShort:["一","二","三","四","五","六","七","八","九","十","十一","十二"],weekdaysFull:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],weekdaysShort:["日","一","二","三","四","五","六"],today:"今天",clear:"清除",firstDay:1,format:"yyyy 年 mm 月 dd 日",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"清除"});
lib/simple-admin-pages/simple-admin-pages.php CHANGED
@@ -44,11 +44,6 @@ if ( !function_exists( 'sap_initialize_library' ) ) {
44
  return null;
45
  }
46
 
47
- // Set the textdomain for translation
48
- if ( !defined( 'SAP_TEXTDOMAIN' ) ) {
49
- define( 'SAP_TEXTDOMAIN', 'sapdomain' );
50
- }
51
-
52
  $lib_class_name = 'sapLibrary_' . str_replace( '.', '_', $args['version'] );
53
 
54
  return new $lib_class_name( $args );
44
  return null;
45
  }
46
 
 
 
 
 
 
47
  $lib_class_name = 'sapLibrary_' . str_replace( '.', '_', $args['version'] );
48
 
49
  return new $lib_class_name( $args );
readme.txt CHANGED
@@ -3,9 +3,9 @@ Contributors: NateWr
3
  Author URI: https://github.com/NateWr
4
  Plugin URL: http://themeofthecrop.com
5
  Requires at Least: 3.9
6
- Tested Up To: 4.1
7
  Tags: business profile, address, google map, schema, contact, phone, address, seo
8
- Stable tag: 1.0.5
9
  License: GPLv2 or later
10
  Donate link: http://themeofthecrop.com
11
 
@@ -52,6 +52,10 @@ This plugin is packed with hooks so you can extend it as needed. Development tak
52
 
53
  == Changelog ==
54
 
 
 
 
 
55
  = 1.0.5 (2014-09-21) =
56
  * Fix: restore lost option to show contact info in widget options when Restaurant Reservations is activated
57
 
@@ -77,6 +81,9 @@ This plugin is packed with hooks so you can extend it as needed. Development tak
77
 
78
  == Upgrade Notice ==
79
 
 
 
 
80
  = 1.0.5 =
81
  This minor update fixes a problem in which the option to show or hide the contact details in a widget had disappeared.
82
 
3
  Author URI: https://github.com/NateWr
4
  Plugin URL: http://themeofthecrop.com
5
  Requires at Least: 3.9
6
+ Tested Up To: 4.2
7
  Tags: business profile, address, google map, schema, contact, phone, address, seo
8
+ Stable tag: 1.0.6
9
  License: GPLv2 or later
10
  Donate link: http://themeofthecrop.com
11
 
52
 
53
  == Changelog ==
54
 
55
+ = 1.0.6 (2015-04-03) =
56
+ * Fix: validation errors with address markup
57
+ * Fix: validation errors with contactPoint markup
58
+
59
  = 1.0.5 (2014-09-21) =
60
  * Fix: restore lost option to show contact info in widget options when Restaurant Reservations is activated
61
 
81
 
82
  == Upgrade Notice ==
83
 
84
+ = 1.0.6 =
85
+ This update fixes validation errors with the address and contact point schema.org markup. It is strongly recommended that you update to improve Google compatibility.
86
+
87
  = 1.0.5 =
88
  This minor update fixes a problem in which the option to show or hide the contact details in a widget had disappeared.
89