Nested Pages - Version 1.6.0

Version Description

  • Redesign of post type settings page, with additional options added.
  • Thumbnail support added to nested/sort view. Visit Settings > Nested Pages > Post Types to enable post thumbnails and set options.
  • Ability to customize quick edit fields for each post type added. Visit Settings > Nested Pages > Post Types to hide specific fields from the quick edit interface for each post type. Please note: specific fields are still hidden depending. on the current user's roles/capabilities.
  • Bulk delete functionality added.
  • When adding multiple pages, the option to set them as hidden in the nav menu is now available.
  • Option added to manually sync the nav menu and page order.
  • Bug fix where Post menu wasn't being replaced if option checked.
  • Modified date set to not update when reordering post order through the nested view.
  • Issue of duplicate posts item in nav menu resolved.
  • Fix for invalid rel attribute in generated nav menus, resulting in W3C validation error.
  • Filters added for title, edit links, and view links in the nested interface.
  • Bug fix where non-hierarchical post types were allowing nesting.
  • Bug fix where page redirect errors were showing while attempting to delete pages with the Page post type disabled. (Thanks to Evan Washkow)
  • Bug fix where non-ascii characters were not displaying correctly in the quick edit slug field.
  • Bug fix where "Add Child" was not available if menu sync was disabled completely.
  • Tab index set when adding a new child or multiple pages. No mouse necessary for adding in bulk.
  • Various UI enhancements.
  • Swedish translation added (Thanks to Marcus Forsberg).
Download this release

Release Info

Developer kylephillips
Plugin Icon 128x128 Nested Pages
Version 1.6.0
Comparing to
See all releases

Code changes from version 1.5.4 to 1.6.0

Files changed (69) hide show
  1. app/Activation/Dependencies.php +41 -1
  2. app/Config/Settings.php +14 -2
  3. app/Config/SettingsRepository.php +94 -0
  4. app/Entities/AdminMenu/AdminSubmenu.php +1 -1
  5. app/Entities/AdminMenu/EnabledMenus.php +1 -1
  6. app/Entities/Confirmation/TrashConfirmation.php +21 -8
  7. app/Entities/Confirmation/TrashRestoredConfirmation.php +2 -2
  8. app/Entities/Listing/Listing.php +45 -3
  9. app/Entities/NavMenu/NavMenuFrontEnd.php +38 -0
  10. app/Entities/PluginIntegration/AdvancedCustomFields.php +72 -0
  11. app/Entities/PluginIntegration/IntegrationFactory.php +4 -0
  12. app/Entities/PluginIntegration/YoastSeo.php +37 -0
  13. app/Entities/Post/PostDataFactory.php +11 -8
  14. app/Entities/Post/PostFactory.php +2 -3
  15. app/Entities/Post/PostRepository.php +6 -0
  16. app/Entities/Post/PostUpdateRepository.php +55 -22
  17. app/Entities/PostType/PostTypeRepository.php +197 -38
  18. app/Entities/User/UserRepository.php +1 -1
  19. app/Form/Events.php +3 -1
  20. app/Form/Listeners/BulkActions.php +122 -0
  21. app/Form/Listeners/ManualMenuSync.php +19 -0
  22. app/Form/Listeners/QuickEdit.php +2 -1
  23. app/FrontEndBootstrap.php +1 -0
  24. app/NestedPages.php +2 -2
  25. app/Redirects.php +36 -5
  26. app/RedirectsFrontEnd.php +35 -29
  27. app/Views/forms/delete-confirmation-modal.php +1 -1
  28. app/Views/forms/more-options-modal.php +14 -0
  29. app/Views/forms/new-child.php +9 -0
  30. app/Views/forms/quickedit-post.php +54 -30
  31. app/Views/listing.php +19 -4
  32. app/Views/partials/list-header.php +22 -0
  33. app/Views/partials/row-link.php +32 -1
  34. app/Views/partials/row.php +52 -16
  35. app/Views/partials/tool-list.php +13 -9
  36. app/Views/settings/settings-general.php +18 -6
  37. app/Views/settings/settings-posttypes.php +195 -56
  38. app/Views/settings/settings.php +1 -3
  39. assets/banner-772x250.png +0 -0
  40. assets/css/fonts/nestedpages.eot +0 -0
  41. assets/css/fonts/nestedpages.svg +21 -21
  42. assets/css/fonts/nestedpages.ttf +0 -0
  43. assets/css/fonts/nestedpages.woff +0 -0
  44. assets/css/fonts/nestedpages.woff2 +0 -0
  45. assets/css/nestedpages.css +1 -1
  46. assets/icon-128x128.png +0 -0
  47. assets/js/lib/nestedpages-factory.js +33 -2
  48. assets/js/lib/nestedpages.bulk-actions.js +65 -0
  49. assets/js/lib/nestedpages.check-all.js +91 -0
  50. assets/js/lib/nestedpages.confirm-delete.js +48 -26
  51. assets/js/lib/nestedpages.formatter.js +15 -3
  52. assets/js/lib/nestedpages.hidden-item-count.js +53 -0
  53. assets/js/lib/nestedpages.manual-sync.js +73 -0
  54. assets/js/lib/nestedpages.menu-links.js +1 -1
  55. assets/js/lib/nestedpages.nesting.js +11 -3
  56. assets/js/lib/nestedpages.new-link.js +1 -1
  57. assets/js/lib/nestedpages.new-page.js +39 -3
  58. assets/js/lib/nestedpages.page-toggle.js +20 -8
  59. assets/js/lib/nestedpages.quickedit-post.js +5 -4
  60. assets/js/lib/nestedpages.settings.js +187 -0
  61. assets/js/lib/nestedpages.sync-menu-setting.js +1 -0
  62. assets/js/nestedpages.min.js +2 -2
  63. assets/js/nestedpages.settings.min.js +1 -0
  64. languages/nestedpages-sv_SE.mo +0 -0
  65. languages/nestedpages-sv_SE.po +590 -0
  66. languages/nestedpages.mo +0 -0
  67. languages/nestedpages.pot +309 -147
  68. nestedpages.php +2 -2
  69. readme.txt +46 -8
app/Activation/Dependencies.php CHANGED
@@ -3,6 +3,8 @@
3
  namespace NestedPages\Activation;
4
 
5
  use NestedPages\Entities\PostType\PostTypeRepository;
 
 
6
  use NestedPages\Helpers;
7
 
8
  /**
@@ -25,13 +27,26 @@ class Dependencies
25
  * Post Type Repository
26
  */
27
  private $post_type_repo;
 
 
 
 
 
 
 
 
 
 
28
 
29
  public function __construct()
30
  {
31
  $this->post_type_repo = new PostTypeRepository;
 
 
32
  $this->setPluginVersion();
33
  add_action( 'admin_enqueue_scripts', array($this, 'styles') );
34
  add_action( 'admin_enqueue_scripts', array($this, 'scripts') );
 
35
  $this->plugin_dir = Helpers::plugin_url();
36
  }
37
 
@@ -55,6 +70,7 @@ class Dependencies
55
  array(),
56
  $this->plugin_version
57
  );
 
58
  }
59
 
60
  /**
@@ -123,7 +139,14 @@ class Dependencies
123
  'add_pages' => __('Add Pages', 'nestedpages'),
124
  'add_multiple' => __('Add Multiple', 'nestedpages'),
125
  'trash_confirm' => __('Are you sure you would like to empty the trash? This action is not reversable.', 'nestedpages'),
126
- 'hidden' => __('Hidden', 'nestedpages')
 
 
 
 
 
 
 
127
  );
128
  $syncmenu = ( get_option('nestedpages_menusync') == 'sync' ) ? true : false;
129
  $localized_data['syncmenu'] = $syncmenu;
@@ -133,6 +156,23 @@ class Dependencies
133
  'nestedpages',
134
  $localized_data
135
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  endif;
137
  }
138
 
3
  namespace NestedPages\Activation;
4
 
5
  use NestedPages\Entities\PostType\PostTypeRepository;
6
+ use NestedPages\Entities\PluginIntegration\IntegrationFactory;
7
+ use NestedPages\Config\SettingsRepository;
8
  use NestedPages\Helpers;
9
 
10
  /**
27
  * Post Type Repository
28
  */
29
  private $post_type_repo;
30
+
31
+ /**
32
+ * Settings Repository
33
+ */
34
+ private $settings;
35
+
36
+ /**
37
+ * Integrations
38
+ */
39
+ private $integrations;
40
 
41
  public function __construct()
42
  {
43
  $this->post_type_repo = new PostTypeRepository;
44
+ $this->integrations = new IntegrationFactory;
45
+ $this->settings = new SettingsRepository;
46
  $this->setPluginVersion();
47
  add_action( 'admin_enqueue_scripts', array($this, 'styles') );
48
  add_action( 'admin_enqueue_scripts', array($this, 'scripts') );
49
+ add_action( 'admin_enqueue_scripts', array($this, 'settingsScripts') );
50
  $this->plugin_dir = Helpers::plugin_url();
51
  }
52
 
70
  array(),
71
  $this->plugin_version
72
  );
73
+ if ( $this->integrations->plugins->acf->installed ) wp_enqueue_style('acf-input');
74
  }
75
 
76
  /**
139
  'add_pages' => __('Add Pages', 'nestedpages'),
140
  'add_multiple' => __('Add Multiple', 'nestedpages'),
141
  'trash_confirm' => __('Are you sure you would like to empty the trash? This action is not reversable.', 'nestedpages'),
142
+ 'hidden' => __('Hidden', 'nestedpages'),
143
+ 'bulk_actions' => __('Bulk Actions', 'nestedpages'),
144
+ 'link_delete_confirmation' => __('Your selection includes link items, which cannot be recovered after deleting. Would you like to continue? (Other items are moved to the trash)', 'nestedpages'),
145
+ 'link_delete_confirmation_singular' => __('Are you sure you would like to delete this item? This action is not reversable.', 'nestedpages'),
146
+ 'delete' => __('Delete', 'nestedpages'),
147
+ 'trash_delete_links' => __('Trash Posts and Delete Links'),
148
+ 'manual_menu_sync' => $this->settings->autoMenuDisabled(),
149
+ 'manual_order_sync' => $this->settings->autoPageOrderDisabled(),
150
  );
151
  $syncmenu = ( get_option('nestedpages_menusync') == 'sync' ) ? true : false;
152
  $localized_data['syncmenu'] = $syncmenu;
156
  'nestedpages',
157
  $localized_data
158
  );
159
+ if ( $this->integrations->plugins->acf->installed ) wp_enqueue_script('acf-input');
160
+ endif;
161
+ }
162
+
163
+ /**
164
+ * Settings
165
+ */
166
+ public function settingsScripts()
167
+ {
168
+ $screen = get_current_screen();
169
+ if ( strpos( $screen->id, 'nested-pages-settings' ) ) :
170
+ wp_enqueue_script(
171
+ 'nestedpages-settings',
172
+ $this->plugin_dir . '/assets/js/nestedpages.settings.min.js',
173
+ array('jquery'),
174
+ $this->plugin_version
175
+ );
176
  endif;
177
  }
178
 
app/Config/Settings.php CHANGED
@@ -6,6 +6,7 @@ use NestedPages\Helpers;
6
  use NestedPages\Entities\User\UserRepository;
7
  use NestedPages\Entities\PostType\PostTypeRepository;
8
  use NestedPages\Config\SettingsRepository;
 
9
 
10
  /**
11
  * Plugin Settings
@@ -24,6 +25,11 @@ class Settings
24
  */
25
  private $user_repo;
26
 
 
 
 
 
 
27
  /**
28
  * Post Types
29
  */
@@ -34,6 +40,11 @@ class Settings
34
  */
35
  private $settings;
36
 
 
 
 
 
 
37
  public function __construct()
38
  {
39
  add_action( 'admin_menu', array( $this, 'registerSettingsPage' ) );
@@ -41,6 +52,8 @@ class Settings
41
  add_action( 'updated_option', array( $this, 'updateMenuName'), 10, 3);
42
  $this->user_repo = new UserRepository;
43
  $this->settings = new SettingsRepository;
 
 
44
  }
45
 
46
  /**
@@ -109,8 +122,7 @@ class Settings
109
  */
110
  private function getPostTypes()
111
  {
112
- $post_repo = new PostTypeRepository;
113
- return $post_repo->getPostTypesObject();
114
  }
115
 
116
  /**
6
  use NestedPages\Entities\User\UserRepository;
7
  use NestedPages\Entities\PostType\PostTypeRepository;
8
  use NestedPages\Config\SettingsRepository;
9
+ use NestedPages\Entities\PluginIntegration\IntegrationFactory;
10
 
11
  /**
12
  * Plugin Settings
25
  */
26
  private $user_repo;
27
 
28
+ /**
29
+ * Post Type Repository
30
+ */
31
+ private $post_type_repo;
32
+
33
  /**
34
  * Post Types
35
  */
40
  */
41
  private $settings;
42
 
43
+ /**
44
+ * Plugin Integration
45
+ */
46
+ private $integrations;
47
+
48
  public function __construct()
49
  {
50
  add_action( 'admin_menu', array( $this, 'registerSettingsPage' ) );
52
  add_action( 'updated_option', array( $this, 'updateMenuName'), 10, 3);
53
  $this->user_repo = new UserRepository;
54
  $this->settings = new SettingsRepository;
55
+ $this->post_type_repo = new PostTypeRepository;
56
+ $this->integrations = new IntegrationFactory;
57
  }
58
 
59
  /**
122
  */
123
  private function getPostTypes()
124
  {
125
+ return $this->post_type_repo->getPostTypesObject();
 
126
  }
127
 
128
  /**
app/Config/SettingsRepository.php CHANGED
@@ -1,6 +1,7 @@
1
  <?php
2
 
3
  namespace NestedPages\Config;
 
4
 
5
  class SettingsRepository
6
  {
@@ -35,6 +36,26 @@ class SettingsRepository
35
  return ( $option == 'sync' ) ? true : false;
36
  }
37
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  /**
39
  * Are menus completely disabled?
40
  * @return boolean
@@ -46,4 +67,77 @@ class SettingsRepository
46
  return false;
47
  }
48
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  }
1
  <?php
2
 
3
  namespace NestedPages\Config;
4
+ use NestedPages\Entities\PostType\PostTypeRepository;
5
 
6
  class SettingsRepository
7
  {
36
  return ( $option == 'sync' ) ? true : false;
37
  }
38
 
39
+ /**
40
+ * Is AJAX menu sync disabled?
41
+ */
42
+ public function autoMenuDisabled()
43
+ {
44
+ $option = get_option('nestedpages_ui', false);
45
+ if ( $option && isset($option['manual_menu_sync']) && $option['manual_menu_sync'] == 'true' ) return true;
46
+ return false;
47
+ }
48
+
49
+ /**
50
+ * Is AJAX page order disabled?
51
+ */
52
+ public function autoPageOrderDisabled()
53
+ {
54
+ $option = get_option('nestedpages_ui', false);
55
+ if ( $option && isset($option['manual_page_order_sync']) && $option['manual_page_order_sync'] == 'true' ) return true;
56
+ return false;
57
+ }
58
+
59
  /**
60
  * Are menus completely disabled?
61
  * @return boolean
67
  return false;
68
  }
69
 
70
+ /**
71
+ * Array of configurable standard fields
72
+ * @return array
73
+ */
74
+ public function standardFields($post_type)
75
+ {
76
+ $post_type_repo = new PostTypeRepository;
77
+
78
+ $fields = array(
79
+ 'title' => __('Post Title', 'nestedpages'),
80
+ 'slug' => __('Slug', 'nestedpages'),
81
+ 'date' => __('Post Date', 'nestedpages'),
82
+ 'author' => __('Author', 'nestedpages'),
83
+ 'status' => __('Post Status', 'nestedpages'),
84
+ 'password' => __('Password/Private', 'nestedpages'),
85
+ 'allow_comments' => __('Allow Comments', 'nestedpages')
86
+ );
87
+
88
+ if ( $post_type == 'page' ) {
89
+ $fields['template'] = __('Template', 'nestedpages');
90
+ $fields['menu_options'] = __('Menu Options', 'nestedpages');
91
+ }
92
+
93
+ $fields['hide_in_np'] = __('Hide in Nested Pages', 'nestedpages');
94
+
95
+ // Taxonomies
96
+ $enabled_h_taxonomies = $post_type_repo->getTaxonomies($post_type);
97
+ $enabled_f_taxonomies = $post_type_repo->getTaxonomies($post_type, false);
98
+ $enabled_taxonomies = array_merge($enabled_h_taxonomies, $enabled_f_taxonomies);
99
+ if ( empty($enabled_taxonomies) ) return $fields;
100
+
101
+ $fields['hide_taxonomies'] = __('Taxonomies', 'nestedpages');
102
+ $fields['taxonomies'] = array();
103
+ foreach($enabled_taxonomies as $taxonomy){
104
+ $fields['taxonomies'][$taxonomy->name] = $taxonomy->labels->name;
105
+ }
106
+
107
+ return $fields;
108
+ }
109
+
110
+ /**
111
+ * Get All Image Sizes Available in the theme
112
+ */
113
+ public function getImageSizes()
114
+ {
115
+ global $_wp_additional_image_sizes;
116
+ $sizes = array();
117
+ foreach ( get_intermediate_image_sizes() as $_size ) {
118
+ if ( in_array( $_size, array('thumbnail', 'medium', 'medium_large', 'large') ) ) {
119
+ $sizes[ $_size ]['width'] = get_option( "{$_size}_size_w" );
120
+ $sizes[ $_size ]['height'] = get_option( "{$_size}_size_h" );
121
+ $sizes[ $_size ]['crop'] = (bool) get_option( "{$_size}_crop" );
122
+ } elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) {
123
+ $sizes[ $_size ] = array(
124
+ 'width' => $_wp_additional_image_sizes[ $_size ]['width'],
125
+ 'height' => $_wp_additional_image_sizes[ $_size ]['height'],
126
+ 'crop' => $_wp_additional_image_sizes[ $_size ]['crop'],
127
+ );
128
+ }
129
+ }
130
+ return $sizes;
131
+ }
132
+
133
+ /**
134
+ * Get a specific image/thumbnail size
135
+ */
136
+ public function getImageSize($size)
137
+ {
138
+ $sizes = $this->getImageSizes();
139
+ if ( isset( $sizes[ $size ] ) ) return $sizes[ $size ];
140
+ return false;
141
+ }
142
+
143
  }
app/Entities/AdminMenu/AdminSubmenu.php CHANGED
@@ -70,7 +70,7 @@ class AdminSubmenu
70
  private function defaultLink($c)
71
  {
72
  global $submenu;
73
- if ( !$this->post_type_repo->hideDefault($this->post_type->name) ){
74
  $submenu[$this->slug][$c] = array(
75
  __('Default','nestedpages') . ' ' . $this->post_type->labels->name,
76
  'publish_pages',
70
  private function defaultLink($c)
71
  {
72
  global $submenu;
73
+ if ( !$this->post_type_repo->postTypeSetting($this->post_type->name, 'hide_default') ){
74
  $submenu[$this->slug][$c] = array(
75
  __('Default','nestedpages') . ' ' . $this->post_type->labels->name,
76
  'publish_pages',
app/Entities/AdminMenu/EnabledMenus.php CHANGED
@@ -106,7 +106,7 @@ class EnabledMenus
106
  private function removeExistingMenu()
107
  {
108
  remove_menu_page('edit.php?post_type=' . $this->post_type->name);
109
- if (in_array('post', $this->enabled_types)) remove_menu_page('edit.php');
110
  }
111
 
112
  /**
106
  private function removeExistingMenu()
107
  {
108
  remove_menu_page('edit.php?post_type=' . $this->post_type->name);
109
+ if ( $this->post_type->name == 'post' ) remove_menu_page('edit.php');
110
  }
111
 
112
  /**
app/Entities/Confirmation/TrashConfirmation.php CHANGED
@@ -11,18 +11,31 @@ class TrashConfirmation implements ConfirmationInterface
11
  public function setMessage()
12
  {
13
  $out = '';
14
- $trashed = ( explode(',', $_GET['ids']) );
15
- if ( count($trashed) > 1 ){
16
- $out .= count($trashed) . ' ' . __('pages moved to the Trash.', 'nestedpages');
17
- } else {
18
- $out .= '<strong>' . get_the_title($trashed[0]) . ' </strong>' . __('moved to the Trash.', 'nestedpages');
19
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  // Undo Link
21
  if ( current_user_can('delete_pages') ) {
22
- $page_obj = get_post_type_object('page');
23
- $out .= ' <a href="' . wp_nonce_url( admin_url( sprintf( $page_obj->_edit_link . '&amp;action=untrash', $trashed[0] ) ), 'untrash-post_' . $trashed[0] ) . '">' . __( 'Undo' ) . "</a>";
24
  }
25
- }
 
26
  return $out;
27
  }
28
 
11
  public function setMessage()
12
  {
13
  $out = '';
 
 
 
 
 
14
 
15
+ // Show number of Links (np-redirect) Deleted if applicable
16
+ if ( isset($_GET['link_ids']) ) :
17
+ $links_trashed = ( explode(',', $_GET['link_ids']) );
18
+ $number_trashed = count($links_trashed);
19
+ $out .= ( $number_trashed > 1 )
20
+ ? ' ' . $number_trashed . ' ' . __('Links Removed.', 'nestedpages') . ' '
21
+ : ' ' . $number_trashed . ' ' . __('Link Removed.', 'nestedpages') . ' ';
22
+ endif;
23
+
24
+ // Post(s) Moved to Trash
25
+ if ( isset($_GET['ids']) ) :
26
+ $trashed = ( explode(',', $_GET['ids']) );
27
+ $post_type = get_post_type($trashed[0]);
28
+ $post_type_object = get_post_type_object($post_type);
29
+ $out .= ( count($trashed) > 1 )
30
+ ? count($trashed) . ' ' . $post_type_object->labels->name . ' ' . __('moved to the Trash.', 'nestedpages')
31
+ : '<strong>' . get_the_title($trashed[0]) . ' </strong>' . __('moved to the Trash.', 'nestedpages');
32
  // Undo Link
33
  if ( current_user_can('delete_pages') ) {
34
+ $ids = preg_replace( '/[^0-9,]/', '', $_GET['ids'] );
35
+ $out .= ' <a href="' . wp_nonce_url( admin_url( 'edit.php?&post_type=' . $post_type . '&amp;doaction=undo'. '&amp;action=untrash&amp;ids=' . $ids ), 'bulk-posts') . '">' . __( 'Undo' ) . "</a>";
36
  }
37
+ endif;
38
+
39
  return $out;
40
  }
41
 
app/Entities/Confirmation/TrashRestoredConfirmation.php CHANGED
@@ -11,8 +11,8 @@ class TrashRestoredConfirmation implements ConfirmationInterface
11
  public function setMessage()
12
  {
13
  $untrashed = sanitize_text_field($_GET['untrashed']);
14
- $page = ( intval($untrashed) > 1 ) ? __('pages', 'nestedpages') : __('page', 'nestedpages');
15
- $out = $untrashed . ' ' . $page . ' ' . __('restored from trash.', 'nestedpages');
16
  return $out;
17
  }
18
 
11
  public function setMessage()
12
  {
13
  $untrashed = sanitize_text_field($_GET['untrashed']);
14
+ $label = ( intval($untrashed) > 1 ) ? __('items', 'nestedpages') : __('item', 'nestedpages');
15
+ $out = $untrashed . ' ' . $label . ' ' . __('restored from trash.', 'nestedpages');
16
  return $out;
17
  }
18
 
app/Entities/Listing/Listing.php CHANGED
@@ -88,6 +88,16 @@ class Listing
88
  */
89
  private $integrations;
90
 
 
 
 
 
 
 
 
 
 
 
91
 
92
  public function __construct($post_type)
93
  {
@@ -100,6 +110,7 @@ class Listing
100
  $this->listing_repo = new ListingRepository;
101
  $this->post_data_factory = new PostDataFactory;
102
  $this->settings = new SettingsRepository;
 
103
  }
104
 
105
  /**
@@ -149,6 +160,30 @@ class Listing
149
  $this->post_type = get_post_type_object($post_type);
150
  }
151
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
  /**
153
  * The Main View
154
  * Replaces Default Post Listing
@@ -186,11 +221,15 @@ class Listing
186
  // Compare child pages with user's toggled pages
187
  $compared = array_intersect($this->listing_repo->visiblePages($this->post_type->name), $children);
188
 
 
 
 
 
 
189
  // Primary List
190
  if ( $count == 1 ) {
191
- echo ( $this->user->canSortPages() && $sortable )
192
- ? '<ol class="sortable nplist visible" id="np-' . $this->post_type->name . '">'
193
- : '<ol class="sortable no-sort nplist" visible" id="np-' . $this->post_type->name . '">';
194
  return;
195
  }
196
 
@@ -290,6 +329,9 @@ class Listing
290
 
291
  echo '<li id="menuItem_' . $this->post->id . '" class="page-row';
292
 
 
 
 
293
  // Published?
294
  if ( $this->post->status == 'publish' ) echo ' published';
295
  if ( $this->post->status == 'draft' ) echo ' draft';
88
  */
89
  private $integrations;
90
 
91
+ /**
92
+ * Disabled Standard Fields
93
+ */
94
+ private $disabled_standard_fields;
95
+
96
+ /**
97
+ * Enabled Custom Fields
98
+ */
99
+ private $enabled_custom_fields;
100
+
101
 
102
  public function __construct($post_type)
103
  {
110
  $this->listing_repo = new ListingRepository;
111
  $this->post_data_factory = new PostDataFactory;
112
  $this->settings = new SettingsRepository;
113
+ $this->setStandardFields();
114
  }
115
 
116
  /**
160
  $this->post_type = get_post_type_object($post_type);
161
  }
162
 
163
+ /**
164
+ * Set the Quick Edit Field Options
165
+ */
166
+ private function setStandardFields()
167
+ {
168
+ $type_options = $this->post_type_repo->getSinglePostType($this->post_type->name);
169
+
170
+ // The standard fields checkbox is explicitly not set
171
+ if ( isset($type_options->standard_fields_enabled) && !$type_options->standard_fields_enabled ){
172
+ $this->disabled_standard_fields = array();
173
+ return;
174
+ }
175
+
176
+ if ( isset($type_options->standard_fields) && is_array($type_options->standard_fields) ){
177
+ $this->disabled_standard_fields = $type_options->standard_fields;
178
+ foreach ( $type_options->standard_fields as $key => $fields ){
179
+ if ( $key == 'standard' ) $this->disabled_standard_fields = $fields;
180
+ }
181
+ return;
182
+ }
183
+ $this->disabled_standard_fields = array();
184
+ return;
185
+ }
186
+
187
  /**
188
  * The Main View
189
  * Replaces Default Post Listing
221
  // Compare child pages with user's toggled pages
222
  $compared = array_intersect($this->listing_repo->visiblePages($this->post_type->name), $children);
223
 
224
+ $list_classes = 'sortable visible nplist';
225
+ if ( !$this->user->canSortPages() && !$sortable || $this->isSearch() ) $list_classes .= ' no-sort';
226
+ if ( $this->integrations->plugins->yoast->installed ) $list_classes .= ' has-yoast';
227
+ if ( $this->isSearch() ) $list_classes .= ' np-search-results';
228
+
229
  // Primary List
230
  if ( $count == 1 ) {
231
+ include( Helpers::view('partials/list-header') ); // List Header
232
+ echo '<ol class="' . $list_classes . '" id="np-' . $this->post_type->name . '">';
 
233
  return;
234
  }
235
 
329
 
330
  echo '<li id="menuItem_' . $this->post->id . '" class="page-row';
331
 
332
+ // Post Type
333
+ echo ' post-type-' . $this->post->post_type;
334
+
335
  // Published?
336
  if ( $this->post->status == 'publish' ) echo ' published';
337
  if ( $this->post->status == 'draft' ) echo ' draft';
app/Entities/NavMenu/NavMenuFrontEnd.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace NestedPages\Entities\NavMenu;
4
+
5
+ use NestedPages\Entities\NavMenu\NavMenuRepository;
6
+
7
+ /**
8
+ * Edits/Corrections to the generated nav menu on the front-end
9
+ */
10
+ class NavMenuFrontEnd
11
+ {
12
+ /**
13
+ * Nav Menu Repository
14
+ */
15
+ private $nav_menu_repo;
16
+
17
+ public function __construct()
18
+ {
19
+ $this->nav_menu_repo = new NavMenuRepository;
20
+ add_filter('nav_menu_link_attributes', array($this, 'attributeFilter'), 10, 4);
21
+ }
22
+
23
+ /**
24
+ * Filter the link attributes on the generated menu
25
+ */
26
+ public function attributeFilter($atts, $item, $args, $depth)
27
+ {
28
+ if ( $args->menu->term_id !== $this->nav_menu_repo->getMenuID() ) return $atts;
29
+
30
+ // Remove the rel= attribute created from saving the menu object for syncing
31
+ foreach($atts as $attribute => $value){
32
+ if ( strtolower($attribute) != 'rel' ) continue;
33
+ if ( $value == $item->object ) unset($atts[$attribute]);
34
+ }
35
+
36
+ return $atts;
37
+ }
38
+ }
app/Entities/PluginIntegration/AdvancedCustomFields.php ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace NestedPages\Entities\PluginIntegration;
4
+
5
+ /**
6
+ * Advanced Custom Fields Integration
7
+ * @link https://www.advancedcustomfields.com/
8
+ */
9
+
10
+ class AdvancedCustomFields
11
+ {
12
+ /**
13
+ * Installed
14
+ * @var boolean
15
+ */
16
+ public $installed = false;
17
+
18
+ /**
19
+ * Unsupported Field Types
20
+ * @var array
21
+ */
22
+ private $unsupported;
23
+
24
+ public function __construct()
25
+ {
26
+ return;
27
+ if ( class_exists('acf') ){
28
+ $this->installed = true;
29
+ $this->setUnsupportedFieldTypes();
30
+ return;
31
+ }
32
+ }
33
+
34
+ /**
35
+ * Set the unsupported field types
36
+ */
37
+ private function setUnsupportedFieldTypes()
38
+ {
39
+ $this->unsupported = array(
40
+ 'relationship'
41
+ );
42
+ }
43
+
44
+ /**
45
+ * Get the ACF fields associated with a post type
46
+ * @param string post_type
47
+ * @return array
48
+ */
49
+ public function getFieldsForPostType($post_type)
50
+ {
51
+ if ( !function_exists('get_field') ) return false;
52
+ $field_groups = acf_get_field_groups(array(
53
+ 'post_type' => $post_type
54
+ ));
55
+ if ( !$field_groups ) return false;
56
+ $all_fields = array();
57
+ $c = 0;
58
+ foreach ( $field_groups as $key => $group ){
59
+ $fields = acf_get_fields($group);
60
+ foreach($fields as $field){
61
+ if ( in_array($field['type'], $this->unsupported) ) continue;
62
+ $all_fields[$c]['key'] = $field['key'];
63
+ $all_fields[$c]['label'] = $field['label'];
64
+ $all_fields[$c]['type'] = $field['type'];
65
+ $c++;
66
+ }
67
+ $c++;
68
+ }
69
+ return $all_fields;
70
+ }
71
+
72
+ }
app/Entities/PluginIntegration/IntegrationFactory.php CHANGED
@@ -3,6 +3,8 @@
3
  namespace NestedPages\Entities\PluginIntegration;
4
 
5
  use NestedPages\Entities\PluginIntegration\EditorialAccessManager;
 
 
6
 
7
  class IntegrationFactory
8
  {
@@ -22,6 +24,8 @@ class IntegrationFactory
22
  {
23
  $this->plugins = new \StdClass();
24
  $this->plugins->editorial_access_manager = new EditorialAccessManager;
 
 
25
  }
26
 
27
  }
3
  namespace NestedPages\Entities\PluginIntegration;
4
 
5
  use NestedPages\Entities\PluginIntegration\EditorialAccessManager;
6
+ use NestedPages\Entities\PluginIntegration\AdvancedCustomFields;
7
+ use NestedPages\Entities\PluginIntegration\YoastSeo;
8
 
9
  class IntegrationFactory
10
  {
24
  {
25
  $this->plugins = new \StdClass();
26
  $this->plugins->editorial_access_manager = new EditorialAccessManager;
27
+ $this->plugins->acf = new AdvancedCustomFields;
28
+ $this->plugins->yoast = new YoastSeo;
29
  }
30
 
31
  }
app/Entities/PluginIntegration/YoastSeo.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace NestedPages\Entities\PluginIntegration;
4
+
5
+ /**
6
+ * Yoast SEO Integration
7
+ * @link https://wordpress.org/plugins/wordpress-seo/
8
+ */
9
+
10
+ class YoastSeo
11
+ {
12
+ /**
13
+ * Installed
14
+ * @var boolean
15
+ */
16
+ public $installed = false;
17
+
18
+ public function __construct()
19
+ {
20
+ if ( function_exists('wpseo_auto_load') ){
21
+ $this->installed = true;
22
+ return;
23
+ }
24
+ }
25
+
26
+ public function getScore($post_id)
27
+ {
28
+ $yoast_score = get_post_meta($post_id, '_yoast_wpseo_meta-robots-noindex', true);
29
+ if ( ! $yoast_score ) {
30
+ $yoast_score = get_post_meta($post_id, '_yoast_wpseo_linkdex', true);
31
+ return \WPSEO_Utils::translate_score($yoast_score);
32
+ } else {
33
+ return 'noindex';
34
+ }
35
+ }
36
+
37
+ }
app/Entities/Post/PostDataFactory.php CHANGED
@@ -1,6 +1,7 @@
1
  <?php
2
 
3
  namespace NestedPages\Entities\Post;
 
4
 
5
  /**
6
  * Build Post Data Object
@@ -14,11 +15,18 @@ class PostDataFactory
14
  */
15
  private $post_data;
16
 
 
 
 
 
 
 
17
  /**
18
  * Build the Object
19
  */
20
  public function build($post)
21
  {
 
22
  $this->post_data = new \stdClass();
23
  $this->addPostVars($post);
24
  $this->addPostMeta($post);
@@ -42,6 +50,7 @@ class PostDataFactory
42
  $this->post_data->comment_status = $post->comment_status;
43
  $this->post_data->content = $post->post_content;
44
  $this->post_data->hierarchical = is_post_type_hierarchical($post->post_type);
 
45
  $this->post_data->link = get_the_permalink($post->ID);
46
  }
47
 
@@ -63,14 +72,8 @@ class PostDataFactory
63
  $this->post_data->template = ( isset($meta['_wp_page_template'][0]) ) ? $meta['_wp_page_template'][0] : false;
64
 
65
  // Yoast Score
66
- if ( function_exists('wpseo_auto_load') ) {
67
- $yoast_score = get_post_meta($post->ID, '_yoast_wpseo_meta-robots-noindex', true);
68
- if ( ! $yoast_score ) {
69
- $yoast_score = get_post_meta($post->ID, '_yoast_wpseo_linkdex', true);
70
- $this->post_data->score = \WPSEO_Utils::translate_score($yoast_score);
71
- } else {
72
- $this->post_data->score = 'noindex';
73
- }
74
  }
75
  }
76
 
1
  <?php
2
 
3
  namespace NestedPages\Entities\Post;
4
+ use NestedPages\Entities\PluginIntegration\IntegrationFactory;
5
 
6
  /**
7
  * Build Post Data Object
15
  */
16
  private $post_data;
17
 
18
+ /**
19
+ * Plugin Integrations
20
+ * @var object
21
+ */
22
+ private $integrations;
23
+
24
  /**
25
  * Build the Object
26
  */
27
  public function build($post)
28
  {
29
+ $this->integrations = new IntegrationFactory;
30
  $this->post_data = new \stdClass();
31
  $this->addPostVars($post);
32
  $this->addPostMeta($post);
50
  $this->post_data->comment_status = $post->comment_status;
51
  $this->post_data->content = $post->post_content;
52
  $this->post_data->hierarchical = is_post_type_hierarchical($post->post_type);
53
+ $this->post_data->post_type = $post->post_type;
54
  $this->post_data->link = get_the_permalink($post->ID);
55
  }
56
 
72
  $this->post_data->template = ( isset($meta['_wp_page_template'][0]) ) ? $meta['_wp_page_template'][0] : false;
73
 
74
  // Yoast Score
75
+ if ( $this->integrations->plugins->yoast->installed ) {
76
+ $this->post_data->score = $this->integrations->plugins->yoast->getScore($post->ID);
 
 
 
 
 
 
77
  }
78
  }
79
 
app/Entities/Post/PostFactory.php CHANGED
@@ -52,9 +52,8 @@ class PostFactory
52
  );
53
  $new_page_id = wp_insert_post($post);
54
  $data['post_id'] = $new_page_id;
55
- if ( isset($data['page_template']) ){
56
- $this->post_update_repo->updateTemplate($data);
57
- }
58
  $this->new_ids[$key] = $new_page_id;
59
  }
60
  return $this->getNewPosts($post_type);
52
  );
53
  $new_page_id = wp_insert_post($post);
54
  $data['post_id'] = $new_page_id;
55
+ if ( isset($data['page_template']) ) $this->post_update_repo->updateTemplate($data);
56
+ if ( isset($data['nav_status']) ) $this->post_update_repo->updateNavStatus($data);
 
57
  $this->new_ids[$key] = $new_page_id;
58
  }
59
  return $this->getNewPosts($post_type);
app/Entities/Post/PostRepository.php CHANGED
@@ -87,6 +87,7 @@ class PostRepository
87
  $pages[$c]['title'] = get_the_title();
88
  $pages[$c]['slug'] = $post->post_name;
89
  $pages[$c]['author'] = get_the_author_meta('ID');
 
90
  $pages[$c]['status'] = ucfirst(get_post_status());
91
  $pages[$c]['page_template'] = get_page_template_slug($post->ID);
92
  $pages[$c]['post_parent'] = $post->post_parent;
@@ -106,7 +107,12 @@ class PostRepository
106
  $pages[$c]['time'] = date_i18n('H:i', get_the_time('U'));
107
  $pages[$c]['formattedtime'] = date_i18n('g:i', get_the_time('U'));
108
  $pages[$c]['ampm'] = get_the_time('a');
 
109
 
 
 
 
 
110
 
111
  $c++; endwhile; endif; wp_reset_postdata();
112
  return $pages;
87
  $pages[$c]['title'] = get_the_title();
88
  $pages[$c]['slug'] = $post->post_name;
89
  $pages[$c]['author'] = get_the_author_meta('ID');
90
+ $pages[$c]['author_formatted'] = get_the_author();
91
  $pages[$c]['status'] = ucfirst(get_post_status());
92
  $pages[$c]['page_template'] = get_page_template_slug($post->ID);
93
  $pages[$c]['post_parent'] = $post->post_parent;
107
  $pages[$c]['time'] = date_i18n('H:i', get_the_time('U'));
108
  $pages[$c]['formattedtime'] = date_i18n('g:i', get_the_time('U'));
109
  $pages[$c]['ampm'] = get_the_time('a');
110
+ $pages[$c]['date_formatted'] = get_the_date();
111
 
112
+ // NP Variables
113
+ $all_meta = get_post_meta(get_the_id());
114
+ $pages[$c]['post_meta'] = $all_meta;
115
+ $pages[$c]['np_nav_status'] = ( isset($all_meta['np_nav_status']) && $all_meta['np_nav_status'][0] == 'hide' ) ? 'hide' : 'show';
116
 
117
  $c++; endwhile; endif; wp_reset_postdata();
118
  return $pages;
app/Entities/Post/PostUpdateRepository.php CHANGED
@@ -4,6 +4,7 @@ namespace NestedPages\Entities\Post;
4
 
5
  use NestedPages\Form\Validation\Validation;
6
  use NestedPages\Entities\NavMenu\NavMenuRepository;
 
7
 
8
  /**
9
  * Post Create/Update Methods
@@ -22,6 +23,11 @@ class PostUpdateRepository
22
  */
23
  protected $nav_menu_repo;
24
 
 
 
 
 
 
25
  /**
26
  * New Post ID
27
  * @var int
@@ -33,6 +39,7 @@ class PostUpdateRepository
33
  {
34
  $this->validation = new Validation;
35
  $this->nav_menu_repo = new NavMenuRepository;
 
36
  }
37
 
38
  /**
@@ -44,17 +51,27 @@ class PostUpdateRepository
44
  public function updateOrder($posts, $parent = 0)
45
  {
46
  $this->validation->validatePostIDs($posts);
 
47
  foreach( $posts as $key => $post )
48
  {
 
 
 
 
49
  wp_update_post(array(
50
- 'ID' => sanitize_text_field($post['id']),
51
  'menu_order' => $key,
52
  'post_parent' => $parent
53
  ));
54
 
55
- if ( isset($post['children']) ){
56
- $this->updateOrder($post['children'], $post['id']);
57
- }
 
 
 
 
 
58
  }
59
  return true;
60
  }
@@ -66,26 +83,40 @@ class PostUpdateRepository
66
  */
67
  public function updatePost($data)
68
  {
69
- $this->validation->checkEmpty($data['post_title'], __('Title', 'nestedpages'));
70
- $date = $this->validation->validateDate($data);
71
- if ( !isset($_POST['comment_status']) ) $data['comment_status'] = 'closed';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
 
73
  if ( isset($_POST['keep_private']) && $_POST['keep_private'] == 'private' ){
74
- $status = 'private';
75
  } else {
76
- $status = ( isset($data['_status']) ) ? sanitize_text_field($data['_status']) : 'publish';
77
  }
78
 
79
- $updated_post = array(
80
- 'ID' => sanitize_text_field($data['post_id']),
81
- 'post_title' => sanitize_text_field($data['post_title']),
82
- 'post_author' => sanitize_text_field($data['post_author']),
83
- 'post_name' => sanitize_text_field($data['post_name']),
84
- 'post_date' => $date,
85
- 'comment_status' => sanitize_text_field($data['comment_status']),
86
- 'post_status' => $status,
87
- 'post_password' => sanitize_text_field($data['post_password'])
88
- );
89
  wp_update_post($updated_post);
90
 
91
  $this->updateTemplate($data);
@@ -145,11 +176,13 @@ class PostUpdateRepository
145
  */
146
  private function updateNestedPagesStatus($data)
147
  {
 
 
148
  $status = ( isset($data['nested_pages_status']) ) ? 'hide' : 'show';
149
  $id = ( isset($data['post_id']) ) ? $data['post_id'] : $this->new_id;
150
- update_post_meta(
151
- $id,
152
- 'nested_pages_status',
153
  $status
154
  );
155
  }
4
 
5
  use NestedPages\Form\Validation\Validation;
6
  use NestedPages\Entities\NavMenu\NavMenuRepository;
7
+ use NestedPages\Entities\PostType\PostTypeRepository;
8
 
9
  /**
10
  * Post Create/Update Methods
23
  */
24
  protected $nav_menu_repo;
25
 
26
+ /**
27
+ * Post Type Repository
28
+ */
29
+ protected $post_type_repo;
30
+
31
  /**
32
  * New Post ID
33
  * @var int
39
  {
40
  $this->validation = new Validation;
41
  $this->nav_menu_repo = new NavMenuRepository;
42
+ $this->post_type_repo = new PostTypeRepository;
43
  }
44
 
45
  /**
51
  public function updateOrder($posts, $parent = 0)
52
  {
53
  $this->validation->validatePostIDs($posts);
54
+ global $wpdb;
55
  foreach( $posts as $key => $post )
56
  {
57
+ $post_id = sanitize_text_field($post['id']);
58
+ $original_modifed_date = get_post_modified_time('Y-m-d H:i:s', false, $post_id);
59
+ $original_modifed_date_gmt = get_post_modified_time('Y-m-d H:i:s', true, $post_id);
60
+
61
  wp_update_post(array(
62
+ 'ID' => $post_id,
63
  'menu_order' => $key,
64
  'post_parent' => $parent
65
  ));
66
 
67
+ // Reset the modified date to the last modified date
68
+ $query = "UPDATE $wpdb->posts SET post_modified = '$original_modifed_date' WHERE ID = '$post_id'";
69
+ $wpdb->query( $query );
70
+
71
+ $query_gmt = "UPDATE $wpdb->posts SET post_modified_gmt = '$original_modifed_date_gmt' WHERE ID = '$post_id'";
72
+ $wpdb->query( $query_gmt );
73
+
74
+ if ( isset($post['children']) ) $this->updateOrder($post['children'], $post_id);
75
  }
76
  return true;
77
  }
83
  */
84
  public function updatePost($data)
85
  {
86
+ $updated_post = array(
87
+ 'ID' => sanitize_text_field($data['post_id'])
88
+ );
89
+
90
+ if ( isset($data['post_title']) && $data['post_title'] == "" ){
91
+ $this->validation->checkEmpty($data['post_title'], __('Title', 'nestedpages'));
92
+ } elseif ( isset($data['post_title']) ){
93
+ $updated_post['post_title'] = sanitize_text_field($data['post_title']);
94
+ }
95
+
96
+ if ( isset($data['post_name']) )
97
+ $updated_post['post_name'] = sanitize_text_field($data['post_name']);
98
+
99
+ if ( isset($data['post_author']) )
100
+ $updated_post['post_author'] = sanitize_text_field($data['post_author']);
101
+
102
+ if ( isset($data['post_password']) )
103
+ $updated_post['post_password'] = sanitize_text_field($data['post_password']);
104
+
105
+ if ( !$this->post_type_repo->standardFieldDisabled('allow_comments', sanitize_text_field($data['post_type'])) ){
106
+ $updated_post['comment_status'] = ( isset($data['comment_status']) ) ? 'open' : 'closed';
107
+ }
108
+
109
+ if ( isset($data['np_date']) ) {
110
+ $date = $this->validation->validateDate($data);
111
+ $updated_post['post_date'] = $date;
112
+ }
113
 
114
  if ( isset($_POST['keep_private']) && $_POST['keep_private'] == 'private' ){
115
+ $updated_post['post_status'] = 'private';
116
  } else {
117
+ if ( isset($data['_status']) ) $updated_post['post_status'] = sanitize_text_field($data['_status']);
118
  }
119
 
 
 
 
 
 
 
 
 
 
 
120
  wp_update_post($updated_post);
121
 
122
  $this->updateTemplate($data);
176
  */
177
  private function updateNestedPagesStatus($data)
178
  {
179
+ if ( $this->post_type_repo->standardFieldDisabled('hide_in_np', sanitize_text_field($data['post_type'])) ) return;
180
+
181
  $status = ( isset($data['nested_pages_status']) ) ? 'hide' : 'show';
182
  $id = ( isset($data['post_id']) ) ? $data['post_id'] : $this->new_id;
183
+ update_post_meta(
184
+ $id,
185
+ 'nested_pages_status',
186
  $status
187
  );
188
  }
app/Entities/PostType/PostTypeRepository.php CHANGED
@@ -5,6 +5,39 @@ namespace NestedPages\Entities\PostType;
5
  class PostTypeRepository
6
  {
7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  /**
9
  * Get Available Post Types
10
  * @since 1.2.1
@@ -16,90 +49,181 @@ class PostTypeRepository
16
  }
17
 
18
  /**
19
- * Get an object of non-page post types
20
  * @since 1.2.1
21
  * @return object
22
  */
23
- public function getPostTypesObject($pages = false)
24
  {
25
  $all_types = $this->getPostTypes('objects');
26
  $post_types = array();
27
- $enabled_types = $this->enabledPostTypes();
28
  $invalid_types = array(
29
- 'acf-field-group'
 
30
  );
31
  foreach($all_types as $key => $type){
32
- if ( (!$pages) && ($key == 'attachment') ) continue;
33
  if ( in_array($type->name, $invalid_types) ) continue;
34
  $post_types[$type->name] = new \stdClass();
35
  $post_types[$type->name]->name = $type->name;
36
  $post_types[$type->name]->label = $type->labels->name;
37
  $post_types[$type->name]->hierarchical = $type->hierarchical;
38
- $post_types[$type->name]->np_enabled = ( array_key_exists($type->name, $this->enabledPostTypes()) ) ? true : false;
39
- $post_types[$type->name]->replace_menu = $this->overrideMenu($type->name);
40
- $post_types[$type->name]->hide_default = $this->hideDefault($type->name);
41
- $post_types[$type->name]->disable_nesting = $this->disableNesting($type->name);
 
 
 
 
42
  }
43
  return $post_types;
44
  }
45
 
46
  /**
47
- * Is the specified post type set to override the default menu?
48
- * @param string post type name
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  * @return boolean
50
  */
51
- private function overrideMenu($post_type)
52
  {
53
- foreach($this->enabledPostTypes() as $key => $type){
54
- if ( $key == $post_type ){
55
- return ( isset($type['replace_menu']) && $type['replace_menu'] == 'true' )
56
- ? true
57
- : false;
 
58
  }
59
  }
 
60
  }
61
 
62
  /**
63
- * Is the specified post type set to hide the default link?
64
  * @param string post type name
65
- * @return boolean
 
66
  */
67
- public function hideDefault($post_type)
68
  {
69
- foreach($this->enabledPostTypes() as $key => $type){
 
70
  if ( $key == $post_type ){
71
- return ( isset($type['hide_default']) && $type['hide_default'] == 'true' )
72
- ? true
73
- : false;
74
  }
75
  }
 
76
  }
77
 
78
  /**
79
- * Is nesting disabled on the specified post type
80
- * @param string post type name
 
 
81
  * @return boolean
82
  */
83
- public function disableNesting($post_type)
84
  {
85
- foreach($this->enabledPostTypes() as $key => $type){
86
- if ( $key == $post_type ){
87
- return ( isset($type['disable_nesting']) && $type['disable_nesting'] == 'true' )
88
- ? true
89
- : false;
 
 
90
  }
91
  }
 
92
  }
93
 
94
  /**
95
- * Get an array of NP enabled Post Types
96
- * @since 1.2.1
97
- * @return array
98
  */
99
- public function enabledPostTypes()
100
  {
101
- $types = get_option('nestedpages_posttypes');
102
- return ( !$types ) ? array() : $types;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103
  }
104
 
105
  /**
@@ -193,4 +317,39 @@ class PostTypeRepository
193
  return ( $post_type->hierarchical ) ? __('Nested View', 'nestedpages') : __('Sort View', 'nestedpages');
194
  }
195
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
196
  }
5
  class PostTypeRepository
6
  {
7
 
8
+ /**
9
+ * Enabled Post Types
10
+ * @var array – the posttype setting
11
+ */
12
+ public $enabled_post_types;
13
+
14
+ public function __construct()
15
+ {
16
+ $this->setEnabledPostTypes();
17
+ }
18
+
19
+ /**
20
+ * Set an array of NP enabled Post Types
21
+ * @since 1.2.1
22
+ * @return array
23
+ */
24
+ public function setEnabledPostTypes()
25
+ {
26
+ $types = get_option('nestedpages_posttypes');
27
+ $this->enabled_post_types = ( !$types ) ? array() : $types;
28
+ }
29
+
30
+ /**
31
+ * Get an array of NP enabled Post Types
32
+ * @since 1.2.1
33
+ * @return array
34
+ */
35
+ public function enabledPostTypes()
36
+ {
37
+ $types = get_option('nestedpages_posttypes');
38
+ return ( !$types ) ? array() : $types;
39
+ }
40
+
41
  /**
42
  * Get Available Post Types
43
  * @since 1.2.1
49
  }
50
 
51
  /**
52
+ * Get an object of post types
53
  * @since 1.2.1
54
  * @return object
55
  */
56
+ public function getPostTypesObject()
57
  {
58
  $all_types = $this->getPostTypes('objects');
59
  $post_types = array();
60
+ $enabled_types = $this->enabled_post_types;
61
  $invalid_types = array(
62
+ 'acf-field-group',
63
+ 'attachment'
64
  );
65
  foreach($all_types as $key => $type){
 
66
  if ( in_array($type->name, $invalid_types) ) continue;
67
  $post_types[$type->name] = new \stdClass();
68
  $post_types[$type->name]->name = $type->name;
69
  $post_types[$type->name]->label = $type->labels->name;
70
  $post_types[$type->name]->hierarchical = $type->hierarchical;
71
+ $post_types[$type->name]->np_enabled = ( array_key_exists($type->name, $this->enabled_post_types) ) ? true : false;
72
+ $post_types[$type->name]->replace_menu = $this->postTypeSetting($type->name, 'replace_menu');
73
+ $post_types[$type->name]->hide_default = $this->postTypeSetting($type->name, 'hide_default');
74
+ $post_types[$type->name]->disable_nesting = $this->postTypeSetting($type->name, 'disable_nesting');
75
+ $post_types[$type->name]->custom_fields_enabled = $this->postTypeSetting($type->name, 'custom_fields_enabled');
76
+ $post_types[$type->name]->standard_fields_enabled = $this->postTypeSetting($type->name, 'standard_fields_enabled');
77
+ $post_types[$type->name]->custom_fields = $this->configuredFields($type->name, 'custom_fields');
78
+ $post_types[$type->name]->standard_fields = $this->configuredFields($type->name, 'standard_fields');
79
  }
80
  return $post_types;
81
  }
82
 
83
  /**
84
+ * Get a Single Enabled Post Type Object with settings
85
+ * @param $post_type string - post type name
86
+ */
87
+ public function getSinglePostType($post_type)
88
+ {
89
+ $all_types = $this->getPostTypesObject();
90
+ $formatted_type = false;
91
+ foreach ( $all_types as $type ){
92
+ if ( $type->name == $post_type ) $formatted_type = $type;
93
+ }
94
+ return $formatted_type;
95
+ }
96
+
97
+ /**
98
+ * Get a Post Type Boolean Setting
99
+ * @param string $post_type post type name
100
+ * @param string $setting_key option key
101
  * @return boolean
102
  */
103
+ public function postTypeSetting($post_type, $setting_key)
104
  {
105
+ foreach($this->enabled_post_types as $key => $type_settings){
106
+ if ( $key !== $post_type ) continue;
107
+ if ( !is_array($type_settings) ) return false;
108
+ foreach ( $type_settings as $option_key => $setting ){
109
+ if ( $option_key !== $setting_key ) continue;
110
+ return $setting;
111
  }
112
  }
113
+ return false;
114
  }
115
 
116
  /**
117
+ * Fields configured for a specific post type
118
  * @param string post type name
119
+ * @param string field type (custom_fields|standard_fields)
120
+ * @return array
121
  */
122
+ public function configuredFields($post_type, $field_type = 'custom_fields')
123
  {
124
+ $fields = array();
125
+ foreach($this->enabled_post_types as $key => $type){
126
  if ( $key == $post_type ){
127
+ if ( isset($type[$field_type]) ) $fields = $type[$field_type];
 
 
128
  }
129
  }
130
+ return $fields;
131
  }
132
 
133
  /**
134
+ * Is a custom field enabled?
135
+ * @param $post_type - post type name
136
+ * @param $field_group - key for field group (acf, other, etc)
137
+ * @param $field_key - field key to search for
138
  * @return boolean
139
  */
140
+ public function fieldEnabled($post_type, $field_group, $field_key, $field_type = 'custom_fields')
141
  {
142
+ $enabled = false;
143
+ $fields = $this->configuredFields($post_type, $field_type);
144
+ if ( !is_array($fields) ) return $enabled;
145
+ foreach ( $fields as $group => $fields ){
146
+ if ( $group !== $field_group ) continue;
147
+ foreach ( $fields as $key => $type ){
148
+ if ( $key == $field_key ) $enabled = true;
149
  }
150
  }
151
+ return $enabled;
152
  }
153
 
154
  /**
155
+ * Are Thumbnails enabled for this post type? If not, return false, if so, return the thumbnail size
156
+ * @param $post_type - post type name
157
+ * @return boolean || string (thumbnail size)
158
  */
159
+ public function thumbnails($post_type, $key = 'enabled')
160
  {
161
+ $types = $this->enabled_post_types;
162
+ $type_settings = array();
163
+ foreach ( $types as $type => $settings ){
164
+ if ( $type !== $post_type ) continue;
165
+ $type_settings = $settings;
166
+ }
167
+ if ( !is_array($type_settings) ) return false;
168
+ if ( !array_key_exists('thumbnails', $type_settings) ) return false;
169
+ if ( !isset($type_settings['thumbnails']['display']) ) return false;
170
+ if ( $key == 'enabled' ) return true;
171
+ if ( $key == 'source' ){
172
+ return ( isset($type_settings['thumbnails']['size']) ) ? $type_settings['thumbnails']['size'] : 'thumbnail';
173
+ }
174
+ if ( $key == 'display_size' ){
175
+ return ( isset($type_settings['thumbnails']['display_size']) ) ? $type_settings['thumbnails']['display_size'] : 'medium';
176
+ }
177
+ }
178
+
179
+ /**
180
+ * Thumbnail Display Size
181
+ * @return string
182
+ */
183
+ public function thumbnailDisplaySize($post_type)
184
+ {
185
+ $types = $this->enabled_post_types;
186
+ $type_settings = array();
187
+ foreach ( $types as $type => $settings ){
188
+ if ( $type !== $post_type ) continue;
189
+ $type_settings = $settings;
190
+ }
191
+ }
192
+
193
+ /**
194
+ * Is a standard field disabled in Quick Edit?
195
+ * @param $field - The field key (title, slug, date, author, etc…)
196
+ * @param $post_type - The post type
197
+ * @return boolean
198
+ */
199
+ public function standardFieldDisabled($field, $post_type)
200
+ {
201
+ $disabled = false;
202
+ $fields = $this->configuredFields($post_type, 'standard_fields');
203
+ if ( !isset($fields['standard']) ) return false;
204
+ foreach ( $fields['standard'] as $key => $value ){
205
+ if ( $key == $field && $value == 'true') return true;
206
+ }
207
+ return false;
208
+ }
209
+
210
+ /**
211
+ * Is a taxonomy disabled in Quick Edit?
212
+ * @param $taxonomy - The taxonomy Name
213
+ * @param $post_type - The post type
214
+ * @return boolean
215
+ */
216
+ public function taxonomyDisabled($taxonomy, $post_type)
217
+ {
218
+ $disabled = false;
219
+ $fields = $this->configuredFields($post_type, 'standard_fields');
220
+ if ( empty($fields) ) return false;
221
+ if ( !array_key_exists('taxonomies', $fields['standard']) ) return false;
222
+ if ( !is_array($fields['standard']['taxonomies']) ) return false;
223
+ foreach ( $fields['standard']['taxonomies'] as $tax => $value ){
224
+ if ( $tax == $taxonomy && $value == 'true') return true;
225
+ }
226
+ return false;
227
  }
228
 
229
  /**
317
  return ( $post_type->hierarchical ) ? __('Nested View', 'nestedpages') : __('Sort View', 'nestedpages');
318
  }
319
 
320
+ /**
321
+ * Get all custom fields associated with a post type
322
+ * @param string post_type
323
+ * @param boolean show_hidden
324
+ * @return array
325
+ */
326
+ public function getCustomFields($post_type, $show_hidden = false)
327
+ {
328
+ global $wpdb;
329
+ $post_table = $wpdb->prefix . 'posts';
330
+ $meta_table = $wpdb->prefix . 'postmeta';
331
+ if ( $show_hidden ){
332
+ $sql = "SELECT DISTINCT meta_key FROM $post_table AS p LEFT JOIN $meta_table AS m ON m.post_id = p.id WHERE p.post_type = '$post_type' AND meta_key NOT LIKE ''";
333
+ } else {
334
+ $sql = "SELECT DISTINCT meta_key FROM $post_table AS p LEFT JOIN $meta_table AS m ON m.post_id = p.id WHERE p.post_type = '$post_type' AND meta_key NOT LIKE '\_%'";
335
+ }
336
+ $results = $wpdb->get_results($sql);
337
+ $fields = ( $results ) ? $this->fieldsArray($results) : array();
338
+ return $fields;
339
+ }
340
+
341
+ /**
342
+ * Format DB results into an array
343
+ */
344
+ private function fieldsArray($results)
345
+ {
346
+ $fields = array();
347
+ $exclude = array('_wp_page_template', '_edit_lock', '_edit_last', '_wp_trash_meta_status', '_wp_trash_meta_time', 'layout', 'position', 'rule', 'hide_on_screen', 'np_link_target', 'np_nav_title', 'np_title_attribute', 'np_nav_status', 'nested_pages_status', 'np_nav_css_classes');
348
+ foreach ( $results as $field ){
349
+ if ( !in_array($field->meta_key, $exclude) )
350
+ array_push($fields, $field->meta_key);
351
+ }
352
+ return $fields;
353
+ }
354
+
355
  }
app/Entities/User/UserRepository.php CHANGED
@@ -55,8 +55,8 @@ class UserRepository
55
  $cansort = get_option('nestedpages_allowsorting', array());
56
  if ( $cansort == "" ) $cansort = array();
57
 
58
- if ( current_user_can('edit_theme_options') ) return true;
59
  foreach($roles as $role){
 
60
  if ( in_array($role, $cansort) ) return true;
61
  }
62
  return false;
55
  $cansort = get_option('nestedpages_allowsorting', array());
56
  if ( $cansort == "" ) $cansort = array();
57
 
 
58
  foreach($roles as $role){
59
+ if ( $role == 'administrator' ) return true;
60
  if ( in_array($role, $cansort) ) return true;
61
  }
62
  return false;
app/Form/Events.php CHANGED
@@ -44,7 +44,9 @@ class Events
44
  'wp_ajax_npclonePost',
45
  'wp_ajax_npmenuSearch',
46
  'wp_ajax_npnewMenuItem',
47
- 'admin_post_npCategoryFilter'
 
 
48
  );
49
  $this->setHandlers();
50
  }
44
  'wp_ajax_npclonePost',
45
  'wp_ajax_npmenuSearch',
46
  'wp_ajax_npnewMenuItem',
47
+ 'admin_post_npCategoryFilter',
48
+ 'admin_post_npBulkActions',
49
+ 'wp_ajax_npmanualMenuSync'
50
  );
51
  $this->setHandlers();
52
  }
app/Form/Listeners/BulkActions.php ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace NestedPages\Form\Listeners;
4
+
5
+ /**
6
+ * Perform Bulk Actions
7
+ */
8
+ class BulkActions
9
+ {
10
+
11
+ /**
12
+ * URL to redirect to
13
+ * @var string
14
+ */
15
+ private $url;
16
+
17
+ /**
18
+ * Post IDs (Comma-separated)
19
+ * @var string
20
+ */
21
+ private $post_ids;
22
+
23
+ /**
24
+ * Post IDs to Perform Actions on, Formatted as an Array
25
+ * @var array
26
+ */
27
+ private $post_ids_array;
28
+
29
+ /**
30
+ * Redirect Post IDs (Comma-separated)
31
+ * @var string
32
+ */
33
+ private $redirect_post_ids;
34
+
35
+ /**
36
+ * Redirect Post IDs to Perform Actions on, Formatted as an Array
37
+ * @var array
38
+ */
39
+ private $redirect_post_ids_array;
40
+
41
+ public function __construct()
42
+ {
43
+ $this->setURL();
44
+ $this->setPostIds();
45
+ $this->performAction();
46
+ $this->redirect();
47
+ }
48
+
49
+ /**
50
+ * Build the URL to Redirect to
51
+ */
52
+ private function setURL()
53
+ {
54
+ $this->url = sanitize_text_field($_POST['page']);
55
+ }
56
+
57
+ /**
58
+ * Set the Post IDs
59
+ */
60
+ private function setPostIds()
61
+ {
62
+ $ids = sanitize_text_field($_POST['post_ids']);
63
+ $this->post_ids = rtrim($ids, ",");
64
+ $ids = explode(',', $this->post_ids);
65
+ $this->post_ids_array = $ids;
66
+
67
+ $r_ids = sanitize_text_field($_POST['redirect_post_ids']);
68
+ $this->redirect_post_ids = rtrim($r_ids, ",");
69
+ $r_ids = explode(',', $this->redirect_post_ids);
70
+ $this->redirect_post_ids_array = $r_ids;
71
+ }
72
+
73
+ /**
74
+ * Perform the Bulk Actions
75
+ */
76
+ private function performAction()
77
+ {
78
+ $action = sanitize_text_field($_POST['np_bulk_action']);
79
+
80
+ if ( $action == 'no-action' || !$action ){
81
+ $this->redirect();
82
+ return;
83
+ }
84
+
85
+ if ( $action == 'trash' ){
86
+ $this->trashPosts();
87
+ return;
88
+ }
89
+ }
90
+
91
+ /**
92
+ * Move Posts to Trash
93
+ */
94
+ private function trashPosts()
95
+ {
96
+ if ( !current_user_can('delete_pages') ){
97
+ $this->redirect();
98
+ return;
99
+ }
100
+
101
+ foreach ( $this->post_ids_array as $id ){
102
+ wp_trash_post($id);
103
+ }
104
+
105
+ foreach ( $this->redirect_post_ids_array as $id ){
106
+ wp_delete_post($id, true);
107
+ }
108
+
109
+ $this->url = $this->url . '&bulk=true&trashed=1';
110
+
111
+ if ( $this->post_ids != '' ) $this->url = $this->url . '&ids=' . $this->post_ids;
112
+ if ( $this->redirect_post_ids != '' ) $this->url = $this->url . '&link_ids=' . $this->redirect_post_ids;
113
+ }
114
+
115
+ /**
116
+ * Redirect to new URL
117
+ */
118
+ private function redirect()
119
+ {
120
+ header('Location:' . $this->url);
121
+ }
122
+ }
app/Form/Listeners/ManualMenuSync.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace NestedPages\Form\Listeners;
4
+
5
+ /**
6
+ * Manually Sync the Menu
7
+ * @return json response
8
+ */
9
+ class ManualMenuSync extends BaseHandler
10
+ {
11
+ public function __construct()
12
+ {
13
+ parent::__construct();
14
+ $this->syncMenu();
15
+ $this->response = array('status' => 'success');
16
+ $this->sendResponse();
17
+ }
18
+
19
+ }
app/Form/Listeners/QuickEdit.php CHANGED
@@ -60,12 +60,13 @@ class QuickEdit extends BaseHandler
60
  */
61
  private function addData()
62
  {
63
- $this->data['author_name'] = get_the_author_meta('display_name', $this->data['post_author']);
64
  $this->data['nav_status'] = ( isset($this->data['nav_status']) ) ? 'hide' : 'show';
65
  $this->data['np_status'] = ( isset($this->data['nested_pages_status']) ) ? 'hide' : 'show';
66
  $this->data['link_target'] = ( isset($this->data['link_target']) ) ? '_blank' : 'none';
67
  $this->data['keep_private'] = ( isset($this->data['keep_private']) ) ? 'private' : 'public';
68
  $this->data['_status'] = ( isset($this->data['_status']) ) ? $this->data['_status'] : 'publish';
 
69
  if ( !isset($_POST['comment_status']) ) $this->data['comment_status'] = 'closed';
70
  }
71
 
60
  */
61
  private function addData()
62
  {
63
+ if ( isset($this->data['post_author']) ) $this->data['author_name'] = get_the_author_meta('display_name', $this->data['post_author']);
64
  $this->data['nav_status'] = ( isset($this->data['nav_status']) ) ? 'hide' : 'show';
65
  $this->data['np_status'] = ( isset($this->data['nested_pages_status']) ) ? 'hide' : 'show';
66
  $this->data['link_target'] = ( isset($this->data['link_target']) ) ? '_blank' : 'none';
67
  $this->data['keep_private'] = ( isset($this->data['keep_private']) ) ? 'private' : 'public';
68
  $this->data['_status'] = ( isset($this->data['_status']) ) ? $this->data['_status'] : 'publish';
69
+ $this->data['permalink'] = get_the_permalink($this->data['post_id']);
70
  if ( !isset($_POST['comment_status']) ) $this->data['comment_status'] = 'closed';
71
  }
72
 
app/FrontEndBootstrap.php CHANGED
@@ -11,5 +11,6 @@ class FrontEndBootstrap
11
  public function init()
12
  {
13
  new RedirectsFrontEnd;
 
14
  }
15
  }
11
  public function init()
12
  {
13
  new RedirectsFrontEnd;
14
+ new Entities\NavMenu\NavMenuFrontEnd;
15
  }
16
  }
app/NestedPages.php CHANGED
@@ -12,9 +12,9 @@ class NestedPages
12
  $np_env = 'live';
13
 
14
  global $np_version;
15
- $np_version = '1.5.4';
16
 
17
  if ( is_admin() ) $app = new NestedPages\Bootstrap;
18
- //if ( !is_admin() ) $app = new NestedPages\FrontEndBootstrap;
19
  }
20
  }
12
  $np_env = 'live';
13
 
14
  global $np_version;
15
+ $np_version = '1.6.0';
16
 
17
  if ( is_admin() ) $app = new NestedPages\Bootstrap;
18
+ if ( !is_admin() ) $app = new NestedPages\FrontEndBootstrap;
19
  }
20
  }
app/Redirects.php CHANGED
@@ -21,8 +21,19 @@ class Redirects
21
  public function pageTrashed()
22
  {
23
  $screen = get_current_screen();
24
- if ( ($screen->id == 'edit-page') && (isset($_GET['trashed'])) && (intval($_GET['trashed']) >0)){
25
- $redirect = add_query_arg(array('page'=>'nestedpages', 'trashed' => true, 'ids' => $_GET['ids'] ));
 
 
 
 
 
 
 
 
 
 
 
26
  wp_redirect($redirect);
27
  exit();
28
  }
@@ -34,7 +45,13 @@ class Redirects
34
  public function pageRestored()
35
  {
36
  $screen = get_current_screen();
37
- if ( ($screen->id == 'edit-page') && (isset($_GET['untrashed'])) && (intval($_GET['untrashed']) >0)){
 
 
 
 
 
 
38
  $redirect = add_query_arg(array('page'=>'nestedpages', 'untrashed' => true, 'untrashed' => $_GET['untrashed'] ));
39
  wp_redirect($redirect);
40
  exit();
@@ -47,12 +64,26 @@ class Redirects
47
  public function linkDeleted($post_id)
48
  {
49
  $screen = get_current_screen();
50
- if ( (get_post_type($post_id) == 'np-redirect') && ($screen->id == 'np-redirect') ){
 
 
 
 
 
51
  $redirect = add_query_arg(array('page'=>'nestedpages', 'linkdeleted' => true, '_wpnonce' => false, 'post' => false, 'action'=>false));
52
  wp_redirect($redirect);
53
  exit();
54
  }
55
  }
56
 
 
 
 
 
 
 
 
 
 
57
 
58
- }
21
  public function pageTrashed()
22
  {
23
  $screen = get_current_screen();
24
+ if (
25
+ ($screen->id == 'edit-page') &&
26
+ (isset($_GET['trashed'])) &&
27
+ (intval($_GET['trashed']) > 0) &&
28
+ (!isset($_GET['bulk'])) &&
29
+ $this->arePagesNested()
30
+ ){
31
+ $query_args = array(
32
+ 'page' => 'nestedpages',
33
+ 'trashed' => true
34
+ );
35
+ if ( isset($_GET['ids']) ) $query_args['ids'] = $_GET['ids'];
36
+ $redirect = add_query_arg(array('page'=>'nestedpages', 'trashed' => true ));
37
  wp_redirect($redirect);
38
  exit();
39
  }
45
  public function pageRestored()
46
  {
47
  $screen = get_current_screen();
48
+ if (
49
+ ($screen->id == 'edit-page') &&
50
+ (isset($_GET['untrashed'])) &&
51
+ (intval($_GET['untrashed']) > 0) &&
52
+ (!isset($_GET['bulk'])) &&
53
+ $this->arePagesNested()
54
+ ){
55
  $redirect = add_query_arg(array('page'=>'nestedpages', 'untrashed' => true, 'untrashed' => $_GET['untrashed'] ));
56
  wp_redirect($redirect);
57
  exit();
64
  public function linkDeleted($post_id)
65
  {
66
  $screen = get_current_screen();
67
+ if ( !$screen ) return;
68
+ if (
69
+ (get_post_type($post_id) == 'np-redirect') &&
70
+ ($screen->id == 'np-redirect') &&
71
+ $this->arePagesNested()
72
+ ){
73
  $redirect = add_query_arg(array('page'=>'nestedpages', 'linkdeleted' => true, '_wpnonce' => false, 'post' => false, 'action'=>false));
74
  wp_redirect($redirect);
75
  exit();
76
  }
77
  }
78
 
79
+ /**
80
+ * Return true/false if nested pages are enabled for Page post types
81
+ */
82
+ private function arePagesNested() {
83
+ $postTypeRepository = new \NestedPages\Entities\PostType\PostTypeRepository();
84
+ $enabledPostTypes = $postTypeRepository->enabledPostTypes();
85
+ return array_key_exists( 'page', $enabledPostTypes );
86
+ }
87
+
88
 
89
+ }
app/RedirectsFrontEnd.php CHANGED
@@ -9,9 +9,12 @@ class RedirectsFrontEnd
9
  public function __construct()
10
  {
11
  add_filter('page_link', array($this, 'pageLinks'),10,2);
12
- add_action('request', array($this, 'request'));
13
  }
14
 
 
 
 
15
  public function pageLinks( $post_link, $id = 0 )
16
  {
17
  $post = get_post($id);
@@ -19,41 +22,44 @@ class RedirectsFrontEnd
19
  return $post_link;
20
  }
21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  /**
23
  * Recursive function removes non-page parent slugs
24
  */
25
  private function removeParentSlugs($post, $slug)
26
  {
27
- $parent_type = get_post_type($post->post_parent);
28
- if ( $parent_type == 'np-redirect' ){
29
  $parent_post = get_post($post->post_parent);
30
- $slug = str_replace($parent_post->post_name . '/', '', $slug);
31
- return $slug;
 
 
32
  }
33
  return $slug;
34
  }
35
-
36
- /**
37
- * Add page query
38
- */
39
- public function request($request)
40
- {
41
- if ( !isset($request['name']) ) return $request;
42
- $slug = $request['name'];
43
- $dpost = get_posts(array('name' => $slug, 'post_type' => 'page'));
44
- if ( $dpost && $dpost[0]->post_type == 'page' ){
45
- add_filter('pre_get_posts', array($this, 'query'));
46
- }
47
- return $request;
48
- }
49
-
50
- /**
51
- * Set the query to page
52
- */
53
- public function query($query)
54
- {
55
- if (!$query->is_main_query()) return;
56
- $query->set('post_type', 'page');
57
- }
58
-
59
  }
9
  public function __construct()
10
  {
11
  add_filter('page_link', array($this, 'pageLinks'),10,2);
12
+ add_action('parse_request', array($this, 'parseRequest'));
13
  }
14
 
15
+ /**
16
+ * Remove np-redirect slugs from links
17
+ */
18
  public function pageLinks( $post_link, $id = 0 )
19
  {
20
  $post = get_post($id);
22
  return $post_link;
23
  }
24
 
25
+ public function parseRequest($wp)
26
+ {
27
+ if ( isset($wp->query_vars['error']) ) $slug = basename($wp->request);
28
+ if ( isset($wp->query_vars['pagename']) && ! empty($wp->query_vars['pagename']) ) $slug = $wp->query_vars['pagename'];
29
+ if ( isset($wp->query_vars['name']) && ! empty($wp->query_vars['name']) ) $slug = $wp->query_vars['name'];
30
+ if ( isset($wp->query_vars['attachment']) && ! empty($wp->query_vars['attachment']) ) $slug = $wp->query_vars['attachment'];
31
+ if ( !isset($slug) ) return;
32
+
33
+ $slug = basename($slug);
34
+
35
+ $page = get_posts(array('name' => $slug, 'post_type' => 'any', 'posts_per_page' => 1));
36
+ if ( !$page ) return;
37
+
38
+ $parent_type = get_post_type($page[0]->post_parent);
39
+
40
+ if ( $parent_type !== 'np-redirect' && !isset($wp->query_vars['attachment']) && $parent_type !== 'page' ) return;
41
+
42
+ unset($wp->query_vars['pagename']);
43
+ unset($wp->query_vars['name']);
44
+ unset($wp->query_vars['attachment']);
45
+ unset($wp->query_vars['error']);
46
+
47
+ $wp->query_vars['page_id'] = $page[0]->ID;
48
+ }
49
+
50
  /**
51
  * Recursive function removes non-page parent slugs
52
  */
53
  private function removeParentSlugs($post, $slug)
54
  {
55
+ if ( is_admin() ) return $slug;
56
+ if ( $post->post_parent > 0 ) {
57
  $parent_post = get_post($post->post_parent);
58
+ if ( $parent_post->post_type == 'np-redirect' ){
59
+ $slug = str_replace($parent_post->post_name . '/', '', $slug);
60
+ }
61
+ return $this->removeParentSlugs($parent_post, $slug);
62
  }
63
  return $slug;
64
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
  }
app/Views/forms/delete-confirmation-modal.php CHANGED
@@ -7,7 +7,7 @@
7
  <div class="modal-dialog">
8
  <div class="modal-content">
9
  <div class="modal-body">
10
- <p>Are you sure you would like to delete this item? This action is not reversable.</p>
11
  <a href="#" class="np-cancel-trash button modal-close" data-dismiss="modal"><?php _e('Cancel', 'nestedpages'); ?></a>
12
  <a href="#" class="button-primary" data-delete-confirmation><?php _e('Delete', 'nestedpages'); ?></a>
13
  </div>
7
  <div class="modal-dialog">
8
  <div class="modal-content">
9
  <div class="modal-body">
10
+ <p data-np-link-delete-text></p>
11
  <a href="#" class="np-cancel-trash button modal-close" data-dismiss="modal"><?php _e('Cancel', 'nestedpages'); ?></a>
12
  <a href="#" class="button-primary" data-delete-confirmation><?php _e('Delete', 'nestedpages'); ?></a>
13
  </div>
app/Views/forms/more-options-modal.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Modal with additional options for posts
4
+ */
5
+ ?>
6
+ <div class="np-modal fade np-trash-modal" id="np-more-options-modal">
7
+ <div class="modal-dialog">
8
+ <div class="modal-content">
9
+ <div class="modal-body">
10
+
11
+ </div>
12
+ </div><!-- /.modal-content -->
13
+ </div><!-- /.modal-dialog -->
14
+ </div><!-- /.modal -->
app/Views/forms/new-child.php CHANGED
@@ -76,6 +76,15 @@
76
  </div>
77
  <?php endif; ?>
78
 
 
 
 
 
 
 
 
 
 
79
  </div><!-- .right -->
80
 
81
  </div><!-- .fields -->
76
  </div>
77
  <?php endif; ?>
78
 
79
+ <?php if ( $this->post_type->name == 'page' && $this->user->canSortPages() && !$this->isSearch() ) : ?>
80
+ <div class="form-control full checkbox">
81
+ <label>
82
+ <input type="checkbox" name="nav_status" class="np_nav_status" value="hide" />
83
+ <span class="checkbox-title"><?php _e( 'Hide in Nav Menu', 'nestedpages' ); ?></span>
84
+ </label>
85
+ </div>
86
+ <?php endif; ?>
87
+
88
  </div><!-- .right -->
89
 
90
  </div><!-- .fields -->
app/Views/forms/quickedit-post.php CHANGED
@@ -16,15 +16,21 @@
16
 
17
  <div class="left">
18
 
 
19
  <div class="form-control">
20
  <label><?php _e( 'Title' ); ?></label>
21
  <input type="text" name="post_title" class="np_title" value="" />
22
  </div>
 
 
 
23
  <div class="form-control">
24
  <label><?php _e( 'Slug' ); ?></label>
25
  <input type="text" name="post_name" class="np_slug" value="" />
26
  </div>
 
27
 
 
28
  <?php if ( $this->settings->datepickerEnabled() ) : ?>
29
  <div class="form-control np-datepicker-container">
30
  <label><?php _e( 'Date' ); ?></label>
@@ -45,33 +51,36 @@
45
  <label><?php _e( 'Date' ); ?></label>
46
  <div class="dates"><?php touch_time( 1, 1, 0, 1 ); ?></div>
47
  </div>
48
- <?php endif; ?>
49
 
50
  <?php
51
  /*
52
  * Authors Dropdown
53
  */
54
- $authors_dropdown = '';
55
- if ( is_super_admin() || current_user_can( $post_type_object->cap->edit_others_posts ) ) :
56
- $users_opt = array(
57
- 'hide_if_only_one_author' => false,
58
- 'who' => 'authors',
59
- 'name' => 'post_author',
60
- 'id' => 'post_author',
61
- 'class'=> 'authors',
62
- 'multi' => 1,
63
- 'echo' => 0
64
- );
65
-
66
- if ( $authors = wp_dropdown_users( $users_opt ) ) :
67
- $authors_dropdown = '<div class="form-control np_author"><label>' . __( 'Author' ) . '</label>';
68
- $authors_dropdown .= $authors;
69
- $authors_dropdown .= '</div>';
 
 
 
70
  endif;
71
- echo $authors_dropdown;
72
  endif;
73
  ?>
74
 
 
75
  <div class="form-control">
76
  <label><?php _e( 'Status' ); ?></label>
77
  <select name="_status" class="np_status">
@@ -83,12 +92,13 @@
83
  <option value="draft"><?php _e( 'Draft' ); ?></option>
84
  </select>
85
  </div>
 
86
 
87
  </div><!-- .left -->
88
 
89
  <div class="right">
90
 
91
- <?php if ( $this->post_type->hierarchical ) : ?>
92
  <div class="form-control">
93
  <label><?php _e( 'Template' ); ?></label>
94
  <select name="page_template" class="np_template">
@@ -98,7 +108,7 @@
98
  </div>
99
  <?php endif; ?>
100
 
101
- <?php if ( $can_publish ) : ?>
102
  <div class="form-control password">
103
  <label><?php _e( 'Password' ); ?></label>
104
  <input type="text" class="post_password" name="post_password" value="" />
@@ -112,30 +122,30 @@
112
  </div>
113
  <?php endif; ?>
114
 
 
115
  <div class="comments">
116
  <label>
117
  <input type="checkbox" name="comment_status" class="np_cs" value="open" />
118
  <span class="checkbox-title"><?php _e( 'Allow Comments' ); ?></span>
119
  </label>
120
  </div>
 
121
 
122
- <?php if ( current_user_can('edit_theme_options') ) : ?>
123
  <div class="comments">
124
  <label>
125
  <input type="checkbox" name="nested_pages_status" class="np_status" value="hide" />
126
  <span class="checkbox-title"><?php _e( 'Hide in Nested Pages', 'nestedpages' ); ?></span>
127
  </label>
128
  </div>
129
- <?php endif; // Edit theme options?>
130
-
131
-
132
 
133
  <div class="form-control np-toggle-options">
134
- <?php if ( $this->user->canSortPages() && $this->post_type->name == 'page' && !$this->isSearch() ) : ?>
135
  <a href="#" class="np-btn np-btn-half np-toggle-menuoptions"><?php _e('Menu Options', 'nestedpages'); ?></a>
136
  <?php endif; ?>
137
 
138
- <?php if ( !empty($this->h_taxonomies) ) : ?>
139
  <a href="#" class="np-btn np-btn-half btn-right np-toggle-taxonomies"><?php _e('Taxonomies', 'nestedpages'); ?></a>
140
  <?php endif; ?>
141
  </div>
@@ -144,7 +154,11 @@
144
 
145
  <?php if ( !empty($this->h_taxonomies) ) : ?>
146
  <div class="np-taxonomies">
147
- <?php foreach ( $this->h_taxonomies as $taxonomy ) : ?>
 
 
 
 
148
  <div class="np-taxonomy">
149
  <span class="title"><?php echo esc_html( $taxonomy->labels->name ) ?></span>
150
  <input type="hidden" name="<?php echo ( $taxonomy->name == 'category' ) ? 'post_category[]' : 'tax_input[' . esc_attr( $taxonomy->name ) . '][]'; ?>" value="0" />
@@ -152,14 +166,24 @@
152
  <?php wp_terms_checklist( null, array( 'taxonomy' => $taxonomy->name ) ) ?>
153
  </ul>
154
  </div><!-- .np-taxonomy -->
155
- <?php endforeach; ?>
 
 
 
156
 
157
- <?php foreach ( $this->f_taxonomies as $taxonomy ) : ?>
 
 
 
 
158
  <div class="np-taxonomy">
159
  <span class="title"><?php echo esc_html( $taxonomy->labels->name ) ?></span>
160
  <textarea id="<?php echo esc_attr($taxonomy->name); ?>" cols="22" rows="1" name="tax_input[<?php echo esc_attr( $taxonomy->name )?>]" class="tax_input_<?php echo esc_attr( $taxonomy->name )?>" data-autotag data-taxonomy="<?php echo esc_attr($taxonomy->name); ?>"></textarea>
161
  </div><!-- .np-taxonomy -->
162
- <?php endforeach; ?>
 
 
 
163
  </div><!-- .taxonomies -->
164
  <?php endif; // if taxonomies ?>
165
 
16
 
17
  <div class="left">
18
 
19
+ <?php if ( !array_key_exists('title', $this->disabled_standard_fields) ) : ?>
20
  <div class="form-control">
21
  <label><?php _e( 'Title' ); ?></label>
22
  <input type="text" name="post_title" class="np_title" value="" />
23
  </div>
24
+ <?php endif; ?>
25
+
26
+ <?php if ( !array_key_exists('slug', $this->disabled_standard_fields) ) : ?>
27
  <div class="form-control">
28
  <label><?php _e( 'Slug' ); ?></label>
29
  <input type="text" name="post_name" class="np_slug" value="" />
30
  </div>
31
+ <?php endif; ?>
32
 
33
+ <?php if ( !array_key_exists('date', $this->disabled_standard_fields) ) : ?>
34
  <?php if ( $this->settings->datepickerEnabled() ) : ?>
35
  <div class="form-control np-datepicker-container">
36
  <label><?php _e( 'Date' ); ?></label>
51
  <label><?php _e( 'Date' ); ?></label>
52
  <div class="dates"><?php touch_time( 1, 1, 0, 1 ); ?></div>
53
  </div>
54
+ <?php endif; endif; ?>
55
 
56
  <?php
57
  /*
58
  * Authors Dropdown
59
  */
60
+ if ( !array_key_exists('author', $this->disabled_standard_fields) ) :
61
+ $authors_dropdown = '';
62
+ if ( is_super_admin() || current_user_can( $post_type_object->cap->edit_others_posts ) ) :
63
+ $users_opt = array(
64
+ 'hide_if_only_one_author' => false,
65
+ 'who' => 'authors',
66
+ 'name' => 'post_author',
67
+ 'id' => 'post_author',
68
+ 'class'=> 'authors',
69
+ 'multi' => 1,
70
+ 'echo' => 0
71
+ );
72
+
73
+ if ( $authors = wp_dropdown_users( $users_opt ) ) :
74
+ $authors_dropdown = '<div class="form-control np_author"><label>' . __( 'Author' ) . '</label>';
75
+ $authors_dropdown .= $authors;
76
+ $authors_dropdown .= '</div>';
77
+ endif;
78
+ echo $authors_dropdown;
79
  endif;
 
80
  endif;
81
  ?>
82
 
83
+ <?php if ( !array_key_exists('status', $this->disabled_standard_fields) ) : ?>
84
  <div class="form-control">
85
  <label><?php _e( 'Status' ); ?></label>
86
  <select name="_status" class="np_status">
92
  <option value="draft"><?php _e( 'Draft' ); ?></option>
93
  </select>
94
  </div>
95
+ <?php endif; ?>
96
 
97
  </div><!-- .left -->
98
 
99
  <div class="right">
100
 
101
+ <?php if ( $this->post_type->hierarchical && !array_key_exists('template', $this->disabled_standard_fields)) : ?>
102
  <div class="form-control">
103
  <label><?php _e( 'Template' ); ?></label>
104
  <select name="page_template" class="np_template">
108
  </div>
109
  <?php endif; ?>
110
 
111
+ <?php if ( $can_publish && !array_key_exists('password', $this->disabled_standard_fields) ) : ?>
112
  <div class="form-control password">
113
  <label><?php _e( 'Password' ); ?></label>
114
  <input type="text" class="post_password" name="post_password" value="" />
122
  </div>
123
  <?php endif; ?>
124
 
125
+ <?php if ( !array_key_exists('allow_comments', $this->disabled_standard_fields) ) : ?>
126
  <div class="comments">
127
  <label>
128
  <input type="checkbox" name="comment_status" class="np_cs" value="open" />
129
  <span class="checkbox-title"><?php _e( 'Allow Comments' ); ?></span>
130
  </label>
131
  </div>
132
+ <?php endif; ?>
133
 
134
+ <?php if ( current_user_can('edit_theme_options') && !array_key_exists('hide_in_np', $this->disabled_standard_fields) ) : ?>
135
  <div class="comments">
136
  <label>
137
  <input type="checkbox" name="nested_pages_status" class="np_status" value="hide" />
138
  <span class="checkbox-title"><?php _e( 'Hide in Nested Pages', 'nestedpages' ); ?></span>
139
  </label>
140
  </div>
141
+ <?php endif; // Edit theme options ?>
 
 
142
 
143
  <div class="form-control np-toggle-options">
144
+ <?php if ( $this->user->canSortPages() && $this->post_type->name == 'page' && !$this->isSearch() && !array_key_exists('menu_options', $this->disabled_standard_fields) ) : ?>
145
  <a href="#" class="np-btn np-btn-half np-toggle-menuoptions"><?php _e('Menu Options', 'nestedpages'); ?></a>
146
  <?php endif; ?>
147
 
148
+ <?php if ( !empty($this->h_taxonomies) && !array_key_exists('hide_taxonomies', $this->disabled_standard_fields) ) : ?>
149
  <a href="#" class="np-btn np-btn-half btn-right np-toggle-taxonomies"><?php _e('Taxonomies', 'nestedpages'); ?></a>
150
  <?php endif; ?>
151
  </div>
154
 
155
  <?php if ( !empty($this->h_taxonomies) ) : ?>
156
  <div class="np-taxonomies">
157
+ <?php
158
+ foreach ( $this->h_taxonomies as $taxonomy ) :
159
+ $disabled = $this->post_type_repo->taxonomyDisabled($taxonomy->name, $this->post_type->name);
160
+ if ( !$disabled ) :
161
+ ?>
162
  <div class="np-taxonomy">
163
  <span class="title"><?php echo esc_html( $taxonomy->labels->name ) ?></span>
164
  <input type="hidden" name="<?php echo ( $taxonomy->name == 'category' ) ? 'post_category[]' : 'tax_input[' . esc_attr( $taxonomy->name ) . '][]'; ?>" value="0" />
166
  <?php wp_terms_checklist( null, array( 'taxonomy' => $taxonomy->name ) ) ?>
167
  </ul>
168
  </div><!-- .np-taxonomy -->
169
+ <?php
170
+ endif;
171
+ endforeach;
172
+ ?>
173
 
174
+ <?php
175
+ foreach ( $this->f_taxonomies as $taxonomy ) :
176
+ $disabled = $this->post_type_repo->taxonomyDisabled($taxonomy->name, $this->post_type->name);
177
+ if ( !$disabled ) :
178
+ ?>
179
  <div class="np-taxonomy">
180
  <span class="title"><?php echo esc_html( $taxonomy->labels->name ) ?></span>
181
  <textarea id="<?php echo esc_attr($taxonomy->name); ?>" cols="22" rows="1" name="tax_input[<?php echo esc_attr( $taxonomy->name )?>]" class="tax_input_<?php echo esc_attr( $taxonomy->name )?>" data-autotag data-taxonomy="<?php echo esc_attr($taxonomy->name); ?>"></textarea>
182
  </div><!-- .np-taxonomy -->
183
+ <?php
184
+ endif;
185
+ endforeach;
186
+ ?>
187
  </div><!-- .taxonomies -->
188
  <?php endif; // if taxonomies ?>
189
 
app/Views/listing.php CHANGED
@@ -31,11 +31,25 @@
31
  <a href="#" class="np-btn nestedpages-toggleall" data-toggle="closed"><?php _e('Expand All', 'nestedpages'); ?></a>
32
  <?php endif; ?>
33
 
34
- <?php if ( $this->user->canSortPages() && $this->post_type->name == 'page' && !$this->isSearch() && !$this->settings->hideMenuSync() && !$this->isFiltered() && !$this->settings->menusDisabled() ) : ?>
35
  <div class="np-sync-menu-cont" <?php if ( $this->confirmation->getMessage() ) echo 'style="margin-top:2px;"';?>>
36
- <label>
37
- <input type="checkbox" name="np_sync_menu" class="np-sync-menu" value="sync" <?php if ( get_option('nestedpages_menusync') == 'sync' ) echo 'checked'; ?>/> <?php _e('Sync Menu', 'nestedpages'); ?>
38
- </label>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  </div>
40
  <?php endif; ?>
41
 
@@ -68,6 +82,7 @@
68
  </div><!-- .wrap -->
69
 
70
  <?php
 
71
  include( NestedPages\Helpers::view('forms/empty-trash-modal') );
72
  include( NestedPages\Helpers::view('forms/clone-form') );
73
  include( NestedPages\Helpers::view('forms/link-form') );
31
  <a href="#" class="np-btn nestedpages-toggleall" data-toggle="closed"><?php _e('Expand All', 'nestedpages'); ?></a>
32
  <?php endif; ?>
33
 
34
+ <?php if ( $this->user->canSortPages() && !$this->isSearch() && !$this->isFiltered() ) : ?>
35
  <div class="np-sync-menu-cont" <?php if ( $this->confirmation->getMessage() ) echo 'style="margin-top:2px;"';?>>
36
+
37
+ <?php if ( $this->settings->autoPageOrderDisabled() ) : ?>
38
+ <a href="#" class="np-btn" data-np-manual-order-sync><?php echo __('Sync', 'nestedpages') . ' ' . $this->post_type->labels->singular_name . ' ' . __('Order', 'nestedpages'); ?></a>
39
+ <?php endif; ?>
40
+
41
+ <?php if ( $this->post_type->name == 'page' && !$this->settings->hideMenuSync() && !$this->settings->menusDisabled() ) : ?>
42
+
43
+ <?php if ( !$this->settings->autoMenuDisabled() ) : ?>
44
+ <label>
45
+ <input type="checkbox" name="np_sync_menu" class="np-sync-menu" value="sync" <?php if ( get_option('nestedpages_menusync') == 'sync' ) echo 'checked'; ?>/> <?php _e('Sync Menu', 'nestedpages'); ?>
46
+ </label>
47
+ <?php else : ?>
48
+ <a href="#" class="np-btn" data-np-manual-menu-sync><?php _e('Sync Menu', 'nestedpages'); ?></a>
49
+ <?php endif; ?>
50
+
51
+ <?php endif; ?>
52
+
53
  </div>
54
  <?php endif; ?>
55
 
82
  </div><!-- .wrap -->
83
 
84
  <?php
85
+ include( NestedPages\Helpers::view('forms/more-options-modal') );
86
  include( NestedPages\Helpers::view('forms/empty-trash-modal') );
87
  include( NestedPages\Helpers::view('forms/clone-form') );
88
  include( NestedPages\Helpers::view('forms/link-form') );
app/Views/partials/list-header.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $page_obj = get_post_type_object('page');
3
+ ?>
4
+ <div class="nestedpages-list-header">
5
+ <div class="np-check-all">
6
+ <input type="checkbox" data-np-check-all="nestedpages_bulk[]" data-np-bulk-checkbox />
7
+ </div>
8
+ <form data-np-bulk-form style="display:none;" action="<?php echo admin_url('admin-post.php'); ?>" method="post" class="np-bulk-form">
9
+ <input type="hidden" name="action" value="npBulkActions">
10
+ <input type="hidden" name="page" value="<?php echo $this->pageURL(); ?>">
11
+ <input type="hidden" name="redirect_post_ids" value="" data-np-bulk-redirect-ids>
12
+ <input type="hidden" name="post_ids" value="" data-np-bulk-ids>
13
+ <select id="np_bulk" name="np_bulk_action" class="nestedpages-sort">
14
+ <option value="no-action"><?php _e('Bulk Actions', 'nestedpages'); ?></option>
15
+ <?php if ( current_user_can('delete_pages') ) : ?>
16
+ <option value="trash"><?php _e('Move to Trash', 'nestedpages'); ?></option>
17
+ <?php endif; ?>
18
+ </select>
19
+ <input type="submit" class="button" value="Apply">
20
+ </form>
21
+ <p class="np-hidden-select-count" data-np-hidden-count-parent><span data-np-hidden-count></span> <?php _e('Nested Items Selected', 'nestedpages'); ?>. <a href="#" class="nestedpages-toggleall"><?php _e('Expand All', 'nestedpages'); ?></a></p>
22
+ </div>
app/Views/partials/row-link.php CHANGED
@@ -21,7 +21,7 @@ $link = ( $this->post->nav_type && $this->post->nav_type !== 'custom' )
21
  <?php endif; ?>
22
 
23
  <a href="<?php echo $link; ?>" class="page-link page-title" target="_blank">
24
- <span class="title"><?php echo $this->post->title ?> <i class="np-icon-link"></i></span>
25
  <?php
26
 
27
  // Post Status
@@ -76,4 +76,35 @@ $link = ( $this->post->nav_type && $this->post->nav_type !== 'custom' )
76
 
77
  </div><!-- .action-buttons -->
78
  </div><!-- .row-inner -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  </div><!-- .row -->
21
  <?php endif; ?>
22
 
23
  <a href="<?php echo $link; ?>" class="page-link page-title" target="_blank">
24
+ <span class="title"><?php echo apply_filters('the_title', $this->post->title, $this->post->id, $view = 'nestedpages_title'); ?> <i class="np-icon-link"></i></span>
25
  <?php
26
 
27
  // Post Status
76
 
77
  </div><!-- .action-buttons -->
78
  </div><!-- .row-inner -->
79
+
80
+ <?php
81
+ // Thumbnail Displays for original post if it's a relational link, otherwise a placeholder displays
82
+ $thumbnail_source = $this->post_type_repo->thumbnails('page', 'source');
83
+ $thumbnail_size = $this->post_type_repo->thumbnails('page', 'display_size');
84
+
85
+ if ( $thumbnail_source ) :
86
+ if ( has_post_thumbnail($this->post->nav_object_id) && $this->post->nav_type != 'taxonomy' ) :
87
+ $out = '<div class="np-thumbnail ' . $thumbnail_size . '">';
88
+ $image = get_the_post_thumbnail($this->post->nav_object_id, $thumbnail_source);
89
+ $out .= apply_filters('nestedpages_thumbnail', $image, $this->post);
90
+ else :
91
+ $out = '<div class="np-thumbnail link">';
92
+ $fallback_icon = 'np-icon-link';
93
+ if ( $this->post->nav_type == 'taxonomy' ) $fallback_icon = 'np-icon-tag';
94
+ if ( $this->post->nav_object == 'post' ) $fallback_icon = 'np-icon-post';
95
+ if ( $this->post->nav_object == 'page' ) $fallback_icon = 'np-icon-page';
96
+ $image_fallback = '<i class="' . $fallback_icon . '" /></i>';
97
+ $image_fallback = apply_filters('nestedpages_thumbnail_fallback', $image_fallback, $this->post);
98
+ if ( $image_fallback ) :
99
+ $out .= $image_fallback;
100
+ endif;
101
+ endif;
102
+ $out .= '</div>';
103
+ echo $out;
104
+ endif;
105
+ ?>
106
+
107
+ <div class="np-bulk-checkbox">
108
+ <input type="checkbox" name="nestedpages_bulk[]" value="<?php echo $this->post->id; ?>" data-np-bulk-checkbox />
109
+ </div>
110
  </div><!-- .row -->
app/Views/partials/row.php CHANGED
@@ -2,13 +2,21 @@
2
  /**
3
  * Row represents a single page
4
  */
 
 
 
 
5
  ?>
6
- <div class="row<?php if ( !$this->post_type->hierarchical ) echo ' non-hierarchical'; ?>" <?php if ( $this->isSearch() ) echo 'style="padding-left:10px;"';?>>
7
 
8
- <?php if ( $this->post_type->hierarchical && !$this->isSearch() ) : ?>
9
- <div class="child-toggle"></div>
 
 
10
  <?php endif; ?>
11
 
 
 
12
  <div class="row-inner">
13
  <i class="np-icon-sub-menu"></i>
14
 
@@ -16,20 +24,15 @@
16
  <i class="handle np-icon-menu"></i>
17
  <?php endif; ?>
18
 
19
- <a href="<?php echo get_edit_post_link(); ?>" class="page-link page-title">
20
  <span class="title">
21
  <?php
22
- echo $this->post->title;
23
  if ( $this->post->id == get_option('page_on_front') ) echo ' <em class="np-page-type"><strong>&ndash; ' . __('Front Page', 'nestedpages') . '</strong></em>';
24
  if ( $this->post->id == get_option('page_for_posts') ) echo ' <em class="np-page-type"><strong>&ndash; ' . __('Posts Page', 'nestedpages') . '</strong></em>';
25
  ?>
26
  </span>
27
  <?php
28
-
29
- if ( function_exists('wpseo_auto_load') ){
30
- echo '<span class="np-seo-indicator ' . $this->post->score . '"></span>';
31
- }
32
-
33
  // Post Status
34
  echo '<span class="status">';
35
  if ( $this->post->status !== 'publish' ) echo '(' . __(ucfirst($this->post->status)) . ')';
@@ -54,17 +57,15 @@
54
  } elseif ( !$this->integrations->plugins->editorial_access_manager->hasAccess($this->post->id) ){
55
  echo '<span class="locked"><i class="np-icon-lock"></i></span>';
56
  } else {
57
- echo '<span class="edit-indicator"><i class="np-icon-pencil"></i>' . __('Edit') . '</span>';
58
  }
59
 
60
  ?>
61
  </a>
62
 
63
-
64
  <!-- Responsive Toggle Button -->
65
  <a href="#" class="np-toggle-edit"><i class="np-icon-pencil"></i></a>
66
 
67
-
68
  <?php if ( !$this->post->hierarchical ) : echo $this->post->hierarchical; ?>
69
  <div class="np-post-columns">
70
  <ul class="np-post-info">
@@ -74,6 +75,11 @@
74
  </div>
75
  <?php endif; ?>
76
 
 
 
 
 
 
77
 
78
  <div class="action-buttons">
79
 
@@ -87,9 +93,11 @@
87
  <?php else : $cs = 'closed'; endif; ?>
88
 
89
 
90
- <?php if ( current_user_can('publish_pages') && $this->post_type->hierarchical && !$this->isSearch() && !$this->settings->menusDisabled() ) : ?>
91
 
 
92
  <a href="#" class="np-btn open-redirect-modal" data-parentid="<?php echo $this->post->id; ?>"><i class="np-icon-link"></i></a>
 
93
 
94
  <a href="#" class="np-btn add-new-child" data-id="<?php echo get_the_id(); ?>" data-parentname="<?php echo $this->post->title; ?>"><?php _e('Add Child', 'nestedpages'); ?></a>
95
 
@@ -105,7 +113,7 @@
105
  data-id="<?php echo $this->post->id; ?>"
106
  data-template="<?php echo $this->post->template; ?>"
107
  data-title="<?php echo $this->post->title; ?>"
108
- data-slug="<?php echo $post->post_name; ?>"
109
  data-commentstatus="<?php echo $cs; ?>"
110
  data-status="<?php echo $this->post->status; ?>"
111
  data-np-status="<?php echo $this->post->np_status; ?>"
@@ -131,7 +139,11 @@
131
  </a>
132
  <?php endif; ?>
133
 
134
- <a href="<?php echo get_the_permalink(); ?>" class="np-btn" target="_blank"><?php _e('View'); ?></a>
 
 
 
 
135
 
136
  <?php if ( current_user_can('delete_pages') && $this->integrations->plugins->editorial_access_manager->hasAccess($this->post->id) ) : ?>
137
  <a href="<?php echo get_delete_post_link(get_the_id()); ?>" class="np-btn np-btn-trash">
@@ -141,4 +153,28 @@
141
 
142
  </div><!-- .action-buttons -->
143
  </div><!-- .row-inner -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
144
  </div><!-- .row -->
2
  /**
3
  * Row represents a single page
4
  */
5
+ $row_classes = '';
6
+ if ( !$this->post_type->hierarchical ) $row_classes .= ' non-hierarchical';
7
+ if ( !$this->user->canSortPages() ) $row_classes .= ' no-sort';
8
+ if ( $this->isSearch() ) $row_classes .= ' search';
9
  ?>
10
+ <div class="row<?php echo $row_classes; ?>">
11
 
12
+ <?php if ( $this->post_type->hierarchical ) : ?>
13
+ <div class="child-toggle">
14
+ <div class="child-toggle-spacer"></div>
15
+ </div>
16
  <?php endif; ?>
17
 
18
+ <?php if ( !$this->post_type->hierarchical ) echo '<div class="non-hierarchical-spacer"></div>'; ?>
19
+
20
  <div class="row-inner">
21
  <i class="np-icon-sub-menu"></i>
22
 
24
  <i class="handle np-icon-menu"></i>
25
  <?php endif; ?>
26
 
27
+ <a href="<?php echo apply_filters('nestedpages_edit_link', get_edit_post_link(), $this->post); ?>" class="page-link page-title">
28
  <span class="title">
29
  <?php
30
+ echo apply_filters( 'the_title', $this->post->title, $this->post->id, $view = 'nestedpages_title' );
31
  if ( $this->post->id == get_option('page_on_front') ) echo ' <em class="np-page-type"><strong>&ndash; ' . __('Front Page', 'nestedpages') . '</strong></em>';
32
  if ( $this->post->id == get_option('page_for_posts') ) echo ' <em class="np-page-type"><strong>&ndash; ' . __('Posts Page', 'nestedpages') . '</strong></em>';
33
  ?>
34
  </span>
35
  <?php
 
 
 
 
 
36
  // Post Status
37
  echo '<span class="status">';
38
  if ( $this->post->status !== 'publish' ) echo '(' . __(ucfirst($this->post->status)) . ')';
57
  } elseif ( !$this->integrations->plugins->editorial_access_manager->hasAccess($this->post->id) ){
58
  echo '<span class="locked"><i class="np-icon-lock"></i></span>';
59
  } else {
60
+ echo '<span class="edit-indicator"><i class="np-icon-pencil"></i>' . apply_filters('nestedpages_edit_link_text', __('Edit'), $this->post) . '</span>';
61
  }
62
 
63
  ?>
64
  </a>
65
 
 
66
  <!-- Responsive Toggle Button -->
67
  <a href="#" class="np-toggle-edit"><i class="np-icon-pencil"></i></a>
68
 
 
69
  <?php if ( !$this->post->hierarchical ) : echo $this->post->hierarchical; ?>
70
  <div class="np-post-columns">
71
  <ul class="np-post-info">
75
  </div>
76
  <?php endif; ?>
77
 
78
+ <?php
79
+ if ( $this->integrations->plugins->yoast->installed ){
80
+ echo '<span class="np-seo-indicator ' . $this->post->score . '"></span>';
81
+ }
82
+ ?>
83
 
84
  <div class="action-buttons">
85
 
93
  <?php else : $cs = 'closed'; endif; ?>
94
 
95
 
96
+ <?php if ( current_user_can('publish_pages') && $this->post_type->hierarchical && !$this->isSearch() ) : ?>
97
 
98
+ <?php if (!$this->settings->menusDisabled()) : ?>
99
  <a href="#" class="np-btn open-redirect-modal" data-parentid="<?php echo $this->post->id; ?>"><i class="np-icon-link"></i></a>
100
+ <?php endif; ?>
101
 
102
  <a href="#" class="np-btn add-new-child" data-id="<?php echo get_the_id(); ?>" data-parentname="<?php echo $this->post->title; ?>"><?php _e('Add Child', 'nestedpages'); ?></a>
103
 
113
  data-id="<?php echo $this->post->id; ?>"
114
  data-template="<?php echo $this->post->template; ?>"
115
  data-title="<?php echo $this->post->title; ?>"
116
+ data-slug="<?php echo urldecode($post->post_name); ?>"
117
  data-commentstatus="<?php echo $cs; ?>"
118
  data-status="<?php echo $this->post->status; ?>"
119
  data-np-status="<?php echo $this->post->np_status; ?>"
139
  </a>
140
  <?php endif; ?>
141
 
142
+ <a href="<?php echo apply_filters('nestedpages_view_link', get_the_permalink(), $this->post); ?>" class="np-btn np-view-button" target="_blank">
143
+ <?php echo apply_filters('nestedpages_view_link_text', __('View'), $this->post); ?>
144
+ </a>
145
+
146
+ <!-- <a href="#" class="np-btn"><i class="np-icon-more_vert"></i></a> -->
147
 
148
  <?php if ( current_user_can('delete_pages') && $this->integrations->plugins->editorial_access_manager->hasAccess($this->post->id) ) : ?>
149
  <a href="<?php echo get_delete_post_link(get_the_id()); ?>" class="np-btn np-btn-trash">
153
 
154
  </div><!-- .action-buttons -->
155
  </div><!-- .row-inner -->
156
+
157
+ <?php
158
+ // Thumbnail
159
+ $thumbnail_source = $this->post_type_repo->thumbnails($this->post_type->name, 'source');
160
+ $thumbnail_size = $this->post_type_repo->thumbnails($this->post_type->name, 'display_size');
161
+ if ( $thumbnail_source ) :
162
+ $out = '<div class="np-thumbnail ' . $thumbnail_size . '">';
163
+ if ( has_post_thumbnail($this->post->id) ) :
164
+ $image = get_the_post_thumbnail($this->post->id, $thumbnail_source);
165
+ $out .= apply_filters('nestedpages_thumbnail', $image, $this->post);
166
+ else :
167
+ $image_fallback = apply_filters('nestedpages_thumbnail_fallback', false, $this->post);
168
+ if ( $image_fallback ) :
169
+ $out .= apply_filters('nestedpages_thumbnail_fallback', $image_fallback, $this->post);
170
+ endif;
171
+ endif;
172
+ $out .= '</div>';
173
+ echo $out;
174
+ endif;
175
+ ?>
176
+
177
+ <div class="np-bulk-checkbox">
178
+ <input type="checkbox" name="nestedpages_bulk[]" value="<?php echo $this->post->id; ?>" data-np-bulk-checkbox />
179
+ </div>
180
  </div><!-- .row -->
app/Views/partials/tool-list.php CHANGED
@@ -11,24 +11,29 @@
11
  </li>
12
 
13
  <li>
14
- <a href="#draft" class="np-toggle-publish"><?php _e('Draft'); ?></a> |
15
  </li>
16
 
17
- <li>
18
- <a href="#show" class="np-toggle-hidden"><?php _e('Show Hidden', 'nestedpages'); ?> </a>
19
- <span class="count">(<?php echo $this->post_repo->getHiddenCount(array($this->post_type->name)); ?>)</span> |
 
 
 
 
20
  </li>
21
 
22
  <?php if ( current_user_can('delete_pages') && $trashedCount > 0) : ?>
23
  <li class="np-trash-links">
 
24
  <a href="<?php echo $this->post_type_repo->trashLink($this->post_type->name); ?>"><?php _e('Trash'); ?> </a>
25
  <span class="count">(<a href="#" class="np-empty-trash" data-posttype="<?php echo $this->post_type->name; ?>"><?php _e('Empty', 'nestedpages'); ?></a> <?php echo $trashedCount; ?>)</span>
26
- |
27
  </li>
28
  <?php endif; ?>
29
 
30
- <?php if ( !$this->post_type_repo->hideDefault($this->post_type->name) ) : ?>
31
  <li>
 
32
  <a href="<?php echo NestedPages\Helpers::defaultPagesLink($this->post_type->name); ?>">
33
  <?php _e('Default'); ?> <?php _e($this->post_type->labels->name); ?>
34
  </a>
@@ -99,7 +104,7 @@
99
 
100
 
101
  <?php if ( $this->post_type->name == 'page' && $this->post_type_repo->categoriesEnabled($this->post_type->name) ) : ?>
102
- <div class="np-tools-primary">
103
  <form action="<?php echo admin_url('admin-post.php'); ?>" method="post" class="np-tools-sort">
104
  <input type="hidden" name="action" value="npCategoryFilter">
105
  <input type="hidden" name="page" value="<?php echo $this->pageURL(); ?>">
@@ -122,10 +127,9 @@
122
  <input type="submit" id="nestedpages-sort" class="button" value="Apply">
123
  </div>
124
  </form>
125
- </div>
126
  <?php endif; ?>
127
 
128
-
129
  <div class="np-tools-search">
130
  <form action="<?php echo admin_url('admin-post.php'); ?>" method="post">
131
  <input type="hidden" name="action" value="npSearch">
11
  </li>
12
 
13
  <li>
14
+ <a href="#draft" class="np-toggle-publish"><?php _e('Draft'); ?></a>
15
  </li>
16
 
17
+ <li> |
18
+ <?php if ( !$this->isSearch() ) : ?>
19
+ <a href="#hide" class="np-toggle-hidden"><?php _e('Show Hidden', 'nestedpages'); ?> </a>
20
+ <?php else : ?>
21
+ <a href="#show" class="np-toggle-hidden"><?php _e('Hide Hidden', 'nestedpages'); ?> </a>
22
+ <?php endif; ?>
23
+ <span class="count">(<?php echo $this->post_repo->getHiddenCount(array($this->post_type->name)); ?>)</span>
24
  </li>
25
 
26
  <?php if ( current_user_can('delete_pages') && $trashedCount > 0) : ?>
27
  <li class="np-trash-links">
28
+ |
29
  <a href="<?php echo $this->post_type_repo->trashLink($this->post_type->name); ?>"><?php _e('Trash'); ?> </a>
30
  <span class="count">(<a href="#" class="np-empty-trash" data-posttype="<?php echo $this->post_type->name; ?>"><?php _e('Empty', 'nestedpages'); ?></a> <?php echo $trashedCount; ?>)</span>
 
31
  </li>
32
  <?php endif; ?>
33
 
34
+ <?php if ( !$this->post_type_repo->postTypeSetting($this->post_type->name, 'hide_default') ) : ?>
35
  <li>
36
+ |
37
  <a href="<?php echo NestedPages\Helpers::defaultPagesLink($this->post_type->name); ?>">
38
  <?php _e('Default'); ?> <?php _e($this->post_type->labels->name); ?>
39
  </a>
104
 
105
 
106
  <?php if ( $this->post_type->name == 'page' && $this->post_type_repo->categoriesEnabled($this->post_type->name) ) : ?>
107
+ <div class="np-tools-primary">
108
  <form action="<?php echo admin_url('admin-post.php'); ?>" method="post" class="np-tools-sort">
109
  <input type="hidden" name="action" value="npCategoryFilter">
110
  <input type="hidden" name="page" value="<?php echo $this->pageURL(); ?>">
127
  <input type="submit" id="nestedpages-sort" class="button" value="Apply">
128
  </div>
129
  </form>
130
+ </div><!-- .np-tools-primary -->
131
  <?php endif; ?>
132
 
 
133
  <div class="np-tools-search">
134
  <form action="<?php echo admin_url('admin-post.php'); ?>" method="post">
135
  <input type="hidden" name="action" value="npSearch">
app/Views/settings/settings-general.php CHANGED
@@ -4,6 +4,7 @@ if ( $allowsorting == "" ) $allowsorting = array();
4
  $sync_status = ( $this->settings->menuSyncEnabled() ) ? __('Currently Enabled', 'nestedpages') : __('Currently Disabled', 'nestedpages');
5
  settings_fields( 'nestedpages-general' );
6
  ?>
 
7
  <tr valign="top">
8
  <th scope="row"><?php _e('Nested Pages Version', 'nestedpages'); ?></th>
9
  <td><strong><?php echo get_option('nestedpages_version'); ?></strong></td>
@@ -29,18 +30,28 @@ settings_fields( 'nestedpages-general' );
29
  <tr valign="top">
30
  <th scope="row"><?php _e('Menu Sync', 'nestedpages'); ?></th>
31
  <td>
32
- <?php if ( !$this->settings->menusDisabled() ) : ?>
33
- <p>
34
  <label>
35
  <input type="checkbox" name="nestedpages_ui[hide_menu_sync]" value="true" <?php if ( $this->settings->hideMenuSync() ) echo 'checked'; ?> />
36
  <?php _e('Hide Menu Sync Checkbox', 'nestedpages'); ?> (<?php echo $sync_status; ?>)
37
  </label>
38
  </p>
39
- <?php endif; ?>
 
 
 
 
 
40
  <p>
41
  <label>
42
- <input type="checkbox" name="nestedpages_disable_menu" value="true" <?php if ( $this->settings->menusDisabled() ) echo 'checked'; ?> />
43
- <?php _e('Disable Menu Sync Completely', 'nestedpages'); ?>
 
 
 
 
 
 
44
  </label>
45
  </p>
46
  </td>
@@ -58,4 +69,5 @@ settings_fields( 'nestedpages-general' );
58
  <input type="hidden" name="nestedpages_menusync" value="<?php echo get_option('nestedpages_menusync'); ?>">
59
  <p><em><?php _e('Admins always have sorting ability.', 'nestedpages'); ?></em></p>
60
  </td>
61
- </tr>
 
4
  $sync_status = ( $this->settings->menuSyncEnabled() ) ? __('Currently Enabled', 'nestedpages') : __('Currently Disabled', 'nestedpages');
5
  settings_fields( 'nestedpages-general' );
6
  ?>
7
+ <table class="form-table">
8
  <tr valign="top">
9
  <th scope="row"><?php _e('Nested Pages Version', 'nestedpages'); ?></th>
10
  <td><strong><?php echo get_option('nestedpages_version'); ?></strong></td>
30
  <tr valign="top">
31
  <th scope="row"><?php _e('Menu Sync', 'nestedpages'); ?></th>
32
  <td>
33
+ <p data-menu-enabled-option data-menu-hide-checkbox>
 
34
  <label>
35
  <input type="checkbox" name="nestedpages_ui[hide_menu_sync]" value="true" <?php if ( $this->settings->hideMenuSync() ) echo 'checked'; ?> />
36
  <?php _e('Hide Menu Sync Checkbox', 'nestedpages'); ?> (<?php echo $sync_status; ?>)
37
  </label>
38
  </p>
39
+ <p data-menu-enabled-option data-menu-disable-auto>
40
+ <label>
41
+ <input type="checkbox" name="nestedpages_ui[manual_menu_sync]" value="true" <?php if ( $this->settings->autoMenuDisabled() ) echo 'checked'; ?> data-menu-disable-auto-checkbox />
42
+ <?php _e('Manually sync menu.', 'nestedpages'); ?>
43
+ </label>
44
+ </p>
45
  <p>
46
  <label>
47
+ <input type="checkbox" name="nestedpages_ui[manual_page_order_sync]" value="true" <?php if ( $this->settings->autoPageOrderDisabled() ) echo 'checked'; ?> />
48
+ <?php _e('Manually sync page order.', 'nestedpages'); ?>
49
+ </label>
50
+ </p>
51
+ <p>
52
+ <label>
53
+ <input type="checkbox" name="nestedpages_disable_menu" value="true" <?php if ( $this->settings->menusDisabled() ) echo 'checked'; ?> data-disable-menu-checkbox />
54
+ <?php _e('Disable menu sync completely', 'nestedpages'); ?>
55
  </label>
56
  </p>
57
  </td>
69
  <input type="hidden" name="nestedpages_menusync" value="<?php echo get_option('nestedpages_menusync'); ?>">
70
  <p><em><?php _e('Admins always have sorting ability.', 'nestedpages'); ?></em></p>
71
  </td>
72
+ </tr>
73
+ </table>
app/Views/settings/settings-posttypes.php CHANGED
@@ -1,60 +1,199 @@
1
  <?php
2
  $types = $this->getPostTypes();
 
3
  settings_fields( 'nestedpages-posttypes' );
4
  ?>
5
- <tr valign="top">
6
- <td colspan="2" style="padding:0px;">
7
- <h3 style="margin-bottom:10px;"><?php _e('Enable Nested Pages for:', 'nestedpages'); ?></h3>
8
- </td>
9
- </tr>
10
- <tr valign="top">
11
- <td colspan="2" style="padding:0;">
12
- <table width="100%" class="nestedpages-settings-table">
13
- <thead>
14
- <th><?php _e('Post Type', 'nestedpages'); ?></th>
15
- <th><?php _e('Hierarchical', 'nestedpages'); ?></th>
16
- <th><?php _e('Enabled', 'nestedpages'); ?></th>
17
- <th><?php _e('Replace Default Menu', 'nestedpages'); ?>*</th>
18
- <th><?php _e('Hide Default Link', 'nestedpages'); ?>*</th>
19
- <th><?php _e('Disable Nesting', 'nestedpages'); ?>**</th>
20
- </thead>
21
- <?php foreach ($types as $type) : ?>
22
- <tr>
23
- <td><?php echo $type->label; ?></td>
24
- <td>
25
- <?php if ( $type->hierarchical ) : ?>
26
- <i class="np-icon-yes"></i>
27
- <?php endif; ?>
28
- </td>
29
- <td>
30
- <input type="checkbox" name="nestedpages_posttypes[<?php echo $type->name; ?>]" value="<?php echo $type->name; ?>" <?php if ( $type->np_enabled ) echo 'checked'; ?> />
31
- </td>
32
- <td>
33
- <input type="checkbox" name="nestedpages_posttypes[<?php echo $type->name; ?>][replace_menu]" value="true" <?php if ( $type->replace_menu ) echo 'checked'; ?> />
34
- </td>
35
- <td>
36
- <input type="checkbox" name="nestedpages_posttypes[<?php echo $type->name; ?>][hide_default]" value="true" <?php if ( $type->hide_default ) echo 'checked'; ?> />
37
- </td>
38
- <td>
39
- <?php if ( $type->hierarchical ) : ?>
40
- <input type="checkbox" name="nestedpages_posttypes[<?php echo $type->name; ?>][disable_nesting]" value="true" <?php if ( $type->disable_nesting ) echo 'checked '; ?>/>
41
- <?php endif; ?>
42
- </td>
43
- </tr>
44
- <?php endforeach; ?>
45
- </table>
46
- </td>
47
- </tr>
48
- <tr valign="top">
49
- <td colspan="2" style="padding:10px 0px;">
50
- <p style="font-style:oblique;font-size:13px;margin-bottom:15px;">
51
- <?php _e('Note: Nesting features not enabled for non-hierarchical post types.', 'nestedpages'); ?>
52
- </p>
53
- <p style="font-size:12px;margin-bottom:15px;">
54
- *<?php _e('If default menu is not replaced, an additional submenu item will be added for "Nested/Sort View"', 'nestedpages'); ?>
55
- </p>
56
- <p style="font-size:12px;">
57
- **<?php _e('<strong>Important:</strong> Changing page structures on live sites may effect SEO and existing inbound links. Limit URL structure changes on live sites by disabling nesting. Sorting within the current nesting structure will still be available. If nesting changes are made to a live site, it may help to add a 301 redirect from the old location to the new one.', 'nestedpages'); ?>
58
- </p>
59
- </td>
60
- </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <?php
2
  $types = $this->getPostTypes();
3
+ $thumbnail_sizes = get_intermediate_image_sizes();
4
  settings_fields( 'nestedpages-posttypes' );
5
  ?>
6
+
7
+ <h3><?php _e('Enable Nested Pages for:', 'nestedpages'); ?></h3>
8
+
9
+ <div class="nestedpages-settings-posttypes">
10
+ <?php foreach ($types as $type) : ?>
11
+ <div class="post-type">
12
+ <div class="head">
13
+ <div class="checkbox">
14
+ <input type="checkbox" name="nestedpages_posttypes[<?php echo $type->name; ?>]" value="<?php echo $type->name; ?>" <?php if ( $type->np_enabled ) echo 'checked'; ?> data-nestedpages-pt-checkbox id="post-type-<?php echo $type->name; ?>" />
15
+ </div>
16
+ <label for="post-type-<?php echo $type->name; ?>">
17
+ <?php
18
+ echo $type->label;
19
+ if ( $type->hierarchical ) echo ' <em>(' . __('Hierarchical', 'nestedpages') . ')</em>';
20
+ ?>
21
+ </label>
22
+ <a href="#" class="button" data-toggle-nestedpages-pt-settings><?php _e('Settings', 'nestedpages'); ?></a>
23
+ </div><!-- .head -->
24
+ <div class="body">
25
+ <ul class="post-type-settings">
26
+ <li>
27
+ <div class="row">
28
+ <div class="description">
29
+ <p><strong><?php _e('Replace Default Menu', 'nestedpages'); ?>*</strong><br />
30
+ <?php _e('Replace the default top-level item with the nested view link.', 'nestedpages'); ?></p>
31
+ </div>
32
+ <div class="field">
33
+ <label><input type="checkbox" name="nestedpages_posttypes[<?php echo $type->name; ?>][replace_menu]" value="true" <?php if ( $type->replace_menu ) echo 'checked'; ?> /><?php echo __('Replace Default') . ' ' . $type->label . ' ' . __('Menu', 'nestedpages'); ?></label>
34
+ </div><!-- .field -->
35
+ </div><!-- .row -->
36
+ </li>
37
+ <li>
38
+ <div class="row">
39
+ <div class="description">
40
+ <p><strong><?php _e('Remove Default Link', 'nestedpages'); ?></strong><br />
41
+ <?php _e('If the default menu is replaced, a link to the default view will be added. Select this to remove the link', 'nestedpages'); ?>
42
+ </div>
43
+ <div class="field">
44
+ <label><input type="checkbox" name="nestedpages_posttypes[<?php echo $type->name; ?>][hide_default]" value="true" <?php if ( $type->hide_default ) echo 'checked'; ?> /><?php echo __('Hide Default', 'nestedpages') . ' ' . $type->label . ' ' . __('Link', 'nestedpages'); ?></label>
45
+ </div>
46
+ </div><!-- .row -->
47
+ </li>
48
+ <?php if ( $type->hierarchical ) : ?>
49
+ <li>
50
+ <div class="row">
51
+ <div class="description">
52
+ <p><strong><?php _e('Disable Nesting', 'nestedpages'); ?>**</strong><br>
53
+ <?php _e('To disable nesting on hierarchical post types, select this option.', 'nestedpages'); ?></p>
54
+ </div>
55
+ <div class="field">
56
+ <label><input type="checkbox" name="nestedpages_posttypes[<?php echo $type->name; ?>][disable_nesting]" value="true" <?php if ( $type->disable_nesting ) echo 'checked '; ?>/><?php echo __('Disable Nesting for', 'nestedpages') . ' ' . $type->label; ?></label>
57
+ </div>
58
+ </div><!-- .row -->
59
+ </li>
60
+ <?php endif; ?>
61
+ <li>
62
+ <?php
63
+ $thumbnails_enabled = $this->post_type_repo->thumbnails($type->name, 'enabled');
64
+ $thumbnail_source = $this->post_type_repo->thumbnails($type->name, 'source');
65
+ $thumbnail_size = $this->post_type_repo->thumbnails($type->name, 'display_size');
66
+ ?>
67
+ <div class="row">
68
+ <div class="description">
69
+ <p><strong><?php _e('Display Thumbnails', 'nestedpages'); ?></strong><br>
70
+ <?php _e('Display the thumbnail in the list sort view.', 'nestedpages'); ?><br><br>
71
+ <?php _e('Note: Thumbnail width is displayed at a maximum of 80px in the nested pages view. The image is scaled proportionally.', 'nestedpages'); ?></p>
72
+ </div>
73
+ <div class="field">
74
+ <label><input type="checkbox" name="nestedpages_posttypes[<?php echo $type->name; ?>][thumbnails][display]" value="true" <?php if ( $thumbnails_enabled ) echo 'checked'; ?> data-enable-thumbnails /><?php echo __('Display Thumbnails for', 'nestedpages') . ' ' . $type->label; ?></label>
75
+
76
+ <div class="thumbnail-options" data-thumbnail-options <?php if ( !$thumbnails_enabled ) echo 'style="display:none;"'; ?>>
77
+ <label><?php _e('Thumbnail Source', 'nestedpages'); ?></label>
78
+ <select name="nestedpages_posttypes[<?php echo $type->name; ?>][thumbnails][size]">
79
+ <?php
80
+ foreach ( $thumbnail_sizes as $size ){
81
+ echo '<option value="' . $size . '"';
82
+ if ( $size == $thumbnail_source ) echo ' selected';
83
+ echo '>' . $size . '</option>';
84
+ }
85
+ ?>
86
+ </select>
87
+
88
+ <label><?php _e('Thumbnail Display Size', 'nestedpages'); ?></label>
89
+ <select name="nestedpages_posttypes[<?php echo $type->name; ?>][thumbnails][display_size]">
90
+ <option value="small" <?php if ( $thumbnail_size == 'small' ) echo ' selected';?>><?php _e('Small', 'nestedpages'); ?>(50px)</option>
91
+ <option value="medium" <?php if ( $thumbnail_size == 'medium' ) echo ' selected';?>><?php _e('Medium', 'nestedpages'); ?>(80px)</option>
92
+ <option value="large" <?php if ( $thumbnail_size == 'large' ) echo ' selected';?>><?php _e('Large', 'nestedpages'); ?>(150px)</option>
93
+ </select>
94
+ </div><!-- .thumbnail-options -->
95
+ </div>
96
+ </div><!-- .row -->
97
+ </li>
98
+ <li>
99
+ <div class="row">
100
+ <div class="description">
101
+ <p><strong><?php _e('Configure Standard Fields', 'nestedpages'); ?></strong><br>
102
+ <?php _e('Remove standard fields from the quick edit form.', 'nestedpages'); ?></p>
103
+ </div>
104
+ <div class="field">
105
+ <label><input type="checkbox" data-toggle-nestedpages-sf-settings name="nestedpages_posttypes[<?php echo $type->name; ?>][standard_fields_enabled]" value="true" <?php if ( $type->standard_fields_enabled ) echo 'checked '; ?>/><?php _e('Configure Standard Fields', 'nestedpages'); ?></label>
106
+
107
+ <div class="standard-fields">
108
+ <h5><?php _e('Check to remove from Quick Edit.', 'nestedpages'); ?></h5>
109
+ <div class="custom-field-group">
110
+ <ul>
111
+ <?php
112
+ $out = "";
113
+ foreach ( $this->settings->standardFields($type->name) as $name => $label ) :
114
+ if ( $name != 'taxonomies' ) :
115
+ $out .= '<li>';
116
+ $out .= '<label>';
117
+ $out .= '<input type="checkbox" name="nestedpages_posttypes[' . $type->name . '][standard_fields][standard][' . $name . ']" value="true"';
118
+ if ( $name == 'hide_taxonomies' ) $out .= ' data-hide-taxonomies';
119
+ if ( $this->post_type_repo->fieldEnabled($type->name, 'standard', $name, 'standard_fields') ) $out .= ' checked';
120
+ $out .= ' />' . $label;
121
+ $out .= '</label>';
122
+ $out .= '</li>';
123
+ else : // Taxonomies
124
+ foreach ( $label as $tax_name => $tax_label ) :
125
+ $disabled = $this->post_type_repo->taxonomyDisabled($tax_name, $type->name);
126
+ $out .= '<li data-taxonomy-single style="margin-left:20px;';
127
+ if ( $this->post_type_repo->fieldEnabled($type->name, 'standard', 'hide_taxonomies', 'standard_fields') ) $out .= 'display:none;';
128
+ $out .= '">';
129
+ $out .= '<label>';
130
+ $out .= '<input type="checkbox" name="nestedpages_posttypes[' . $type->name . '][standard_fields][standard][taxonomies][' . $tax_name . ']" value="true"';
131
+ if ( $disabled ) $out .= ' checked';
132
+ $out .= ' />' . $tax_label;
133
+ $out .= '</label>';
134
+ $out .= '</li>';
135
+ endforeach;
136
+ endif;
137
+ endforeach;
138
+ echo $out;
139
+ ?>
140
+ </ul>
141
+ </div><!-- .custom-field-group -->
142
+ </div><!-- .standard-fields -->
143
+ </div><!-- .field -->
144
+ </div><!-- .row -->
145
+ </li>
146
+ <?php if ( $this->integrations->plugins->acf->installed ) : ?>
147
+ <li>
148
+ <div class="row">
149
+ <div class="description">
150
+ <p><strong><?php _e('Configure Custom Fields', 'nestedpages'); ?></strong><br>
151
+ <?php _e('Set which custom fields display in the quick edit form.', 'nestedpages'); ?></p>
152
+ </div>
153
+ <div class="field">
154
+ <label><input type="checkbox" data-toggle-nestedpages-cf-settings name="nestedpages_posttypes[<?php echo $type->name; ?>][custom_fields_enabled]" value="true" <?php if ( $type->custom_fields_enabled ) echo 'checked'; ?> /><?php _e('Configure Custom Fields', 'nestedpages'); ?></label>
155
+
156
+ <div class="custom-fields">
157
+ <h5><?php _e('Check to Include in Quick Edit.', 'nestedpages'); ?></h5>
158
+ <?php
159
+ // Advanced Custom Fields
160
+ $acf_fields = $this->integrations->plugins->acf->getFieldsForPostType($type->name);
161
+ if ( $acf_fields ) :
162
+ $out = '<div class="custom-field-group">';
163
+ $out .= '<p>' . __('Advanced Custom Fields', 'nestedpages') . '</p>';
164
+ $out .= '<ul class="indented">';
165
+ foreach ($acf_fields as $field){
166
+ $out .= '<li>';
167
+ $out .= '<label>';
168
+ $out .= '<input type="checkbox" name="nestedpages_posttypes[' . $type->name . '][custom_fields][acf][' . $field['key'] . ']" value="' . $field['type'] . '"';
169
+ if ( $this->post_type_repo->fieldEnabled($type->name, 'acf', $field['key']) ) $out .= ' checked';
170
+ $out .= '/>' . $field['label'] . ' (' . $field['type'] . ')';
171
+ $out .= '</label>';
172
+ $out .= '</li>';
173
+ }
174
+ $out .= '</ul>';
175
+ $out .= '</div><!-- .custom-field-group -->';
176
+ echo $out;
177
+ else :
178
+ echo __('No ACF Fields configured for this post type', 'nestedpages');
179
+ endif;
180
+ ?>
181
+ </div><!-- .custom-fields -->
182
+ </div><!-- .field -->
183
+ </div><!-- .row -->
184
+ </li>
185
+ <?php endif; ?>
186
+ </ul>
187
+ </div><!-- .body -->
188
+ </div><!-- .post-type -->
189
+ <?php endforeach; ?>
190
+ </div><!-- .nestedpages-settings-posttypes -->
191
+
192
+ <div class="nestedpages-settings-disclaimers">
193
+ <p style="font-size:12px;margin-bottom:15px;">
194
+ *<?php _e('If default menu is not replaced, an additional submenu item will be added for "Nested/Sort View"', 'nestedpages'); ?>
195
+ </p>
196
+ <p style="font-size:12px;">
197
+ **<?php _e('<strong>Important:</strong> Changing page structures on live sites may effect SEO and existing inbound links. Limit URL structure changes on live sites by disabling nesting. Sorting within the current nesting structure will still be available. If nesting changes are made to a live site, it may help to add a 301 redirect from the old location to the new one.', 'nestedpages'); ?>
198
+ </p>
199
+ </div>
app/Views/settings/settings.php CHANGED
@@ -13,9 +13,7 @@
13
  </h2>
14
 
15
  <form method="post" enctype="multipart/form-data" action="options.php">
16
- <table class="form-table">
17
- <?php include(NestedPages\Helpers::view('settings/settings-' . $tab)); ?>
18
- </table>
19
  <?php submit_button(); ?>
20
  </form>
21
  </div><!-- .wrap -->
13
  </h2>
14
 
15
  <form method="post" enctype="multipart/form-data" action="options.php">
16
+ <?php include(NestedPages\Helpers::view('settings/settings-' . $tab)); ?>
 
 
17
  <?php submit_button(); ?>
18
  </form>
19
  </div><!-- .wrap -->
assets/banner-772x250.png ADDED
Binary file
assets/css/fonts/nestedpages.eot CHANGED
Binary file
assets/css/fonts/nestedpages.svg CHANGED
@@ -6,25 +6,25 @@
6
  <font id="nestedpages" horiz-adv-x="512">
7
  <font-face units-per-em="512" ascent="480" descent="-32" />
8
  <missing-glyph horiz-adv-x="512" />
9
- <glyph unicode="&#x20;" d="" horiz-adv-x="256" />
10
- <glyph unicode="&#xe600;" d="M102.4 198.4h230.4v76.8l128-102.4-128-102.4v76.8h-281.6v230.4h51.2v-179.2z" />
11
- <glyph unicode="&#xe601;" d="M398.080 129.28l-56.064-52.736-87.552 93.44-93.184-87.808-52.736 55.808 93.184 87.808-87.552 93.184 55.808 52.736 87.808-93.184 93.184 87.552 52.48-55.808-93.184-87.808z" />
12
- <glyph unicode="&#xe602;" d="M368.384 339.2l34.304-24.064-137.472-190.72h-34.304l-77.312 102.656 34.304 32 60.16-47.872z" />
13
- <glyph unicode="&#xe603;" d="M435.2 300.8v51.2h-358.4v-51.2h358.4zM435.2 198.4v51.2h-358.4v-51.2h358.4zM435.2 96v51.2h-358.4v-51.2h358.4z" />
14
- <glyph unicode="&#xe604;" d="M384 275.2l-103.168-153.6-101.632 153.6h204.8z" />
15
- <glyph unicode="&#xe605;" d="M204.8 326.4l153.6-103.168-153.6-101.632v204.8z" />
16
- <glyph unicode="&#xe606;" d="M32 384h448v-96h-448zM32 256h448v-96h-448zM32 128h448v-96h-448z" />
17
- <glyph unicode="&#xe607;" d="M256 448c141.385 0 256-93.125 256-208s-114.615-208-256-208c-13.578 0-26.905 0.867-39.912 2.522-54.989-54.989-120.625-64.85-184.088-66.298v13.458c34.268 16.789 64 47.37 64 82.318 0 4.877-0.379 9.665-1.082 14.348-57.898 38.132-94.918 96.377-94.918 161.652 0 114.875 114.615 208 256 208z" />
18
- <glyph unicode="&#xe608;" d="M432 480c44.182 0 80-35.817 80-80 0-18.010-5.955-34.629-16-48l-32-32-112 112 32 32c13.371 10.045 29.989 16 48 16zM32 112l-32-144 144 32 296 296-112 112-296-296zM357.789 298.211l-224-224-27.578 27.578 224 224 27.578-27.578z" />
19
- <glyph unicode="&#xe609;" d="M296 256h-8v96c0 52.935-43.065 96-96 96h-64c-52.935 0-96-43.065-96-96v-96h-8c-13.2 0-24-10.8-24-24v-240c0-13.2 10.8-24 24-24h272c13.2 0 24 10.8 24 24v240c0 13.2-10.8 24-24 24zM192 32h-64l13.92 69.6c-8.404 5.766-13.92 15.437-13.92 26.4 0 17.673 14.327 32 32 32s32-14.327 32-32c0-10.963-5.516-20.634-13.92-26.4l13.92-69.6zM224 256h-128v96c0 17.645 14.355 32 32 32h64c17.645 0 32-14.355 32-32v-96z" />
20
- <glyph unicode="&#xe60a;" d="M400 416h-288c-26.51 0-48-21.49-48-48v-16h384v16c0 26.51-21.49 48-48 48zM316.16 448l7.058-50.5h-134.436l7.057 50.5h120.321zM320 480h-128c-13.2 0-25.495-10.696-27.321-23.769l-9.357-66.962c-1.827-13.073 7.478-23.769 20.678-23.769h160c13.2 0 22.505 10.696 20.679 23.769l-9.357 66.962c-1.827 13.073-14.122 23.769-27.322 23.769v0zM408 320h-304c-17.6 0-30.696-14.341-29.103-31.869l26.206-288.263c1.593-17.527 17.297-31.868 34.897-31.868h240c17.6 0 33.304 14.341 34.897 31.868l26.205 288.263c1.594 17.528-11.502 31.869-29.102 31.869zM192 32h-48l-16 224h64v-224zM288 32h-64v224h64v-224zM368 32h-48v224h64l-16-224z" />
21
- <glyph unicode="&#xe60b;" d="M256 384c-111.659 0-208.441-65.021-256-160 47.559-94.979 144.341-160 256-160 111.657 0 208.439 65.021 256 160-47.558 94.979-144.343 160-256 160zM382.225 299.148c30.081-19.187 55.571-44.887 74.717-75.148-19.146-30.261-44.637-55.961-74.718-75.149-37.797-24.108-81.445-36.851-126.224-36.851-44.78 0-88.428 12.743-126.225 36.852-30.080 19.186-55.57 44.886-74.717 75.148 19.146 30.262 44.637 55.962 74.717 75.148 1.959 1.25 3.938 2.461 5.929 3.65-4.979-13.664-7.704-28.411-7.704-43.798 0-70.692 57.308-128 128-128s128 57.308 128 128c0 15.387-2.725 30.134-7.704 43.799 1.99-1.189 3.969-2.401 5.929-3.651zM256 275c0-26.51-21.49-48-48-48s-48 21.49-48 48 21.49 48 48 48 48-21.49 48-48z" />
22
- <glyph unicode="&#xe60c;" d="M419.661 331.792c38.822-27.515 70.685-64.546 92.339-107.792-47.561-94.979-144.343-160-256-160-31.283 0-61.396 5.106-89.589 14.542l38.978 38.978c16.529-3.65 33.486-5.52 50.611-5.52 44.779 0 88.427 12.743 126.223 36.852 30.081 19.188 55.572 44.888 74.718 75.149-18.526 29.283-43.007 54.275-71.825 73.247l34.545 34.544zM256 131c-11.362 0-22.376 1.488-32.864 4.267l156.593 156.592c2.781-10.486 4.271-21.497 4.271-32.859 0-70.692-57.308-128-128-128zM480 480h-26.869l-109.806-109.806c-27.538 8.962-56.877 13.806-87.325 13.806-111.659 0-208.441-65.021-256-160 21.329-42.596 52.564-79.154 90.597-106.534l-90.597-90.597v-26.869h26.869l453.131 453.131v26.869zM208 323c24.022 0 43.923-17.647 47.446-40.685l-54.762-54.762c-23.037 3.524-40.684 23.425-40.684 47.447 0 26.51 21.49 48 48 48zM55.058 224c19.146 30.262 44.637 55.962 74.717 75.148 1.959 1.25 3.938 2.461 5.929 3.65-4.979-13.664-7.704-28.411-7.704-43.798 0-29.262 9.825-56.224 26.349-77.781l-29.275-29.275c-28.036 18.821-51.877 43.386-70.016 72.056z" />
23
- <glyph unicode="&#xe60d;" d="M192 448h320v-64h-320v64zM192 256h320v-64h-320v64zM192 64h320v-64h-320v64zM0 416c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM0 224c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM0 32c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64z" />
24
- <glyph unicode="&#xe60e;" d="M426.671 480h-341.328c-46.937 0-85.343-38.405-85.343-85.345v-341.311c0-46.969 38.406-85.344 85.343-85.344h341.328c46.938 0 85.329 38.375 85.329 85.345v341.31c0 46.94-38.391 85.345-85.329 85.345zM426.671 416c3.994 0 7.773-1.167 11.010-3.171l-181.681-150.202-181.677 150.2c3.239 2.005 7.022 3.173 11.020 3.173h341.328zM85.343 32c-0.962 0-1.91 0.073-2.842 0.204l112.813 156.483-14.628 14.627-116.686-116.685v305.569l192-232.198 192 232.197v-305.568l-116.686 116.685-14.627-14.627 112.814-156.484c-0.929-0.13-1.873-0.203-2.831-0.203h-341.327z" />
25
- <glyph unicode="&#xe60f;" d="M256 480c-141.385 0-256-114.615-256-256s114.615-256 256-256 256 114.615 256 256-114.615 256-256 256zM408.028 71.972c-19.759-19.758-42.756-35.266-68.354-46.093-6.503-2.75-13.107-5.164-19.8-7.246v38.367c0 20.167-6.917 35-20.75 44.5 8.667 0.833 16.625 2 23.875 3.5s14.917 3.667 23 6.5 15.333 6.208 21.75 10.125 12.583 9 18.5 15.25 10.875 13.333 14.875 21.25 7.167 17.417 9.5 28.5 3.5 23.292 3.5 36.625c0 25.833-8.417 47.833-25.25 66 7.667 20 6.833 41.75-2.5 65.25l-6.25 0.75c-4.333 0.5-12.125-1.333-23.375-5.5s-23.875-11-37.875-20.5c-19.833 5.5-40.417 8.25-61.75 8.25-21.5 0-42-2.75-61.5-8.25-8.833 6-17.208 10.958-25.125 14.875s-14.25 6.583-19 8-9.167 2.292-13.25 2.625-6.708 0.417-7.875 0.25-2-0.333-2.5-0.5c-9.333-23.667-10.167-45.417-2.5-65.25-16.833-18.167-25.25-40.167-25.25-66 0-13.333 1.167-25.542 3.5-36.625s5.5-20.583 9.5-28.5 8.958-15 14.875-21.25 12.083-11.333 18.5-15.25 13.667-7.292 21.75-10.125 15.75-5 23-6.5 15.208-2.667 23.875-3.5c-13.667-9.333-20.5-24.167-20.5-44.5v-39.115c-7.549 2.247-14.99 4.902-22.3 7.994-25.597 10.827-48.594 26.335-68.353 46.093-19.758 19.759-35.267 42.756-46.093 68.354-11.199 26.479-16.878 54.631-16.878 83.674s5.679 57.195 16.879 83.675c10.827 25.597 26.335 48.594 46.093 68.353s42.756 35.267 68.353 46.093c26.48 11.2 54.632 16.879 83.675 16.879s57.195-5.679 83.675-16.879c25.598-10.827 48.595-26.335 68.354-46.093 19.758-19.758 35.266-42.756 46.093-68.353 11.199-26.48 16.878-54.632 16.878-83.675s-5.679-57.195-16.879-83.675c-10.827-25.597-26.335-48.595-46.093-68.353z" />
26
- <glyph unicode="&#xe610;" d="M64 224.004c0-74.013 44.161-137.984 108.215-168.289l-91.589 244.392c-10.654-23.254-16.626-48.991-16.626-76.103zM385.614 233.436c0 23.117-8.527 39.118-15.827 51.571-9.729 15.41-18.86 28.447-18.86 43.858 0 17.187 13.383 33.188 32.243 33.188 0.852 0 1.66-0.102 2.488-0.151-34.158 30.485-79.67 49.098-129.654 49.098-67.080 0-126.093-33.523-160.422-84.284 4.505-0.141 8.753-0.227 12.356-0.227 20.077 0 51.17 2.376 51.17 2.376 10.345 0.591 11.566-14.217 1.229-15.411 0 0-10.405-1.184-21.976-1.775l69.917-202.553 42.022 122.728-29.911 79.825c-10.344 0.592-20.139 1.775-20.139 1.775-10.351 0.596-9.136 16.001 1.219 15.411 0 0 31.7-2.376 50.567-2.376 20.073 0 51.175 2.376 51.175 2.376 10.351 0.591 11.57-14.217 1.223-15.411 0 0-10.417-1.186-21.974-1.775l69.39-201.009 19.156 62.316c8.29 25.875 14.608 44.45 14.608 60.45zM259.371 207.648l-57.613-163.029c17.208-4.929 35.397-7.619 54.244-7.619 22.358 0 43.802 3.759 63.759 10.6-0.509 0.801-0.987 1.652-1.375 2.577l-59.015 157.471zM424.481 313.714c0.826-5.955 1.294-12.343 1.294-19.229 0-18.965-3.646-40.298-14.601-66.975l-58.643-165.136c57.081 32.414 95.469 92.644 95.469 161.629 0 32.515-8.53 63.080-23.519 89.711zM256 480c-141.385 0-256-114.615-256-256s114.615-256 256-256 256 114.615 256 256-114.615 256-256 256zM256 0c-123.712 0-224 100.288-224 224s100.288 224 224 224 224-100.288 224-224-100.288-224-224-224z" />
27
- <glyph unicode="&#xe611;" d="M426 480h-340c-47.3 0-86-38.7-86-86v-340c0-47.3 38.7-86 86-86h340c47.3 0 86 38.7 86 86v340c0 47.3-38.7 86-86 86zM192 64h-64v224h64v-224zM160 320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM416 64h-64v128c0 17.673-14.327 32-32 32s-32-14.327-32-32v-128h-64v224h64v-39.736c13.199 18.132 33.376 39.736 56 39.736 39.765 0 72-35.817 72-80v-144z" />
28
- <glyph unicode="&#xe612;" d="M476.698 442.679l-2.014 2.021c-47.074 47.067-124.097 47.067-171.163 0l-109.053-109.068c-47.067-47.066-47.067-124.088 0-171.155l2.013-2.013c3.916-3.924 8.073-7.462 12.368-10.729l39.924 39.925c-4.651 2.747-9.063 6.036-13.058 10.030l-2.021 2.021c-25.557 25.549-25.557 67.136 0 92.695l109.064 109.056c25.558 25.559 67.137 25.559 92.693 0l2.021-2.012c25.55-25.558 25.55-67.146 0-92.695l-49.343-49.343c8.566-21.154 12.624-43.7 12.269-66.193l76.302 76.302c47.067 47.068 47.067 124.089-0.002 171.158zM315.521 285.533c-3.916 3.916-8.073 7.461-12.368 10.72l-39.924-39.916c4.652-2.748 9.063-6.037 13.058-10.031l2.021-2.020c25.558-25.558 25.558-67.136 0-92.694l-109.065-109.067c-25.559-25.551-67.138-25.551-92.694 0l-2.021 2.021c-25.549 25.56-25.549 67.138 0 92.694l49.344 49.343c-8.567 21.153-12.623 43.701-12.269 66.193l-76.301-76.299c-47.068-47.066-47.068-124.089 0-171.162l2.013-2.016c47.076-47.064 124.096-47.064 171.164 0l109.055 109.059c47.067 47.066 47.067 124.097 0 171.163l-2.013 2.012z" />
29
- <glyph unicode="&#xf0b2;" d="M0 18.286v128q0 12 11.428 16.857 11.143 4.857 19.715-4l41.143-41.143 101.428 101.428-101.428 101.428-41.143-41.143q-5.428-5.428-12.857-5.428-3.428 0-6.857 1.428-11.428 4.857-11.428 16.857v128q0 7.428 5.428 12.857t12.857 5.429h128q12 0 16.857-11.429 4.857-11.143-4-19.714l-41.143-41.143 101.428-101.428 101.428 101.428-41.143 41.143q-8.857 8.572-4 19.714 4.857 11.429 16.857 11.429h128q7.428 0 12.857-5.429t5.428-12.857v-128q0-12-11.143-16.857-3.714-1.428-7.143-1.428-7.428 0-12.857 5.428l-41.143 41.143-101.428-101.428 101.428-101.428 41.143 41.143q8.286 8.857 20 4 11.143-4.857 11.143-16.857v-128q0-7.428-5.428-12.857t-12.857-5.428h-128q-12 0-16.857 11.428-4.857 11.143 4 19.714l41.143 41.143-101.428 101.428-101.428-101.428 41.143-41.143q8.857-8.572 4-19.714-4.857-11.428-16.857-11.428h-128q-7.428 0-12.857 5.428t-5.428 12.857z" />
30
  </font></defs></svg>
6
  <font id="nestedpages" horiz-adv-x="512">
7
  <font-face units-per-em="512" ascent="480" descent="-32" />
8
  <missing-glyph horiz-adv-x="512" />
9
+ <glyph unicode="&#x20;" horiz-adv-x="256" d="" />
10
+ <glyph unicode="&#xe254;" glyph-name="pencil" d="M442 319.333l-39-39-80 80 39 39c8 8 22 8 30 0l50-50c8-8 8-22 0-30zM64 101.333l236 236 80-80-236-236h-80v80z" />
11
+ <glyph unicode="&#xe54e;" glyph-name="tag" d="M117 320.333c18 0 32 14 32 32s-14 32-32 32-32-14-32-32 14-32 32-32zM457 222.333c8-8 12-18 12-30s-4-22-12-30l-150-150c-8-8-18-12-30-12s-22 4-30 12l-192 192c-8 8-12 18-12 30v150c0 23 19 42 42 42h150c12 0 22-4 30-12z" />
12
+ <glyph unicode="&#xe5d4;" glyph-name="more_vert" d="M256 128.333c23 0 43-20 43-43s-20-43-43-43-43 20-43 43 20 43 43 43zM256 256.333c23 0 43-20 43-43s-20-43-43-43-43 20-43 43 20 43 43 43zM256 298.333c-23 0-43 20-43 43s20 43 43 43 43-20 43-43-20-43-43-43z" />
13
+ <glyph unicode="&#xe600;" glyph-name="sub-menu" d="M102.4 198.4h230.4v76.8l128-102.4-128-102.4v76.8h-281.6v230.4h51.2v-179.2z" />
14
+ <glyph unicode="&#xe601;" glyph-name="no" d="M398.080 129.28l-56.064-52.736-87.552 93.44-93.184-87.808-52.736 55.808 93.184 87.808-87.552 93.184 55.808 52.736 87.808-93.184 93.184 87.552 52.48-55.808-93.184-87.808z" />
15
+ <glyph unicode="&#xe602;" glyph-name="yes" d="M368.384 339.2l34.304-24.064-137.472-190.72h-34.304l-77.312 102.656 34.304 32 60.16-47.872z" />
16
+ <glyph unicode="&#xe603;" glyph-name="menu" d="M435.2 300.8v51.2h-358.4v-51.2h358.4zM435.2 198.4v51.2h-358.4v-51.2h358.4zM435.2 96v51.2h-358.4v-51.2h358.4z" />
17
+ <glyph unicode="&#xe604;" glyph-name="arrow-down" d="M384 275.2l-103.168-153.6-101.632 153.6h204.8z" />
18
+ <glyph unicode="&#xe605;" glyph-name="arrow-right" d="M204.8 326.4l153.6-103.168-153.6-101.632v204.8z" />
19
+ <glyph unicode="&#xe606;" glyph-name="menu2" d="M32 384h448v-96h-448zM32 256h448v-96h-448zM32 128h448v-96h-448z" />
20
+ <glyph unicode="&#xe607;" glyph-name="bubble" d="M256 448c141.385 0 256-93.125 256-208s-114.615-208-256-208c-13.578 0-26.905 0.867-39.912 2.522-54.989-54.989-120.625-64.85-184.088-66.298v13.458c34.268 16.789 64 47.37 64 82.318 0 4.877-0.379 9.665-1.082 14.348-57.898 38.132-94.918 96.377-94.918 161.652 0 114.875 114.615 208 256 208z" />
21
+ <glyph unicode="&#xe60a;" glyph-name="remove" d="M400 416h-288c-26.51 0-48-21.49-48-48v-16h384v16c0 26.51-21.49 48-48 48zM316.16 448l7.058-50.5h-134.436l7.057 50.5h120.321M320 480h-128c-13.2 0-25.495-10.696-27.321-23.769l-9.357-66.962c-1.827-13.073 7.478-23.769 20.678-23.769h160c13.2 0 22.505 10.696 20.679 23.769l-9.357 66.962c-1.827 13.073-14.122 23.769-27.322 23.769v0zM408 320h-304c-17.6 0-30.696-14.341-29.103-31.869l26.206-288.263c1.593-17.527 17.297-31.868 34.897-31.868h240c17.6 0 33.304 14.341 34.897 31.868l26.205 288.263c1.594 17.528-11.502 31.869-29.102 31.869zM192 32h-48l-16 224h64v-224zM288 32h-64v224h64v-224zM368 32h-48v224h64l-16-224z" />
22
+ <glyph unicode="&#xe60b;" glyph-name="eye" d="M256 384c-111.659 0-208.441-65.021-256-160 47.559-94.979 144.341-160 256-160 111.657 0 208.439 65.021 256 160-47.558 94.979-144.343 160-256 160zM382.225 299.148c30.081-19.187 55.571-44.887 74.717-75.148-19.146-30.261-44.637-55.961-74.718-75.149-37.797-24.108-81.445-36.851-126.224-36.851-44.78 0-88.428 12.743-126.225 36.852-30.080 19.186-55.57 44.886-74.717 75.148 19.146 30.262 44.637 55.962 74.717 75.148 1.959 1.25 3.938 2.461 5.929 3.65-4.979-13.664-7.704-28.411-7.704-43.798 0-70.692 57.308-128 128-128s128 57.308 128 128c0 15.387-2.725 30.134-7.704 43.799 1.99-1.189 3.969-2.401 5.929-3.651zM256 275c0-26.51-21.49-48-48-48s-48 21.49-48 48 21.49 48 48 48 48-21.49 48-48z" />
23
+ <glyph unicode="&#xe60c;" glyph-name="eye-blocked" d="M419.661 331.792c38.822-27.515 70.685-64.546 92.339-107.792-47.561-94.979-144.343-160-256-160-31.283 0-61.396 5.106-89.589 14.542l38.978 38.978c16.529-3.65 33.486-5.52 50.611-5.52 44.779 0 88.427 12.743 126.223 36.852 30.081 19.188 55.572 44.888 74.718 75.149-18.526 29.283-43.007 54.275-71.825 73.247l34.545 34.544zM256 131c-11.362 0-22.376 1.488-32.864 4.267l156.593 156.592c2.781-10.486 4.271-21.497 4.271-32.859 0-70.692-57.308-128-128-128zM480 480h-26.869l-109.806-109.806c-27.538 8.962-56.877 13.806-87.325 13.806-111.659 0-208.441-65.021-256-160 21.329-42.596 52.564-79.154 90.597-106.534l-90.597-90.597v-26.869h26.869l453.131 453.131v26.869zM208 323c24.022 0 43.923-17.647 47.446-40.685l-54.762-54.762c-23.037 3.524-40.684 23.425-40.684 47.447 0 26.51 21.49 48 48 48zM55.058 224c19.146 30.262 44.637 55.962 74.717 75.148 1.959 1.25 3.938 2.461 5.929 3.65-4.979-13.664-7.704-28.411-7.704-43.798 0-29.262 9.825-56.224 26.349-77.781l-29.275-29.275c-28.036 18.821-51.877 43.386-70.016 72.056z" />
24
+ <glyph unicode="&#xe60d;" glyph-name="list" d="M192 448h320v-64h-320v64zM192 256h320v-64h-320v64zM192 64h320v-64h-320v64zM0 416c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM0 224c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64zM0 32c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64s-64 28.654-64 64z" />
25
+ <glyph unicode="&#xe611;" glyph-name="plus" d="M496 288h-176v176c0 8.836-7.164 16-16 16h-96c-8.836 0-16-7.164-16-16v-176h-176c-8.836 0-16-7.164-16-16v-96c0-8.836 7.164-16 16-16h176v-176c0-8.836 7.164-16 16-16h96c8.836 0 16 7.164 16 16v176h176c8.836 0 16 7.164 16 16v96c0 8.836-7.164 16-16 16z" />
26
+ <glyph unicode="&#xe612;" glyph-name="link" d="M476.698 442.679l-2.014 2.021c-47.074 47.067-124.097 47.067-171.163 0l-109.053-109.068c-47.067-47.066-47.067-124.088 0-171.155l2.013-2.013c3.916-3.924 8.073-7.462 12.368-10.729l39.924 39.925c-4.651 2.747-9.063 6.036-13.058 10.030l-2.021 2.021c-25.557 25.549-25.557 67.136 0 92.695l109.064 109.056c25.558 25.559 67.137 25.559 92.693 0l2.021-2.012c25.55-25.558 25.55-67.146 0-92.695l-49.343-49.343c8.566-21.154 12.624-43.7 12.269-66.193l76.302 76.302c47.067 47.068 47.067 124.089-0.002 171.158zM315.521 285.533c-3.916 3.916-8.073 7.461-12.368 10.72l-39.924-39.916c4.652-2.748 9.063-6.037 13.058-10.031l2.021-2.020c25.558-25.558 25.558-67.136 0-92.694l-109.065-109.067c-25.559-25.551-67.138-25.551-92.694 0l-2.021 2.021c-25.549 25.56-25.549 67.138 0 92.694l49.344 49.343c-8.567 21.153-12.623 43.701-12.269 66.193l-76.301-76.299c-47.068-47.066-47.068-124.089 0-171.162l2.013-2.016c47.076-47.064 124.096-47.064 171.164 0l109.055 109.059c47.067 47.066 47.067 124.097 0 171.163l-2.013 2.012z" />
27
+ <glyph unicode="&#xe897;" glyph-name="lock" d="M322 298.333v43c0 36-30 66-66 66s-66-30-66-66v-43h132zM256 106.333c23 0 43 20 43 43s-20 43-43 43-43-20-43-43 20-43 43-43zM384 298.333c23 0 43-19 43-42v-214c0-23-20-42-43-42h-256c-23 0-43 19-43 42v214c0 23 20 42 43 42h21v43c0 59 48 107 107 107s107-48 107-107v-43h21z" />
28
+ <glyph unicode="&#xe900;" glyph-name="post" d="M267.264 402.688l46.592 46.592 162.816-162.56-46.848-46.592c-26.88 17.408-63.488 14.592-87.296-9.216l-19.2-19.2c-23.552-23.808-26.624-60.16-8.96-87.296l-46.848-46.592-61.696 61.696-71.68-71.424c-10.752-10.752-86.528-69.376-97.28-58.624s47.616 86.784 58.368 97.536l71.424 71.424-61.696 61.952 46.848 46.592c26.88-17.664 63.488-14.592 87.040 9.216l19.2 19.2c23.808 23.552 26.88 60.16 9.216 87.296z" />
29
+ <glyph unicode="&#xe901;" glyph-name="page" d="M153.6 96v332.8h256v-332.8h-256zM128 70.4h204.8v-51.2h-256v332.8h51.2v-281.6z" />
30
  </font></defs></svg>
assets/css/fonts/nestedpages.ttf CHANGED
Binary file
assets/css/fonts/nestedpages.woff CHANGED
Binary file
assets/css/fonts/nestedpages.woff2 ADDED
Binary file
assets/css/nestedpages.css CHANGED
@@ -1 +1 @@
1
- body{-webkit-animation-delay:0.1s;-webkit-animation-name:fontfix;-webkit-animation-duration:0.1s;-webkit-animation-iteration-count:1;-webkit-animation-timing-function:linear;}@-webkit-keyframes fontfix{from{opacity:1;}to{opacity:1;}}@font-face{font-family:'nestedpages';src:url('fonts/nestedpages.eot');}@font-face{font-family:'nestedpages';src:url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'),url(data:application/font-woff;charset=utf-8;base64,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) format('woff');font-weight:normal;font-style:normal;}[class^="np-icon-"],[class*=" np-icon-"]{font-family:'nestedpages';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}.np-icon-no:before{content:"\e601";}.np-icon-yes:before{content:"\e602";}.np-icon-menu:before{content:"\e603";}.np-icon-arrow-down:before{content:"\e604";}.np-icon-arrow-right:before{content:"\e605";}.np-icon-sub-menu:before{content:"\e600";}.np-icon-arrows-alt:before{content:"\f0b2";}.np-icon-pencil:before{content:"\e608";}.np-icon-bubble:before{content:"\e607";}.np-icon-lock:before{content:"\e609";}.np-icon-remove:before{content:"\e60a";}.np-icon-list:before{content:"\e60d";}.np-icon-menu2:before{content:"\e606";}.np-icon-link:before{content:"\e612";}.np-icon-eye:before{content:"\e60b";}.np-icon-eye-blocked:before{content:"\e60c";}.np-icon-mail:before{content:"\e60e";}.np-icon-github:before{content:"\e60f";}.np-icon-wordpress:before{content:"\e610";}.np-icon-linkedin:before{content:"\e611";}.np-btn,.np-toggle-edit{text-decoration:none;color:#555;display:inline-block;background-color:#f7f7f7;border:1px solid #e1e1e1;padding:3px 8px;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0, 0, 0, 0.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0, 0, 0, 0.08);-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;}.np-btn:hover,.np-toggle-edit:hover{background-color:#0074a2;color:#ffffff;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25),0 1px 0 rgba(0, 0, 0, 0.08);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25),0 1px 0 rgba(0, 0, 0, 0.08);border-color:#0074a2;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;}.np-btn-half{float:left;width:47%;padding:3px 0px;text-align:center;}.np-btn-half.btn-right{float:right;}.np-btn-trash{background-color:#e14d43;border-color:#e14d43;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.3),0 1px 0 rgba(0, 0, 0, 0.08);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.3),0 1px 0 rgba(0, 0, 0, 0.08);color:#ffffff;}.np-btn-trash:hover{background-color:#ba251e;border-color:#ba251e;}.np-toggle-edit{display:none;float:right;margin-right:10px;}.np-toggle-edit.active{background-color:#0074a2;color:#ffffff;-webkit-box-shadow:none;box-shadow:none;border-color:#0074a2;}@media (max-width: 767px){.np-toggle-edit{display:inline-block;}}.np-quickedit-error{border-left:4px solid #dd3d36;padding:4px 0 4px 8px;margin-bottom:10px;background-color:#f9f9f9;}.modal-open{overflow:hidden;}.np-modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;-webkit-overflow-scrolling:touch;outline:0;}.np-modal .modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000;opacity:0.85;z-index:9999;}.np-modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out;}.np-modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0);}.np-modal .modal-open .modal{overflow-x:hidden;overflow-y:auto;}.np-modal .modal-dialog{position:relative;width:90%;height:80%;margin:10px auto 0px auto;max-width:800px;z-index:9999;}.np-modal .modal-content{position:relative;background-color:#ffffff;-webkit-box-shadow:0 3px 9px rgba(0, 0, 0, 0.5);box-shadow:0 3px 9px rgba(0, 0, 0, 0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0;}.np-modal .modal-header{padding:8px;background-color:#ebebeb;}.np-modal .modal-header .sr-only{display:none;}.np-modal .modal-header .close{margin-top:-2px;}.np-modal .modal-title{margin:0;}.np-modal .modal-body{position:relative;padding:10px;}.np-modal .modal-body.new-child{padding:0;}.np-modal .modal-footer{padding:10px;text-align:right;background-color:#404040;zoom:1;}.np-modal .modal-footer:before,.np-modal .modal-footer:after{content:" ";display:table;}.np-modal .modal-footer:after{clear:both;}.np-modal .modal-footer .modal-close{float:left;}.np-modal .modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll;}.clone-modal h3{margin:0;padding:8px;background-color:#e5e5e5;}.clone-modal .form-control{margin:0 !important;padding:5px 10px;}.np-trash-modal{text-align:center;}.np-trash-modal .modal-body{padding-bottom:30px;}.np-trash-modal .button-primary{margin-left:10px;}.np-inline-overlay{position:fixed;width:100%;height:100%;background-color:rgba(0, 0, 0, 0.4);z-index:998;top:0;right:0;bottom:0;left:0;opacity:0;-webkit-transition:opacity 200ms ease;-o-transition:opacity 200ms ease;transition:opacity 200ms ease;}.np-inline-overlay.active{opacity:1;-webkit-transition:opacity 200ms ease;-o-transition:opacity 200ms ease;transition:opacity 200ms ease;}.np-inline-modal{position:relative;z-index:999;background-color:#ffffff;-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:0px 0px 4px 0px rgba(0, 0, 0, 0.5);box-shadow:0px 0px 4px 0px rgba(0, 0, 0, 0.5);}.nestedpages-listing-title{float:left;}.nestedpages .updated{clear:both;}.nestedpages-toggleall{float:right;}.np-toggle-publish{color:#999999;}.np-toggle-publish.active{color:#333;font-weight:bold;}.np-sync-menu-cont{float:right;margin:5px 15px 0px 0px;}#nested-loading{display:none;float:right;width:30px;margin:0px 20px 0 0;}.nestedpages-top-toggles{zoom:1;padding-top:10px;}.nestedpages-top-toggles:before,.nestedpages-top-toggles:after{content:" ";display:table;}.nestedpages-top-toggles:after{clear:both;}.np-tabs{background-color:#ebebeb;padding:0px;}.np-tabs ul{text-align:left;list-style-type:none;margin:0;padding:0;}.np-tabs ul li{display:inline-block;margin:0;}.np-tabs ul li a{display:block;text-decoration:none;padding:5px 10px;}.np-tabs ul li a.active{position:relative;color:#333;background-color:#ffffff;}.np-tabs ul li a:focus,.np-tabs ul li a:active{outline:none;-webkit-box-shadow:none;box-shadow:none;}.nestedpages-datepicker.ui-datepicker{background-color:#ffffff;font-size:90%;-webkit-box-shadow:0px 0px 3px 0px rgba(0, 0, 0, 0.4);box-shadow:0px 0px 3px 0px rgba(0, 0, 0, 0.4);-webkit-border-radius:3px;border-radius:3px;padding:0;width:auto;}.nestedpages-datepicker.ui-datepicker .ui-datepicker-next,.nestedpages-datepicker.ui-datepicker .ui-datepicker-prev{position:absolute;color:#ffffff;top:0px;right:0px;cursor:pointer;display:block;width:35px;height:35px;font-size:0;background:url('../images/datepicker-arrow-next.png');background-position:center;opacity:1;-webkit-transition:opacity 200ms ease;-o-transition:opacity 200ms ease;transition:opacity 200ms ease;}.nestedpages-datepicker.ui-datepicker .ui-datepicker-next:hover,.nestedpages-datepicker.ui-datepicker .ui-datepicker-prev:hover{opacity:0.5;-webkit-transition:opacity 200ms ease;-o-transition:opacity 200ms ease;transition:opacity 200ms ease;}.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar{margin:0;}.nestedpages-datepicker.ui-datepicker .ui-datepicker-prev{right:auto;left:0px;background:url('../images/datepicker-arrow-prev.png');}.nestedpages-datepicker.ui-datepicker .ui-datepicker-header{padding:0;}.nestedpages-datepicker.ui-datepicker .ui-datepicker-title{background-color:#1a1a1a;text-align:center;color:#ffffff;height:35px;line-height:35px;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;margin:0;}.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar{border-collapse:collapse;}.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar table{width:auto;}.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar th,.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar td{text-align:center;width:30px;height:30px;}.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar th{background-color:#e6e6e6;text-transform:uppercase;font-size:11px;letter-spacing:1px;padding:0;}.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar td{border-top:1px solid #ebebeb;border-left:1px solid #ebebeb;padding:0;}.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar td:first-child{border-left:0;}.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar a{text-align:center;padding:0;text-decoration:none;color:#333;display:block;background-color:#ffffff;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;width:30px;height:30px;line-height:30px;}.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar a.ui-state-active{background-color:#1a1a1a;color:#ffffff;}.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar a:hover{background-color:#333;color:#ffffff;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;}.nestedpages-tools{zoom:1;clear:both;clear:both;margin:20px 0px 5px 0px;}.nestedpages-tools:before,.nestedpages-tools:after{content:" ";display:table;}.nestedpages-tools:after{clear:both;}.nestedpages-tools .subsubsub{margin:0;}.nestedpages-tools .np-tools-primary{clear:left;padding-top:8px;}.nestedpages-tools .select{float:left;margin-left:5px;}.nestedpages-tools .select.first{margin-left:0;}.nestedpages-tools .np-tools-sort{float:left;}.nestedpages-tools .np-tools-search{float:right;}.wppages-handle-expand{float:left;background-color:#f2f2f2;font-size:18px;width:46px;height:46px;margin-right:5px;text-align:center;border-right:1px solid #e1e1e1;}.wppages-handle-expand div{background-color:#ffffff;border:1px solid #e1e1e1;width:24px;height:24px;line-height:24px;-webkit-border-radius:15px;border-radius:15px;margin-top:9px;cursor:pointer;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;}.wppages-handle-expand div:hover{background-color:#0074a2;border-color:#0074a2;color:#ffffff;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;}.nestedpages{clear:both;-webkit-border-radius:4px;border-radius:4px;}.nestedpages .ui-sortable-placeholder{display:block !important;position:relative;min-height:46px;border:0;border:1px dashed #0074a2 !important;background-color:#effaff;margin:0;}.nestedpages .ui-sortable-helper{opacity:0.8;-webkit-box-shadow:2px 2px 3px 0px rgba(0, 0, 0, 0.5);box-shadow:2px 2px 3px 0px rgba(0, 0, 0, 0.5);}.nestedpages ol{list-style-type:none;clear:both;margin:0;-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.06);box-shadow:0 1px 1px rgba(0, 0, 0, 0.06);border:1px solid #e5e5e5;-webkit-border-radius:3px;border-radius:3px;}.nestedpages ol a{text-decoration:none;}.nestedpages ol .page-link{line-height:26px;}.nestedpages ol .page-link .edit-indicator{margin-left:10px;display:none;}.nestedpages ol .page-link .edit-indicator i{font-size:12px;margin-right:3px;}.nestedpages ol .page-link:hover .edit-indicator{display:inline-block;}.nestedpages ol .np-page-type{color:#333;}.nestedpages ol .locked{color:#333;margin-left:20px;}.nestedpages ol .locked em{font-style:normal;}.nestedpages ol .status{color:#999999;margin:0px 10px;}.nestedpages ol .np-icon-eye-blocked{color:#999999;}.nestedpages ol .nav-status{color:#b3b3b3;}.nestedpages ol .np-hide{display:none;}.nestedpages ol .np-seo-indicator{display:block;float:right;width:12px;height:12px;-webkit-border-radius:50%;border-radius:50%;background-color:#999999;margin:6px 10px 0 0;}.nestedpages ol .np-seo-indicator.good{background-color:#7ad03a;}.nestedpages ol .np-seo-indicator.ok{background-color:#ffba00;}.nestedpages ol .np-seo-indicator.poor{background-color:#ee7c1b;}.nestedpages ol .np-seo-indicator.bad{background-color:#dd3d36;}.nestedpages ol .np-seo-indicator.warn{background-color:maroon;}.nestedpages ol .np-seo-indicator.wrong{background-color:red;}.nestedpages ol .np-seo-indicator.noindex{background-color:#1e8cbe;}.nestedpages ol li{margin:0;border-top:1px solid #e1e1e1;background-color:#0074a2;}.nestedpages ol li.first{border:0;}.nestedpages ol li:first-child{border:0;}.nestedpages ol li.no-border{border:0;}.nestedpages ol ol{display:none;-webkit-border-radius:0;border-radius:0;list-style-type:none;border:0;-webkit-box-shadow:none;box-shadow:none;border-top:1px solid #e1e1e1;}.nestedpages .child-toggle{float:left;margin:0px 10px 0 0;width:46px;height:46px;background-color:#f0f0f0;text-align:center;}.nestedpages .child-toggle a{display:inline-block;margin-top:7px;width:28px;height:28px;background-color:#ffffff;border:1px solid #e1e1e1;-webkit-border-radius:20px;border-radius:20px;font-size:20px;line-height:30px;color:#333;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;}.nestedpages .child-toggle a i{line-height:26px;}.nestedpages .child-toggle a:hover{background-color:#0074a2;color:#ffffff;border-color:#0074a2;}.nestedpages .handle{display:inline-block;cursor:move;font-size:20px;color:#b3b3b3;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;position:relative;top:3px;}.nestedpages .handle:hover{-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;color:#0074a2;}.nestedpages .np-icon-sub-menu{display:none;color:#999999;position:relative;left:2px;}.nestedpages .handle,.nestedpages .np-icon-sub-menu{width:30px;line-height:36px;margin-top:-10px;}.nestedpages li ol .row .np-icon-sub-menu{display:inline-block;}.nestedpages li ol .row .handle{display:none;}.nestedpages li ol .row:hover .np-icon-sub-menu{display:none;}.nestedpages li ol .row:hover .handle{display:inline-block;}.nestedpages .row{background-color:#ffffff;display:block;zoom:1;}.nestedpages .row:before,.nestedpages .row:after{content:" ";display:table;}.nestedpages .row:after{clear:both;}.nestedpages .row:hover{background-color:#f0f0f0;}.nestedpages .row.np-updated{background-color:#e9f7df;-webkit-transition:background-color 400ms ease;-o-transition:background-color 400ms ease;transition:background-color 400ms ease;}.nestedpages .row.np-updated-show{background-color:#ffffff;-webkit-transition:background-color 400ms ease;-o-transition:background-color 400ms ease;transition:background-color 400ms ease;}.nestedpages .row.non-hierarchical{padding-left:15px;padding-bottom:10px;}.nestedpages .row-inner{padding-top:10px;}.nestedpages ol li ol .row-inner{padding-left:76px;}.nestedpages ol li ol li ol .row-inner{padding-left:96px;}.nestedpages ol li ol li ol li ol .row-inner{padding-left:116px;}.nestedpages ol li ol li ol li ol li ol .row-inner{padding-left:136px;}.nestedpages ol li ol li ol li ol li ol li ol .row-inner{padding-left:156px;}.nestedpages .np-post-columns{float:right;margin:3px 20px 0px 0px;zoom:1;}.nestedpages .np-post-columns:before,.nestedpages .np-post-columns:after{content:" ";display:table;}.nestedpages .np-post-columns:after{clear:both;}.nestedpages .np-post-columns ul li{background:transparent;color:#808080;border:0;float:left;margin-left:8px;padding-left:8px;border-left:1px solid #cccccc;}.nestedpages .np-post-columns ul li:first-child{margin-left:0;padding-left:0;border:0;}.nestedpages .action-buttons{display:none;float:right;margin:0 10px 0 0;}.nestedpages .action-buttons a{margin:0 0 0 -5px;}.nestedpages .action-buttons a.np-btn-trash{margin-left:4px;}.np-search{float:right;}@media (min-width: 768px){.nestedpages .row:hover .action-buttons{display:block;}.nestedpages .row:hover .np-post-columns{display:none;}}@media (max-width: 767px){.nestedpages ol .page-link{line-height:24px;}.nestedpages ol .page-link:hover span{display:none;}.nestedpages ol .locked em{display:none;}.nestedpages .child-toggle{background:transparent;}.nestedpages .row{height:auto;}.nestedpages .action-buttons{display:none;background-color:#0074a2;float:none;margin:0;padding:8px;}.nestedpages .action-buttons a{margin-left:5px;}}.nestedpages .quick-edit .form-interior,.nestedpages .new-child .form-interior{padding:10px;}.nestedpages .quick-edit h3,.nestedpages .new-child h3{margin:0 0 8px 0;font-size:14px;}.nestedpages .quick-edit h3 span,.nestedpages .new-child h3 span{float:right;font-size:12px;}.nestedpages .quick-edit h3 span em,.nestedpages .new-child h3 span em{font-weight:normal;font-style:normal;color:#808080;}.nestedpages .quick-edit .fields,.nestedpages .new-child .fields{margin-bottom:10px;background:url('../images/border.png') repeat-y;background-position:center;zoom:1;}.nestedpages .quick-edit .fields:before,.nestedpages .quick-edit .fields:after,.nestedpages .new-child .fields:before,.nestedpages .new-child .fields:after{content:" ";display:table;}.nestedpages .quick-edit .fields:after,.nestedpages .new-child .fields:after{clear:both;}.nestedpages .quick-edit .left,.nestedpages .new-child .left{float:left;width:48%;}.nestedpages .quick-edit .right,.nestedpages .new-child .right{float:right;width:48%;}.nestedpages .quick-edit label,.nestedpages .new-child label{font-style:oblique;}.nestedpages .quick-edit .buttons,.nestedpages .new-child .buttons{clear:both;zoom:1;background-color:#404040;padding:8px;}.nestedpages .quick-edit .buttons:before,.nestedpages .quick-edit .buttons:after,.nestedpages .new-child .buttons:before,.nestedpages .new-child .buttons:after{content:" ";display:table;}.nestedpages .quick-edit .buttons:after,.nestedpages .new-child .buttons:after{clear:both;}.nestedpages .quick-edit .form-control,.nestedpages .new-child .form-control{clear:both;zoom:1;margin-bottom:5px;}.nestedpages .quick-edit .form-control:before,.nestedpages .quick-edit .form-control:after,.nestedpages .new-child .form-control:before,.nestedpages .new-child .form-control:after{content:" ";display:table;}.nestedpages .quick-edit .form-control:after,.nestedpages .new-child .form-control:after{clear:both;}.nestedpages .quick-edit .form-control input[type='text'],.nestedpages .quick-edit .form-control input[type='password'],.nestedpages .quick-edit .form-control select,.nestedpages .new-child .form-control input[type='text'],.nestedpages .new-child .form-control input[type='password'],.nestedpages .new-child .form-control select{float:right;width:75%;}.nestedpages .quick-edit .form-control label,.nestedpages .new-child .form-control label{float:left;width:20%;}.nestedpages .quick-edit .form-control.original-link,.nestedpages .new-child .form-control.original-link{background-color:#f9f9f9;border:1px solid #e1e1e1;padding:5px;font-style:oblique;margin-bottom:8px;}.nestedpages .quick-edit .form-control.password label,.nestedpages .new-child .form-control.password label{width:25%;}.nestedpages .quick-edit .form-control.password input[type="text"],.nestedpages .new-child .form-control.password input[type="text"]{float:left;width:35%;}.nestedpages .quick-edit .form-control.password .private,.nestedpages .new-child .form-control.password .private{float:right;width:35%;margin-top:4px;}.nestedpages .quick-edit .form-control.password .private label,.nestedpages .new-child .form-control.password .private label{width:auto;float:none;}.nestedpages .quick-edit .form-control.np-datepicker-container .datetime,.nestedpages .new-child .form-control.np-datepicker-container .datetime{float:right;width:75%;}.nestedpages .quick-edit .form-control.np-datepicker-container .np-time-container,.nestedpages .new-child .form-control.np-datepicker-container .np-time-container{float:left;width:45%;margin:0;position:relative;}.nestedpages .quick-edit .form-control.np-datepicker-container .np-time-container input[type="text"],.nestedpages .new-child .form-control.np-datepicker-container .np-time-container input[type="text"]{float:left;width:55%;}.nestedpages .quick-edit .form-control.np-datepicker-container .np-time-container select,.nestedpages .new-child .form-control.np-datepicker-container .np-time-container select{float:right;width:35%;}.nestedpages .quick-edit .form-control.np-datepicker-container .np_datepicker,.nestedpages .new-child .form-control.np-datepicker-container .np_datepicker{float:left;width:45%;margin:0;}.nestedpages .quick-edit .form-control.np-datepicker-container span,.nestedpages .new-child .form-control.np-datepicker-container span{float:left;width:10%;display:block;text-align:center;padding-top:3px;}.nestedpages .quick-edit .comments,.nestedpages .new-child .comments{float:right;width:75%;margin-bottom:10px;zoom:1;}.nestedpages .quick-edit .comments:before,.nestedpages .quick-edit .comments:after,.nestedpages .new-child .comments:before,.nestedpages .new-child .comments:after{content:" ";display:table;}.nestedpages .quick-edit .comments:after,.nestedpages .new-child .comments:after{clear:both;}.nestedpages .quick-edit .dates,.nestedpages .new-child .dates{float:right;width:75%;margin-bottom:6px;}.nestedpages .quick-edit .dates select,.nestedpages .new-child .dates select{width:25%;}.nestedpages .quick-edit .dates input,.nestedpages .new-child .dates input{width:12%;}.nestedpages .quick-edit .np-toggle-options,.nestedpages .new-child .np-toggle-options{background-color:#f2f2f2;padding:5px;}.nestedpages .quick-edit .np-taxonomies,.nestedpages .quick-edit .np-menuoptions,.nestedpages .new-child .np-taxonomies,.nestedpages .new-child .np-menuoptions{display:none;clear:both;background-color:#f9f9f9;padding:8px;zoom:1;margin-top:5px;}.nestedpages .quick-edit .np-taxonomies:before,.nestedpages .quick-edit .np-taxonomies:after,.nestedpages .quick-edit .np-menuoptions:before,.nestedpages .quick-edit .np-menuoptions:after,.nestedpages .new-child .np-taxonomies:before,.nestedpages .new-child .np-taxonomies:after,.nestedpages .new-child .np-menuoptions:before,.nestedpages .new-child .np-menuoptions:after{content:" ";display:table;}.nestedpages .quick-edit .np-taxonomies:after,.nestedpages .quick-edit .np-menuoptions:after,.nestedpages .new-child .np-taxonomies:after,.nestedpages .new-child .np-menuoptions:after{clear:both;}.nestedpages .quick-edit .np-taxonomy,.nestedpages .new-child .np-taxonomy{float:left;width:30%;margin-right:3.33%;}.nestedpages .quick-edit .np-taxonomy .title,.nestedpages .new-child .np-taxonomy .title{font-weight:bold;margin-bottom:4px;display:block;}.nestedpages .quick-edit .np-taxonomy li,.nestedpages .new-child .np-taxonomy li{background-color:#ffffff;border:0;}.nestedpages .quick-edit .np-taxonomy textarea,.nestedpages .new-child .np-taxonomy textarea{width:100%;height:6.5em;}.nestedpages .quick-edit .np-menuoptions,.nestedpages .new-child .np-menuoptions{padding:15px;}.nestedpages .quick-edit .np-menuoptions label,.nestedpages .quick-edit .np-menuoptions input[type="text"],.nestedpages .new-child .np-menuoptions label,.nestedpages .new-child .np-menuoptions input[type="text"]{display:block;float:none;width:100%;}.nestedpages .quick-edit .np-menuoptions .menuoptions-left,.nestedpages .new-child .np-menuoptions .menuoptions-left{float:left;width:47%;}.nestedpages .quick-edit .np-menuoptions .menuoptions-right,.nestedpages .new-child .np-menuoptions .menuoptions-right{float:right;width:47%;padding-top:18px;}.nestedpages .quick-edit .np-menuoptions .menuoptions-right label,.nestedpages .new-child .np-menuoptions .menuoptions-right label{margin-bottom:10px;}.nestedpages .quick-edit .np-hide-options,.nestedpages .new-child .np-hide-options{display:none;background-color:#f0f0f0;-webkit-border-radius:3px;border-radius:3px;clear:both;padding:6px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.nestedpages .quick-edit .np-hide-options p,.nestedpages .new-child .np-hide-options p{margin:0;}.nestedpages .quick-edit .np-hide-options label,.nestedpages .new-child .np-hide-options label{display:block;margin-top:4px;font-style:normal;}.nestedpages .quick-edit .new-page-titles,.nestedpages .new-child .new-page-titles{display:block;border:0;}.nestedpages .quick-edit .new-page-titles li,.nestedpages .new-child .new-page-titles li{background:transparent;border:0;padding:4px;zoom:1;}.nestedpages .quick-edit .new-page-titles li:before,.nestedpages .quick-edit .new-page-titles li:after,.nestedpages .new-child .new-page-titles li:before,.nestedpages .new-child .new-page-titles li:after{content:" ";display:table;}.nestedpages .quick-edit .new-page-titles li:after,.nestedpages .new-child .new-page-titles li:after{clear:both;}.nestedpages .quick-edit .new-page-titles li:nth-child(even),.nestedpages .new-child .new-page-titles li:nth-child(even){background-color:#f0f0f0;}.nestedpages .quick-edit .new-page-titles li label,.nestedpages .new-child .new-page-titles li label{margin-top:7px;}.nestedpages .quick-edit .new-page-titles .form-control,.nestedpages .new-child .new-page-titles .form-control{float:right;width:90%;clear:none;}.nestedpages .quick-edit .new-page-titles .np-icon-menu,.nestedpages .new-child .new-page-titles .np-icon-menu{float:left;margin-top:0px;height:auto;line-height:26px;}.nestedpages .quick-edit .new-page-titles .new-child-row div,.nestedpages .new-child .new-page-titles .new-child-row div{float:right;width:75%;margin:2px;zoom:1;}.nestedpages .quick-edit .new-page-titles .new-child-row div:before,.nestedpages .quick-edit .new-page-titles .new-child-row div:after,.nestedpages .new-child .new-page-titles .new-child-row div:before,.nestedpages .new-child .new-page-titles .new-child-row div:after{content:" ";display:table;}.nestedpages .quick-edit .new-page-titles .new-child-row div:after,.nestedpages .new-child .new-page-titles .new-child-row div:after{clear:both;}.nestedpages .quick-edit .new-page-titles .new-child-row div input[type='text'],.nestedpages .new-child .new-page-titles .new-child-row div input[type='text']{float:left;width:80%;}.nestedpages .quick-edit .new-page-titles .new-child-row div a,.nestedpages .new-child .new-page-titles .new-child-row div a{float:right;}.np-modal.nestedpages .new-child .right .form-control input[type='text'],.np-modal.nestedpages .new-child .right .form-control input[type='password'],.np-modal.nestedpages .new-child .right .form-control select{float:none;width:100%;}.np-modal.nestedpages .new-child .right .form-control label{float:none;width:100%;}.np-modal.nestedpages .new-child .new-page-titles .form-control{width:85%;}.np-modal.nestedpages .new-child .new-page-titles .form-control div{width:100%;}.np-modal.nestedpages .new-child .left label{display:none;}.np-qe-loading{display:none;float:right;width:25px;height:25px;margin:2px 10px 0 0;background:url('../images/loading-white.gif') no-repeat;}@media (max-width: 767px){.nestedpages .quick-edit .fields{background:transparent;}.nestedpages .quick-edit .left,.nestedpages .quick-edit .right{float:none;width:100%;}.nestedpages .quick-edit .form-control{margin-bottom:10px;}.nestedpages .quick-edit .form-control input[type='text'],.nestedpages .quick-edit .form-control input[type='password'],.nestedpages .quick-edit .form-control select{float:none;width:100%;}.nestedpages .quick-edit .form-control label{display:block;float:none;width:100%;margin-bottom:4px;}.nestedpages .quick-edit .form-control.np-datepicker-container .datetime{float:none;width:100%;}.nestedpages .quick-edit .comments{float:none;width:100%;}.nestedpages .quick-edit .dates{float:none;width:100%;margin-bottom:6px;}}.np-modal-form .form-interior{zoom:1;background:url('../images/border.png') repeat-y;background-position:center;padding:5px 0;}.np-modal-form .form-interior:before,.np-modal-form .form-interior:after{content:" ";display:table;}.np-modal-form .form-interior:after{clear:both;}.np-modal-form .form-control{zoom:1;margin-bottom:10px;}.np-modal-form .form-control:before,.np-modal-form .form-control:after{content:" ";display:table;}.np-modal-form .form-control:after{clear:both;}.np-modal-form .checkbox{margin-bottom:10px;}.np-modal-form .left{float:left;width:45%;}.np-modal-form .right{float:right;width:45%;padding-top:18px;}.np-modal-form label{display:block;}.np-modal-form input[type="text"],.np-modal-form select{width:100%;}.np-modal-form .buttons{clear:both;}.modal-body.np-menu-item-form{height:400px;padding:0;border-top:1px solid #e1e1e1;}.np-menu-type-selection{float:left;height:100%;overflow:auto;width:35%;padding:15px;background-color:#f9f9f9;border-right:1px solid #e1e1e1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.np-menu-type-selection ul{list-style-type:none;margin:0;padding:0;-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.06);box-shadow:0 1px 1px rgba(0, 0, 0, 0.06);border:1px solid #e5e5e5;-webkit-border-radius:3px;border-radius:3px;border:0;}.np-menu-type-selection ul li{margin:0;border:1px solid #e5e5e5;border-top:0;}.np-menu-type-selection ul li a{background-color:#ffffff;display:block;text-decoration:none;padding:15px 10px;position:relative;color:#333333;font-weight:bold;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;}.np-menu-type-selection ul li a:hover{background-color:#ebebeb;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;}.np-menu-type-selection ul li a:after{position:absolute;font-family:"dashicons";content:"\f140";font-size:18px;right:10px;top:15px;color:#808080;}.np-menu-type-selection ul li a.active:after{content:"\f142";}.np-menu-type-selection ul li a.np-custom-link:after{content:"\f139";}.np-menu-type-selection ul li a.np-custom-link.active{background-color:#0074a2;color:#ffffff;}.np-menu-type-selection ul li a.np-custom-link.active:after{content:"\f335";color:#ffffff;}.np-menu-type-selection ul li a:active,.np-menu-type-selection ul li a:focus{-webkit-box-shadow:none;box-shadow:none;}.np-menu-type-selection ul li a.no-terms{color:#b3b3b3;}.np-menu-type-selection ul li a.no-terms span{float:right;font-weight:normal;font-style:oblique;}.np-menu-type-selection ul li a.no-terms:after{content:'';}.np-menu-type-selection ul li a.no-terms:hover{background-color:#ffffff;cursor:default;}.np-menu-type-selection ul li a.no-terms.section{padding:8px 10px;background-color:#333;color:#ffffff;}.np-menu-type-selection ul li:first-child{border-top:1px solid #e5e5e5;}.np-menu-type-selection ul li ul{display:none;-webkit-box-shadow:none;box-shadow:none;padding:10px;background-color:#ffffff;}.np-menu-type-selection ul li ul li{border-color:#e0e0e0;}.np-menu-type-selection ul li ul li a{padding:8px;background-color:#f9f9f9;font-weight:normal;}.np-menu-type-selection ul li ul li a:after{content:"\f139";top:8px;right:5px;}.np-menu-type-selection ul li ul li a.active{background-color:#0074a2;color:#ffffff;}.np-menu-type-selection ul li ul li a.active:after{content:"\f335";color:#ffffff;}.np-menu-link-object{width:65%;float:right;height:100%;overflow:auto;}.np-menu-link-object-placeholder{text-align:center;position:relative;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%);color:#b3b3b3;}.np-menu-search{padding:10px;background-color:#f9f9f9;}.np-menu-search input[type="text"]{width:100%;height:35px;}.np-menu-search .np-menu-search-loading{display:none;height:30px;background:url('../images/spinner.gif') no-repeat;background-position:center;}.np-menu-search .np-menu-search-noresults{display:none;text-align:center;padding-top:8px;font-style:oblique;}.np-menu-link-details{padding:20px;}.np-menu-link-details h3{margin-top:0;}.np-menu-link-details h3 em{float:right;font-size:13px;font-weight:normal;font-style:normal;color:#808080;}.np-menu-link-details .original-link{border:1px solid #e5e5e5;font-size:12px;margin-bottom:15px;padding:5px;font-style:oblique;}.np-menu-link-details .fields{background-color:#f9f9f9;padding:15px;}.np-menu-link-details p{margin-top:0;}.np-menu-link-details .checkbox{margin-bottom:10px;}.np-menu-link-details label{display:block;}.np-menu-link-details input[type="text"]{width:100%;}.nestedpages-settings-table{border:1px solid #d9d9d9;border-collapse:collapse;}.nestedpages-settings-table thead th{background-color:#d9d9d9;padding:5px;}.nestedpages-settings-table tbody tr td{padding:5px;border-left:1px solid #e0e0e0;}.nestedpages-settings-table tbody tr td:first-child{border:0;}.nestedpages-settings-table tbody tr:nth-child(odd) td{background-color:#ffffff;}.nestedpages-settings-table i{font-size:20px;}
1
+ body{-webkit-animation-delay:0.1s;-webkit-animation-name:fontfix;-webkit-animation-duration:0.1s;-webkit-animation-iteration-count:1;-webkit-animation-timing-function:linear}@-webkit-keyframes fontfix{from{opacity:1}to{opacity:1}}@font-face{font-family:'nestedpages';src:url("fonts/nestedpages.eot")}@font-face{font-family:'nestedpages';src:url("data:application/x-font-ttf;charset=utf-8;base64,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") format("truetype");font-weight:normal;font-style:normal}[class^="np-icon-"],[class*=" np-icon-"]{font-family:'nestedpages' !important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.np-icon-pencil:before{content:"\e254"}.np-icon-lock:before{content:"\e897"}.np-icon-tag:before{content:"\e54e"}.np-icon-more_vert:before{content:"\e5d4"}.np-icon-page:before{content:"\e901"}.np-icon-post:before{content:"\e900"}.np-icon-no:before{content:"\e601"}.np-icon-yes:before{content:"\e602"}.np-icon-menu:before{content:"\e603"}.np-icon-arrow-down:before{content:"\e604"}.np-icon-arrow-right:before{content:"\e605"}.np-icon-sub-menu:before{content:"\e600"}.np-icon-bubble:before{content:"\e607"}.np-icon-remove:before{content:"\e60a"}.np-icon-list:before{content:"\e60d"}.np-icon-menu2:before{content:"\e606"}.np-icon-link:before{content:"\e612"}.np-icon-eye:before{content:"\e60b"}.np-icon-eye-blocked:before{content:"\e60c"}.np-icon-plus:before{content:"\e611"}.np-btn,.np-toggle-edit{text-decoration:none;color:#555;display:inline-block;background-color:#f7f7f7;border:1px solid #e1e1e1;padding:5px 8px;-webkit-transition:all 200ms ease;transition:all 200ms ease}.np-btn:hover,.np-toggle-edit:hover{background-color:#0074a2;color:#fff;-webkit-transition:all 200ms ease;transition:all 200ms ease;border-color:#0074a2}.np-btn:disabled,.np-toggle-edit:disabled,.np-btn.disabled,.disabled.np-toggle-edit{opacity:.6;cursor:not-allowed}.np-btn-half{float:left;width:47%;padding:3px 0px;text-align:center}.np-btn-half.btn-right{float:right}.np-btn-trash{background-color:#e14d43;border-color:#e14d43;color:#fff}.np-btn-trash:hover{background-color:#ba281e;border-color:#ba281e}.np-toggle-edit{display:none;float:right;margin-right:10px}.np-toggle-edit.active{background-color:#0074a2;color:#fff;-webkit-box-shadow:none;box-shadow:none;border-color:#0074a2}@media (max-width: 767px){.np-toggle-edit{display:inline-block}}.np-quickedit-error{border-left:4px solid #dd3d36;padding:4px 0 4px 8px;margin-bottom:10px;background-color:#f9f9f9}.modal-open{overflow:hidden}.np-modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;-webkit-overflow-scrolling:touch;outline:0}.np-modal .modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000;opacity:.85;z-index:9999}.np-modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;transition:-webkit-transform 0.3s ease-out;transition:transform 0.3s ease-out;transition:transform 0.3s ease-out, -webkit-transform 0.3s ease-out}.np-modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0)}.np-modal .modal-open .modal{overflow-x:hidden;overflow-y:auto}.np-modal .modal-dialog{position:relative;width:90%;height:80%;margin:10px auto 0px auto;max-width:800px;z-index:9999}.np-modal .modal-content{position:relative;background-color:#fff;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:0}.np-modal .modal-header{padding:8px;background-color:#ebebeb}.np-modal .modal-header .sr-only{display:none}.np-modal .modal-header .close{margin-top:-2px}.np-modal .modal-title{margin:0}.np-modal .modal-body{position:relative;padding:10px}.np-modal .modal-body.new-child{padding:0}.np-modal .modal-footer{padding:10px;text-align:right;background-color:#404040;zoom:1}.np-modal .modal-footer:before,.np-modal .modal-footer:after{content:" ";display:table}.np-modal .modal-footer:after{clear:both}.np-modal .modal-footer .modal-close{float:left}.np-modal .modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.clone-modal h3{margin:0;padding:8px;background-color:#e5e5e5}.clone-modal .form-control{margin:0 !important;padding:5px 10px}.np-trash-modal{text-align:center}.np-trash-modal .modal-body{padding-bottom:30px}.np-trash-modal .button-primary{margin-left:10px}.np-inline-overlay{position:fixed;width:100%;height:100%;background-color:rgba(0,0,0,0.4);z-index:998;top:0;right:0;bottom:0;left:0;opacity:0;-webkit-transition:opacity 200ms ease;transition:opacity 200ms ease}.np-inline-overlay.active{opacity:1;-webkit-transition:opacity 200ms ease;transition:opacity 200ms ease}.np-inline-modal{position:relative;z-index:999;background-color:#fff;-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:0px 0px 4px 0px rgba(0,0,0,0.5);box-shadow:0px 0px 4px 0px rgba(0,0,0,0.5)}.nestedpages-listing-title{float:left}.nestedpages .updated{clear:both}.nestedpages-toggleall.np-btn,.nestedpages-toggleall.np-toggle-edit{float:right}.np-toggle-publish{color:#999}.np-toggle-publish.active{color:#333;font-weight:bold}.np-sync-menu-cont{float:right;margin:0px 15px 0px 0px}.np-sync-menu-cont button{position:relative;top:-5px;padding:5px 8px}.np-sync-menu-cont label{position:relative;top:4px}#nested-loading{display:none;float:right;width:30px;margin:0px 20px 0 0}.nestedpages-top-toggles{zoom:1;padding-top:10px}.nestedpages-top-toggles:before,.nestedpages-top-toggles:after{content:" ";display:table}.nestedpages-top-toggles:after{clear:both}.np-tabs{background-color:#ebebeb;padding:0px}.np-tabs ul{text-align:left;list-style-type:none;margin:0;padding:0}.np-tabs ul li{display:inline-block;margin:0}.np-tabs ul li a{display:block;text-decoration:none;padding:5px 10px}.np-tabs ul li a.active{position:relative;color:#333;background-color:#fff}.np-tabs ul li a:focus,.np-tabs ul li a:active{outline:none;-webkit-box-shadow:none;box-shadow:none}.nestedpages-datepicker.ui-datepicker{background-color:#fff;font-size:90%;-webkit-box-shadow:0px 0px 3px 0px rgba(0,0,0,0.4);box-shadow:0px 0px 3px 0px rgba(0,0,0,0.4);-webkit-border-radius:3px;border-radius:3px;padding:0;width:auto}.nestedpages-datepicker.ui-datepicker .ui-datepicker-next,.nestedpages-datepicker.ui-datepicker .ui-datepicker-prev{position:absolute;color:#fff;top:0px;right:0px;cursor:pointer;display:block;width:35px;height:35px;font-size:0;background:url("../images/datepicker-arrow-next.png");background-position:center;opacity:1;-webkit-transition:opacity 200ms ease;transition:opacity 200ms ease}.nestedpages-datepicker.ui-datepicker .ui-datepicker-next:hover,.nestedpages-datepicker.ui-datepicker .ui-datepicker-prev:hover{opacity:.5;-webkit-transition:opacity 200ms ease;transition:opacity 200ms ease}.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar{margin:0}.nestedpages-datepicker.ui-datepicker .ui-datepicker-prev{right:auto;left:0px;background:url("../images/datepicker-arrow-prev.png")}.nestedpages-datepicker.ui-datepicker .ui-datepicker-header{padding:0}.nestedpages-datepicker.ui-datepicker .ui-datepicker-title{background-color:#1a1a1a;text-align:center;color:#fff;height:35px;line-height:35px;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;margin:0}.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar{border-collapse:collapse}.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar table{width:auto}.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar th,.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar td{text-align:center;width:30px;height:30px}.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar th{background-color:#e6e6e6;text-transform:uppercase;font-size:11px;letter-spacing:1px;padding:0}.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar td{border-top:1px solid #ebebeb;border-left:1px solid #ebebeb;padding:0}.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar td:first-child{border-left:0}.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar a{text-align:center;padding:0;text-decoration:none;color:#333;display:block;background-color:#fff;-webkit-transition:all 200ms ease;transition:all 200ms ease;width:30px;height:30px;line-height:30px}.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar a.ui-state-active{background-color:#1a1a1a;color:#fff}.nestedpages-datepicker.ui-datepicker .ui-datepicker-calendar a:hover{background-color:#333;color:#fff;-webkit-transition:all 200ms ease;transition:all 200ms ease}.nestedpages-tools{zoom:1;clear:both;clear:both;margin:20px 0px 5px 0px}.nestedpages-tools:before,.nestedpages-tools:after{content:" ";display:table}.nestedpages-tools:after{clear:both}.nestedpages-tools .subsubsub{margin:0}.nestedpages-tools .np-tools-primary{clear:left;padding-top:8px}.nestedpages-tools .select{float:left;margin-left:5px}.nestedpages-tools .select.first{margin-left:0}.nestedpages-tools .np-tools-sort{float:left}.nestedpages-tools .np-tools-search{float:right}.wppages-handle-expand{float:left;background-color:#f2f2f2;font-size:18px;width:46px;height:46px;margin-right:5px;text-align:center;border-right:1px solid #e1e1e1}.wppages-handle-expand div{background-color:#fff;border:1px solid #e1e1e1;width:24px;height:24px;line-height:24px;-webkit-border-radius:15px;border-radius:15px;margin-top:9px;cursor:pointer;-webkit-transition:all 200ms ease;transition:all 200ms ease}.wppages-handle-expand div:hover{background-color:#0074a2;border-color:#0074a2;color:#fff;-webkit-transition:all 200ms ease;transition:all 200ms ease}.nestedpages{clear:both;-webkit-border-radius:4px;border-radius:4px}.nestedpages .ui-sortable-placeholder{display:block !important;position:relative;min-height:46px;border:0;border:1px dashed #0074a2 !important;background-color:#effaff;margin:0}.nestedpages .ui-sortable-helper{opacity:0.8;-webkit-box-shadow:2px 2px 3px 0px rgba(0,0,0,0.5);box-shadow:2px 2px 3px 0px rgba(0,0,0,0.5)}.nestedpages ol{list-style-type:none;clear:both;margin:0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.06);box-shadow:0 1px 1px rgba(0,0,0,0.06);border:1px solid #e5e5e5;-webkit-border-radius:3px;border-radius:3px}.nestedpages ol a{text-decoration:none}.nestedpages ol .page-link .edit-indicator{margin-left:10px;display:none}.nestedpages ol .page-link .edit-indicator i{font-size:12px;margin-right:3px}.nestedpages ol .page-link:hover .edit-indicator{display:inline}.nestedpages ol .np-page-type{color:#333}.nestedpages ol .locked{color:#333;margin-left:20px}.nestedpages ol .locked em{font-style:normal}.nestedpages ol .status{color:#999}.nestedpages ol .np-icon-eye-blocked{color:#999}.nestedpages ol .nav-status{color:#b3b3b3}.nestedpages ol .np-hide{display:none}.nestedpages ol .np-seo-indicator{display:block;position:absolute;right:10px;top:50%;margin-top:-6px;width:12px;height:12px;-webkit-border-radius:50%;border-radius:50%;background-color:#999}.nestedpages ol .np-seo-indicator.good{background-color:#7ad03a}.nestedpages ol .np-seo-indicator.ok{background-color:#ffba00}.nestedpages ol .np-seo-indicator.poor{background-color:#ee7c1b}.nestedpages ol .np-seo-indicator.bad{background-color:#dd3d36}.nestedpages ol .np-seo-indicator.warn{background-color:maroon}.nestedpages ol .np-seo-indicator.wrong{background-color:red}.nestedpages ol .np-seo-indicator.noindex{background-color:#1e8cbe}.nestedpages ol li{margin:0;border-top:1px solid #e1e1e1;background-color:#0074a2}.nestedpages ol li.first{border:0}.nestedpages ol li:first-child{border:0}.nestedpages ol li.no-border{border:0}.nestedpages ol ol{display:none;-webkit-border-radius:0;border-radius:0;list-style-type:none;border:0;-webkit-box-shadow:none;box-shadow:none;border-top:1px solid #e1e1e1}.nestedpages .np-search-results .np-hide{display:block}.nestedpages .child-toggle{display:table-cell;width:46px;background-color:#f0f0f0;text-align:center;position:relative}.nestedpages .child-toggle .child-toggle-spacer{height:46px;width:100%}.nestedpages .child-toggle a{position:absolute;top:50%;left:8px;margin-top:-16px;width:28px;height:28px;background-color:#fff;border:1px solid #e1e1e1;-webkit-border-radius:20px;border-radius:20px;font-size:20px;line-height:30px;color:#333;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:all 200ms ease;transition:all 200ms ease}.nestedpages .child-toggle a i{line-height:26px}.nestedpages .child-toggle a:hover{background-color:#0074a2;color:#fff;border-color:#0074a2}.nestedpages .handle{display:inline-block;cursor:move;font-size:20px;margin-top:-8px;position:relative;top:2px;color:#b3b3b3;-webkit-transition:all 200ms ease;transition:all 200ms ease}.nestedpages .handle:hover{-webkit-transition:all 200ms ease;transition:all 200ms ease;color:#0074a2}.nestedpages .np-icon-sub-menu{display:none;color:#999}.nestedpages .row.no-sort .page-title{padding-left:10px}.nestedpages .np-thumbnail{display:table-cell;width:80px;vertical-align:middle;zoom:1}.nestedpages .np-thumbnail:before,.nestedpages .np-thumbnail:after{content:" ";display:table}.nestedpages .np-thumbnail:after{clear:both}.nestedpages .np-thumbnail img{float:right;width:100%;height:auto}.nestedpages .np-thumbnail.large{width:150px}.nestedpages .np-thumbnail.small{width:50px}.nestedpages .np-thumbnail.link{background-color:#ebebeb;text-align:center}.nestedpages .np-thumbnail.link i{font-size:1.8em;opacity:.5}.nestedpages .np-bulk-checkbox{display:table-cell;width:33px;vertical-align:middle;text-align:center;background-color:#f0f0f0}.nestedpages .np-bulk-checkbox input[type="checkbox"]{margin-right:0}.nestedpages .handle,.nestedpages .np-icon-sub-menu{width:30px;text-align:center;vertical-align:middle}.nestedpages li ol .row .np-icon-sub-menu{display:inline-block}.nestedpages li ol .row .handle{display:none}.nestedpages li ol .row:hover .np-icon-sub-menu{display:none}.nestedpages li ol .row:hover .handle{display:inline-block}.nestedpages li ol .row.no-sort .np-icon-sub-menu{display:inline-block}.nestedpages .row{background-color:#fff;display:table;width:100%}.nestedpages .row:hover{background-color:#f0f0f0}.nestedpages .row.np-updated{background-color:#e9f7df;-webkit-transition:background-color 400ms ease;transition:background-color 400ms ease}.nestedpages .row.np-updated-show{background-color:#fff;-webkit-transition:background-color 400ms ease;transition:background-color 400ms ease}.nestedpages .row.search .page-title{padding-left:10px}.nestedpages .non-hierarchical-spacer{height:47px}.nestedpages .row-inner{display:table-cell;vertical-align:middle;position:relative}.nestedpages ol li ol .row-inner{padding-left:0px}.nestedpages ol li ol li ol .row-inner{padding-left:20px}.nestedpages ol li ol li ol li ol .row-inner{padding-left:40px}.nestedpages ol li ol li ol li ol li ol .row-inner{padding-left:60px}.nestedpages ol li ol li ol li ol li ol li ol .row-inner{padding-left:80px}.nestedpages .np-post-columns{float:right;margin:3px 20px 0px 0px;zoom:1}.nestedpages .np-post-columns:before,.nestedpages .np-post-columns:after{content:" ";display:table}.nestedpages .np-post-columns:after{clear:both}.nestedpages .np-post-columns ul li{background:transparent;color:gray;border:0;float:left;margin-left:8px;padding-left:8px;border-left:1px solid #ccc}.nestedpages .np-post-columns ul li:first-child{margin-left:0;padding-left:0;border:0}.nestedpages .has-yoast .np-post-columns{margin-right:30px}.nestedpages .action-buttons{display:none;position:absolute;right:10px;top:50%;margin-top:-15px}.nestedpages .action-buttons a{margin:0 0 0 -5px}.nestedpages .action-buttons a.np-btn-trash{margin-left:4px}.np-search{float:right}.nestedpages-list-header{background-color:#fff;border:1px solid #e1e1e1;border-bottom:0;height:46px;zoom:1}.nestedpages-list-header:before,.nestedpages-list-header:after{content:" ";display:table}.nestedpages-list-header:after{clear:both}.nestedpages-list-header .np-check-all{float:right;width:33px;text-align:center;line-height:46px;background-color:#f0f0f0}.nestedpages-list-header .np-check-all input[type="checkbox"]{margin:0}.nestedpages-list-header .np-check-all input[type="checkbox"].check-all-partial:checked:before{content:"-";margin:0;margin-top:-9px}.nestedpages-list-header .np-hidden-select-count{display:none;float:right;margin:0 1em 0 0;line-height:46px;font-style:oblique}.nestedpages-list-header .np-bulk-form{padding-right:3px;float:right;margin-right:5px;position:relative;top:9px}.nestedpages-list-header .np-bulk-form select,.nestedpages-list-header .np-bulk-form input[type="submit"]{display:inline-block}@media (min-width: 768px){.nestedpages .row:hover .action-buttons{display:block}.nestedpages .row:hover .np-post-columns{display:none}}@media (max-width: 767px){.nestedpages ol .page-link{line-height:24px}.nestedpages ol .page-link:hover span{display:none}.nestedpages ol .locked em{display:none}.nestedpages .child-toggle{background:transparent}.nestedpages .row{height:auto}.nestedpages .action-buttons{display:none;background-color:#0074a2;float:none;margin:0;padding:8px}.nestedpages .action-buttons a{margin-left:5px}}.nestedpages .quick-edit .form-interior,.nestedpages .new-child .form-interior{padding:10px}.nestedpages .quick-edit h3,.nestedpages .new-child h3{margin:0 0 8px 0;font-size:14px}.nestedpages .quick-edit h3 span,.nestedpages .new-child h3 span{float:right;font-size:12px}.nestedpages .quick-edit h3 span em,.nestedpages .new-child h3 span em{font-weight:normal;font-style:normal;color:gray}.nestedpages .quick-edit .fields,.nestedpages .new-child .fields{margin-bottom:10px;background:url("../images/border.png") repeat-y;background-position:center;zoom:1}.nestedpages .quick-edit .fields:before,.nestedpages .quick-edit .fields:after,.nestedpages .new-child .fields:before,.nestedpages .new-child .fields:after{content:" ";display:table}.nestedpages .quick-edit .fields:after,.nestedpages .new-child .fields:after{clear:both}.nestedpages .quick-edit .left,.nestedpages .new-child .left{float:left;width:48%}.nestedpages .quick-edit .right,.nestedpages .new-child .right{float:right;width:48%}.nestedpages .quick-edit label,.nestedpages .new-child label{font-style:oblique}.nestedpages .quick-edit .buttons,.nestedpages .new-child .buttons{clear:both;zoom:1;background-color:#404040;padding:8px}.nestedpages .quick-edit .buttons:before,.nestedpages .quick-edit .buttons:after,.nestedpages .new-child .buttons:before,.nestedpages .new-child .buttons:after{content:" ";display:table}.nestedpages .quick-edit .buttons:after,.nestedpages .new-child .buttons:after{clear:both}.nestedpages .quick-edit .form-control,.nestedpages .new-child .form-control{clear:both;zoom:1;margin-bottom:5px}.nestedpages .quick-edit .form-control:before,.nestedpages .quick-edit .form-control:after,.nestedpages .new-child .form-control:before,.nestedpages .new-child .form-control:after{content:" ";display:table}.nestedpages .quick-edit .form-control:after,.nestedpages .new-child .form-control:after{clear:both}.nestedpages .quick-edit .form-control input[type='text'],.nestedpages .quick-edit .form-control input[type='password'],.nestedpages .quick-edit .form-control select,.nestedpages .new-child .form-control input[type='text'],.nestedpages .new-child .form-control input[type='password'],.nestedpages .new-child .form-control select{float:right;width:75%}.nestedpages .quick-edit .form-control label,.nestedpages .new-child .form-control label{float:left;width:20%}.nestedpages .quick-edit .form-control.original-link,.nestedpages .new-child .form-control.original-link{background-color:#f9f9f9;border:1px solid #e1e1e1;padding:5px;font-style:oblique;margin-bottom:8px}.nestedpages .quick-edit .form-control.password label,.nestedpages .new-child .form-control.password label{width:25%}.nestedpages .quick-edit .form-control.password input[type="text"],.nestedpages .new-child .form-control.password input[type="text"]{float:left;width:35%}.nestedpages .quick-edit .form-control.password .private,.nestedpages .new-child .form-control.password .private{float:right;width:35%;margin-top:4px}.nestedpages .quick-edit .form-control.password .private label,.nestedpages .new-child .form-control.password .private label{width:auto;float:none}.nestedpages .quick-edit .form-control.np-datepicker-container .datetime,.nestedpages .new-child .form-control.np-datepicker-container .datetime{float:right;width:75%}.nestedpages .quick-edit .form-control.np-datepicker-container .np-time-container,.nestedpages .new-child .form-control.np-datepicker-container .np-time-container{float:left;width:45%;margin:0;position:relative}.nestedpages .quick-edit .form-control.np-datepicker-container .np-time-container input[type="text"],.nestedpages .new-child .form-control.np-datepicker-container .np-time-container input[type="text"]{float:left;width:55%}.nestedpages .quick-edit .form-control.np-datepicker-container .np-time-container select,.nestedpages .new-child .form-control.np-datepicker-container .np-time-container select{float:right;width:35%}.nestedpages .quick-edit .form-control.np-datepicker-container .np_datepicker,.nestedpages .new-child .form-control.np-datepicker-container .np_datepicker{float:left;width:45%;margin:0}.nestedpages .quick-edit .form-control.np-datepicker-container span,.nestedpages .new-child .form-control.np-datepicker-container span{float:left;width:10%;display:block;text-align:center;padding-top:3px}.nestedpages .quick-edit .form-control.full label,.nestedpages .new-child .form-control.full label{width:100%}.nestedpages .quick-edit .form-control.full.checkbox label,.nestedpages .new-child .form-control.full.checkbox label{padding:5px 0 5px 25%}.nestedpages .quick-edit .comments,.nestedpages .new-child .comments{float:right;width:75%;margin-bottom:10px;zoom:1}.nestedpages .quick-edit .comments:before,.nestedpages .quick-edit .comments:after,.nestedpages .new-child .comments:before,.nestedpages .new-child .comments:after{content:" ";display:table}.nestedpages .quick-edit .comments:after,.nestedpages .new-child .comments:after{clear:both}.nestedpages .quick-edit .dates,.nestedpages .new-child .dates{float:right;width:75%;margin-bottom:6px}.nestedpages .quick-edit .dates select,.nestedpages .new-child .dates select{width:25%}.nestedpages .quick-edit .dates input,.nestedpages .new-child .dates input{width:12%}.nestedpages .quick-edit .np-toggle-options,.nestedpages .new-child .np-toggle-options{background-color:#f2f2f2;padding:5px}.nestedpages .quick-edit .np-taxonomies,.nestedpages .quick-edit .np-menuoptions,.nestedpages .new-child .np-taxonomies,.nestedpages .new-child .np-menuoptions{display:none;clear:both;background-color:#f9f9f9;padding:8px;zoom:1;margin-top:5px}.nestedpages .quick-edit .np-taxonomies:before,.nestedpages .quick-edit .np-taxonomies:after,.nestedpages .quick-edit .np-menuoptions:before,.nestedpages .quick-edit .np-menuoptions:after,.nestedpages .new-child .np-taxonomies:before,.nestedpages .new-child .np-taxonomies:after,.nestedpages .new-child .np-menuoptions:before,.nestedpages .new-child .np-menuoptions:after{content:" ";display:table}.nestedpages .quick-edit .np-taxonomies:after,.nestedpages .quick-edit .np-menuoptions:after,.nestedpages .new-child .np-taxonomies:after,.nestedpages .new-child .np-menuoptions:after{clear:both}.nestedpages .quick-edit .np-taxonomy,.nestedpages .new-child .np-taxonomy{float:left;width:30%;margin-right:3.33%}.nestedpages .quick-edit .np-taxonomy .title,.nestedpages .new-child .np-taxonomy .title{font-weight:bold;margin-bottom:4px;display:block}.nestedpages .quick-edit .np-taxonomy li,.nestedpages .new-child .np-taxonomy li{background-color:#fff;border:0}.nestedpages .quick-edit .np-taxonomy textarea,.nestedpages .new-child .np-taxonomy textarea{width:100%;height:6.5em}.nestedpages .quick-edit .np-menuoptions,.nestedpages .new-child .np-menuoptions{padding:15px}.nestedpages .quick-edit .np-menuoptions label,.nestedpages .quick-edit .np-menuoptions input[type="text"],.nestedpages .new-child .np-menuoptions label,.nestedpages .new-child .np-menuoptions input[type="text"]{display:block;float:none;width:100%}.nestedpages .quick-edit .np-menuoptions .menuoptions-left,.nestedpages .new-child .np-menuoptions .menuoptions-left{float:left;width:47%}.nestedpages .quick-edit .np-menuoptions .menuoptions-right,.nestedpages .new-child .np-menuoptions .menuoptions-right{float:right;width:47%;padding-top:18px}.nestedpages .quick-edit .np-menuoptions .menuoptions-right label,.nestedpages .new-child .np-menuoptions .menuoptions-right label{margin-bottom:10px}.nestedpages .quick-edit .np-hide-options,.nestedpages .new-child .np-hide-options{display:none;background-color:#f0f0f0;-webkit-border-radius:3px;border-radius:3px;clear:both;padding:6px;-webkit-box-sizing:border-box;box-sizing:border-box}.nestedpages .quick-edit .np-hide-options p,.nestedpages .new-child .np-hide-options p{margin:0}.nestedpages .quick-edit .np-hide-options label,.nestedpages .new-child .np-hide-options label{display:block;margin-top:4px;font-style:normal}.nestedpages .quick-edit .new-page-titles,.nestedpages .new-child .new-page-titles{display:block;border:0}.nestedpages .quick-edit .new-page-titles li,.nestedpages .new-child .new-page-titles li{background:transparent;border:0;padding:4px;zoom:1}.nestedpages .quick-edit .new-page-titles li:before,.nestedpages .quick-edit .new-page-titles li:after,.nestedpages .new-child .new-page-titles li:before,.nestedpages .new-child .new-page-titles li:after{content:" ";display:table}.nestedpages .quick-edit .new-page-titles li:after,.nestedpages .new-child .new-page-titles li:after{clear:both}.nestedpages .quick-edit .new-page-titles li:nth-child(even),.nestedpages .new-child .new-page-titles li:nth-child(even){background-color:#f0f0f0}.nestedpages .quick-edit .new-page-titles li label,.nestedpages .new-child .new-page-titles li label{margin-top:7px}.nestedpages .quick-edit .new-page-titles .form-control,.nestedpages .new-child .new-page-titles .form-control{float:right;width:90%;clear:none}.nestedpages .quick-edit .new-page-titles .np-icon-menu,.nestedpages .new-child .new-page-titles .np-icon-menu{float:left;margin-top:0px;height:auto;line-height:26px}.nestedpages .quick-edit .new-page-titles .new-child-row div,.nestedpages .new-child .new-page-titles .new-child-row div{float:right;width:75%;margin:2px;zoom:1}.nestedpages .quick-edit .new-page-titles .new-child-row div:before,.nestedpages .quick-edit .new-page-titles .new-child-row div:after,.nestedpages .new-child .new-page-titles .new-child-row div:before,.nestedpages .new-child .new-page-titles .new-child-row div:after{content:" ";display:table}.nestedpages .quick-edit .new-page-titles .new-child-row div:after,.nestedpages .new-child .new-page-titles .new-child-row div:after{clear:both}.nestedpages .quick-edit .new-page-titles .new-child-row div input[type='text'],.nestedpages .new-child .new-page-titles .new-child-row div input[type='text']{float:left;width:80%}.nestedpages .quick-edit .new-page-titles .new-child-row div a,.nestedpages .new-child .new-page-titles .new-child-row div a{float:right}.np-modal.nestedpages .new-child .right .form-control input[type='text'],.np-modal.nestedpages .new-child .right .form-control input[type='password'],.np-modal.nestedpages .new-child .right .form-control select{float:none;width:100%}.np-modal.nestedpages .new-child .right .form-control label{float:none;width:100%}.np-modal.nestedpages .new-child .right .form-control.full label{padding-left:0}.np-modal.nestedpages .new-child .new-page-titles .form-control{width:85%}.np-modal.nestedpages .new-child .new-page-titles .form-control div{width:100%}.np-modal.nestedpages .new-child .left label{display:none}.np-qe-loading{display:none;float:right;width:25px;height:25px;margin:2px 10px 0 0;background:url("../images/loading-white.gif") no-repeat}@media (max-width: 767px){.nestedpages .quick-edit .fields{background:transparent}.nestedpages .quick-edit .left,.nestedpages .quick-edit .right{float:none;width:100%}.nestedpages .quick-edit .form-control{margin-bottom:10px}.nestedpages .quick-edit .form-control input[type='text'],.nestedpages .quick-edit .form-control input[type='password'],.nestedpages .quick-edit .form-control select{float:none;width:100%}.nestedpages .quick-edit .form-control label{display:block;float:none;width:100%;margin-bottom:4px}.nestedpages .quick-edit .form-control.np-datepicker-container .datetime{float:none;width:100%}.nestedpages .quick-edit .comments{float:none;width:100%}.nestedpages .quick-edit .dates{float:none;width:100%;margin-bottom:6px}}.np-modal-form .form-interior{zoom:1;background:url("../images/border.png") repeat-y;background-position:center;padding:5px 0}.np-modal-form .form-interior:before,.np-modal-form .form-interior:after{content:" ";display:table}.np-modal-form .form-interior:after{clear:both}.np-modal-form .form-control{zoom:1;margin-bottom:10px}.np-modal-form .form-control:before,.np-modal-form .form-control:after{content:" ";display:table}.np-modal-form .form-control:after{clear:both}.np-modal-form .checkbox{margin-bottom:10px}.np-modal-form .left{float:left;width:45%}.np-modal-form .right{float:right;width:45%;padding-top:18px}.np-modal-form label{display:block}.np-modal-form input[type="text"],.np-modal-form select{width:100%}.np-modal-form .buttons{clear:both}.modal-body.np-menu-item-form{height:400px;padding:0;border-top:1px solid #e1e1e1}.np-menu-type-selection{float:left;height:100%;overflow:auto;width:35%;padding:15px;background-color:#f9f9f9;border-right:1px solid #e1e1e1;-webkit-box-sizing:border-box;box-sizing:border-box}.np-menu-type-selection ul{list-style-type:none;margin:0;padding:0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.06);box-shadow:0 1px 1px rgba(0,0,0,0.06);border:1px solid #e5e5e5;-webkit-border-radius:3px;border-radius:3px;border:0}.np-menu-type-selection ul li{margin:0;border:1px solid #e5e5e5;border-top:0}.np-menu-type-selection ul li a{background-color:#fff;display:block;text-decoration:none;padding:15px 10px;position:relative;color:#333;font-weight:bold;-webkit-transition:all 200ms ease;transition:all 200ms ease}.np-menu-type-selection ul li a:hover{background-color:#ebebeb;-webkit-transition:all 200ms ease;transition:all 200ms ease}.np-menu-type-selection ul li a:after{position:absolute;font-family:"dashicons";content:"\f140";font-size:18px;right:10px;top:15px;color:gray}.np-menu-type-selection ul li a.active:after{content:"\f142"}.np-menu-type-selection ul li a.np-custom-link:after{content:"\f139"}.np-menu-type-selection ul li a.np-custom-link.active{background-color:#0074a2;color:#fff}.np-menu-type-selection ul li a.np-custom-link.active:after{content:"\f335";color:#fff}.np-menu-type-selection ul li a:active,.np-menu-type-selection ul li a:focus{-webkit-box-shadow:none;box-shadow:none}.np-menu-type-selection ul li a.no-terms{color:#b3b3b3}.np-menu-type-selection ul li a.no-terms span{float:right;font-weight:normal;font-style:oblique}.np-menu-type-selection ul li a.no-terms:after{content:''}.np-menu-type-selection ul li a.no-terms:hover{background-color:#fff;cursor:default}.np-menu-type-selection ul li a.no-terms.section{padding:8px 10px;background-color:#333;color:#fff}.np-menu-type-selection ul li:first-child{border-top:1px solid #e5e5e5}.np-menu-type-selection ul li ul{display:none;-webkit-box-shadow:none;box-shadow:none;padding:10px;background-color:#fff}.np-menu-type-selection ul li ul li{border-color:#e0e0e0}.np-menu-type-selection ul li ul li a{padding:8px;background-color:#f9f9f9;font-weight:normal}.np-menu-type-selection ul li ul li a:after{content:"\f139";top:8px;right:5px}.np-menu-type-selection ul li ul li a.active{background-color:#0074a2;color:#fff}.np-menu-type-selection ul li ul li a.active:after{content:"\f335";color:#fff}.np-menu-link-object{width:65%;float:right;height:100%;overflow:auto}.np-menu-link-object-placeholder{text-align:center;position:relative;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);color:#b3b3b3}.np-menu-search{padding:10px;background-color:#f9f9f9}.np-menu-search input[type="text"]{width:100%;height:35px}.np-menu-search .np-menu-search-loading{display:none;height:30px;background:url("../images/spinner.gif") no-repeat;background-position:center}.np-menu-search .np-menu-search-noresults{display:none;text-align:center;padding-top:8px;font-style:oblique}.np-menu-link-details{padding:20px}.np-menu-link-details h3{margin-top:0}.np-menu-link-details h3 em{float:right;font-size:13px;font-weight:normal;font-style:normal;color:gray}.np-menu-link-details .original-link{border:1px solid #e5e5e5;font-size:12px;margin-bottom:15px;padding:5px;font-style:oblique}.np-menu-link-details .fields{background-color:#f9f9f9;padding:15px}.np-menu-link-details p{margin-top:0}.np-menu-link-details .checkbox{margin-bottom:10px}.np-menu-link-details label{display:block}.np-menu-link-details input[type="text"]{width:100%}.nestedpages-settings-table{border:1px solid #d9d9d9;border-collapse:collapse}.nestedpages-settings-table thead th{background-color:#d9d9d9;padding:5px}.nestedpages-settings-table tbody tr td{padding:5px;border-left:1px solid #e0e0e0}.nestedpages-settings-table tbody tr td:first-child{border:0}.nestedpages-settings-table tbody tr:nth-child(odd) td{background-color:#fff}.nestedpages-settings-table i{font-size:20px}.nestedpages-settings-posttypes{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.06);box-shadow:0 1px 1px rgba(0,0,0,0.06);border:1px solid #e5e5e5;-webkit-border-radius:3px;border-radius:3px}.nestedpages-settings-posttypes .post-type{background-color:#fff;border-bottom:1px solid #e1e1e1}.nestedpages-settings-posttypes .post-type:last-child{border:0}.nestedpages-settings-posttypes .post-type .head{zoom:1;line-height:46px;background-color:#fff;padding-right:10px}.nestedpages-settings-posttypes .post-type .head:before,.nestedpages-settings-posttypes .post-type .head:after{content:" ";display:table}.nestedpages-settings-posttypes .post-type .head:after{clear:both}.nestedpages-settings-posttypes .post-type .head .checkbox{float:left;width:46px;height:46px;background-color:rgba(51,51,51,0.06);text-align:center;line-height:46px;margin-right:10px}.nestedpages-settings-posttypes .post-type .head label{float:left;line-height:46px;margin:0}.nestedpages-settings-posttypes .post-type .head label em{color:#999}.nestedpages-settings-posttypes .post-type .head .button{float:right;margin-top:10px}.nestedpages-settings-posttypes .post-type.active .head{background-color:#0074a2;color:#fff}.nestedpages-settings-posttypes .post-type .row{display:table;width:100%}.nestedpages-settings-posttypes .post-type .row .description{display:table-cell;width:25%;border-bottom:1px solid #e1e1e1;background-color:#f9f9f9;padding:10px}.nestedpages-settings-posttypes .post-type .row .description p{color:gray;font-size:.9em}.nestedpages-settings-posttypes .post-type .row .description strong{color:#333;font-size:1.2em}.nestedpages-settings-posttypes .post-type .row .field{display:table-cell;width:75%;background-color:#fff;border-bottom:1px solid #e1e1e1;border-left:1px solid #e1e1e1;padding:10px}.nestedpages-settings-posttypes .post-type .body{display:none}.nestedpages-settings-posttypes .post-type .body h4{margin:0;padding:10px 0 0 10px}.nestedpages-settings-posttypes .post-type .body .post-type-settings{margin:0}.nestedpages-settings-posttypes .post-type .body li{margin:0}.nestedpages-settings-posttypes .post-type .post-type-settings li:last-child .field,.nestedpages-settings-posttypes .post-type .post-type-settings li:last-child .description{border-bottom:0}.nestedpages-settings-posttypes .post-type .custom-fields,.nestedpages-settings-posttypes .post-type .standard-fields{display:none;padding-top:20px}.nestedpages-settings-posttypes .post-type .custom-fields .custom-field-group,.nestedpages-settings-posttypes .post-type .standard-fields .custom-field-group{height:150px;overflow:auto;background-color:#f9f9f9;padding:10px;border:1px solid #e1e1e1}.nestedpages-settings-posttypes .post-type .custom-fields h5,.nestedpages-settings-posttypes .post-type .standard-fields h5{padding:0;font-weight:normal;font-style:oblique;margin:0;color:#999;margin-bottom:6px}.nestedpages-settings-posttypes .post-type .custom-fields p,.nestedpages-settings-posttypes .post-type .standard-fields p{margin:0 0 6px 0;font-weight:bold}.nestedpages-settings-posttypes .post-type .custom-fields ul,.nestedpages-settings-posttypes .post-type .standard-fields ul{margin:0}.nestedpages-settings-posttypes .post-type .custom-fields ul.indented,.nestedpages-settings-posttypes .post-type .standard-fields ul.indented{padding-left:15px}.nestedpages-settings-posttypes .post-type .custom-fields ul li,.nestedpages-settings-posttypes .post-type .standard-fields ul li{margin:3px 0 0 0}.nestedpages-settings-posttypes .post-type .thumbnail-options{background-color:#f9f9f9;padding:10px;border:1px solid #e1e1e1;margin-top:1em}.nestedpages-settings-posttypes .post-type .thumbnail-options label{display:block}.nestedpages-settings-posttypes .post-type .thumbnail-options select{margin-bottom:1em}
assets/icon-128x128.png ADDED
Binary file
assets/js/lib/nestedpages-factory.js CHANGED
@@ -29,11 +29,20 @@ NestedPages.selectors = {
29
  errorDiv : '#np-error', // Error Alert
30
  loadingIndicator : '#nested-loading', // Loading Indicator,
31
  syncCheckbox : '.np-sync-menu', // Sync menu checkbox
 
32
  ajaxError : '[data-nestedpages-error]', // AJAX error notification
33
 
34
  // Responsive Toggle
35
  toggleEditButtons : '.np-toggle-edit', // Button that toggles responsive buttons
36
 
 
 
 
 
 
 
 
 
37
  // Quick Edit
38
  quickEditOverlay : '.np-inline-overlay', // The inline modal
39
  quickEditLoadingIndicator : '.np-qe-loading', // Loading indicator in Quick Edit
@@ -60,6 +69,12 @@ NestedPages.selectors = {
60
  linkErrorDiv : '.np-new-link-error', // Error Div in Link Modal
61
  linkForm : '.np-new-link-form', // The form element for a new link
62
 
 
 
 
 
 
 
63
  // New Page Items
64
  openPageModal : '.open-bulk-modal', // Opens the new page(s) modal
65
  newPageModal : '#np-bulk-modal', // The modal with the new page form
@@ -84,6 +99,15 @@ NestedPages.selectors = {
84
  tabButtonParent : '[data-np-tabs]', // Tab Parent
85
  tabButton : '[data-np-tab]', // Tab Link
86
  tabContent : '[data-np-tab-pane]', // Tab Pane
 
 
 
 
 
 
 
 
 
87
  }
88
 
89
 
@@ -125,7 +149,8 @@ NestedPages.formActions = {
125
  quickEditPost : 'npquickEdit',
126
  clonePost : 'npclonePost',
127
  search : 'npmenuSearch',
128
- newMenuItem : 'npnewMenuItem'
 
129
  }
130
 
131
 
@@ -139,6 +164,8 @@ NestedPages.Factory = function()
139
 
140
  plugin.formatter = new NestedPages.Formatter;
141
  plugin.responsive = new NestedPages.Responsive;
 
 
142
  plugin.menuToggle = new NestedPages.MenuToggle;
143
  plugin.pageToggle = new NestedPages.PageToggle;
144
  plugin.nesting = new NestedPages.Nesting;
@@ -149,6 +176,9 @@ NestedPages.Factory = function()
149
  plugin.clone = new NestedPages.Clone;
150
  plugin.tabs = new NestedPages.Tabs;
151
  plugin.menuLinks = new NestedPages.MenuLinks;
 
 
 
152
 
153
  plugin.init = function()
154
  {
@@ -171,6 +201,7 @@ NestedPages.Factory = function()
171
  });
172
  $(document).ready(function(){
173
  plugin.formatter.hideAjaxError();
 
174
  });
175
  }
176
 
@@ -178,7 +209,7 @@ NestedPages.Factory = function()
178
  // Set whether or not post type is nestable
179
  plugin.setNestable = function()
180
  {
181
- var nestable = true;
182
  $.each(NestedPages.jsData.allPostTypes, function(i, v){
183
  if ( v.name !== NestedPages.jsData.posttype ) return;
184
  if ( v.hierarchical === true ) nestable = true;
29
  errorDiv : '#np-error', // Error Alert
30
  loadingIndicator : '#nested-loading', // Loading Indicator,
31
  syncCheckbox : '.np-sync-menu', // Sync menu checkbox
32
+ syncForm: '.np-sync-menu-cont', // The form/container for the sync menu element
33
  ajaxError : '[data-nestedpages-error]', // AJAX error notification
34
 
35
  // Responsive Toggle
36
  toggleEditButtons : '.np-toggle-edit', // Button that toggles responsive buttons
37
 
38
+ // Bulk Actions
39
+ bulkActionsForm : '[data-np-bulk-form]',
40
+ bulkActionsCheckbox : '[data-np-bulk-checkbox]',
41
+ bulkActionsIds : '[data-np-bulk-ids]',
42
+ bulkActionRedirectIds : '[data-np-bulk-redirect-ids]',
43
+ hiddenItemCount : '[data-np-hidden-count]',
44
+ hiddenItemCountParent : '[data-np-hidden-count-parent]',
45
+
46
  // Quick Edit
47
  quickEditOverlay : '.np-inline-overlay', // The inline modal
48
  quickEditLoadingIndicator : '.np-qe-loading', // Loading indicator in Quick Edit
69
  linkErrorDiv : '.np-new-link-error', // Error Div in Link Modal
70
  linkForm : '.np-new-link-form', // The form element for a new link
71
 
72
+ // Link Deletion
73
+ linkDeleteButton : '[data-np-confirm-delete]',
74
+ linkDeleteConfirmationButton : '[data-delete-confirmation]',
75
+ linkDeleteConfirmationModal : '#np-delete-confirmation-modal',
76
+ linkDeleteConfirmationModalText : '[data-np-link-delete-text]',
77
+
78
  // New Page Items
79
  openPageModal : '.open-bulk-modal', // Opens the new page(s) modal
80
  newPageModal : '#np-bulk-modal', // The modal with the new page form
99
  tabButtonParent : '[data-np-tabs]', // Tab Parent
100
  tabButton : '[data-np-tab]', // Tab Link
101
  tabContent : '[data-np-tab-pane]', // Tab Pane
102
+
103
+ // Thumbnails
104
+ thumbnailContainer : '.np-thumbnail', // Container for Thumbnail
105
+ thumbnailContainerLink : '.np-thumbnail.link', // Link Thumbnail Container
106
+
107
+ // Manual Sync Buttons
108
+ manualMenuSync : '[data-np-manual-menu-sync]', // Button for Triggering Manual Menu Sync
109
+ manualOrderSync : '[data-np-manual-order-sync]', // Button for Triggering Manual Order Sync
110
+
111
  }
112
 
113
 
149
  quickEditPost : 'npquickEdit',
150
  clonePost : 'npclonePost',
151
  search : 'npmenuSearch',
152
+ newMenuItem : 'npnewMenuItem',
153
+ manualMenuSync : 'npmanualMenuSync'
154
  }
155
 
156
 
164
 
165
  plugin.formatter = new NestedPages.Formatter;
166
  plugin.responsive = new NestedPages.Responsive;
167
+ plugin.checkAll = new NestedPages.CheckAll;
168
+ plugin.bulkActions = new NestedPages.BulkActions;
169
  plugin.menuToggle = new NestedPages.MenuToggle;
170
  plugin.pageToggle = new NestedPages.PageToggle;
171
  plugin.nesting = new NestedPages.Nesting;
176
  plugin.clone = new NestedPages.Clone;
177
  plugin.tabs = new NestedPages.Tabs;
178
  plugin.menuLinks = new NestedPages.MenuLinks;
179
+ plugin.hiddenItemCount = new NestedPages.HiddenItemCount;
180
+ plugin.confirmDelete = new NestedPages.ConfirmDelete;
181
+ plugin.manualSync = new NestedPages.ManualSync;
182
 
183
  plugin.init = function()
184
  {
201
  });
202
  $(document).ready(function(){
203
  plugin.formatter.hideAjaxError();
204
+ plugin.formatter.sizeLinkThumbnails();
205
  });
206
  }
207
 
209
  // Set whether or not post type is nestable
210
  plugin.setNestable = function()
211
  {
212
+ var nestable = false;
213
  $.each(NestedPages.jsData.allPostTypes, function(i, v){
214
  if ( v.name !== NestedPages.jsData.posttype ) return;
215
  if ( v.hierarchical === true ) nestable = true;
assets/js/lib/nestedpages.bulk-actions.js ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var NestedPages = NestedPages || {};
2
+
3
+ /**
4
+ * Bulk Actions for Nested View
5
+ * @package Nested Pages
6
+ * @author Kyle Phillips - https://github.com/kylephillips/wp-nested-pages
7
+ */
8
+ NestedPages.BulkActions = function()
9
+ {
10
+ var plugin = this;
11
+ var $ = jQuery;
12
+
13
+ plugin.selectedNumber = 0;
14
+
15
+ plugin.init = function()
16
+ {
17
+ plugin.bindEvents();
18
+ }
19
+
20
+ plugin.bindEvents = function()
21
+ {
22
+ $(document).on('change', NestedPages.selectors.bulkActionsCheckbox, function(){
23
+ plugin.toggleBulkForm();
24
+ });
25
+ }
26
+
27
+ /**
28
+ * Toggle the Bulk Actions Form & Populate the Hidden ID Fields for posts and redirects
29
+ */
30
+ plugin.toggleBulkForm = function()
31
+ {
32
+ var checked = false;
33
+ var checked_ids = '';
34
+ var checked_redirect_ids = '';
35
+ $.each($(NestedPages.selectors.bulkActionsCheckbox), function(){
36
+ if ( $(this).is(':checked') ) {
37
+ var row = $(this).parents(NestedPages.selectors.rows);
38
+ checked = true;
39
+ if ( !$(this).parent('div').hasClass('np-check-all') && !$(row).hasClass('post-type-np-redirect') ) checked_ids += $(this).val() + ',';
40
+ if ( $(row).hasClass('post-type-np-redirect') ) checked_redirect_ids += $(this).val() + ',';
41
+ }
42
+ });
43
+ if ( checked ){
44
+ $(NestedPages.selectors.bulkActionsForm).show();
45
+ $(NestedPages.selectors.bulkActionsIds).val(checked_ids);
46
+ $(NestedPages.selectors.bulkActionRedirectIds).val(checked_redirect_ids);
47
+ plugin.setSelectedNumber();
48
+ return;
49
+ }
50
+ $(NestedPages.selectors.bulkActionsIds).val('');
51
+ $(NestedPages.selectors.bulkActionsForm).hide();
52
+ }
53
+
54
+ /**
55
+ * Set the number of total selected
56
+ */
57
+ plugin.setSelectedNumber = function()
58
+ {
59
+ var checkedLength = $(NestedPages.selectors.bulkActionsCheckbox + ':checked').not('.np-check-all input').length;
60
+ var option = $(NestedPages.selectors.bulkActionsForm).find('select option').first();
61
+ $(option).text(nestedpages.bulk_actions + ' (' + checkedLength + ')');
62
+ }
63
+
64
+ return plugin.init();
65
+ }
assets/js/lib/nestedpages.check-all.js ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var NestedPages = NestedPages || {};
2
+
3
+ /**
4
+ * Check All functionality for Nested Pages
5
+ * @package Nested Pages
6
+ * @author Kyle Phillips - https://github.com/kylephillips/wp-nested-pages
7
+ */
8
+ NestedPages.CheckAll = function()
9
+ {
10
+ var plugin = this;
11
+ var $ = jQuery;
12
+
13
+ plugin.activeCheckbox = "";
14
+
15
+ plugin.selectors = {
16
+ checkbox : '[data-np-check-all]',
17
+ }
18
+
19
+ plugin.bindEvents = function()
20
+ {
21
+ $(document).on('change', plugin.selectors.checkbox, function(){
22
+ plugin.activeCheckbox = $(this);
23
+ plugin.toggleCheckboxes();
24
+ });
25
+ $(document).on('change', 'input[type=checkbox]', function(){
26
+ plugin.checkAllStatus($(this));
27
+ });
28
+ }
29
+
30
+ plugin.init = function()
31
+ {
32
+ plugin.bindEvents();
33
+ }
34
+
35
+ plugin.toggleCheckboxes = function()
36
+ {
37
+ var checked = ( $(plugin.activeCheckbox).is(':checked') ) ? true : false;
38
+ var name = $(plugin.activeCheckbox).attr('data-np-check-all');
39
+
40
+ var checkboxes = $('*[name="' + name + '"]');
41
+ $.each(checkboxes, function(){
42
+ var row = $(this).parents(NestedPages.selectors.rows);
43
+ $(this).prop('checked', checked);
44
+ // Uncheck any hidden checkboxes
45
+ if ( $(row).hasClass('np-hide') && !$(row).is(':visible') ) {
46
+ $(row).find(NestedPages.selectors.bulkActionsCheckbox).prop('checked', false)
47
+ };
48
+ });
49
+
50
+ plugin.toggleCheckAll();
51
+ }
52
+
53
+ /**
54
+ * Toggle the "Partial" class for the checkall checkbox
55
+ */
56
+ plugin.toggleCheckAll = function()
57
+ {
58
+ var name = $(plugin.activeCheckbox).attr('data-np-check-all');
59
+
60
+ var checkboxes_total = $('*[name="' + name + '"]').length;
61
+ var hidden_checkboxes = $('.np-hide').find(NestedPages.selectors.bulkActionsCheckbox).length;
62
+ var hidden_checkboxes_visible = $('.np-hide:visible').find(NestedPages.selectors.bulkActionsCheckbox).length;
63
+
64
+ checkboxes_total = ( checkboxes_total - hidden_checkboxes ) + hidden_checkboxes_visible;
65
+
66
+ var checkboxes_checked = $('*[name="' + name + '"]:checked').length;
67
+
68
+ if ( checkboxes_total == checkboxes_checked ){
69
+ $(plugin.activeCheckbox).prop('checked', true);
70
+ $(plugin.activeCheckbox).removeClass('check-all-partial');
71
+ return;
72
+ }
73
+ if ( checkboxes_checked > 0 ){
74
+ $(plugin.activeCheckbox).addClass('check-all-partial');
75
+ return;
76
+ }
77
+ $(plugin.activeCheckbox).attr('checked', false);
78
+ $(plugin.activeCheckbox).removeClass('check-all-partial');
79
+ }
80
+
81
+ plugin.checkAllStatus = function(checkbox)
82
+ {
83
+ var name = $(checkbox).attr('name');
84
+ var toggleAllCheckbox = $('*[data-np-check-all="' + name + '"]');
85
+ if ( toggleAllCheckbox.length === 0 ) return;
86
+ plugin.activeCheckbox = $(toggleAllCheckbox)[0];
87
+ plugin.toggleCheckAll();
88
+ }
89
+
90
+ return plugin.init();
91
+ }
assets/js/lib/nestedpages.confirm-delete.js CHANGED
@@ -1,47 +1,69 @@
 
 
1
  /**
2
- * Confirm deletion of a link
3
  * @package Nested Pages
4
  * @author Kyle Phillips - https://github.com/kylephillips/wp-nested-pages
5
  */
6
- jQuery(document).ready(function(){
7
- new NestedPagesConfirmDelete;
8
- });
9
-
10
- var NestedPagesConfirmDelete = function()
11
  {
12
  var plugin = this;
13
  var $ = jQuery;
14
 
15
- // DOM Selectors
16
- plugin.deleteButton = '[data-np-confirm-delete]'; // delete button
17
- plugin.confirmButton = '[data-delete-confirmation]'; // Confirm button in modal
18
- plugin.warningModal = '#np-delete-confirmation-modal'; // Modal with empty confirmation
19
-
20
  // JS Data
21
  plugin.deleteLink = ''; // Link for deleting the item
22
 
23
- // Initialization
24
- plugin.init = function(){
25
- plugin.bindEvents();
26
- }
27
-
28
- // Bind Events
29
- plugin.bindEvents = function(){
30
- $(document).on('click', plugin.deleteButton, function(e){
31
  e.preventDefault();
32
- plugin.deleteLink = $(this).attr('href');
33
- $(plugin.warningModal).modal('show');
34
  });
35
- $(document).on('click', plugin.confirmButton, function(e){
36
  e.preventDefault();
37
- plugin.confirmEmpty();
 
 
 
 
 
 
 
38
  });
39
  }
40
 
41
- // Confirm Trash Empty
42
- plugin.confirmEmpty = function(){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
  window.location.replace(plugin.deleteLink);
44
  }
45
 
46
- return plugin.init();
47
  }
1
+ var NestedPages = NestedPages || {};
2
+
3
  /**
4
+ * Confirm deletion of links
5
  * @package Nested Pages
6
  * @author Kyle Phillips - https://github.com/kylephillips/wp-nested-pages
7
  */
8
+ NestedPages.ConfirmDelete = function()
 
 
 
 
9
  {
10
  var plugin = this;
11
  var $ = jQuery;
12
 
 
 
 
 
 
13
  // JS Data
14
  plugin.deleteLink = ''; // Link for deleting the item
15
 
16
+ plugin.bindEvents = function()
17
+ {
18
+ $(document).on('click', NestedPages.selectors.linkDeleteButton, function(e){
 
 
 
 
 
19
  e.preventDefault();
20
+ plugin.confirmSingle($(this));
 
21
  });
22
+ $(document).on('click', NestedPages.selectors.linkDeleteConfirmationButton, function(e){
23
  e.preventDefault();
24
+ if ( !$(this).hasClass('bulk') ){
25
+ plugin.deleteSingle();
26
+ return;
27
+ }
28
+ plugin.deleteMultiple();
29
+ });
30
+ $(document).on('submit', NestedPages.selectors.bulkActionsForm, function(e){
31
+ plugin.confirmMultiple(e);
32
  });
33
  }
34
 
35
+ // Confirm a single link deletion
36
+ plugin.confirmSingle = function(button)
37
+ {
38
+ plugin.deleteLink = $(button).attr('href');
39
+ $(NestedPages.selectors.linkDeleteConfirmationModalText).text(nestedpages.link_delete_confirmation_singular);
40
+ $(NestedPages.selectors.linkDeleteConfirmationButton).text(nestedpages.delete).removeClass('bulk');
41
+ $(NestedPages.selectors.linkDeleteConfirmationModal).modal('show');
42
+ }
43
+
44
+ // Confirm Multiple link deletion
45
+ plugin.confirmMultiple = function(event)
46
+ {
47
+ if ( $('select[name="np_bulk_action"]').val() !== 'trash' ) return;
48
+ var linkCount = $(NestedPages.selectors.bulkActionRedirectIds).val();
49
+ if ( linkCount === '' ) return;
50
+ event.preventDefault();
51
+ $(NestedPages.selectors.linkDeleteConfirmationModalText).text(nestedpages.link_delete_confirmation);
52
+ $(NestedPages.selectors.linkDeleteConfirmationButton).text(nestedpages.trash_delete_links).addClass('bulk');
53
+ $(NestedPages.selectors.linkDeleteConfirmationModal).modal('show');
54
+ }
55
+
56
+ // Submit the form to delete multiple
57
+ plugin.deleteMultiple = function()
58
+ {
59
+ $(NestedPages.selectors.bulkActionsForm)[0].submit();
60
+ }
61
+
62
+ // Delete the single
63
+ plugin.deleteSingle = function()
64
+ {
65
  window.location.replace(plugin.deleteLink);
66
  }
67
 
68
+ return plugin.bindEvents();
69
  }
assets/js/lib/nestedpages.formatter.js CHANGED
@@ -25,7 +25,7 @@ NestedPages.Formatter = function()
25
  ? NestedPages.cssClasses.iconToggleDown
26
  : NestedPages.cssClasses.iconToggleRight;
27
 
28
- $(button).html('<a href="#"><i class="' + icon + '"></i></a>');
29
 
30
  if ( ($(row).children('ol').children('.np-hide').length > 0) && ($(row).children('ol').children('.np-hide.shown').length === 0) ){
31
  $(button).find('a').hide();
@@ -35,7 +35,7 @@ NestedPages.Formatter = function()
35
 
36
  continue;
37
  }
38
- $(button).empty(); // No Child Menu
39
  }
40
  }
41
 
@@ -55,7 +55,7 @@ NestedPages.Formatter = function()
55
  {
56
  $.each($(NestedPages.selectors.lists), function(i, v){
57
  var parent_count = $(this).parents(NestedPages.selectors.lists).length;
58
- var padding = 56;
59
  if ( parent_count > 0 ){
60
  var padding = ( parent_count * 20 ) + padding;
61
  $(this).find('.row-inner').css('padding-left', padding + 'px');
@@ -136,4 +136,16 @@ NestedPages.Formatter = function()
136
  }
137
 
138
 
 
 
 
 
 
 
 
 
 
 
 
 
139
  }
25
  ? NestedPages.cssClasses.iconToggleDown
26
  : NestedPages.cssClasses.iconToggleRight;
27
 
28
+ $(button).html('<div class="child-toggle-spacer"></div><a href="#"><i class="' + icon + '"></i></a>');
29
 
30
  if ( ($(row).children('ol').children('.np-hide').length > 0) && ($(row).children('ol').children('.np-hide.shown').length === 0) ){
31
  $(button).find('a').hide();
35
 
36
  continue;
37
  }
38
+ $(button).empty().html('<div class="child-toggle-spacer"></div>'); // No Child Menu
39
  }
40
  }
41
 
55
  {
56
  $.each($(NestedPages.selectors.lists), function(i, v){
57
  var parent_count = $(this).parents(NestedPages.selectors.lists).length;
58
+ var padding = 0;
59
  if ( parent_count > 0 ){
60
  var padding = ( parent_count * 20 ) + padding;
61
  $(this).find('.row-inner').css('padding-left', padding + 'px');
136
  }
137
 
138
 
139
+ // Size the link thumbnails to the same as the page/post thumbnails
140
+ plugin.sizeLinkThumbnails = function()
141
+ {
142
+ var thumbnail = $(NestedPages.selectors.thumbnailContainer).not(NestedPages.selectors.thumbnailContainerLink).first().find('img');
143
+ var width = $(thumbnail).width();
144
+ var height = $(thumbnail).height();
145
+ $.each($(NestedPages.selectors.thumbnailContainerLink), function(){
146
+ $(this).width(width);
147
+ $(this).height(height);
148
+ });
149
+ }
150
+
151
  }
assets/js/lib/nestedpages.hidden-item-count.js ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var NestedPages = NestedPages || {};
2
+
3
+ /**
4
+ * The Hidden Item Count for selected items in the Nested View
5
+ * @package Nested Pages
6
+ * @author Kyle Phillips - https://github.com/kylephillips/wp-nested-pages
7
+ */
8
+ NestedPages.HiddenItemCount = function()
9
+ {
10
+ var plugin = this;
11
+ var $ = jQuery;
12
+
13
+ plugin.init = function()
14
+ {
15
+ plugin.bindEvents();
16
+ }
17
+
18
+ plugin.bindEvents = function()
19
+ {
20
+ $(document).on('change', NestedPages.selectors.bulkActionsCheckbox, function(){
21
+ plugin.toggleHiddenCount();
22
+ });
23
+ $(document).on('click', NestedPages.selectors.toggleAll, function(){
24
+ plugin.toggleHiddenCount();
25
+ });
26
+ $(document).on('click', NestedPages.selectors.pageToggle, function(){
27
+ plugin.toggleHiddenCount();
28
+ });
29
+ }
30
+
31
+ /**
32
+ * Toggle the Hidden Count
33
+ */
34
+ plugin.toggleHiddenCount = function()
35
+ {
36
+ var hiddenCount = 0;
37
+ $.each($(NestedPages.selectors.bulkActionsCheckbox), function(){
38
+ if ( $(this).is(':checked') ) {
39
+ if ( $(this).parent('div').hasClass('np-check-all') ) return;
40
+ var row = $(this).closest('.page-row');
41
+ if ( !$(row).is(':visible') ) hiddenCount++;
42
+ }
43
+ });
44
+ if ( hiddenCount < 1 ){
45
+ $(NestedPages.selectors.hiddenItemCountParent).hide();
46
+ return;
47
+ }
48
+ $(NestedPages.selectors.hiddenItemCount).text(hiddenCount);
49
+ $(NestedPages.selectors.hiddenItemCountParent).show();
50
+ }
51
+
52
+ return plugin.init();
53
+ }
assets/js/lib/nestedpages.manual-sync.js ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var NestedPages = NestedPages || {};
2
+
3
+ /**
4
+ * Manual Sync functionality for nested view
5
+ * @package Nested Pages
6
+ * @author Kyle Phillips - https://github.com/kylephillips/wp-nested-pages
7
+ */
8
+ NestedPages.ManualSync = function()
9
+ {
10
+ var plugin = this;
11
+ var $ = jQuery;
12
+
13
+ plugin.activeBtn = '';
14
+
15
+ plugin.bindEvents = function()
16
+ {
17
+ $(document).on('click', NestedPages.selectors.manualMenuSync, function(e){
18
+ e.preventDefault();
19
+ plugin.activeBtn = $(this);
20
+ plugin.syncMenu();
21
+ });
22
+ $(document).on('click', NestedPages.selectors.manualOrderSync, function(e){
23
+ e.preventDefault();
24
+ plugin.activeBtn = $(this);
25
+ plugin.syncOrder();
26
+ });
27
+ }
28
+
29
+ plugin.syncMenu = function()
30
+ {
31
+ plugin.loading(true);
32
+
33
+ $.ajax({
34
+ url: ajaxurl,
35
+ type: 'post',
36
+ datatype: 'json',
37
+ data: {
38
+ action : NestedPages.formActions.manualMenuSync,
39
+ nonce : NestedPages.jsData.nonce,
40
+ post_type : NestedPages.jsData.posttype,
41
+ syncmenu : 'sync'
42
+ },
43
+ success: function(data){
44
+ if (data.status === 'error'){
45
+ $(NestedPages.selectors.errorDiv).text(data.message).show();
46
+ $(NestedPages.selectors.loadingIndicator).hide();
47
+ } else {
48
+ plugin.loading(false);
49
+ }
50
+ }
51
+ });
52
+ }
53
+
54
+ plugin.syncOrder = function()
55
+ {
56
+ plugin.loading(true);
57
+ var nestingClass = new NestedPages.Nesting;
58
+ nestingClass.syncNesting(true, plugin.loading(false));
59
+ }
60
+
61
+ plugin.loading = function(loading)
62
+ {
63
+ if ( loading ){
64
+ $(plugin.activeBtn).addClass('disabled');
65
+ $(NestedPages.selectors.loadingIndicator).show();
66
+ return;
67
+ }
68
+ $(plugin.activeBtn).removeClass('disabled');
69
+ $(NestedPages.selectors.loadingIndicator).hide();
70
+ }
71
+
72
+ return plugin.bindEvents();
73
+ }
assets/js/lib/nestedpages.menu-links.js CHANGED
@@ -203,7 +203,7 @@ NestedPages.MenuLinks = function()
203
  var html = '<li id="menuItem_' + plugin.post.id + '" class="page-row published';
204
  html += '">'
205
 
206
- html += '<div class="row"><div class="child-toggle"></div><div class="row-inner"><i class="np-icon-sub-menu"></i><i class="handle np-icon-menu"></i><a href="' + plugin.post.np_link_content + '" class="page-link page-title" target="_blank"><span class="title">' + plugin.post.menuTitle + ' <i class="np-icon-link"></i></span>';
207
 
208
  // Quick Edit Button
209
  html += '</a><a href="#" class="np-toggle-edit"><i class="np-icon-pencil"></i></a><div class="action-buttons"><a href="#" class="np-btn np-quick-edit-redirect" ';
203
  var html = '<li id="menuItem_' + plugin.post.id + '" class="page-row published';
204
  html += '">'
205
 
206
+ html += '<div class="row"><div class="child-toggle"><div class="child-toggle-spacer"></div></div><div class="row-inner"><i class="np-icon-sub-menu"></i><i class="handle np-icon-menu"></i><a href="' + plugin.post.np_link_content + '" class="page-link page-title" target="_blank"><span class="title">' + plugin.post.menuTitle + ' <i class="np-icon-link"></i></span>';
207
 
208
  // Quick Edit Button
209
  html += '</a><a href="#" class="np-toggle-edit"><i class="np-icon-pencil"></i></a><div class="action-buttons"><a href="#" class="np-btn np-quick-edit-redirect" ';
assets/js/lib/nestedpages.nesting.js CHANGED
@@ -52,14 +52,18 @@ NestedPages.Nesting = function()
52
 
53
 
54
  // Sync Nesting
55
- plugin.syncNesting = function()
56
  {
 
57
  $(NestedPages.selectors.errorDiv).hide();
58
  $(NestedPages.selectors.loadingIndicator).show();
59
 
60
  list = $(NestedPages.selectors.sortable).nestedSortable('toHierarchy', {startDepthCount: 0});
61
  plugin.disableNesting();
62
 
 
 
 
63
  $.ajax({
64
  url: ajaxurl,
65
  type: 'post',
@@ -69,14 +73,18 @@ NestedPages.Nesting = function()
69
  nonce : NestedPages.jsData.nonce,
70
  list : list,
71
  post_type : NestedPages.jsData.posttype,
72
- syncmenu : NestedPages.jsData.syncmenu
73
  },
74
- success: function(data){
75
  plugin.initializeSortable();
76
  if (data.status === 'error'){
77
  $(NestedPages.selectors.errorDiv).text(data.message).show();
78
  $(NestedPages.selectors.loadingIndicator).hide();
79
  } else {
 
 
 
 
80
  $(NestedPages.selectors.loadingIndicator).hide();
81
  }
82
  }
52
 
53
 
54
  // Sync Nesting
55
+ plugin.syncNesting = function(manual, callback)
56
  {
57
+ if ( nestedpages.manual_order_sync === '1' && !manual) return;
58
  $(NestedPages.selectors.errorDiv).hide();
59
  $(NestedPages.selectors.loadingIndicator).show();
60
 
61
  list = $(NestedPages.selectors.sortable).nestedSortable('toHierarchy', {startDepthCount: 0});
62
  plugin.disableNesting();
63
 
64
+ var syncmenu = NestedPages.jsData.syncmenu;
65
+ if ( nestedpages.manual_menu_sync === '1' ) syncmenu = 'nosync';
66
+
67
  $.ajax({
68
  url: ajaxurl,
69
  type: 'post',
73
  nonce : NestedPages.jsData.nonce,
74
  list : list,
75
  post_type : NestedPages.jsData.posttype,
76
+ syncmenu : syncmenu
77
  },
78
+ success: function(data, callback){
79
  plugin.initializeSortable();
80
  if (data.status === 'error'){
81
  $(NestedPages.selectors.errorDiv).text(data.message).show();
82
  $(NestedPages.selectors.loadingIndicator).hide();
83
  } else {
84
+ if ( callback && typeof callback === 'function') {
85
+ callback();
86
+ return;
87
+ }
88
  $(NestedPages.selectors.loadingIndicator).hide();
89
  }
90
  }
assets/js/lib/nestedpages.new-link.js CHANGED
@@ -92,7 +92,7 @@ NestedPages.NewLink = function()
92
  if ( plugin.post._status === 'publish' ) html += ' published';
93
  html += '">'
94
 
95
- html += '<div class="row"><div class="child-toggle"></div><div class="row-inner"><i class="np-icon-sub-menu"></i><i class="handle np-icon-menu"></i><a href="' + plugin.post.np_link_content + '" class="page-link page-title" target="_blank"><span class="title">' + plugin.post.np_link_title + ' <i class="np-icon-link"></i></span>';
96
 
97
  // Post Status
98
  html += '<span class="status">';
92
  if ( plugin.post._status === 'publish' ) html += ' published';
93
  html += '">'
94
 
95
+ html += '<div class="row"><div class="child-toggle"><div class="child-toggle-spacer"></div></div><div class="row-inner"><i class="np-icon-sub-menu"></i><i class="handle np-icon-menu"></i><a href="' + plugin.post.np_link_content + '" class="page-link page-title" target="_blank"><span class="title">' + plugin.post.np_link_title + ' <i class="np-icon-link"></i></span>';
96
 
97
  // Post Status
98
  html += '<span class="status">';
assets/js/lib/nestedpages.new-page.js CHANGED
@@ -50,6 +50,9 @@ NestedPages.NewPage = function()
50
  $(NestedPages.selectors.newPageModal).on('hide.bs.modal', function(){
51
  plugin.cancelNewPage();
52
  });
 
 
 
53
  $(document).on('click', NestedPages.selectors.cancelNewChildButton, function(e){
54
  e.preventDefault();
55
  plugin.cancelNewPage();
@@ -61,11 +64,19 @@ NestedPages.NewPage = function()
61
  // Open the form modal
62
  plugin.openModal = function()
63
  {
64
- var newform = $(NestedPages.selectors.newPageFormContainer).clone().find(NestedPages.selectors.newPageForm).addClass('in-modal');
 
65
  $(NestedPages.selectors.newPageModal).find('.modal-body').html(newform);
66
  $(NestedPages.selectors.newPageModal).find('h3').text(nestedpages.add_multiple);
67
  $(NestedPages.selectors.newPageModal).find('.page_parent_id').val(plugin.parent_id);
68
- $(NestedPages.selectors.newPageModal).modal('show');
 
 
 
 
 
 
 
69
  }
70
 
71
 
@@ -91,6 +102,7 @@ NestedPages.NewPage = function()
91
  $(newform).find('.page_parent_id').val($(button).attr('data-id'));
92
  $(newform).show();
93
  $(newform).find('.np_title').focus();
 
94
  }
95
 
96
 
@@ -113,6 +125,7 @@ NestedPages.NewPage = function()
113
  var html = '<li><i class="handle np-icon-menu"></i><div class="form-control new-child-row"><label>' + NestedPages.jsData.titleText + '</label><div><input type="text" name="post_title[]" class="np_title" placeholder="' + NestedPages.jsData.titleText + '" value="" tabindex="' + fieldcount + '" /><a href="#" class="button-secondary np-remove-child">-</a></div></div></li>';
114
  var container = $(button).siblings('.new-page-titles').append(html);
115
  $(form).find('.np_title').last().focus();
 
116
  $('.new-page-titles').sortable({
117
  items : 'li',
118
  handle: '.handle',
@@ -205,6 +218,7 @@ NestedPages.NewPage = function()
205
  html += '<div class="child-toggle"></div>';
206
  } else {
207
  html += '<div class="row non-hierarchical">';
 
208
  }
209
 
210
  html += '<div class="row-inner">';
@@ -219,9 +233,31 @@ NestedPages.NewPage = function()
219
  html += '<span class="status"></span>';
220
  }
221
 
222
- html += '<span class="nav-status"></span><span class="edit-indicator"><i class="np-icon-pencil"></i>Edit</span>';
 
 
 
 
 
 
 
223
  html += '</a>';
224
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
225
  // Action Buttons
226
  html += '<div class="action-buttons">';
227
  html += '<a href="#" class="np-btn open-redirect-modal" data-parentid="' + post.id + '"><i class="np-icon-link"></i></a>';
50
  $(NestedPages.selectors.newPageModal).on('hide.bs.modal', function(){
51
  plugin.cancelNewPage();
52
  });
53
+ $(NestedPages.selectors.newPageModal).on('shown.bs.modal', function(){
54
+ plugin.modalOpened($(this));
55
+ });
56
  $(document).on('click', NestedPages.selectors.cancelNewChildButton, function(e){
57
  e.preventDefault();
58
  plugin.cancelNewPage();
64
  // Open the form modal
65
  plugin.openModal = function()
66
  {
67
+ var newform = $(NestedPages.selectors.newPageFormContainer).clone().find(NestedPages.selectors.newPageForm);
68
+ $(newform).addClass('in-modal');
69
  $(NestedPages.selectors.newPageModal).find('.modal-body').html(newform);
70
  $(NestedPages.selectors.newPageModal).find('h3').text(nestedpages.add_multiple);
71
  $(NestedPages.selectors.newPageModal).find('.page_parent_id').val(plugin.parent_id);
72
+ $(NestedPages.selectors.newPageModal).modal('show');
73
+ }
74
+
75
+ // Modal has opened, set the attributes
76
+ plugin.modalOpened = function(modal)
77
+ {
78
+ $(modal).find('.np_title').focus();
79
+ $(modal).find(NestedPages.selectors.newPageTitle).prop('tabindex', '2');
80
  }
81
 
82
 
102
  $(newform).find('.page_parent_id').val($(button).attr('data-id'));
103
  $(newform).show();
104
  $(newform).find('.np_title').focus();
105
+ $(newform).find(NestedPages.selectors.newPageTitle).prop('tabindex', '2');
106
  }
107
 
108
 
125
  var html = '<li><i class="handle np-icon-menu"></i><div class="form-control new-child-row"><label>' + NestedPages.jsData.titleText + '</label><div><input type="text" name="post_title[]" class="np_title" placeholder="' + NestedPages.jsData.titleText + '" value="" tabindex="' + fieldcount + '" /><a href="#" class="button-secondary np-remove-child">-</a></div></div></li>';
126
  var container = $(button).siblings('.new-page-titles').append(html);
127
  $(form).find('.np_title').last().focus();
128
+ $(form).find(NestedPages.selectors.newPageTitle).prop('tabindex', fieldcount++);
129
  $('.new-page-titles').sortable({
130
  items : 'li',
131
  handle: '.handle',
218
  html += '<div class="child-toggle"></div>';
219
  } else {
220
  html += '<div class="row non-hierarchical">';
221
+ html += '<div class="non-hierarchical-spacer"></div>';
222
  }
223
 
224
  html += '<div class="row-inner">';
233
  html += '<span class="status"></span>';
234
  }
235
 
236
+ // Nav Status
237
+ html += '<span class="nav-status">';
238
+ if ( post.np_nav_status === 'hide' ){
239
+ html += ' ' + nestedpages.hidden;
240
+ }
241
+ html += '</span>';
242
+
243
+ html += '<span class="edit-indicator"><i class="np-icon-pencil"></i>Edit</span>';
244
  html += '</a>';
245
 
246
+ // Non-Hierarchical Data
247
+ if ( !NestedPages.jsData.hierarchical ){
248
+ html += '<div class="np-post-columns">';
249
+ html += '<ul class="np-post-info">';
250
+ html += '<li><span class="np-author-display">' + post.author_formatted + '</span></li>';
251
+ html += '<li>' + post.date_formatted + '</li>';
252
+ html += '</ul>';
253
+ html += '</div>';
254
+ }
255
+
256
+ // Yoast
257
+ if ( $('.nplist').first().hasClass('has-yoast') ) {
258
+ html += '<span class="np-seo-indicator na"></span>';
259
+ }
260
+
261
  // Action Buttons
262
  html += '<div class="action-buttons">';
263
  html += '<a href="#" class="np-btn open-redirect-modal" data-parentid="' + post.id + '"><i class="np-icon-link"></i></a>';
assets/js/lib/nestedpages.page-toggle.js CHANGED
@@ -10,6 +10,8 @@ NestedPages.PageToggle = function()
10
  var plugin = this;
11
  var $ = jQuery;
12
 
 
 
13
  plugin.formatter = new NestedPages.Formatter;
14
 
15
  plugin.init = function()
@@ -21,6 +23,7 @@ NestedPages.PageToggle = function()
21
  {
22
  $(document).on('click', NestedPages.selectors.toggleHidden, function(e){
23
  e.preventDefault();
 
24
  plugin.toggleHidden();
25
  });
26
  $(document).on('click', NestedPages.selectors.toggleStatus, function(e){
@@ -33,19 +36,24 @@ NestedPages.PageToggle = function()
33
  // Toggle Hidden Pages
34
  plugin.toggleHidden = function()
35
  {
36
- var button = NestedPages.selectors.toggleHidden;
37
  var action = $(button).attr('href');
38
- if ( action === 'show' ){
39
- $(button).attr('href', 'hide').text(NestedPages.jsData.showHiddenText);
 
 
40
  $(NestedPages.selectors.hiddenRows).removeClass('shown').hide();
41
  plugin.formatter.updateSubMenuToggle();
42
  plugin.formatter.setBorders();
43
  return;
44
  }
45
- $(button).attr('href', 'show').text(NestedPages.jsData.hideHiddenText);
46
- $(NestedPages.selectors.hiddenRows).addClass('shown').show();
47
- plugin.formatter.updateSubMenuToggle();
48
- plugin.formatter.setBorders();
 
 
 
49
  }
50
 
51
 
@@ -54,8 +62,13 @@ NestedPages.PageToggle = function()
54
  {
55
  var target = $(button).attr('href');
56
  target = target.substring(1);
 
57
  $(NestedPages.selectors.toggleStatus).removeClass('active');
58
  $(button).addClass('active');
 
 
 
 
59
  if ( target == 'all' ){
60
  $(NestedPages.selectors.rows).show();
61
  return;
@@ -63,7 +76,6 @@ NestedPages.PageToggle = function()
63
  $(NestedPages.selectors.rows).hide();
64
  $('.' + target).show();
65
  return;
66
-
67
  }
68
 
69
 
10
  var plugin = this;
11
  var $ = jQuery;
12
 
13
+ plugin.activeButton = '';
14
+
15
  plugin.formatter = new NestedPages.Formatter;
16
 
17
  plugin.init = function()
23
  {
24
  $(document).on('click', NestedPages.selectors.toggleHidden, function(e){
25
  e.preventDefault();
26
+ plugin.activeButton = $(this);
27
  plugin.toggleHidden();
28
  });
29
  $(document).on('click', NestedPages.selectors.toggleStatus, function(e){
36
  // Toggle Hidden Pages
37
  plugin.toggleHidden = function()
38
  {
39
+ var button = $(plugin.activeButton);
40
  var action = $(button).attr('href');
41
+ console.log(action);
42
+
43
+ if ( action == '#show' ){
44
+ $(button).attr('href', '#hide').text(NestedPages.jsData.showHiddenText);
45
  $(NestedPages.selectors.hiddenRows).removeClass('shown').hide();
46
  plugin.formatter.updateSubMenuToggle();
47
  plugin.formatter.setBorders();
48
  return;
49
  }
50
+
51
+ if ( action == '#hide' ){
52
+ $(button).attr('href', '#show').text(NestedPages.jsData.hideHiddenText);
53
+ $(NestedPages.selectors.hiddenRows).addClass('shown').show();
54
+ plugin.formatter.updateSubMenuToggle();
55
+ plugin.formatter.setBorders();
56
+ }
57
  }
58
 
59
 
62
  {
63
  var target = $(button).attr('href');
64
  target = target.substring(1);
65
+ $(NestedPages.selectors.syncCheckbox).attr('disabled', false);
66
  $(NestedPages.selectors.toggleStatus).removeClass('active');
67
  $(button).addClass('active');
68
+ if ( target == 'draft' ){
69
+ $(NestedPages.selectors.syncCheckbox).attr('disabled', true);
70
+ $('.' + target).addClass('nested-visible');
71
+ }
72
  if ( target == 'all' ){
73
  $(NestedPages.selectors.rows).show();
74
  return;
76
  $(NestedPages.selectors.rows).hide();
77
  $('.' + target).show();
78
  return;
 
79
  }
80
 
81
 
assets/js/lib/nestedpages.quickedit-post.js CHANGED
@@ -330,6 +330,7 @@ NestedPages.QuickEditPost = function()
330
  plugin.row = $(plugin.button).parents('.row-inner');
331
 
332
  $(plugin.row).find('.title').text(plugin.newData.post_title);
 
333
 
334
  var status = $(plugin.row).find('.status');
335
  if ( (plugin.newData._status !== 'publish') && (plugin.newData._status !== 'future') ){
@@ -341,7 +342,7 @@ NestedPages.QuickEditPost = function()
341
  }
342
 
343
  // Password Lock Icon
344
- if ( plugin.newData.post_password !== "" ){
345
  var statustext = $(status).text();
346
  statustext += ' <i class="np-icon-lock"></i>';
347
  $(status).html(statustext);
@@ -418,9 +419,9 @@ NestedPages.QuickEditPost = function()
418
  // Add Status Class
419
  plugin.addStatusClass = function()
420
  {
421
- var taxonomies = ['published', 'draft', 'pending', 'future'];
422
- for ( i = 0; i < taxonomies.length; i++ ){
423
- $(plugin.row).removeClass(taxonomies[i]);
424
  }
425
  $(plugin.row).addClass(plugin.newData._status);
426
  }
330
  plugin.row = $(plugin.button).parents('.row-inner');
331
 
332
  $(plugin.row).find('.title').text(plugin.newData.post_title);
333
+ $(plugin.row).find('.np-view-button').attr('href', plugin.newData.permalink);
334
 
335
  var status = $(plugin.row).find('.status');
336
  if ( (plugin.newData._status !== 'publish') && (plugin.newData._status !== 'future') ){
342
  }
343
 
344
  // Password Lock Icon
345
+ if ( plugin.newData.post_password !== "" && typeof plugin.newData.post_password !== 'undefined'){
346
  var statustext = $(status).text();
347
  statustext += ' <i class="np-icon-lock"></i>';
348
  $(status).html(statustext);
419
  // Add Status Class
420
  plugin.addStatusClass = function()
421
  {
422
+ var statuses = ['published', 'draft', 'pending', 'future'];
423
+ for ( i = 0; i < statuses.length; i++ ){
424
+ $(plugin.row).removeClass(statuses[i]);
425
  }
426
  $(plugin.row).addClass(plugin.newData._status);
427
  }
assets/js/lib/nestedpages.settings.js ADDED
@@ -0,0 +1,187 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var NestedPages = NestedPages || {};
2
+
3
+ /**
4
+ * Settings
5
+ * @package Nested Pages
6
+ * @author Kyle Phillips - https://github.com/kylephillips/wp-nested-pages
7
+ */
8
+ NestedPages.Settings = function()
9
+ {
10
+ var plugin = this;
11
+ var $ = jQuery;
12
+
13
+ plugin.selectors = {
14
+ postTypeToggle : '[data-toggle-nestedpages-pt-settings]', // Toggle Button for Post Type Settings
15
+ postTypeCheckbox : '[data-nestedpages-pt-checkbox]', // Checkbox for enabling post type
16
+ customFieldsCheckbox : '[data-toggle-nestedpages-cf-settings]', // Checkbox for toggling custom fields settings
17
+ standardFieldsCheckbox : '[data-toggle-nestedpages-sf-settings]', // Checkbox for toggling standard field settings
18
+ taxonomiesFieldCheckbox : '[data-hide-taxonomies]', // Checkbox for disabling taxonomies from quick edit
19
+ thumbnailsCheckbox : '[data-enable-thumbnails]', // Checkbox for enabling thumbnails in sort view
20
+ menuEnabledOption : '[data-menu-enabled-option]', // Options when the menu is enabled
21
+ disableMenuCheckbox : '[data-disable-menu-checkbox]', // Checkbox for disabling menus completely
22
+ disableAutoCheckbox : '[data-menu-disable-auto-checkbox]', // Checkbox for disabling auto menu sync
23
+ }
24
+
25
+ plugin.bindEvents = function()
26
+ {
27
+ $(document).ready(function(){
28
+ plugin.toggleAllSettingsButtons();
29
+ plugin.toogleAllFieldSettings('.custom-fields');
30
+ plugin.toogleAllFieldSettings('.standard-fields');
31
+ plugin.toggleMenuCheckboxes();
32
+ plugin.toggleHideCheckbox();
33
+ });
34
+ $(document).on('click', plugin.selectors.postTypeToggle, function(e){
35
+ e.preventDefault();
36
+ plugin.togglePostTypeSettings($(this));
37
+ });
38
+ $(document).on('change', plugin.selectors.postTypeCheckbox, function(){
39
+ plugin.toggleSettingsButton($(this));
40
+ });
41
+ $(document).on('change', plugin.selectors.customFieldsCheckbox, function(){
42
+ plugin.toogleFieldSettings($(this), '.custom-fields');
43
+ });
44
+ $(document).on('change', plugin.selectors.standardFieldsCheckbox, function(){
45
+ plugin.toogleFieldSettings($(this), '.standard-fields');
46
+ });
47
+ $(document).on('change', plugin.selectors.taxonomiesFieldCheckbox, function(){
48
+ plugin.toggleTaxonomyCheckboxes($(this));
49
+ });
50
+ $(document).on('change', plugin.selectors.thumbnailsCheckbox, function(){
51
+ plugin.toggleThumbnailSettings($(this));
52
+ });
53
+ $(document).on('change', plugin.selectors.disableMenuCheckbox, function(){
54
+ plugin.toggleMenuCheckboxes();
55
+ });
56
+ $(document).on('change', plugin.selectors.disableAutoCheckbox, function(){
57
+ plugin.toggleHideCheckbox();
58
+ });
59
+ }
60
+
61
+ /**
62
+ * Toggle Individual Post Type Settings
63
+ */
64
+ plugin.togglePostTypeSettings = function(button)
65
+ {
66
+ $(button).parent('.head').siblings('.body').toggle();
67
+ $(button).parents('.post-type').toggleClass('active');
68
+ }
69
+
70
+ /**
71
+ * Show/Hide the settings toggle button for enabled/disabled post types
72
+ */
73
+ plugin.toggleSettingsButton = function(checkbox)
74
+ {
75
+ var button = $(checkbox).parents('.head').find(plugin.selectors.postTypeToggle);
76
+ if ( $(checkbox).is(':checked') ){
77
+ $(button).show();
78
+ return;
79
+ }
80
+ $(button).hide();
81
+ $(button).parents('.head').siblings('.body').hide();
82
+ $(button).parents('.post-type').removeClass('active');
83
+ $(button).parents('.head').siblings('.body').find('input[type="checkbox"]').attr('checked', false);
84
+ $(button).parents('.head').siblings('.body').find('select').val(false);
85
+ }
86
+
87
+ /**
88
+ * Toggle all the settings toggle buttons
89
+ */
90
+ plugin.toggleAllSettingsButtons = function()
91
+ {
92
+ var checkboxes = $(plugin.selectors.postTypeCheckbox);
93
+ $.each(checkboxes, function(){
94
+ plugin.toggleSettingsButton($(this));
95
+ });
96
+ }
97
+
98
+ /**
99
+ * Toggle Custom Field Choices
100
+ */
101
+ plugin.toogleFieldSettings = function(checkbox, fieldGroupClass)
102
+ {
103
+ var choices = $(checkbox).parents('.body').find(fieldGroupClass);
104
+ if ( $(checkbox).is(':checked') ){
105
+ $(choices).show();
106
+ return;
107
+ }
108
+ $(choices).hide();
109
+ }
110
+
111
+ /**
112
+ * Toggle All the Custom Field Choices
113
+ */
114
+ plugin.toogleAllFieldSettings = function(fieldGroupClass)
115
+ {
116
+ var checkboxes = $(plugin.selectors.customFieldsCheckbox);
117
+ if ( fieldGroupClass == '.standard-fields' ){
118
+ var checkboxes = $(plugin.selectors.standardFieldsCheckbox);
119
+ }
120
+ $.each(checkboxes, function(){
121
+ plugin.toogleFieldSettings($(this), fieldGroupClass);
122
+ });
123
+ }
124
+
125
+ /**
126
+ * Toggle Taxonomy Checkboxes
127
+ */
128
+ plugin.toggleTaxonomyCheckboxes = function(checkbox)
129
+ {
130
+ var choices = $(checkbox).parents('ul').find($('*[data-taxonomy-single]'));
131
+ if ( $(checkbox).is(':checked') ){
132
+ $(choices).hide();
133
+ return;
134
+ }
135
+ $(choices).show();
136
+ }
137
+
138
+ /**
139
+ * Toggle the Thumbnail Settings
140
+ */
141
+ plugin.toggleThumbnailSettings = function(checkbox)
142
+ {
143
+ var settings = $(checkbox).parents('.field').find($('*[data-thumbnail-options]'));
144
+ if ( $(checkbox).is(':checked') ){
145
+ $(settings).show();
146
+ return;
147
+ }
148
+ $(settings).hide();
149
+ }
150
+
151
+ /**
152
+ * Toggle the Menu Checkboxes
153
+ */
154
+ plugin.toggleMenuCheckboxes = function()
155
+ {
156
+ var checkbox = $(plugin.selectors.disableMenuCheckbox);
157
+ var menuCheckboxes = $(plugin.selectors.menuEnabledOption);
158
+ if ( $(checkbox).is(':checked') ){
159
+ $(menuCheckboxes).hide();
160
+ return;
161
+ }
162
+ $(menuCheckboxes).show();
163
+ }
164
+
165
+ /**
166
+ * Toggle the hide checkbox option
167
+ */
168
+ plugin.toggleHideCheckbox = function()
169
+ {
170
+ var checkbox = $(plugin.selectors.disableAutoCheckbox);
171
+ var hideCheckboxOption = $('[data-menu-hide-checkbox]');
172
+ if ( $(checkbox).is(':checked') ){
173
+ $(hideCheckboxOption).hide();
174
+ return;
175
+ }
176
+ $(hideCheckboxOption).show();
177
+ }
178
+
179
+ plugin.init = function()
180
+ {
181
+ plugin.bindEvents();
182
+ }
183
+
184
+ return plugin.init();
185
+ }
186
+
187
+ new NestedPages.Settings;
assets/js/lib/nestedpages.sync-menu-setting.js CHANGED
@@ -20,6 +20,7 @@ NestedPages.SyncMenuSetting = function()
20
  plugin.bindEvents = function()
21
  {
22
  $(document).ready(function(){ // catches trash updates
 
23
  if ( nestedpages.syncmenu === '1' ) plugin.syncSetting();
24
  });
25
  $(document).on('change', NestedPages.selectors.syncCheckbox, function(){
20
  plugin.bindEvents = function()
21
  {
22
  $(document).ready(function(){ // catches trash updates
23
+ if ( nestedpages.manual_menu_sync === '1' ) return;
24
  if ( nestedpages.syncmenu === '1' ) plugin.syncSetting();
25
  });
26
  $(document).on('change', NestedPages.selectors.syncCheckbox, function(){
assets/js/nestedpages.min.js CHANGED
@@ -1,2 +1,2 @@
1
- var NestedPages=NestedPages||{};NestedPages.Responsive=function(){var e=this,t=jQuery;return e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("click",NestedPages.selectors.toggleEditButtons,function(a){a.preventDefault(),e.toggleEdit(t(this))}),t(window).resize(function(){e.timer(function(){t(".action-buttons").removeAttr("style"),t(".np-toggle-edit").removeClass("active")},500)})},e.toggleEdit=function(e){var a=t(e).siblings(".action-buttons");return t(a).is(":visible")?(t(e).removeClass("active"),void t(a).hide()):(t(e).addClass("active"),void t(a).show())},e.timer=function(){var e=0;return function(t,a){clearTimeout(e),e=setTimeout(t,a)}}(),e.init()};var NestedPages=NestedPages||{};NestedPages.Formatter=function(){var e=this,t=jQuery;e.updateSubMenuToggle=function(){for(var e=t(NestedPages.selectors.childToggle),a=0;a<e.length;a++){var s=e[a],n=t(s).parent(".row").parent("li");if(t(n).children("ol").length>0){var o=t(n).children("ol:visible").length>0?NestedPages.cssClasses.iconToggleDown:NestedPages.cssClasses.iconToggleRight;t(s).html('<a href="#"><i class="'+o+'"></i></a>'),t(n).children("ol").children(".np-hide").length>0&&0===t(n).children("ol").children(".np-hide.shown").length?t(s).find("a").hide():t(n).children("ol").children(".np-hide").length>0&&t(n).children("ol").children(".np-hide.shown").length>0&&t(s).find("a").show()}else t(s).empty()}},e.setBorders=function(){t(NestedPages.selectors.rows).removeClass(NestedPages.cssClasses.noborder),t.each(t(NestedPages.selectors.lists),function(){t(this).find(".page-row:visible:first").addClass(NestedPages.cssClasses.noborder)})},e.setNestedMargins=function(){t.each(t(NestedPages.selectors.lists),function(){var e=t(this).parents(NestedPages.selectors.lists).length,a=56;if(e>0){var a=20*e+a;return void t(this).find(".row-inner").css("padding-left",a+"px")}t(this).find(".row-inner").css("padding-left","0px")})},e.updatePlaceholderWidth=function(a){if(NestedPages.jsData.nestable){var s=t(a.placeholder).parents("ol").length,n=t(NestedPages.selectors.sortable).width(),o=40*s-40,i=n-o;t(a.placeholder).width(i).css("margin-left",o+"px")}e.updateListVisibility(a)},e.updateListVisibility=function(e){var a=t(e.placeholder).parent("ol");t(a).is(":visible")||(t(a).addClass("nplist"),t(a).show())},e.removeQuickEdit=function(){t(NestedPages.selectors.quickEditOverlay).removeClass("active").remove(),t(".sortable .quick-edit").remove(),t(".row").show()},e.showQuickEdit=function(){t("body").append('<div class="np-inline-overlay"></div>'),setTimeout(function(){t(".np-inline-overlay").addClass("active")},50)},e.flashRow=function(a){t(a).addClass("np-updated"),e.setBorders(),setTimeout(function(){t(a).addClass("np-updated-show")},1500)},e.showAjaxError=function(e){t(NestedPages.selectors.ajaxError).find("p").text(e),t(NestedPages.selectors.ajaxError).show()},e.hideAjaxError=function(){t(NestedPages.selectors.ajaxError).hide()}};var NestedPages=NestedPages||{};NestedPages.MenuToggle=function(){var e=this,t=jQuery;return e.formatter=new NestedPages.Formatter,e.bindEvents=function(){t(document).on("click",NestedPages.selectors.childToggleLink,function(a){a.preventDefault(),e.toggleSingleMenu(t(this))}),t(document).on("click",NestedPages.selectors.toggleAll,function(t){t.preventDefault(),e.toggleAllMenus()})},e.toggleSingleMenu=function(a){var s=t(a).parent(NestedPages.selectors.childToggle).parent(NestedPages.selectors.row).siblings("ol");t(a).find("i").toggleClass(NestedPages.cssClasses.iconToggleDown).toggleClass(NestedPages.cssClasses.iconToggleRight),t(s).toggle(),e.formatter.setBorders(),e.formatter.setNestedMargins(),e.syncUserToggles()},e.toggleAllMenus=function(){var a=NestedPages.selectors.toggleAll;return"closed"===t(a).attr("data-toggle")?(t(NestedPages.selectors.lists).show(),t(a).attr("data-toggle","opened").text(NestedPages.jsData.collapseText),t(NestedPages.selectors.childToggle).find("i").removeClass(NestedPages.cssClasses.iconToggleRight).addClass(NestedPages.cssClasses.iconToggleDown),e.formatter.setBorders(),void e.syncUserToggles()):(t(NestedPages.selectors.lists).not(t(NestedPages.selectors.lists)[0]).hide(),t(a).attr("data-toggle","closed").text(NestedPages.jsData.expandText),t(NestedPages.selectors.childToggle).find("i").removeClass(NestedPages.cssClasses.iconToggleDown).addClass(NestedPages.cssClasses.iconToggleRight),e.formatter.setBorders(),void e.syncUserToggles())},e.visibleRowIDs=function(){var e=[],a=t(NestedPages.selectors.rows+":visible");return t.each(a,function(){var a=t(this).attr("id");e.push(a.replace("menuItem_",""))}),e},e.syncUserToggles=function(){t.ajax({url:NestedPages.jsData.ajaxurl,type:"post",datatype:"json",data:{action:NestedPages.formActions.syncToggles,nonce:NestedPages.jsData.nonce,ids:e.visibleRowIDs(),posttype:NestedPages.jsData.posttype},success:function(e){"success"!==e.status&&console.log("There was an error saving toggled pages.")}})},e.bindEvents()};var NestedPages=NestedPages||{};NestedPages.PageToggle=function(){var e=this,t=jQuery;return e.formatter=new NestedPages.Formatter,e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("click",NestedPages.selectors.toggleHidden,function(t){t.preventDefault(),e.toggleHidden()}),t(document).on("click",NestedPages.selectors.toggleStatus,function(a){a.preventDefault(),e.toggleStatus(t(this))})},e.toggleHidden=function(){var a=NestedPages.selectors.toggleHidden,s=t(a).attr("href");return"show"===s?(t(a).attr("href","hide").text(NestedPages.jsData.showHiddenText),t(NestedPages.selectors.hiddenRows).removeClass("shown").hide(),e.formatter.updateSubMenuToggle(),void e.formatter.setBorders()):(t(a).attr("href","show").text(NestedPages.jsData.hideHiddenText),t(NestedPages.selectors.hiddenRows).addClass("shown").show(),e.formatter.updateSubMenuToggle(),void e.formatter.setBorders())},e.toggleStatus=function(e){var a=t(e).attr("href");return a=a.substring(1),t(NestedPages.selectors.toggleStatus).removeClass("active"),t(e).addClass("active"),"all"==a?void t(NestedPages.selectors.rows).show():(t(NestedPages.selectors.rows).hide(),void t("."+a).show())},e.init()};var NestedPages=NestedPages||{};NestedPages.Nesting=function(){var e=this,t=jQuery;e.formatter=new NestedPages.Formatter,e.initializeSortable=function(){maxLevels=NestedPages.jsData.nestable?0:1,t(NestedPages.selectors.sortable).not(NestedPages.selectors.notSortable).nestedSortable({items:NestedPages.selectors.rows,toleranceElement:"> .row",handle:NestedPages.selectors.handle,placeholder:"ui-sortable-placeholder",maxLevels:maxLevels,tabSize:56,start:function(e,t){t.placeholder.height(t.item.height())},sort:function(t,a){e.formatter.updatePlaceholderWidth(a)},stop:function(){setTimeout(function(){e.formatter.updateSubMenuToggle(),e.formatter.setBorders(),e.formatter.setNestedMargins()},100),e.syncNesting()}})},e.disableNesting=function(){t(NestedPages.selectors.sortable).sortable("destroy")},e.syncNesting=function(){t(NestedPages.selectors.errorDiv).hide(),t(NestedPages.selectors.loadingIndicator).show(),list=t(NestedPages.selectors.sortable).nestedSortable("toHierarchy",{startDepthCount:0}),e.disableNesting(),t.ajax({url:ajaxurl,type:"post",datatype:"json",data:{action:NestedPages.formActions.syncNesting,nonce:NestedPages.jsData.nonce,list:list,post_type:NestedPages.jsData.posttype,syncmenu:NestedPages.jsData.syncmenu},success:function(a){e.initializeSortable(),"error"===a.status?(t(NestedPages.selectors.errorDiv).text(a.message).show(),t(NestedPages.selectors.loadingIndicator).hide()):t(NestedPages.selectors.loadingIndicator).hide()}})}};var NestedPages=NestedPages||{};NestedPages.SyncMenuSetting=function(){var e=this,t=jQuery;return e.formatter=new NestedPages.Formatter,e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).ready(function(){"1"===nestedpages.syncmenu&&e.syncSetting()}),t(document).on("change",NestedPages.selectors.syncCheckbox,function(){e.syncSetting()})},e.syncSetting=function(){"page"===NestedPages.jsData.posttype&&0!==t(NestedPages.selectors.syncCheckbox).length&&(NestedPages.jsData.syncmenu=t(NestedPages.selectors.syncCheckbox).is(":checked")?"sync":"nosync",t.ajax({url:NestedPages.jsData.ajaxurl,type:"post",datatype:"json",data:{action:NestedPages.formActions.syncMenu,nonce:NestedPages.jsData.nonce,post_type:NestedPages.jsData.posttype,syncmenu:NestedPages.jsData.syncmenu},success:function(t){"error"===t.status&&e.formatter.showAjaxError(t.message)}}))},e.bindEvents()};var NestedPages=NestedPages||{};NestedPages.NewPage=function(){var e=this,t=jQuery;return e.formatter=new NestedPages.Formatter,e.parent_id=0,e.posts="",e.form="",e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("click",NestedPages.selectors.openPageModal,function(t){t.preventDefault(),e.openModal()}),t(document).on("submit",NestedPages.selectors.newPageForm,function(e){e.preventDefault()}),t(document).on("click",NestedPages.selectors.newPageSubmitButton,function(a){a.preventDefault(),e.submitForm(t(this))}),t(document).on("click",NestedPages.selectors.newPageTitle,function(a){a.preventDefault(),e.addTitleField(t(this))}),t(document).on("click",NestedPages.selectors.newPageRemoveTitle,function(a){a.preventDefault(),e.removeTitleField(t(this))}),t(document).on("click",NestedPages.selectors.addChildButton,function(a){a.preventDefault(),e.openQuickEdit(t(this))}),t(NestedPages.selectors.newPageModal).on("hide.bs.modal",function(){e.cancelNewPage()}),t(document).on("click",NestedPages.selectors.cancelNewChildButton,function(a){a.preventDefault(),e.cancelNewPage(),t(NestedPages.selectors.newPageModal).modal("hide")})},e.openModal=function(){var a=t(NestedPages.selectors.newPageFormContainer).clone().find(NestedPages.selectors.newPageForm).addClass("in-modal");t(NestedPages.selectors.newPageModal).find(".modal-body").html(a),t(NestedPages.selectors.newPageModal).find("h3").text(nestedpages.add_multiple),t(NestedPages.selectors.newPageModal).find(".page_parent_id").val(e.parent_id),t(NestedPages.selectors.newPageModal).modal("show")},e.openQuickEdit=function(a){var s=t(a).closest(NestedPages.selectors.row).parent("li"),n=t(NestedPages.selectors.newPageFormContainer).clone();if(t(s).children("ol").length>0){var o=t(s).children("ol");t(n).insertBefore(o)}else t(n).appendTo(s);t(n).siblings(NestedPages.selectors.row).hide(),e.formatter.showQuickEdit(),t(n).find(".parent_name").html("<em>Parent:</em> "+t(a).attr("data-parentname")),t(n).find(".page_parent_id").val(t(a).attr("data-id")),t(n).show(),t(n).find(".np_title").focus()},e.cancelNewPage=function(){e.formatter.removeQuickEdit(),t(NestedPages.selectors.newChildError).hide(),t(NestedPages.selectors.newPageModal).find(".modal-body").empty(),t(NestedPages.selectors.sortable).find(".new-child").remove(),t(NestedPages.selectors.row).show()},e.addTitleField=function(e){{var a=t(e).parents("form"),s=t(e).siblings(".new-page-titles").children("li").length+1,n='<li><i class="handle np-icon-menu"></i><div class="form-control new-child-row"><label>'+NestedPages.jsData.titleText+'</label><div><input type="text" name="post_title[]" class="np_title" placeholder="'+NestedPages.jsData.titleText+'" value="" tabindex="'+s+'" /><a href="#" class="button-secondary np-remove-child">-</a></div></div></li>';t(e).siblings(".new-page-titles").append(n)}t(a).find(".np_title").last().focus(),t(".new-page-titles").sortable({items:"li",handle:".handle"})},e.removeTitleField=function(e){t(e).parents(".new-child-row").parent("li").remove()},e.submitForm=function(a){e.toggleLoading(!0),e.form=t(a).parents("form");var s=t(a).hasClass("add-edit")?!0:!1;t.ajax({url:NestedPages.jsData.ajaxurl,type:"post",datatype:"json",data:t(e.form).serialize()+"&action="+NestedPages.formActions.newPage+"&nonce="+NestedPages.jsData.nonce+"&syncmenu="+NestedPages.jsData.syncmenu+"&post_type="+NestedPages.jsData.posttype,success:function(a){if("error"===a.status)return e.toggleLoading(!1),void t(e.form).find(NestedPages.selectors.quickEditErrorDiv).text(a.message).show();if(s===!0){var n=a.new_pages[0].edit_link;return n=n.replace(/&amp;/g,"&"),void window.location.replace(n)}e.toggleLoading(!1),e.posts=a.new_pages,e.addPosts()},error:function(a){console.log(a),e.toggleLoading(!1),t(e.form).find(NestedPages.selectors.quickEditErrorDiv).text("The form could not be saved at this time.").show()}})},e.addPosts=function(){var a=t(e.form).parent(".new-child").parent(".page-row");if(0===t(a).children("ol").length&&t(a).append('<ol class="nplist"></ol>'),t(e.form).hasClass("in-modal"))var s=t(".nplist.sortable li.page-row:first");else var s=t(a).children("ol");for(i=0;i<e.posts.length;i++)e.appendRows(s,e.posts[i]);t(s).show(),e.formatter.updateSubMenuToggle(),e.cancelNewPage(),t(NestedPages.selectors.newPageModal).modal("hide")},e.appendRows=function(e,a){var s='<li id="menuItem_'+a.id+'" class="page-row';"publish"===a.status&&(s+=" published"),s+='">',NestedPages.jsData.hierarchical?(s+='<div class="row">',s+='<div class="child-toggle"></div>'):s+='<div class="row non-hierarchical">',s+='<div class="row-inner">',s+='<i class="np-icon-sub-menu"></i><i class="handle np-icon-menu"></i>',s+='<a href="'+a.edit_link+'" class="page-link page-title">',s+='<span class="title">'+a.title+"</span>",s+="Publish"!==a.status?'<span class="status">('+a.status+")</span>":'<span class="status"></span>',s+='<span class="nav-status"></span><span class="edit-indicator"><i class="np-icon-pencil"></i>Edit</span>',s+="</a>",s+='<div class="action-buttons">',s+='<a href="#" class="np-btn open-redirect-modal" data-parentid="'+a.id+'"><i class="np-icon-link"></i></a>',s+='<a href="#" class="np-btn add-new-child" data-id="'+a.id+'" data-parentname="'+a.title+'">'+nestedpages.add_child_short+"</a>",s+='<a href="#" class="np-btn np-quick-edit" data-id="'+a.id+'" data-template="'+a.page_template+'" data-title="'+a.title+'" data-slug="'+a.slug+'" data-commentstatus="closed" data-status="'+a.status.toLowerCase()+'" data-np-status="show" data-navstatus="show" data-author="'+a.author+'" data-template="'+a.template+'" data-month="'+a.month+'" data-day="'+a.day+'" data-year="'+a.year+'" data-hour="'+a.hour+'" data-minute="'+a.minute+'" data-datepicker="'+a.datepicker+'" data-time="'+a.time+'" data-formattedtime="'+a.formattedtime+'" data-ampm="'+a.ampm+'">'+nestedpages.quick_edit+"</a>",s+='<a href="'+a.view_link+'" class="np-btn" target="_blank">'+nestedpages.view+"</a>",s+='<a href="'+a.delete_link+'" class="np-btn np-btn-trash"><i class="np-icon-remove"></i></a>',s+="</div><!-- .action-buttons -->",s+="</div><!-- .row-inner --></div><!-- .row -->",s+="</li>",t(e).append(s)},e.toggleLoading=function(e){return e?(t(NestedPages.selectors.quickEditErrorDiv).hide(),t(NestedPages.selectors.newPageSubmitButton).attr("disabled","disabled"),void t(NestedPages.selectors.quickEditLoadingIndicator).show()):(t(NestedPages.selectors.newPageSubmitButton).attr("disabled",!1),void t(NestedPages.selectors.quickEditLoadingIndicator).hide())},e.init()};var NestedPages=NestedPages||{};NestedPages.QuickEditPost=function(){var e=this,t=jQuery;return e.formatter=new NestedPages.Formatter,e.button="",e.initialData="",e.parent_li="",e.form="",e.flatTerms="",e.termNames="",e.saveButton="",e.newData="",e.row="",e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("click",NestedPages.selectors.quickEditOpen,function(a){a.preventDefault(),e.button=t(this),e.openForm()}),t(document).on("click",NestedPages.selectors.quickEditCancel,function(t){t.preventDefault(),e.formatter.removeQuickEdit()}),t(document).on("click",NestedPages.selectors.quickEditToggleTaxonomies,function(e){e.preventDefault(),t(this).parents("form").find(".np-taxonomies").toggle()}),t(document).on("click",NestedPages.selectors.quickEditToggleMenuOptions,function(e){e.preventDefault(),t(this).parents("form").find(".np-menuoptions").toggle()}),t(document).on("change",".keep_private",function(){this.checked?t(".post_password").val("").prop("readonly",!0):t(".post_password").prop("readonly",!1)}),t(document).on("click",NestedPages.selectors.quickEditSaveButton,function(a){a.preventDefault(),e.saveButton=t(this),e.save()}),t(document).on("keydown",function(t){27===t.keyCode&&e.formatter.removeQuickEdit()})},e.openForm=function(){e.setInitialData(),e.createForm(),e.populateForm(),e.populateFlatTaxonomies()},e.setInitialData=function(){e.initialData={id:t(e.button).attr("data-id"),title:t(e.button).attr("data-title"),slug:t(e.button).attr("data-slug"),author:t(e.button).attr("data-author"),cs:t(e.button).attr("data-commentstatus"),status:t(e.button).attr("data-status"),template:t(e.button).attr("data-template"),month:t(e.button).attr("data-month"),day:t(e.button).attr("data-day"),year:t(e.button).attr("data-year"),hour:t(e.button).attr("data-hour"),minute:t(e.button).attr("data-minute"),navstatus:t(e.button).attr("data-navstatus"),npstatus:t(e.button).attr("data-np-status"),navtitle:t(e.button).attr("data-navtitle"),navtitleattr:t(e.button).attr("data-navtitleattr"),navcss:t(e.button).attr("data-navcss"),linktarget:t(e.button).attr("data-linktarget"),password:t(e.button).attr("data-password"),datepicker:t(e.button).attr("data-datepicker"),time:t(e.button).attr("data-formattedtime"),ampm:t(e.button).attr("data-ampm")},e.initialData.h_taxonomies=[],e.initialData.f_taxonomies=[],e.parent_li=t(e.button).closest(NestedPages.selectors.row).parent("li");var a=t(e.parent_li).attr("class").split(/\s+/);for(i=0;i<a.length;i++)"in-"===a[i].substring(0,3)&&e.initialData.h_taxonomies.push(a[i]),"inf-"===a[i].substring(0,4)&&e.initialData.f_taxonomies.push(a[i])},e.createForm=function(){if(e.form=t(NestedPages.selectors.quickEditPostForm).clone(),t(e.parent_li).children("ol").length>0){var a=t(e.parent_li).children("ol");t(e.form).insertBefore(a)}else t(e.form).appendTo(e.parent_li);t(e.form).siblings(NestedPages.selectors.row).hide(),t(e.form).show()},e.populateForm=function(){if(t(e.form).find(".page_id").html("<em>ID:</em> "+e.initialData.id),t(e.form).find(".np_id").val(e.initialData.id),t(e.form).find(".np_title").val(e.initialData.title),t(e.form).find(".np_slug").val(e.initialData.slug),t(e.form).find(".np_author select").val(e.initialData.author),t(e.form).find(".np_status").val(e.initialData.status),t(e.form).find(".np_nav_title").val(e.initialData.navtitle),t(e.form).find(".np_title_attribute").val(e.initialData.navtitleattr),t(e.form).find(".np_nav_css_classes").val(e.initialData.navcss),t(e.form).find(".post_password").val(e.initialData.password),t(e.form).find(".np_datepicker").val(e.initialData.datepicker),t(e.form).find(".np_time").val(e.initialData.time),t(e.form).find(".np_ampm").val(e.initialData.ampm),"open"===e.initialData.cs&&t(e.form).find(".np_cs").attr("checked","checked"),t(e.form).find(".np_template").val(""!==e.initialData.template?e.initialData.template:"default"),"private"===e.initialData.status&&(t(e.form).find(".post_password").attr("readonly",!0),t(e.form).find(".keep_private").attr("checked",!0)),"hide"===e.initialData.npstatus?t(e.form).find(".np_status").attr("checked","checked"):t(e.form).find(".np_status").removeAttr("checked"),"hide"===e.initialData.navstatus?t(e.form).find(".np_nav_status").attr("checked","checked"):t(e.form).find(".np_nav_status").attr("checked",!1),"_blank"===e.initialData.linktarget?t(e.form).find(".link_target").attr("checked","checked"):t(e.form).find(".link_target").attr("checked",!1),"private"===e.initialData.status&&t(e.form).find(".np_status").val("publish"),t(e.form).find('select[name="mm"]').val(e.initialData.month),t(e.form).find('input[name="jj"]').val(e.initialData.day),t(e.form).find('input[name="aa"]').val(e.initialData.year),t(e.form).find('input[name="hh"]').val(e.initialData.hour),t(e.form).find('input[name="mn"]').val(e.initialData.minute),e.initialData.hasOwnProperty("h_taxonomies")){var a=e.initialData.h_taxonomies;for(i=0;i<a.length;i++){var s="#"+a[i];t(e.form).find(s).attr("checked","checked")}}t(e.form).find(".np_datepicker").datepicker({beforeShow:function(){t("#ui-datepicker-div").addClass("nestedpages-datepicker")}}),e.formatter.showQuickEdit(),t(e.form).show()},e.populateFlatTaxonomies=function(){e.initialData.hasOwnProperty("f_taxonomies")&&(e.createTaxonomyObject(),e.getTermNames(),e.setWPSuggest())},e.createTaxonomyObject=function(){var t={};for(i=0;i<e.initialData.f_taxonomies.length;i++){var a=e.initialData.f_taxonomies[i],s=a.split("-"),n=s.indexOf("nps"),o=s.splice(n+1);o=o.join("-");var r=a.split("-").splice(0,n);r.shift("inf");var d=r.join("-");d in t||(t[d]=[]);var l=t[d];l.push(o)}e.flatTerms=t},e.getTermNames=function(){t.ajax({url:NestedPages.jsData.ajaxurl,type:"post",datatype:"json",data:{action:NestedPages.formActions.getTaxonomies,nonce:NestedPages.jsData.nonce,terms:e.flatTerms},success:function(t){e.termNames=t.terms,e.populateFlatTaxonomyFields()}})},e.populateFlatTaxonomyFields=function(){e.termNames&&t.each(e.termNames,function(e,a){var s=t("#"+e);t(s).val(a.join(","))})},e.setWPSuggest=function(){var a=t(e.form).find("[data-autotag]");t.each(a,function(){var e=t(this).attr("data-taxonomy");t(this).suggest(ajaxurl+"?action=ajax-tag-search&tax="+e,{multiple:!0,multipleSep:","})})},e.save=function(){e.toggleLoading(!0),t.ajax({url:NestedPages.jsData.ajaxurl,type:"post",datatype:"json",data:t(e.form).find("form").serialize()+"&action="+NestedPages.formActions.quickEditPost+"&nonce="+NestedPages.jsData.nonce+"&syncmenu="+NestedPages.jsData.syncmenu+"&post_type="+NestedPages.jsData.posttype,success:function(a){"error"===a.status?(e.toggleLoading(!1),t(e.form).find(NestedPages.selectors.quickEditErrorDiv).text(a.message).show()):(e.toggleLoading(!1),e.newData=a.post_data,e.updatePostRow())},error:function(e){console.log(e)}})},e.updatePostRow=function(){e.row=t(e.button).parents(".row-inner"),t(e.row).find(".title").text(e.newData.post_title);var a=t(e.row).find(".status");if(t(a).text("publish"!==e.newData._status&&"future"!==e.newData._status?"("+e.newData._status+")":"private"===e.newData.keep_private?"("+e.newData.keep_private+")":""),""!==e.newData.post_password){var s=t(a).text();s+=' <i class="np-icon-lock"></i>',t(a).html(s)}var n=t(e.row).find(".nav-status");t(n).text("hide"==e.newData.nav_status?"(Hidden)":"");var o=t(e.row).parent("li");"hide"==e.newData.np_status?(t(o).addClass("np-hide"),t(e.row).find(".status").after('<i class="np-icon-eye-blocked"></i>')):(t(o).removeClass("np-hide"),t(e.row).find(".np-icon-eye-blocked").remove()),NestedPages.jsData.hierarchical||t(e.row).find(".np-author-display").text(e.newData.author_name);var i=t(e.row).find(NestedPages.selectors.quickEditOpen);t(i).attr("data-id",e.newData.post_id),t(i).attr("data-template",e.newData.page_template),t(i).attr("data-title",e.newData.post_title),t(i).attr("data-slug",e.newData.post_name),t(i).attr("data-commentstatus",e.newData.comment_status),t(i).attr("data-status",e.newData._status),"private"===e.newData.keep_private&&t(i).attr("data-status","private"),t(i).attr("data-author",e.newData.post_author),t(i).attr("data-np-status",e.newData.np_status),t(i).attr("data-password",e.newData.post_password),t(i).attr("data-navstatus",e.newData.nav_status),t(i).attr("data-navtitle",e.newData.np_nav_title),t(i).attr("data-linktarget",e.newData.link_target),t(i).attr("data-navtitleattr",e.newData.np_title_attribute),t(i).attr("data-navcss",e.newData.np_nav_css_classes),t(i).attr("data-month",e.newData.mm),t(i).attr("data-day",e.newData.jj),t(i).attr("data-year",e.newData.aa),t(i).attr("data-hour",e.newData.hh),t(i).attr("data-minute",e.newData.mn),t(i).attr("data-datepicker",e.newData.np_date),t(i).attr("data-time",e.newData.np_time),t(i).attr("data-formattedtime",e.newData.np_time),t(i).attr("data-ampm",e.newData.np_ampm),e.removeTaxonomyClasses(),e.addCategoryClasses(),e.addHierarchicalClasses(),e.addFlatClasses(),e.addStatusClass(),e.formatter.removeQuickEdit(),e.formatter.flashRow(e.row)},e.addStatusClass=function(){var a=["published","draft","pending","future"];for(i=0;i<a.length;i++)t(e.row).removeClass(a[i]);t(e.row).addClass(e.newData._status)},e.removeTaxonomyClasses=function(){taxonomies=[];var a=t(e.row).attr("class").split(/\s+/);for(i=0;i<a.length;i++)"in-"===a[i].substring(0,3)&&t(e.row).removeClass(a[i]),"inf-"===a[i].substring(0,4)&&t(e.row).removeClass(a[i])},e.addCategoryClasses=function(){if(e.newData.hasOwnProperty("post_category")){var a=e.newData.post_category;for(i=0;i<a.length;i++){var s="in-category-"+a[i];t(e.row).addClass(s)}}},e.addHierarchicalClasses=function(){if(e.newData.hasOwnProperty("tax_input")){var a=e.newData.tax_input;t.each(a,function(a,s){for(i=0;i<s.length;i++){var n="in-"+a+"-"+s[i];t(e.row).addClass(n)}})}},e.addFlatClasses=function(){if(e.newData.hasOwnProperty("flat_tax")){var a=e.newData.flat_tax;t.each(a,function(a,s){for(i=0;i<s.length;i++){var n="inf-"+a+"-nps-"+s[i];t(e.row).addClass(n)}})}},e.toggleLoading=function(a){return a?(t(NestedPages.selectors.quickEditErrorDiv).hide(),t(e.saveButton).attr("disabled","disabled"),void t(NestedPages.selectors.quickEditLoadingIndicator).show()):(t(e.saveButton).attr("disabled",!1),void t(NestedPages.selectors.quickEditLoadingIndicator).hide())},e.init()};var NestedPages=NestedPages||{};NestedPages.QuickEditLink=function(){var e=this,t=jQuery;return e.formatter=new NestedPages.Formatter,e.button="",e.postData="",e.newPostData="",e.form="",e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("click",NestedPages.selectors.quickEditButtonLink,function(a){a.preventDefault(),e.formatter.removeQuickEdit(),e.button=t(this),e.openQuickEdit()}),t(document).on("click",NestedPages.selectors.quickEditLinkSaveButton,function(t){t.preventDefault(),e.submitForm()}),t(document).on("keydown",function(t){27===t.keyCode&&e.formatter.removeQuickEdit()})},e.openQuickEdit=function(){e.setData(),e.createForm(),e.populateForm()},e.setData=function(){e.postData={id:t(e.button).attr("data-id"),url:t(e.button).attr("data-url"),title:t(e.button).attr("data-title"),status:t(e.button).attr("data-status"),navstatus:t(e.button).attr("data-navstatus"),npstatus:t(e.button).attr("data-np-status"),linktarget:t(e.button).attr("data-linktarget"),parentid:t(e.button).attr("data-parentid"),navtitleattr:t(e.button).attr("data-navtitleattr"),navcss:t(e.button).attr("data-navcss"),navtype:t(e.button).attr("data-nav-type"),navobject:t(e.button).attr("data-nav-object"),navobjectid:t(e.button).attr("data-nav-object-id"),navoriginallink:t(e.button).attr("data-nav-original-link"),navoriginaltitle:t(e.button).attr("data-nav-original-title")}},e.createForm=function(){var a=t(e.button).closest(NestedPages.selectors.row).parent("li");if(e.form=t(NestedPages.selectors.quickEditLinkForm).clone(),t(a).children("ol").length>0){var s=t(a).children("ol");t(e.form).insertBefore(s)}else t(e.form).appendTo(a);t(e.form).siblings(NestedPages.selectors.row).hide()},e.populateForm=function(){if(t(e.form).find(".np_id").val(e.postData.id),t(e.form).find(".np_title").val(e.postData.title),t(e.form).find(".np_author select").val(e.postData.author),t(e.form).find(".np_status").val(e.postData.status),t(e.form).find(".np_content").val(e.postData.url),t(e.form).find(".np_parent_id").val(e.postData.parentid),t(e.form).find(".np_title_attribute").val(e.postData.navtitleattr),t(e.form).find(".np_nav_css_classes").val(e.postData.navcss),"hide"===e.postData.npstatus?t(e.form).find(".np_status").prop("checked","checked"):t(e.form).find(".np_status").removeAttr("checked"),"hide"===e.postData.navstatus?t(e.form).find(".np_nav_status").prop("checked","checked"):t(e.form).find(".np_nav_status").removeAttr("checked"),"_blank"===e.postData.linktarget?t(e.form).find(".link_target").prop("checked","checked"):t(e.form).find(".link_target").removeAttr("checked"),"custom"!==e.postData.navobject&&""!==e.postData.navobject){var a='<div class="form-control original-link">Original: <a href="'+e.postData.navoriginallink+'" target="_blank">'+e.postData.navoriginaltitle+"</a></div>";t(e.form).find("[data-url-field]").remove(),t(a).insertAfter(t(e.form).find("h3")),t(e.form).find("[data-np-menu-object-input]").val(e.postData.navobject),t(e.form).find("[data-np-menu-objectid-input]").val(e.postData.navobjectid),t(e.form).find("[data-np-menu-type-input]").val(e.postData.navtype),t(e.form).find("h3").text("Link: "+e.postData.navoriginaltitle)}else t(e.form).find("h3").text("Link"),t(e.form).find("[data-np-menu-object-input]").val("custom"),t(e.form).find("[data-np-menu-type-input]").val("custom");e.formatter.showQuickEdit(),t(e.form).show()},e.submitForm=function(){e.toggleLoading(!0),t.ajax({url:NestedPages.jsData.ajaxurl,type:"post",datatype:"json",data:t(e.form).find("form").serialize()+"&action="+NestedPages.formActions.quickEditLink+"&nonce="+NestedPages.jsData.nonce+"&syncmenu="+NestedPages.jsData.syncmenu+"&post_type="+NestedPages.jsData.posttype,success:function(a){"error"===a.status?(e.toggleLoading(!1),t(e.form).find(NestedPages.selectors.quickEditErrorDiv).text(a.message).show()):(e.toggleLoading(!1),e.newPostData=a.post_data,e.updateRow())},error:function(){e.toggleLoading(!1),t(e.form).find(NestedPages.selectors.quickEditErrorDiv).text("The form could not be saved at this time.").show()}})},e.updateRow=function(){console.log(e.newPostData);var a=t(e.form).siblings(".row");t(a).find(".title").html(e.newPostData.post_title+' <i class="np-icon-link"></i>');var s=t(a).find(".status");t(s).text("publish"!==e.newPostData._status&&"future"!==e.newPostData._status?"("+e.newPostData._status+")":"");var n=t(a).find(".nav-status");t(n).text("hide"==e.newPostData.nav_status?"("+NestedPages.jsData.hiddenText+")":"");var o=t(a).parent("li");"hide"==e.newPostData.np_status?(t(o).addClass("np-hide"),t(a).find(".status").after('<i class="np-icon-eye-blocked"></i>')):(t(o).removeClass("np-hide"),t(a).find(".np-icon-eye-blocked").remove());var i=t(a).find(NestedPages.selectors.quickEditButtonLink);t(i).attr("data-id",e.newPostData.post_id),t(i).attr("data-title",e.newPostData.post_title),t(i).attr("data-url",e.newPostData.post_content),t(i).attr("data-status",e.newPostData._status),t(i).attr("data-navstatus",e.newPostData.nav_status),t(i).attr("data-np-status",e.newPostData.np_status),t(i).attr("data-linkTarget",e.newPostData.linkTarget),t(i).attr("data-navtitleattr",e.newPostData.titleAttribute),t(i).attr("data-navcss",e.newPostData.cssClasses),e.formatter.removeQuickEdit(),e.formatter.flashRow(a)},e.toggleLoading=function(e){return t(".row").removeClass("np-updated").removeClass("np-updated-show"),e?(t(NestedPages.selectors.quickEditErrorDiv).hide(),t(NestedPages.selectors.quickEditLinkSaveButton).attr("disabled","disabled"),void t(NestedPages.selectors.quickEditLoadingIndicator).show()):(t(NestedPages.selectors.quickEditLinkSaveButton).attr("disabled",!1),void t(NestedPages.selectors.quickEditLoadingIndicator).hide())},e.init()};var NestedPages=NestedPages||{};NestedPages.Clone=function(){var e=this,t=jQuery;return e.parent_id="",e.parent_title="",e.parentLi=null,e.formatter=new NestedPages.Formatter,e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("click",NestedPages.selectors.cloneButton,function(a){a.preventDefault(),e.parent_id=t(this).attr("data-id"),e.parent_title=t(this).attr("data-parentname"),e.parentLi=t(this).parent(".row").parent(".page-row").parent(".npList"),e.openModal()}),t(document).on("click",NestedPages.selectors.confirmClone,function(t){t.preventDefault(),e.clone()})},e.openModal=function(){t(NestedPages.selectors.cloneModal).find("[data-clone-parent]").text(e.parent_title),t(NestedPages.selectors.cloneModal).modal("show")},e.clone=function(){e.toggleLoading(!0),t.ajax({url:NestedPages.jsData.ajaxurl,type:"post",data:{action:NestedPages.formActions.clonePost,parent_id:e.parent_id,quantity:t(NestedPages.selectors.cloneQuantity).val(),status:t(NestedPages.selectors.cloneStatus).val(),author:t(NestedPages.selectors.cloneAuthor).find("select").val(),nonce:NestedPages.jsData.nonce,posttype:NestedPages.jsData.posttype},success:function(){e.toggleLoading(!1),t(NestedPages.selectors.cloneModal).modal("hide"),location.reload()
2
- }})},e.toggleLoading=function(e){return e?(t(NestedPages.selectors.cloneModal).find("[data-clone-loading]").show(),void t(NestedPages.selectors.confirmClone).attr("disabled","disabled")):(t(NestedPages.selectors.cloneModal).find("[data-clone-loading]").hide(),void t(NestedPages.selectors.confirmClone).attr("disabled",!1))},e.init()};var NestedPages=NestedPages||{};NestedPages.Tabs=function(){var e=this,t=jQuery;return e.activeContent="",e.activeButton="",e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("click",NestedPages.selectors.tabButton,function(a){a.preventDefault(),e.activeButton=t(this),e.toggleTabs()})},e.toggleTabs=function(){e.activeContent=t(e.activeButton).attr("href"),t(NestedPages.selectors.tabContent).hide(),t(e.activeContent).show(),t(e.activeButton).parents(NestedPages.selectors.tabButtonParent).find(NestedPages.selectors.tabButton).removeClass("active"),t(e.activeButton).addClass("active")},e.init()},jQuery(document).ready(function(){new NestedPages.Factory});var NestedPages=NestedPages||{};NestedPages.selectors={childToggle:".child-toggle",childToggleLink:".child-toggle a",toggleAll:".nestedpages-toggleall",toggleHidden:".np-toggle-hidden",toggleStatus:".np-toggle-publish",lists:".nplist",rows:".page-row",row:".row",sortable:".sortable",notSortable:".no-sort",handle:".handle",published:".published",hiddenRows:".np-hide",errorDiv:"#np-error",loadingIndicator:"#nested-loading",syncCheckbox:".np-sync-menu",ajaxError:"[data-nestedpages-error]",toggleEditButtons:".np-toggle-edit",quickEditOverlay:".np-inline-overlay",quickEditLoadingIndicator:".np-qe-loading",quickEditErrorDiv:".np-quickedit-error",quickEditCancel:".np-cancel-quickedit",quickEditToggleTaxonomies:".np-toggle-taxonomies",quickEditToggleMenuOptions:".np-toggle-menuoptions",quickEditButtonLink:".np-quick-edit-redirect",quickEditLinkForm:".quick-edit-form-redirect",quickEditLinkSaveButton:".np-save-quickedit-redirect",quickEditOpen:".np-quick-edit",quickEditPostForm:".quick-edit-form",quickEditSaveButton:".np-save-quickedit",openLinkModal:".open-redirect-modal",linkModal:"#np-link-modal",saveLink:".np-save-link",linkLoadingIndicator:".np-link-loading",linkErrorDiv:".np-new-link-error",linkForm:".np-new-link-form",openPageModal:".open-bulk-modal",newPageModal:"#np-bulk-modal",newPageFormContainer:".new-child-form",newPageForm:".np-new-child-form",newPageSubmitButton:".np-save-newchild",newPageTitle:".add-new-child-row",newPageRemoveTitle:".np-remove-child",addChildButton:".add-new-child",newChildError:".np-newchild-error",cancelNewChildButton:".np-cancel-newchild",cloneButton:".clone-post",confirmClone:"[data-confirm-clone]",cloneModal:"#np-clone-modal",cloneQuantity:"[data-clone-quantity]",cloneStatus:"[data-clone-status]",cloneAuthor:"[data-clone-author]",tabButtonParent:"[data-np-tabs]",tabButton:"[data-np-tab]",tabContent:"[data-np-tab-pane]"},NestedPages.cssClasses={iconToggleDown:"np-icon-arrow-down",iconToggleRight:"np-icon-arrow-right",noborder:"no-border"},NestedPages.jsData={ajaxurl:ajaxurl,nonce:nestedpages.np_nonce,allPostTypes:nestedpages.post_types,syncmenu:"nosync",posttype:"",nestable:!0,hierarchical:!0,expandText:nestedpages.expand_text,collapseText:nestedpages.collapse_text,showHiddenText:nestedpages.show_hidden,hideHiddenText:nestedpages.hide_hidden,quickEditText:nestedpages.quick_edit,hiddenText:nestedpages.hidden,titleText:nestedpages.title},NestedPages.formActions={syncToggles:"npnestToggle",syncNesting:"npsort",syncMenu:"npsyncMenu",newPage:"npnewChild",quickEditLink:"npquickEditLink",getTaxonomies:"npgetTaxonomies",quickEditPost:"npquickEdit",clonePost:"npclonePost",search:"npmenuSearch",newMenuItem:"npnewMenuItem"},NestedPages.Factory=function(){var e=this,t=jQuery;return e.formatter=new NestedPages.Formatter,e.responsive=new NestedPages.Responsive,e.menuToggle=new NestedPages.MenuToggle,e.pageToggle=new NestedPages.PageToggle,e.nesting=new NestedPages.Nesting,e.syncMenuSetting=new NestedPages.SyncMenuSetting,e.newPage=new NestedPages.NewPage,e.quickEditLink=new NestedPages.QuickEditLink,e.quickEditPost=new NestedPages.QuickEditPost,e.clone=new NestedPages.Clone,e.tabs=new NestedPages.Tabs,e.menuLinks=new NestedPages.MenuLinks,e.init=function(){e.bindEvents(),e.setPostType(),e.setMenuSync(),e.setNestable(),e.formatter.updateSubMenuToggle(),e.formatter.setBorders(),e.formatter.setNestedMargins(),e.nesting.initializeSortable()},e.bindEvents=function(){t(document).on("click",NestedPages.selectors.quickEditOverlay,function(){e.formatter.removeQuickEdit(),e.newPage.cancelNewPage()}),t(document).ready(function(){e.formatter.hideAjaxError()})},e.setNestable=function(){var e=!0;t.each(NestedPages.jsData.allPostTypes,function(t,a){a.name===NestedPages.jsData.posttype&&(a.hierarchical===!0&&(e=!0),a.disable_nesting===!0&&(e=!1))}),NestedPages.jsData.nestable=e},e.setPostType=function(){NestedPages.jsData.posttype=t(NestedPages.selectors.sortable).attr("id").substring(3),NestedPages.jsData.hierarchical=NestedPages.jsData.allPostTypes[NestedPages.jsData.posttype].hierarchical},e.setMenuSync=function(){NestedPages.jsData.syncmenu="1"===nestedpages.syncmenu?"sync":"nosync"},e.init()};var NestedPages=NestedPages||{};NestedPages.MenuLinks=function(){var e=this,t=jQuery;return e.typeButton="",e.post="",e.formatter=new NestedPages.Formatter,e.selectors={form:"[data-np-menu-item-form]",typeSelect:"[data-np-menu-selection]",accordion:"[data-np-menu-accordion]",accordionItem:"[data-np-menu-accordion-item]",formPlaceholder:".np-menu-link-object-placeholder",formDetails:".np-menu-link-details",searchResults:"[data-np-search-result]",defaultResults:"[data-default-result]",originalLink:"[data-np-original-link]",saveButton:"[data-np-save-link]",urlInputCont:"[data-np-menu-url-cont]",errorDiv:"[data-np-error]"},e.fields={object:"[data-np-menu-object-input]",objectid:"[data-np-menu-objectid-input]",itemType:"[data-np-menu-type-input]",url:"[data-np-menu-url]",navigationLabel:"[data-np-menu-navigation-label]",titleAttribute:"[data-np-menu-title-attr]",cssClasses:"[data-np-menu-css-classes]",npStatus:"[data-np-menu-np-status]",linkTarget:"[data-np-menu-link-target]",menuTitle:"[data-np-menu-title]"},e.search=new NestedPages.MenuSearch,e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("click",NestedPages.selectors.openLinkModal,function(a){a.preventDefault(),e.postParent=t(this).attr("data-parentid"),t(e.selectors.form).find(".parent_id").val(t(this).attr("data-parentid")),e.openModal()}),t(document).on("click",e.selectors.accordionItem,function(a){a.preventDefault(),e.accordion(t(this))}),t(document).on("click",e.selectors.typeSelect,function(a){a.preventDefault(),e.typeButton=t(this),e.setLinkType()}),t(document).on("keyup",e.fields.navigationLabel,function(){e.updateTitle()}),t(document).on("click",e.selectors.saveButton,function(t){t.preventDefault(),e.submitForm()}),t(document).on("keydown",function(e){27===e.keyCode&&t("#np-link-modal").modal("hide")})},e.openModal=function(){t(NestedPages.selectors.linkErrorDiv).hide(),t(NestedPages.selectors.linkModal).find("input").val(""),t(NestedPages.selectors.linkModal).find(".parent_id").val(e.postParent),e.clearForm(),t(e.selectors.accordion).find("ul").hide(),t(e.selectors.typeSelect).removeClass("active"),t(NestedPages.selectors.linkModal).modal("show")},e.accordion=function(a){e.clearForm();var s=t(a).siblings("ul");return t(s).is(":visible")?(t(a).removeClass("active"),void t(s).slideUp("fast")):(t(e.selectors.accordionItem).removeClass("active"),t(a).addClass("active"),t(a).parents(e.selectors.accordion).find("ul").slideUp("fast"),void t(s).slideDown("fast"))},e.setLinkType=function(){return t(e.typeButton).hasClass("active")?void e.clearForm():(t(e.typeButton).hasClass("np-custom-link")&&(t(e.selectors.accordionItem).removeClass("active"),t(e.selectors.accordion).find("ul").slideUp("fast")),t(e.selectors.formPlaceholder).hide(),void e.populateForm())},e.populateForm=function(){t(e.selectors.saveButton).show(),t(e.selectors.typeSelect).removeClass("active"),t(e.typeButton).addClass("active"),t(e.fields.menuTitle).text(t(e.typeButton).text()).val(t(e.typeButton).text()),t(e.selectors.form).find("h3").find("em").text(t(e.typeButton).attr("data-np-object-name")),""!==t(e.typeButton).attr("data-np-permalink")?(t(e.selectors.form).find(e.selectors.urlInputCont).hide(),t(e.selectors.form).find(e.selectors.originalLink).html('<a href="'+t(e.typeButton).attr("data-np-permalink")+'">'+t(e.typeButton).text()+"</a>"),t(e.selectors.form).find(e.selectors.originalLink).parent(".original-link").show()):(t(e.selectors.form).find(e.selectors.urlInputCont).show(),t(e.selectors.form).find(e.selectors.originalLink).parent(".original-link").hide()),t(e.fields.object).val(t(e.typeButton).attr("data-np-menu-object")),t(e.fields.objectid).val(t(e.typeButton).attr("data-np-menu-objectid")),t(e.fields.itemType).val(t(e.typeButton).attr("data-np-menu-type")),t(e.selectors.formDetails).show()},e.clearForm=function(){t(e.selectors.form).find(e.selectors.errorDiv).hide(),t(e.selectors.saveButton).hide(),t(e.selectors.formDetails).hide(),t(e.selectors.formPlaceholder).show(),t(e.selectors.form).find("input").not(".parent_id").val(""),t(e.selectors.form).find(e.fields.linkTarget).val("_blank"),t(e.selectors.form).find('input[type="checkbox"]').attr("checked",!1),t(e.selectors.typeSelect).removeClass("active"),e.search.toggleLoading(!1),t(e.selectors.searchResults).remove(),t(e.selectors.defaultResults).show()},e.updateTitle=function(){var a=t(e.fields.navigationLabel).val(),s=t(e.selectors.form).find("h3").find("span");""!==a?(t(e.fields.menuTitle).val(a),t(s).text(a)):(t(e.fields.menuTitle).val(t(e.typeButton).text()),t(s).text(t(e.typeButton).text()))},e.submitForm=function(){e.toggleLoading(!0),t.ajax({url:NestedPages.jsData.ajaxurl,type:"post",data:t(e.selectors.form).serialize()+"&action="+NestedPages.formActions.newMenuItem+"&nonce="+NestedPages.jsData.nonce+"&post_type="+NestedPages.jsData.posttype+"&syncmenu="+NestedPages.jsData.syncmenu,success:function(a){return e.toggleLoading(!1),"error"===a.status?void t(e.selectors.form).find(e.selectors.errorDiv).text(a.message).show():(e.post=a.post_data,void e.createRow())},error:function(e){console.log(e)}})},e.createRow=function(){var a='<li id="menuItem_'+e.post.id+'" class="page-row published';a+='">',a+='<div class="row"><div class="child-toggle"></div><div class="row-inner"><i class="np-icon-sub-menu"></i><i class="handle np-icon-menu"></i><a href="'+e.post.np_link_content+'" class="page-link page-title" target="_blank"><span class="title">'+e.post.menuTitle+' <i class="np-icon-link"></i></span>',a+='</a><a href="#" class="np-toggle-edit"><i class="np-icon-pencil"></i></a><div class="action-buttons"><a href="#" class="np-btn np-quick-edit-redirect" ',a+='data-id="'+e.post.id+'"',a+='data-parentid="'+e.post.parent_id+'"',a+='data-title="'+e.post.menuTitle+'" ',a+='data-url="'+e.post.url+'" ',a+='data-status="publish" ',a+='data-np-status="show" ',a+='data-navstatus="show" ',a+='data-navcss="'+e.post.cssClasses+'" ',a+='data-navtitleattr="'+e.post.titleAttribute+'" ',a+='data-nav-type="'+e.post.menuType+'" ',a+='data-nav-object="'+e.post.objectType+'" ',a+='data-nav-object-id="'+e.post.objectId+'" ',a+='data-nav-original-link="'+e.post.original_link+'" ',a+='data-nav-original-title="'+e.post.original_title+'" ',a+='data-linktarget="'+e.post.link_target+'">',a+=NestedPages.jsData.quickEditText,a+="</a>",a+='<a href="'+e.post.delete_link+'" class="np-btn np-btn-trash"><i class="np-icon-remove"></i></a>',a+="</div></div></div></li>","0"===e.post.parent_id?t(".nplist:first li:first").after(a):e.appendChildRow(a),t(NestedPages.selectors.linkModal).modal("hide"),e.row=t("#menuItem_"+e.post.id).find(".row"),e.formatter.flashRow(e.row)},e.appendChildRow=function(a){var s=t("#menuItem_"+e.post.parent_id);0===t(s).children("ol").length?(a='<ol class="sortable nplist" style="display:block;">'+a+"</ol>",t(s).append(a)):t(s).find("ol:first").prepend(a),e.formatter.updateSubMenuToggle()},e.toggleLoading=function(a){return a?(t(e.selectors.form).find(e.selectors.errorDiv).hide(),t(e.selectors.form).find(NestedPages.selectors.quickEditLoadingIndicator).show(),void t(e.selectors.saveButton).attr("disabled","disabled")):(t(e.selectors.form).find(NestedPages.selectors.quickEditLoadingIndicator).hide(),void t(e.selectors.saveButton).attr("disabled",!1))},e.init()};var NestedPages=NestedPages||{};NestedPages.MenuSearch=function(){var e=this,t=jQuery;return e.selectors={searchForms:"*[data-np-menu-search]",defaultResults:"[data-default-result]",loadingIndicator:".np-menu-search-loading",noResults:".np-menu-search-noresults",searchType:"data-search-type",searchObject:"data-search-object",searchResults:"[data-np-search-result]"},e.activeForm="",e.results="",e.defaultResults="",e.searchType="",e.searchObject="",e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("keyup",e.selectors.searchForms,function(){e.activeForm=t(this),t(e.selectors.searchResults).remove(),e.performSearch()})},e.performSearch=function(){return e.defaultResults=t(e.activeForm).parent("li").siblings(e.selectors.defaultResults),t(e.activeForm).val().length>2?(t(e.defaultResults).hide(),e.toggleLoading(!0),void e.query()):(e.toggleLoading(!1),void t(e.defaultResults).show())},e.query=function(){e.searchType=t(e.activeForm).attr(e.selectors.searchType),e.searchObject=t(e.activeForm).attr(e.selectors.searchObject),t.ajax({url:NestedPages.jsData.ajaxurl,type:"post",datatype:"json",data:{action:NestedPages.formActions.search,nonce:NestedPages.jsData.nonce,term:t(e.activeForm).val(),searchType:e.searchType,searchObject:e.searchObject},success:function(a){console.log(a),a.results?(e.results=a.results,e.toggleLoading(!1),"post_type"===e.searchType?e.appendPosts():e.appendTaxonomies()):(e.toggleLoading(!1),t(e.activeForm).siblings(e.selectors.noResults).show())}})},e.appendPosts=function(){var a="";t.each(e.results,function(t,s){a+='<li data-np-search-result><a href="#" data-np-menu-object="'+e.searchObject+'" data-np-menu-type="post_type" data-np-menu-objectid="'+s.ID+'" data-np-permalink="'+s.permalink+'" data-np-object-name="'+s.singular_name+'" data-np-menu-selection>'+s.post_title+"</a></li>"}),t(a).insertAfter(t(e.activeForm).parent("li")),e.toggleLoading(!1)},e.appendTaxonomies=function(){var a="";t.each(e.results,function(t,s){a+='<li data-np-search-result><a href="#" data-np-menu-object="'+e.searchObject+'" data-np-menu-type="post_type" data-np-menu-objectid="'+s.term_id+'" data-np-permalink="'+s.permalink+'" data-np-object-name="'+s.taxonomy+'" data-np-menu-selection>'+s.name+"</a></li>"}),t(a).insertAfter(t(e.activeForm).parent("li")),e.toggleLoading(!1)},e.toggleLoading=function(a){var s=t(e.activeForm).siblings(e.selectors.loadingIndicator);return t(e.selectors.noResults).hide(),a?void t(s).show():void t(s).hide()},e.init()},jQuery(document).ready(function(){new NestedPagesTrash});var NestedPagesTrash=function(){var e=this,t=jQuery;return e.trashButton=".np-empty-trash",e.confirmButton=".np-trash-confirm",e.warningModal="#np-trash-modal",e.errorAlert="#np-error",e.loadingIndicator="#nested-loading",e.trashLinks=".np-trash-links",e.postType=t("#np-trash-posttype").val(),e.nonce=nestedpages.np_nonce,e.formAction="npEmptyTrash",e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("click",e.trashButton,function(a){a.preventDefault(),t(e.warningModal).modal("show")}),t(document).on("click",e.confirmButton,function(t){t.preventDefault(),e.confirmEmpty()})},e.confirmEmpty=function(){e.loading(!0),t(e.warningModal).hide(),t(e.errorAlert).hide(),e.emptyTrash()},e.emptyTrash=function(){t.ajax({url:ajaxurl,type:"post",datatype:"json",data:{action:e.formAction,nonce:e.nonce,posttype:e.postType},success:function(a){e.loading(!1),"error"===a.status?t(e.errorAlert).text(a.message).show():t(e.trashLinks).hide()}})},e.loading=function(a){return a?void t(e.loadingIndicator).show():void t(e.loadingIndicator).hide()},e.init()};jQuery(document).ready(function(){new NestedPagesConfirmDelete});var NestedPagesConfirmDelete=function(){var e=this,t=jQuery;return e.deleteButton="[data-np-confirm-delete]",e.confirmButton="[data-delete-confirmation]",e.warningModal="#np-delete-confirmation-modal",e.deleteLink="",e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("click",e.deleteButton,function(a){a.preventDefault(),e.deleteLink=t(this).attr("href"),t(e.warningModal).modal("show")}),t(document).on("click",e.confirmButton,function(t){t.preventDefault(),e.confirmEmpty()})},e.confirmEmpty=function(){window.location.replace(e.deleteLink)},e.init()};
1
+ var NestedPages=NestedPages||{};NestedPages.Responsive=function(){var e=this,t=jQuery;return e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("click",NestedPages.selectors.toggleEditButtons,function(a){a.preventDefault(),e.toggleEdit(t(this))}),t(window).resize(function(){e.timer(function(){t(".action-buttons").removeAttr("style"),t(".np-toggle-edit").removeClass("active")},500)})},e.toggleEdit=function(e){var a=t(e).siblings(".action-buttons");return t(a).is(":visible")?(t(e).removeClass("active"),void t(a).hide()):(t(e).addClass("active"),void t(a).show())},e.timer=function(){var e=0;return function(t,a){clearTimeout(e),e=setTimeout(t,a)}}(),e.init()};var NestedPages=NestedPages||{};NestedPages.Formatter=function(){var e=this,t=jQuery;e.updateSubMenuToggle=function(){for(var e=t(NestedPages.selectors.childToggle),a=0;a<e.length;a++){var s=e[a],n=t(s).parent(".row").parent("li");if(t(n).children("ol").length>0){var o=t(n).children("ol:visible").length>0?NestedPages.cssClasses.iconToggleDown:NestedPages.cssClasses.iconToggleRight;t(s).html('<div class="child-toggle-spacer"></div><a href="#"><i class="'+o+'"></i></a>'),t(n).children("ol").children(".np-hide").length>0&&0===t(n).children("ol").children(".np-hide.shown").length?t(s).find("a").hide():t(n).children("ol").children(".np-hide").length>0&&t(n).children("ol").children(".np-hide.shown").length>0&&t(s).find("a").show()}else t(s).empty().html('<div class="child-toggle-spacer"></div>')}},e.setBorders=function(){t(NestedPages.selectors.rows).removeClass(NestedPages.cssClasses.noborder),t.each(t(NestedPages.selectors.lists),function(){t(this).find(".page-row:visible:first").addClass(NestedPages.cssClasses.noborder)})},e.setNestedMargins=function(){t.each(t(NestedPages.selectors.lists),function(e,a){var s=t(this).parents(NestedPages.selectors.lists).length,n=0;if(s>0){var n=20*s+n;return void t(this).find(".row-inner").css("padding-left",n+"px")}t(this).find(".row-inner").css("padding-left","0px")})},e.updatePlaceholderWidth=function(a){if(NestedPages.jsData.nestable){var s=t(a.placeholder).parents("ol").length,n=t(NestedPages.selectors.sortable).width(),o=40*s-40,i=n-o;t(a.placeholder).width(i).css("margin-left",o+"px")}e.updateListVisibility(a)},e.updateListVisibility=function(e){var a=t(e.placeholder).parent("ol");t(a).is(":visible")||(t(a).addClass("nplist"),t(a).show())},e.removeQuickEdit=function(){t(NestedPages.selectors.quickEditOverlay).removeClass("active").remove(),t(".sortable .quick-edit").remove(),t(".row").show()},e.showQuickEdit=function(){t("body").append('<div class="np-inline-overlay"></div>'),setTimeout(function(){t(".np-inline-overlay").addClass("active")},50)},e.flashRow=function(a){t(a).addClass("np-updated"),e.setBorders(),setTimeout(function(){t(a).addClass("np-updated-show")},1500)},e.showAjaxError=function(e){t(NestedPages.selectors.ajaxError).find("p").text(e),t(NestedPages.selectors.ajaxError).show()},e.hideAjaxError=function(e){t(NestedPages.selectors.ajaxError).hide()},e.sizeLinkThumbnails=function(){var e=t(NestedPages.selectors.thumbnailContainer).not(NestedPages.selectors.thumbnailContainerLink).first().find("img"),a=t(e).width(),s=t(e).height();t.each(t(NestedPages.selectors.thumbnailContainerLink),function(){t(this).width(a),t(this).height(s)})}};var NestedPages=NestedPages||{};NestedPages.CheckAll=function(){var e=this,t=jQuery;return e.activeCheckbox="",e.selectors={checkbox:"[data-np-check-all]"},e.bindEvents=function(){t(document).on("change",e.selectors.checkbox,function(){e.activeCheckbox=t(this),e.toggleCheckboxes()}),t(document).on("change","input[type=checkbox]",function(){e.checkAllStatus(t(this))})},e.init=function(){e.bindEvents()},e.toggleCheckboxes=function(){var a=!!t(e.activeCheckbox).is(":checked"),s=t(e.activeCheckbox).attr("data-np-check-all"),n=t('*[name="'+s+'"]');t.each(n,function(){var e=t(this).parents(NestedPages.selectors.rows);t(this).prop("checked",a),t(e).hasClass("np-hide")&&!t(e).is(":visible")&&t(e).find(NestedPages.selectors.bulkActionsCheckbox).prop("checked",!1)}),e.toggleCheckAll()},e.toggleCheckAll=function(){var a=t(e.activeCheckbox).attr("data-np-check-all"),s=t('*[name="'+a+'"]').length,n=t(".np-hide").find(NestedPages.selectors.bulkActionsCheckbox).length,o=t(".np-hide:visible").find(NestedPages.selectors.bulkActionsCheckbox).length;s=s-n+o;var i=t('*[name="'+a+'"]:checked').length;return s==i?(t(e.activeCheckbox).prop("checked",!0),void t(e.activeCheckbox).removeClass("check-all-partial")):i>0?void t(e.activeCheckbox).addClass("check-all-partial"):(t(e.activeCheckbox).attr("checked",!1),void t(e.activeCheckbox).removeClass("check-all-partial"))},e.checkAllStatus=function(a){var s=t(a).attr("name"),n=t('*[data-np-check-all="'+s+'"]');0!==n.length&&(e.activeCheckbox=t(n)[0],e.toggleCheckAll())},e.init()};var NestedPages=NestedPages||{};NestedPages.BulkActions=function(){var e=this,t=jQuery;return e.selectedNumber=0,e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("change",NestedPages.selectors.bulkActionsCheckbox,function(){e.toggleBulkForm()})},e.toggleBulkForm=function(){var a=!1,s="",n="";return t.each(t(NestedPages.selectors.bulkActionsCheckbox),function(){if(t(this).is(":checked")){var e=t(this).parents(NestedPages.selectors.rows);a=!0,t(this).parent("div").hasClass("np-check-all")||t(e).hasClass("post-type-np-redirect")||(s+=t(this).val()+","),t(e).hasClass("post-type-np-redirect")&&(n+=t(this).val()+",")}}),a?(t(NestedPages.selectors.bulkActionsForm).show(),t(NestedPages.selectors.bulkActionsIds).val(s),t(NestedPages.selectors.bulkActionRedirectIds).val(n),void e.setSelectedNumber()):(t(NestedPages.selectors.bulkActionsIds).val(""),void t(NestedPages.selectors.bulkActionsForm).hide())},e.setSelectedNumber=function(){var e=t(NestedPages.selectors.bulkActionsCheckbox+":checked").not(".np-check-all input").length,a=t(NestedPages.selectors.bulkActionsForm).find("select option").first();t(a).text(nestedpages.bulk_actions+" ("+e+")")},e.init()};var NestedPages=NestedPages||{};NestedPages.HiddenItemCount=function(){var e=this,t=jQuery;return e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("change",NestedPages.selectors.bulkActionsCheckbox,function(){e.toggleHiddenCount()}),t(document).on("click",NestedPages.selectors.toggleAll,function(){e.toggleHiddenCount()}),t(document).on("click",NestedPages.selectors.pageToggle,function(){e.toggleHiddenCount()})},e.toggleHiddenCount=function(){var e=0;return t.each(t(NestedPages.selectors.bulkActionsCheckbox),function(){if(t(this).is(":checked")){if(t(this).parent("div").hasClass("np-check-all"))return;var a=t(this).closest(".page-row");t(a).is(":visible")||e++}}),e<1?void t(NestedPages.selectors.hiddenItemCountParent).hide():(t(NestedPages.selectors.hiddenItemCount).text(e),void t(NestedPages.selectors.hiddenItemCountParent).show())},e.init()};var NestedPages=NestedPages||{};NestedPages.MenuToggle=function(){var e=this,t=jQuery;return e.formatter=new NestedPages.Formatter,e.bindEvents=function(){t(document).on("click",NestedPages.selectors.childToggleLink,function(a){a.preventDefault(),e.toggleSingleMenu(t(this))}),t(document).on("click",NestedPages.selectors.toggleAll,function(t){t.preventDefault(),e.toggleAllMenus()})},e.toggleSingleMenu=function(a){var s=t(a).parent(NestedPages.selectors.childToggle).parent(NestedPages.selectors.row).siblings("ol");t(a).find("i").toggleClass(NestedPages.cssClasses.iconToggleDown).toggleClass(NestedPages.cssClasses.iconToggleRight),t(s).toggle(),e.formatter.setBorders(),e.formatter.setNestedMargins(),e.syncUserToggles()},e.toggleAllMenus=function(){var a=NestedPages.selectors.toggleAll;return"closed"===t(a).attr("data-toggle")?(t(NestedPages.selectors.lists).show(),t(a).attr("data-toggle","opened").text(NestedPages.jsData.collapseText),t(NestedPages.selectors.childToggle).find("i").removeClass(NestedPages.cssClasses.iconToggleRight).addClass(NestedPages.cssClasses.iconToggleDown),e.formatter.setBorders(),void e.syncUserToggles()):(t(NestedPages.selectors.lists).not(t(NestedPages.selectors.lists)[0]).hide(),t(a).attr("data-toggle","closed").text(NestedPages.jsData.expandText),t(NestedPages.selectors.childToggle).find("i").removeClass(NestedPages.cssClasses.iconToggleDown).addClass(NestedPages.cssClasses.iconToggleRight),e.formatter.setBorders(),void e.syncUserToggles())},e.visibleRowIDs=function(){var e=[],a=t(NestedPages.selectors.rows+":visible");return t.each(a,function(a,s){var n=t(this).attr("id");e.push(n.replace("menuItem_",""))}),e},e.syncUserToggles=function(){t.ajax({url:NestedPages.jsData.ajaxurl,type:"post",datatype:"json",data:{action:NestedPages.formActions.syncToggles,nonce:NestedPages.jsData.nonce,ids:e.visibleRowIDs(),posttype:NestedPages.jsData.posttype},success:function(e){"success"!==e.status&&console.log("There was an error saving toggled pages.")}})},e.bindEvents()};var NestedPages=NestedPages||{};NestedPages.PageToggle=function(){var e=this,t=jQuery;return e.activeButton="",e.formatter=new NestedPages.Formatter,e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("click",NestedPages.selectors.toggleHidden,function(a){a.preventDefault(),e.activeButton=t(this),e.toggleHidden()}),t(document).on("click",NestedPages.selectors.toggleStatus,function(a){a.preventDefault(),e.toggleStatus(t(this))})},e.toggleHidden=function(){var a=t(e.activeButton),s=t(a).attr("href");return console.log(s),"#show"==s?(t(a).attr("href","#hide").text(NestedPages.jsData.showHiddenText),t(NestedPages.selectors.hiddenRows).removeClass("shown").hide(),e.formatter.updateSubMenuToggle(),void e.formatter.setBorders()):void("#hide"==s&&(t(a).attr("href","#show").text(NestedPages.jsData.hideHiddenText),t(NestedPages.selectors.hiddenRows).addClass("shown").show(),e.formatter.updateSubMenuToggle(),e.formatter.setBorders()))},e.toggleStatus=function(e){var a=t(e).attr("href");return a=a.substring(1),t(NestedPages.selectors.syncCheckbox).attr("disabled",!1),t(NestedPages.selectors.toggleStatus).removeClass("active"),t(e).addClass("active"),"draft"==a&&(t(NestedPages.selectors.syncCheckbox).attr("disabled",!0),t("."+a).addClass("nested-visible")),"all"==a?void t(NestedPages.selectors.rows).show():(t(NestedPages.selectors.rows).hide(),void t("."+a).show())},e.init()};var NestedPages=NestedPages||{};NestedPages.Nesting=function(){var e=this,t=jQuery;e.formatter=new NestedPages.Formatter,e.initializeSortable=function(){maxLevels=NestedPages.jsData.nestable?0:1,t(NestedPages.selectors.sortable).not(NestedPages.selectors.notSortable).nestedSortable({items:NestedPages.selectors.rows,toleranceElement:"> .row",handle:NestedPages.selectors.handle,placeholder:"ui-sortable-placeholder",maxLevels:maxLevels,tabSize:56,start:function(e,t){t.placeholder.height(t.item.height())},sort:function(t,a){e.formatter.updatePlaceholderWidth(a)},stop:function(t,a){setTimeout(function(){e.formatter.updateSubMenuToggle(),e.formatter.setBorders(),e.formatter.setNestedMargins()},100),e.syncNesting()}})},e.disableNesting=function(){t(NestedPages.selectors.sortable).sortable("destroy")},e.syncNesting=function(a,s){if("1"!==nestedpages.manual_order_sync||a){t(NestedPages.selectors.errorDiv).hide(),t(NestedPages.selectors.loadingIndicator).show(),list=t(NestedPages.selectors.sortable).nestedSortable("toHierarchy",{startDepthCount:0}),e.disableNesting();var n=NestedPages.jsData.syncmenu;"1"===nestedpages.manual_menu_sync&&(n="nosync"),t.ajax({url:ajaxurl,type:"post",datatype:"json",data:{action:NestedPages.formActions.syncNesting,nonce:NestedPages.jsData.nonce,list:list,post_type:NestedPages.jsData.posttype,syncmenu:n},success:function(a,s){if(e.initializeSortable(),"error"===a.status)t(NestedPages.selectors.errorDiv).text(a.message).show(),t(NestedPages.selectors.loadingIndicator).hide();else{if(s&&"function"==typeof s)return void s();t(NestedPages.selectors.loadingIndicator).hide()}}})}}};var NestedPages=NestedPages||{};NestedPages.SyncMenuSetting=function(){var e=this,t=jQuery;return e.formatter=new NestedPages.Formatter,e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).ready(function(){"1"!==nestedpages.manual_menu_sync&&"1"===nestedpages.syncmenu&&e.syncSetting()}),t(document).on("change",NestedPages.selectors.syncCheckbox,function(){e.syncSetting()})},e.syncSetting=function(){"page"===NestedPages.jsData.posttype&&0!==t(NestedPages.selectors.syncCheckbox).length&&(NestedPages.jsData.syncmenu=t(NestedPages.selectors.syncCheckbox).is(":checked")?"sync":"nosync",t.ajax({url:NestedPages.jsData.ajaxurl,type:"post",datatype:"json",data:{action:NestedPages.formActions.syncMenu,nonce:NestedPages.jsData.nonce,post_type:NestedPages.jsData.posttype,syncmenu:NestedPages.jsData.syncmenu},success:function(t){"error"===t.status&&e.formatter.showAjaxError(t.message)}}))},e.bindEvents()};var NestedPages=NestedPages||{};NestedPages.NewPage=function(){var e=this,t=jQuery;return e.formatter=new NestedPages.Formatter,e.parent_id=0,e.posts="",e.form="",e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("click",NestedPages.selectors.openPageModal,function(t){t.preventDefault(),e.openModal()}),t(document).on("submit",NestedPages.selectors.newPageForm,function(e){e.preventDefault()}),t(document).on("click",NestedPages.selectors.newPageSubmitButton,function(a){a.preventDefault(),e.submitForm(t(this))}),t(document).on("click",NestedPages.selectors.newPageTitle,function(a){a.preventDefault(),e.addTitleField(t(this))}),t(document).on("click",NestedPages.selectors.newPageRemoveTitle,function(a){a.preventDefault(),e.removeTitleField(t(this))}),t(document).on("click",NestedPages.selectors.addChildButton,function(a){a.preventDefault(),e.openQuickEdit(t(this))}),t(NestedPages.selectors.newPageModal).on("hide.bs.modal",function(){e.cancelNewPage()}),t(NestedPages.selectors.newPageModal).on("shown.bs.modal",function(){e.modalOpened(t(this))}),t(document).on("click",NestedPages.selectors.cancelNewChildButton,function(a){a.preventDefault(),e.cancelNewPage(),t(NestedPages.selectors.newPageModal).modal("hide")})},e.openModal=function(){var a=t(NestedPages.selectors.newPageFormContainer).clone().find(NestedPages.selectors.newPageForm);t(a).addClass("in-modal"),t(NestedPages.selectors.newPageModal).find(".modal-body").html(a),t(NestedPages.selectors.newPageModal).find("h3").text(nestedpages.add_multiple),t(NestedPages.selectors.newPageModal).find(".page_parent_id").val(e.parent_id),t(NestedPages.selectors.newPageModal).modal("show")},e.modalOpened=function(e){t(e).find(".np_title").focus(),t(e).find(NestedPages.selectors.newPageTitle).prop("tabindex","2")},e.openQuickEdit=function(a){var s=t(a).closest(NestedPages.selectors.row).parent("li"),n=t(NestedPages.selectors.newPageFormContainer).clone();if(t(s).children("ol").length>0){var o=t(s).children("ol");t(n).insertBefore(o)}else t(n).appendTo(s);t(n).siblings(NestedPages.selectors.row).hide(),e.formatter.showQuickEdit(),t(n).find(".parent_name").html("<em>Parent:</em> "+t(a).attr("data-parentname")),t(n).find(".page_parent_id").val(t(a).attr("data-id")),t(n).show(),t(n).find(".np_title").focus(),t(n).find(NestedPages.selectors.newPageTitle).prop("tabindex","2")},e.cancelNewPage=function(){e.formatter.removeQuickEdit(),t(NestedPages.selectors.newChildError).hide(),t(NestedPages.selectors.newPageModal).find(".modal-body").empty(),t(NestedPages.selectors.sortable).find(".new-child").remove(),t(NestedPages.selectors.row).show()},e.addTitleField=function(e){var a=t(e).parents("form"),s=t(e).siblings(".new-page-titles").children("li").length+1,n='<li><i class="handle np-icon-menu"></i><div class="form-control new-child-row"><label>'+NestedPages.jsData.titleText+'</label><div><input type="text" name="post_title[]" class="np_title" placeholder="'+NestedPages.jsData.titleText+'" value="" tabindex="'+s+'" /><a href="#" class="button-secondary np-remove-child">-</a></div></div></li>';t(e).siblings(".new-page-titles").append(n);t(a).find(".np_title").last().focus(),t(a).find(NestedPages.selectors.newPageTitle).prop("tabindex",s++),t(".new-page-titles").sortable({items:"li",handle:".handle"})},e.removeTitleField=function(e){t(e).parents(".new-child-row").parent("li").remove()},e.submitForm=function(a){e.toggleLoading(!0),e.form=t(a).parents("form");var s=!!t(a).hasClass("add-edit");t.ajax({url:NestedPages.jsData.ajaxurl,type:"post",datatype:"json",data:t(e.form).serialize()+"&action="+NestedPages.formActions.newPage+"&nonce="+NestedPages.jsData.nonce+"&syncmenu="+NestedPages.jsData.syncmenu+"&post_type="+NestedPages.jsData.posttype,success:function(a){if("error"===a.status)return e.toggleLoading(!1),void t(e.form).find(NestedPages.selectors.quickEditErrorDiv).text(a.message).show();if(s===!0){var n=a.new_pages[0].edit_link;return n=n.replace(/&amp;/g,"&"),void window.location.replace(n)}e.toggleLoading(!1),e.posts=a.new_pages,e.addPosts()},error:function(a){console.log(a),e.toggleLoading(!1),t(e.form).find(NestedPages.selectors.quickEditErrorDiv).text("The form could not be saved at this time.").show()}})},e.addPosts=function(){var a=t(e.form).parent(".new-child").parent(".page-row");if(0===t(a).children("ol").length&&t(a).append('<ol class="nplist"></ol>'),t(e.form).hasClass("in-modal"))var s=t(".nplist.sortable li.page-row:first");else var s=t(a).children("ol");for(i=0;i<e.posts.length;i++)e.appendRows(s,e.posts[i]);t(s).show(),e.formatter.updateSubMenuToggle(),e.cancelNewPage(),t(NestedPages.selectors.newPageModal).modal("hide")},e.appendRows=function(e,a){var s='<li id="menuItem_'+a.id+'" class="page-row';"publish"===a.status&&(s+=" published"),s+='">',NestedPages.jsData.hierarchical?(s+='<div class="row">',s+='<div class="child-toggle"></div>'):(s+='<div class="row non-hierarchical">',s+='<div class="non-hierarchical-spacer"></div>'),s+='<div class="row-inner">',s+='<i class="np-icon-sub-menu"></i><i class="handle np-icon-menu"></i>',s+='<a href="'+a.edit_link+'" class="page-link page-title">',s+='<span class="title">'+a.title+"</span>",s+="Publish"!==a.status?'<span class="status">('+a.status+")</span>":'<span class="status"></span>',s+='<span class="nav-status">',"hide"===a.np_nav_status&&(s+=" "+nestedpages.hidden),s+="</span>",s+='<span class="edit-indicator"><i class="np-icon-pencil"></i>Edit</span>',s+="</a>",NestedPages.jsData.hierarchical||(s+='<div class="np-post-columns">',s+='<ul class="np-post-info">',s+='<li><span class="np-author-display">'+a.author_formatted+"</span></li>",s+="<li>"+a.date_formatted+"</li>",s+="</ul>",s+="</div>"),t(".nplist").first().hasClass("has-yoast")&&(s+='<span class="np-seo-indicator na"></span>'),s+='<div class="action-buttons">',s+='<a href="#" class="np-btn open-redirect-modal" data-parentid="'+a.id+'"><i class="np-icon-link"></i></a>',s+='<a href="#" class="np-btn add-new-child" data-id="'+a.id+'" data-parentname="'+a.title+'">'+nestedpages.add_child_short+"</a>",s+='<a href="#" class="np-btn np-quick-edit" data-id="'+a.id+'" data-template="'+a.page_template+'" data-title="'+a.title+'" data-slug="'+a.slug+'" data-commentstatus="closed" data-status="'+a.status.toLowerCase()+'" data-np-status="show"\tdata-navstatus="show" data-author="'+a.author+'" data-template="'+a.template+'" data-month="'+a.month+'" data-day="'+a.day+'" data-year="'+a.year+'" data-hour="'+a.hour+'" data-minute="'+a.minute+'" data-datepicker="'+a.datepicker+'" data-time="'+a.time+'" data-formattedtime="'+a.formattedtime+'" data-ampm="'+a.ampm+'">'+nestedpages.quick_edit+"</a>",s+='<a href="'+a.view_link+'" class="np-btn" target="_blank">'+nestedpages.view+"</a>",s+='<a href="'+a.delete_link+'" class="np-btn np-btn-trash"><i class="np-icon-remove"></i></a>',s+="</div><!-- .action-buttons -->",s+="</div><!-- .row-inner --></div><!-- .row -->",s+="</li>",t(e).append(s)},e.toggleLoading=function(e){return e?(t(NestedPages.selectors.quickEditErrorDiv).hide(),t(NestedPages.selectors.newPageSubmitButton).attr("disabled","disabled"),void t(NestedPages.selectors.quickEditLoadingIndicator).show()):(t(NestedPages.selectors.newPageSubmitButton).attr("disabled",!1),void t(NestedPages.selectors.quickEditLoadingIndicator).hide())},e.init()};var NestedPages=NestedPages||{};NestedPages.QuickEditPost=function(){var e=this,t=jQuery;return e.formatter=new NestedPages.Formatter,e.button="",e.initialData="",e.parent_li="",e.form="",e.flatTerms="",e.termNames="",e.saveButton="",e.newData="",e.row="",e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("click",NestedPages.selectors.quickEditOpen,function(a){a.preventDefault(),e.button=t(this),e.openForm()}),t(document).on("click",NestedPages.selectors.quickEditCancel,function(t){t.preventDefault(),e.formatter.removeQuickEdit()}),t(document).on("click",NestedPages.selectors.quickEditToggleTaxonomies,function(e){e.preventDefault(),t(this).parents("form").find(".np-taxonomies").toggle()}),t(document).on("click",NestedPages.selectors.quickEditToggleMenuOptions,function(e){e.preventDefault(),t(this).parents("form").find(".np-menuoptions").toggle()}),t(document).on("change",".keep_private",function(){this.checked?t(".post_password").val("").prop("readonly",!0):t(".post_password").prop("readonly",!1)}),t(document).on("click",NestedPages.selectors.quickEditSaveButton,function(a){a.preventDefault(),e.saveButton=t(this),e.save()}),t(document).on("keydown",function(t){27===t.keyCode&&e.formatter.removeQuickEdit()})},e.openForm=function(){e.setInitialData(),e.createForm(),e.populateForm(),e.populateFlatTaxonomies()},e.setInitialData=function(){e.initialData={id:t(e.button).attr("data-id"),title:t(e.button).attr("data-title"),slug:t(e.button).attr("data-slug"),author:t(e.button).attr("data-author"),cs:t(e.button).attr("data-commentstatus"),status:t(e.button).attr("data-status"),template:t(e.button).attr("data-template"),month:t(e.button).attr("data-month"),day:t(e.button).attr("data-day"),year:t(e.button).attr("data-year"),hour:t(e.button).attr("data-hour"),minute:t(e.button).attr("data-minute"),navstatus:t(e.button).attr("data-navstatus"),npstatus:t(e.button).attr("data-np-status"),navtitle:t(e.button).attr("data-navtitle"),navtitleattr:t(e.button).attr("data-navtitleattr"),navcss:t(e.button).attr("data-navcss"),linktarget:t(e.button).attr("data-linktarget"),password:t(e.button).attr("data-password"),datepicker:t(e.button).attr("data-datepicker"),time:t(e.button).attr("data-formattedtime"),ampm:t(e.button).attr("data-ampm")},e.initialData.h_taxonomies=[],e.initialData.f_taxonomies=[],e.parent_li=t(e.button).closest(NestedPages.selectors.row).parent("li");var a=t(e.parent_li).attr("class").split(/\s+/);for(i=0;i<a.length;i++)"in-"===a[i].substring(0,3)&&e.initialData.h_taxonomies.push(a[i]),"inf-"===a[i].substring(0,4)&&e.initialData.f_taxonomies.push(a[i])},e.createForm=function(){if(e.form=t(NestedPages.selectors.quickEditPostForm).clone(),t(e.parent_li).children("ol").length>0){var a=t(e.parent_li).children("ol");t(e.form).insertBefore(a)}else t(e.form).appendTo(e.parent_li);t(e.form).siblings(NestedPages.selectors.row).hide(),t(e.form).show()},e.populateForm=function(){if(t(e.form).find(".page_id").html("<em>ID:</em> "+e.initialData.id),t(e.form).find(".np_id").val(e.initialData.id),t(e.form).find(".np_title").val(e.initialData.title),t(e.form).find(".np_slug").val(e.initialData.slug),t(e.form).find(".np_author select").val(e.initialData.author),t(e.form).find(".np_status").val(e.initialData.status),t(e.form).find(".np_nav_title").val(e.initialData.navtitle),t(e.form).find(".np_title_attribute").val(e.initialData.navtitleattr),t(e.form).find(".np_nav_css_classes").val(e.initialData.navcss),t(e.form).find(".post_password").val(e.initialData.password),t(e.form).find(".np_datepicker").val(e.initialData.datepicker),t(e.form).find(".np_time").val(e.initialData.time),t(e.form).find(".np_ampm").val(e.initialData.ampm),"open"===e.initialData.cs&&t(e.form).find(".np_cs").attr("checked","checked"),""!==e.initialData.template?t(e.form).find(".np_template").val(e.initialData.template):t(e.form).find(".np_template").val("default"),"private"===e.initialData.status&&(t(e.form).find(".post_password").attr("readonly",!0),t(e.form).find(".keep_private").attr("checked",!0)),"hide"===e.initialData.npstatus?t(e.form).find(".np_status").attr("checked","checked"):t(e.form).find(".np_status").removeAttr("checked"),"hide"===e.initialData.navstatus?t(e.form).find(".np_nav_status").attr("checked","checked"):t(e.form).find(".np_nav_status").attr("checked",!1),"_blank"===e.initialData.linktarget?t(e.form).find(".link_target").attr("checked","checked"):t(e.form).find(".link_target").attr("checked",!1),"private"===e.initialData.status&&t(e.form).find(".np_status").val("publish"),t(e.form).find('select[name="mm"]').val(e.initialData.month),t(e.form).find('input[name="jj"]').val(e.initialData.day),t(e.form).find('input[name="aa"]').val(e.initialData.year),t(e.form).find('input[name="hh"]').val(e.initialData.hour),t(e.form).find('input[name="mn"]').val(e.initialData.minute),e.initialData.hasOwnProperty("h_taxonomies")){var a=e.initialData.h_taxonomies;for(i=0;i<a.length;i++){var s="#"+a[i];t(e.form).find(s).attr("checked","checked")}}t(e.form).find(".np_datepicker").datepicker({beforeShow:function(e,a){t("#ui-datepicker-div").addClass("nestedpages-datepicker")}}),e.formatter.showQuickEdit(),t(e.form).show()},e.populateFlatTaxonomies=function(){e.initialData.hasOwnProperty("f_taxonomies")&&(e.createTaxonomyObject(),e.getTermNames(),e.setWPSuggest())},e.createTaxonomyObject=function(){var t={};for(i=0;i<e.initialData.f_taxonomies.length;i++){var a=e.initialData.f_taxonomies[i],s=a.split("-"),n=s.indexOf("nps"),o=s.splice(n+1);o=o.join("-");var r=a.split("-").splice(0,n);r.shift("inf");var d=r.join("-");d in t||(t[d]=[]);var l=t[d];l.push(o)}e.flatTerms=t},e.getTermNames=function(){t.ajax({url:NestedPages.jsData.ajaxurl,type:"post",datatype:"json",data:{action:NestedPages.formActions.getTaxonomies,nonce:NestedPages.jsData.nonce,terms:e.flatTerms},success:function(t){e.termNames=t.terms,e.populateFlatTaxonomyFields()}})},e.populateFlatTaxonomyFields=function(){e.termNames&&t.each(e.termNames,function(e,a){var s=t("#"+e);t(s).val(a.join(","))})},e.setWPSuggest=function(){var a=t(e.form).find("[data-autotag]");t.each(a,function(e,a){var s=t(this).attr("data-taxonomy");t(this).suggest(ajaxurl+"?action=ajax-tag-search&tax="+s,{multiple:!0,multipleSep:","})})},e.save=function(){e.toggleLoading(!0),t.ajax({url:NestedPages.jsData.ajaxurl,type:"post",datatype:"json",data:t(e.form).find("form").serialize()+"&action="+NestedPages.formActions.quickEditPost+"&nonce="+NestedPages.jsData.nonce+"&syncmenu="+NestedPages.jsData.syncmenu+"&post_type="+NestedPages.jsData.posttype,success:function(a){"error"===a.status?(e.toggleLoading(!1),t(e.form).find(NestedPages.selectors.quickEditErrorDiv).text(a.message).show()):(e.toggleLoading(!1),e.newData=a.post_data,e.updatePostRow())},error:function(e){console.log(e)}})},e.updatePostRow=function(){e.row=t(e.button).parents(".row-inner"),t(e.row).find(".title").text(e.newData.post_title),t(e.row).find(".np-view-button").attr("href",e.newData.permalink);var a=t(e.row).find(".status");if("publish"!==e.newData._status&&"future"!==e.newData._status?t(a).text("("+e.newData._status+")"):"private"===e.newData.keep_private?t(a).text("("+e.newData.keep_private+")"):t(a).text(""),""!==e.newData.post_password&&"undefined"!=typeof e.newData.post_password){var s=t(a).text();s+=' <i class="np-icon-lock"></i>',t(a).html(s)}var n=t(e.row).find(".nav-status");"hide"==e.newData.nav_status?t(n).text("(Hidden)"):t(n).text("");var o=t(e.row).parent("li");"hide"==e.newData.np_status?(t(o).addClass("np-hide"),t(e.row).find(".status").after('<i class="np-icon-eye-blocked"></i>')):(t(o).removeClass("np-hide"),t(e.row).find(".np-icon-eye-blocked").remove()),NestedPages.jsData.hierarchical||t(e.row).find(".np-author-display").text(e.newData.author_name);var i=t(e.row).find(NestedPages.selectors.quickEditOpen);t(i).attr("data-id",e.newData.post_id),t(i).attr("data-template",e.newData.page_template),t(i).attr("data-title",e.newData.post_title),t(i).attr("data-slug",e.newData.post_name),t(i).attr("data-commentstatus",e.newData.comment_status),t(i).attr("data-status",e.newData._status),"private"===e.newData.keep_private&&t(i).attr("data-status","private"),t(i).attr("data-author",e.newData.post_author),t(i).attr("data-np-status",e.newData.np_status),t(i).attr("data-password",e.newData.post_password),t(i).attr("data-navstatus",e.newData.nav_status),t(i).attr("data-navtitle",e.newData.np_nav_title),t(i).attr("data-linktarget",e.newData.link_target),t(i).attr("data-navtitleattr",e.newData.np_title_attribute),t(i).attr("data-navcss",e.newData.np_nav_css_classes),t(i).attr("data-month",e.newData.mm),t(i).attr("data-day",e.newData.jj),t(i).attr("data-year",e.newData.aa),t(i).attr("data-hour",e.newData.hh),t(i).attr("data-minute",e.newData.mn),t(i).attr("data-datepicker",e.newData.np_date),t(i).attr("data-time",e.newData.np_time),t(i).attr("data-formattedtime",e.newData.np_time),t(i).attr("data-ampm",e.newData.np_ampm),e.removeTaxonomyClasses(),e.addCategoryClasses(),e.addHierarchicalClasses(),e.addFlatClasses(),e.addStatusClass(),e.formatter.removeQuickEdit(),e.formatter.flashRow(e.row)},e.addStatusClass=function(){var a=["published","draft","pending","future"];for(i=0;i<a.length;i++)t(e.row).removeClass(a[i]);t(e.row).addClass(e.newData._status)},e.removeTaxonomyClasses=function(){taxonomies=[];var a=t(e.row).attr("class").split(/\s+/);for(i=0;i<a.length;i++)"in-"===a[i].substring(0,3)&&t(e.row).removeClass(a[i]),"inf-"===a[i].substring(0,4)&&t(e.row).removeClass(a[i])},e.addCategoryClasses=function(){if(e.newData.hasOwnProperty("post_category")){var a=e.newData.post_category;for(i=0;i<a.length;i++){var s="in-category-"+a[i];t(e.row).addClass(s)}}},e.addHierarchicalClasses=function(){if(e.newData.hasOwnProperty("tax_input")){var a=e.newData.tax_input;t.each(a,function(a,s){for(i=0;i<s.length;i++){var n="in-"+a+"-"+s[i];t(e.row).addClass(n)}})}},e.addFlatClasses=function(){if(e.newData.hasOwnProperty("flat_tax")){var a=e.newData.flat_tax;t.each(a,function(a,s){for(i=0;i<s.length;i++){var n="inf-"+a+"-nps-"+s[i];t(e.row).addClass(n)}})}},e.toggleLoading=function(a){return a?(t(NestedPages.selectors.quickEditErrorDiv).hide(),t(e.saveButton).attr("disabled","disabled"),void t(NestedPages.selectors.quickEditLoadingIndicator).show()):(t(e.saveButton).attr("disabled",!1),void t(NestedPages.selectors.quickEditLoadingIndicator).hide())},e.init()};var NestedPages=NestedPages||{};NestedPages.QuickEditLink=function(){var e=this,t=jQuery;return e.formatter=new NestedPages.Formatter,e.button="",e.postData="",e.newPostData="",e.form="",e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("click",NestedPages.selectors.quickEditButtonLink,function(a){a.preventDefault(),e.formatter.removeQuickEdit(),e.button=t(this),e.openQuickEdit()}),t(document).on("click",NestedPages.selectors.quickEditLinkSaveButton,function(t){t.preventDefault(),e.submitForm()}),t(document).on("keydown",function(t){27===t.keyCode&&e.formatter.removeQuickEdit()})},e.openQuickEdit=function(){e.setData(),e.createForm(),e.populateForm()},e.setData=function(){e.postData={id:t(e.button).attr("data-id"),url:t(e.button).attr("data-url"),title:t(e.button).attr("data-title"),status:t(e.button).attr("data-status"),navstatus:t(e.button).attr("data-navstatus"),npstatus:t(e.button).attr("data-np-status"),linktarget:t(e.button).attr("data-linktarget"),parentid:t(e.button).attr("data-parentid"),navtitleattr:t(e.button).attr("data-navtitleattr"),navcss:t(e.button).attr("data-navcss"),navtype:t(e.button).attr("data-nav-type"),navobject:t(e.button).attr("data-nav-object"),navobjectid:t(e.button).attr("data-nav-object-id"),navoriginallink:t(e.button).attr("data-nav-original-link"),navoriginaltitle:t(e.button).attr("data-nav-original-title")};
2
+ },e.createForm=function(){var a=t(e.button).closest(NestedPages.selectors.row).parent("li");if(e.form=t(NestedPages.selectors.quickEditLinkForm).clone(),t(a).children("ol").length>0){var s=t(a).children("ol");t(e.form).insertBefore(s)}else t(e.form).appendTo(a);t(e.form).siblings(NestedPages.selectors.row).hide()},e.populateForm=function(){if(t(e.form).find(".np_id").val(e.postData.id),t(e.form).find(".np_title").val(e.postData.title),t(e.form).find(".np_author select").val(e.postData.author),t(e.form).find(".np_status").val(e.postData.status),t(e.form).find(".np_content").val(e.postData.url),t(e.form).find(".np_parent_id").val(e.postData.parentid),t(e.form).find(".np_title_attribute").val(e.postData.navtitleattr),t(e.form).find(".np_nav_css_classes").val(e.postData.navcss),"hide"===e.postData.npstatus?t(e.form).find(".np_status").prop("checked","checked"):t(e.form).find(".np_status").removeAttr("checked"),"hide"===e.postData.navstatus?t(e.form).find(".np_nav_status").prop("checked","checked"):t(e.form).find(".np_nav_status").removeAttr("checked"),"_blank"===e.postData.linktarget?t(e.form).find(".link_target").prop("checked","checked"):t(e.form).find(".link_target").removeAttr("checked"),"custom"!==e.postData.navobject&&""!==e.postData.navobject){var a='<div class="form-control original-link">Original: <a href="'+e.postData.navoriginallink+'" target="_blank">'+e.postData.navoriginaltitle+"</a></div>";t(e.form).find("[data-url-field]").remove(),t(a).insertAfter(t(e.form).find("h3")),t(e.form).find("[data-np-menu-object-input]").val(e.postData.navobject),t(e.form).find("[data-np-menu-objectid-input]").val(e.postData.navobjectid),t(e.form).find("[data-np-menu-type-input]").val(e.postData.navtype),t(e.form).find("h3").text("Link: "+e.postData.navoriginaltitle)}else t(e.form).find("h3").text("Link"),t(e.form).find("[data-np-menu-object-input]").val("custom"),t(e.form).find("[data-np-menu-type-input]").val("custom");e.formatter.showQuickEdit(),t(e.form).show()},e.submitForm=function(){e.toggleLoading(!0),t.ajax({url:NestedPages.jsData.ajaxurl,type:"post",datatype:"json",data:t(e.form).find("form").serialize()+"&action="+NestedPages.formActions.quickEditLink+"&nonce="+NestedPages.jsData.nonce+"&syncmenu="+NestedPages.jsData.syncmenu+"&post_type="+NestedPages.jsData.posttype,success:function(a){"error"===a.status?(e.toggleLoading(!1),t(e.form).find(NestedPages.selectors.quickEditErrorDiv).text(a.message).show()):(e.toggleLoading(!1),e.newPostData=a.post_data,e.updateRow())},error:function(a){e.toggleLoading(!1),t(e.form).find(NestedPages.selectors.quickEditErrorDiv).text("The form could not be saved at this time.").show()}})},e.updateRow=function(){console.log(e.newPostData);var a=t(e.form).siblings(".row");t(a).find(".title").html(e.newPostData.post_title+' <i class="np-icon-link"></i>');var s=t(a).find(".status");"publish"!==e.newPostData._status&&"future"!==e.newPostData._status?t(s).text("("+e.newPostData._status+")"):t(s).text("");var n=t(a).find(".nav-status");"hide"==e.newPostData.nav_status?t(n).text("("+NestedPages.jsData.hiddenText+")"):t(n).text("");var o=t(a).parent("li");"hide"==e.newPostData.np_status?(t(o).addClass("np-hide"),t(a).find(".status").after('<i class="np-icon-eye-blocked"></i>')):(t(o).removeClass("np-hide"),t(a).find(".np-icon-eye-blocked").remove());var i=t(a).find(NestedPages.selectors.quickEditButtonLink);t(i).attr("data-id",e.newPostData.post_id),t(i).attr("data-title",e.newPostData.post_title),t(i).attr("data-url",e.newPostData.post_content),t(i).attr("data-status",e.newPostData._status),t(i).attr("data-navstatus",e.newPostData.nav_status),t(i).attr("data-np-status",e.newPostData.np_status),t(i).attr("data-linkTarget",e.newPostData.linkTarget),t(i).attr("data-navtitleattr",e.newPostData.titleAttribute),t(i).attr("data-navcss",e.newPostData.cssClasses),e.formatter.removeQuickEdit(),e.formatter.flashRow(a)},e.toggleLoading=function(e){return t(".row").removeClass("np-updated").removeClass("np-updated-show"),e?(t(NestedPages.selectors.quickEditErrorDiv).hide(),t(NestedPages.selectors.quickEditLinkSaveButton).attr("disabled","disabled"),void t(NestedPages.selectors.quickEditLoadingIndicator).show()):(t(NestedPages.selectors.quickEditLinkSaveButton).attr("disabled",!1),void t(NestedPages.selectors.quickEditLoadingIndicator).hide())},e.init()};var NestedPages=NestedPages||{};NestedPages.Clone=function(){var e=this,t=jQuery;return e.parent_id="",e.parent_title="",e.parentLi=null,e.formatter=new NestedPages.Formatter,e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("click",NestedPages.selectors.cloneButton,function(a){a.preventDefault(),e.parent_id=t(this).attr("data-id"),e.parent_title=t(this).attr("data-parentname"),e.parentLi=t(this).parent(".row").parent(".page-row").parent(".npList"),e.openModal()}),t(document).on("click",NestedPages.selectors.confirmClone,function(t){t.preventDefault(),e.clone()})},e.openModal=function(){t(NestedPages.selectors.cloneModal).find("[data-clone-parent]").text(e.parent_title),t(NestedPages.selectors.cloneModal).modal("show")},e.clone=function(){e.toggleLoading(!0),t.ajax({url:NestedPages.jsData.ajaxurl,type:"post",data:{action:NestedPages.formActions.clonePost,parent_id:e.parent_id,quantity:t(NestedPages.selectors.cloneQuantity).val(),status:t(NestedPages.selectors.cloneStatus).val(),author:t(NestedPages.selectors.cloneAuthor).find("select").val(),nonce:NestedPages.jsData.nonce,posttype:NestedPages.jsData.posttype},success:function(a){e.toggleLoading(!1),t(NestedPages.selectors.cloneModal).modal("hide"),location.reload()}})},e.toggleLoading=function(e){return e?(t(NestedPages.selectors.cloneModal).find("[data-clone-loading]").show(),void t(NestedPages.selectors.confirmClone).attr("disabled","disabled")):(t(NestedPages.selectors.cloneModal).find("[data-clone-loading]").hide(),void t(NestedPages.selectors.confirmClone).attr("disabled",!1))},e.init()};var NestedPages=NestedPages||{};NestedPages.Tabs=function(){var e=this,t=jQuery;return e.activeContent="",e.activeButton="",e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("click",NestedPages.selectors.tabButton,function(a){a.preventDefault(),e.activeButton=t(this),e.toggleTabs()})},e.toggleTabs=function(){e.activeContent=t(e.activeButton).attr("href"),t(NestedPages.selectors.tabContent).hide(),t(e.activeContent).show(),t(e.activeButton).parents(NestedPages.selectors.tabButtonParent).find(NestedPages.selectors.tabButton).removeClass("active"),t(e.activeButton).addClass("active")},e.init()},jQuery(document).ready(function(){new NestedPages.Factory});var NestedPages=NestedPages||{};NestedPages.selectors={childToggle:".child-toggle",childToggleLink:".child-toggle a",toggleAll:".nestedpages-toggleall",toggleHidden:".np-toggle-hidden",toggleStatus:".np-toggle-publish",lists:".nplist",rows:".page-row",row:".row",sortable:".sortable",notSortable:".no-sort",handle:".handle",published:".published",hiddenRows:".np-hide",errorDiv:"#np-error",loadingIndicator:"#nested-loading",syncCheckbox:".np-sync-menu",syncForm:".np-sync-menu-cont",ajaxError:"[data-nestedpages-error]",toggleEditButtons:".np-toggle-edit",bulkActionsForm:"[data-np-bulk-form]",bulkActionsCheckbox:"[data-np-bulk-checkbox]",bulkActionsIds:"[data-np-bulk-ids]",bulkActionRedirectIds:"[data-np-bulk-redirect-ids]",hiddenItemCount:"[data-np-hidden-count]",hiddenItemCountParent:"[data-np-hidden-count-parent]",quickEditOverlay:".np-inline-overlay",quickEditLoadingIndicator:".np-qe-loading",quickEditErrorDiv:".np-quickedit-error",quickEditCancel:".np-cancel-quickedit",quickEditToggleTaxonomies:".np-toggle-taxonomies",quickEditToggleMenuOptions:".np-toggle-menuoptions",quickEditButtonLink:".np-quick-edit-redirect",quickEditLinkForm:".quick-edit-form-redirect",quickEditLinkSaveButton:".np-save-quickedit-redirect",quickEditOpen:".np-quick-edit",quickEditPostForm:".quick-edit-form",quickEditSaveButton:".np-save-quickedit",openLinkModal:".open-redirect-modal",linkModal:"#np-link-modal",saveLink:".np-save-link",linkLoadingIndicator:".np-link-loading",linkErrorDiv:".np-new-link-error",linkForm:".np-new-link-form",linkDeleteButton:"[data-np-confirm-delete]",linkDeleteConfirmationButton:"[data-delete-confirmation]",linkDeleteConfirmationModal:"#np-delete-confirmation-modal",linkDeleteConfirmationModalText:"[data-np-link-delete-text]",openPageModal:".open-bulk-modal",newPageModal:"#np-bulk-modal",newPageFormContainer:".new-child-form",newPageForm:".np-new-child-form",newPageSubmitButton:".np-save-newchild",newPageTitle:".add-new-child-row",newPageRemoveTitle:".np-remove-child",addChildButton:".add-new-child",newChildError:".np-newchild-error",cancelNewChildButton:".np-cancel-newchild",cloneButton:".clone-post",confirmClone:"[data-confirm-clone]",cloneModal:"#np-clone-modal",cloneQuantity:"[data-clone-quantity]",cloneStatus:"[data-clone-status]",cloneAuthor:"[data-clone-author]",tabButtonParent:"[data-np-tabs]",tabButton:"[data-np-tab]",tabContent:"[data-np-tab-pane]",thumbnailContainer:".np-thumbnail",thumbnailContainerLink:".np-thumbnail.link",manualMenuSync:"[data-np-manual-menu-sync]",manualOrderSync:"[data-np-manual-order-sync]"},NestedPages.cssClasses={iconToggleDown:"np-icon-arrow-down",iconToggleRight:"np-icon-arrow-right",noborder:"no-border"},NestedPages.jsData={ajaxurl:ajaxurl,nonce:nestedpages.np_nonce,allPostTypes:nestedpages.post_types,syncmenu:"nosync",posttype:"",nestable:!0,hierarchical:!0,expandText:nestedpages.expand_text,collapseText:nestedpages.collapse_text,showHiddenText:nestedpages.show_hidden,hideHiddenText:nestedpages.hide_hidden,quickEditText:nestedpages.quick_edit,hiddenText:nestedpages.hidden,titleText:nestedpages.title},NestedPages.formActions={syncToggles:"npnestToggle",syncNesting:"npsort",syncMenu:"npsyncMenu",newPage:"npnewChild",quickEditLink:"npquickEditLink",getTaxonomies:"npgetTaxonomies",quickEditPost:"npquickEdit",clonePost:"npclonePost",search:"npmenuSearch",newMenuItem:"npnewMenuItem",manualMenuSync:"npmanualMenuSync"},NestedPages.Factory=function(){var e=this,t=jQuery;return e.formatter=new NestedPages.Formatter,e.responsive=new NestedPages.Responsive,e.checkAll=new NestedPages.CheckAll,e.bulkActions=new NestedPages.BulkActions,e.menuToggle=new NestedPages.MenuToggle,e.pageToggle=new NestedPages.PageToggle,e.nesting=new NestedPages.Nesting,e.syncMenuSetting=new NestedPages.SyncMenuSetting,e.newPage=new NestedPages.NewPage,e.quickEditLink=new NestedPages.QuickEditLink,e.quickEditPost=new NestedPages.QuickEditPost,e.clone=new NestedPages.Clone,e.tabs=new NestedPages.Tabs,e.menuLinks=new NestedPages.MenuLinks,e.hiddenItemCount=new NestedPages.HiddenItemCount,e.confirmDelete=new NestedPages.ConfirmDelete,e.manualSync=new NestedPages.ManualSync,e.init=function(){e.bindEvents(),e.setPostType(),e.setMenuSync(),e.setNestable(),e.formatter.updateSubMenuToggle(),e.formatter.setBorders(),e.formatter.setNestedMargins(),e.nesting.initializeSortable()},e.bindEvents=function(){t(document).on("click",NestedPages.selectors.quickEditOverlay,function(t){e.formatter.removeQuickEdit(),e.newPage.cancelNewPage()}),t(document).ready(function(){e.formatter.hideAjaxError(),e.formatter.sizeLinkThumbnails()})},e.setNestable=function(){var e=!1;t.each(NestedPages.jsData.allPostTypes,function(t,a){a.name===NestedPages.jsData.posttype&&(a.hierarchical===!0&&(e=!0),a.disable_nesting===!0&&(e=!1))}),NestedPages.jsData.nestable=e},e.setPostType=function(){NestedPages.jsData.posttype=t(NestedPages.selectors.sortable).attr("id").substring(3),NestedPages.jsData.hierarchical=NestedPages.jsData.allPostTypes[NestedPages.jsData.posttype].hierarchical},e.setMenuSync=function(){NestedPages.jsData.syncmenu="1"===nestedpages.syncmenu?"sync":"nosync"},e.init()};var NestedPages=NestedPages||{};NestedPages.MenuLinks=function(){var e=this,t=jQuery;return e.typeButton="",e.post="",e.formatter=new NestedPages.Formatter,e.selectors={form:"[data-np-menu-item-form]",typeSelect:"[data-np-menu-selection]",accordion:"[data-np-menu-accordion]",accordionItem:"[data-np-menu-accordion-item]",formPlaceholder:".np-menu-link-object-placeholder",formDetails:".np-menu-link-details",searchResults:"[data-np-search-result]",defaultResults:"[data-default-result]",originalLink:"[data-np-original-link]",saveButton:"[data-np-save-link]",urlInputCont:"[data-np-menu-url-cont]",errorDiv:"[data-np-error]"},e.fields={object:"[data-np-menu-object-input]",objectid:"[data-np-menu-objectid-input]",itemType:"[data-np-menu-type-input]",url:"[data-np-menu-url]",navigationLabel:"[data-np-menu-navigation-label]",titleAttribute:"[data-np-menu-title-attr]",cssClasses:"[data-np-menu-css-classes]",npStatus:"[data-np-menu-np-status]",linkTarget:"[data-np-menu-link-target]",menuTitle:"[data-np-menu-title]"},e.search=new NestedPages.MenuSearch,e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("click",NestedPages.selectors.openLinkModal,function(a){a.preventDefault(),e.postParent=t(this).attr("data-parentid"),t(e.selectors.form).find(".parent_id").val(t(this).attr("data-parentid")),e.openModal()}),t(document).on("click",e.selectors.accordionItem,function(a){a.preventDefault(),e.accordion(t(this))}),t(document).on("click",e.selectors.typeSelect,function(a){a.preventDefault(),e.typeButton=t(this),e.setLinkType()}),t(document).on("keyup",e.fields.navigationLabel,function(){e.updateTitle()}),t(document).on("click",e.selectors.saveButton,function(t){t.preventDefault(),e.submitForm()}),t(document).on("keydown",function(e){27===e.keyCode&&t("#np-link-modal").modal("hide")})},e.openModal=function(){t(NestedPages.selectors.linkErrorDiv).hide(),t(NestedPages.selectors.linkModal).find("input").val(""),t(NestedPages.selectors.linkModal).find(".parent_id").val(e.postParent),e.clearForm(),t(e.selectors.accordion).find("ul").hide(),t(e.selectors.typeSelect).removeClass("active"),t(NestedPages.selectors.linkModal).modal("show")},e.accordion=function(a){e.clearForm();var s=t(a).siblings("ul");return t(s).is(":visible")?(t(a).removeClass("active"),void t(s).slideUp("fast")):(t(e.selectors.accordionItem).removeClass("active"),t(a).addClass("active"),t(a).parents(e.selectors.accordion).find("ul").slideUp("fast"),void t(s).slideDown("fast"))},e.setLinkType=function(){return t(e.typeButton).hasClass("active")?void e.clearForm():(t(e.typeButton).hasClass("np-custom-link")&&(t(e.selectors.accordionItem).removeClass("active"),t(e.selectors.accordion).find("ul").slideUp("fast")),t(e.selectors.formPlaceholder).hide(),void e.populateForm())},e.populateForm=function(){t(e.selectors.saveButton).show(),t(e.selectors.typeSelect).removeClass("active"),t(e.typeButton).addClass("active"),t(e.fields.menuTitle).text(t(e.typeButton).text()).val(t(e.typeButton).text()),t(e.selectors.form).find("h3").find("em").text(t(e.typeButton).attr("data-np-object-name")),""!==t(e.typeButton).attr("data-np-permalink")?(t(e.selectors.form).find(e.selectors.urlInputCont).hide(),t(e.selectors.form).find(e.selectors.originalLink).html('<a href="'+t(e.typeButton).attr("data-np-permalink")+'">'+t(e.typeButton).text()+"</a>"),t(e.selectors.form).find(e.selectors.originalLink).parent(".original-link").show()):(t(e.selectors.form).find(e.selectors.urlInputCont).show(),t(e.selectors.form).find(e.selectors.originalLink).parent(".original-link").hide()),t(e.fields.object).val(t(e.typeButton).attr("data-np-menu-object")),t(e.fields.objectid).val(t(e.typeButton).attr("data-np-menu-objectid")),t(e.fields.itemType).val(t(e.typeButton).attr("data-np-menu-type")),t(e.selectors.formDetails).show()},e.clearForm=function(){t(e.selectors.form).find(e.selectors.errorDiv).hide(),t(e.selectors.saveButton).hide(),t(e.selectors.formDetails).hide(),t(e.selectors.formPlaceholder).show(),t(e.selectors.form).find("input").not(".parent_id").val(""),t(e.selectors.form).find(e.fields.linkTarget).val("_blank"),t(e.selectors.form).find('input[type="checkbox"]').attr("checked",!1),t(e.selectors.typeSelect).removeClass("active"),e.search.toggleLoading(!1),t(e.selectors.searchResults).remove(),t(e.selectors.defaultResults).show()},e.updateTitle=function(){var a=t(e.fields.navigationLabel).val(),s=t(e.selectors.form).find("h3").find("span");""!==a?(t(e.fields.menuTitle).val(a),t(s).text(a)):(t(e.fields.menuTitle).val(t(e.typeButton).text()),t(s).text(t(e.typeButton).text()))},e.submitForm=function(){e.toggleLoading(!0),t.ajax({url:NestedPages.jsData.ajaxurl,type:"post",data:t(e.selectors.form).serialize()+"&action="+NestedPages.formActions.newMenuItem+"&nonce="+NestedPages.jsData.nonce+"&post_type="+NestedPages.jsData.posttype+"&syncmenu="+NestedPages.jsData.syncmenu,success:function(a){return e.toggleLoading(!1),"error"===a.status?void t(e.selectors.form).find(e.selectors.errorDiv).text(a.message).show():(e.post=a.post_data,void e.createRow())},error:function(e){console.log(e)}})},e.createRow=function(){var a='<li id="menuItem_'+e.post.id+'" class="page-row published';a+='">',a+='<div class="row"><div class="child-toggle"><div class="child-toggle-spacer"></div></div><div class="row-inner"><i class="np-icon-sub-menu"></i><i class="handle np-icon-menu"></i><a href="'+e.post.np_link_content+'" class="page-link page-title" target="_blank"><span class="title">'+e.post.menuTitle+' <i class="np-icon-link"></i></span>',a+='</a><a href="#" class="np-toggle-edit"><i class="np-icon-pencil"></i></a><div class="action-buttons"><a href="#" class="np-btn np-quick-edit-redirect" ',a+='data-id="'+e.post.id+'"',a+='data-parentid="'+e.post.parent_id+'"',a+='data-title="'+e.post.menuTitle+'" ',a+='data-url="'+e.post.url+'" ',a+='data-status="publish" ',a+='data-np-status="show" ',a+='data-navstatus="show" ',a+='data-navcss="'+e.post.cssClasses+'" ',a+='data-navtitleattr="'+e.post.titleAttribute+'" ',a+='data-nav-type="'+e.post.menuType+'" ',a+='data-nav-object="'+e.post.objectType+'" ',a+='data-nav-object-id="'+e.post.objectId+'" ',a+='data-nav-original-link="'+e.post.original_link+'" ',a+='data-nav-original-title="'+e.post.original_title+'" ',a+='data-linktarget="'+e.post.link_target+'">',a+=NestedPages.jsData.quickEditText,a+="</a>",a+='<a href="'+e.post.delete_link+'" class="np-btn np-btn-trash"><i class="np-icon-remove"></i></a>',a+="</div></div></div></li>","0"===e.post.parent_id?t(".nplist:first li:first").after(a):e.appendChildRow(a),t(NestedPages.selectors.linkModal).modal("hide"),e.row=t("#menuItem_"+e.post.id).find(".row"),e.formatter.flashRow(e.row)},e.appendChildRow=function(a){var s=t("#menuItem_"+e.post.parent_id);0===t(s).children("ol").length?(a='<ol class="sortable nplist" style="display:block;">'+a+"</ol>",t(s).append(a)):t(s).find("ol:first").prepend(a),e.formatter.updateSubMenuToggle()},e.toggleLoading=function(a){return a?(t(e.selectors.form).find(e.selectors.errorDiv).hide(),t(e.selectors.form).find(NestedPages.selectors.quickEditLoadingIndicator).show(),void t(e.selectors.saveButton).attr("disabled","disabled")):(t(e.selectors.form).find(NestedPages.selectors.quickEditLoadingIndicator).hide(),void t(e.selectors.saveButton).attr("disabled",!1))},e.init()};var NestedPages=NestedPages||{};NestedPages.MenuSearch=function(){var e=this,t=jQuery;return e.selectors={searchForms:"*[data-np-menu-search]",defaultResults:"[data-default-result]",loadingIndicator:".np-menu-search-loading",noResults:".np-menu-search-noresults",searchType:"data-search-type",searchObject:"data-search-object",searchResults:"[data-np-search-result]"},e.activeForm="",e.results="",e.defaultResults="",e.searchType="",e.searchObject="",e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("keyup",e.selectors.searchForms,function(){e.activeForm=t(this),t(e.selectors.searchResults).remove(),e.performSearch()})},e.performSearch=function(){return e.defaultResults=t(e.activeForm).parent("li").siblings(e.selectors.defaultResults),t(e.activeForm).val().length>2?(t(e.defaultResults).hide(),e.toggleLoading(!0),void e.query()):(e.toggleLoading(!1),void t(e.defaultResults).show())},e.query=function(){e.searchType=t(e.activeForm).attr(e.selectors.searchType),e.searchObject=t(e.activeForm).attr(e.selectors.searchObject),t.ajax({url:NestedPages.jsData.ajaxurl,type:"post",datatype:"json",data:{action:NestedPages.formActions.search,nonce:NestedPages.jsData.nonce,term:t(e.activeForm).val(),searchType:e.searchType,searchObject:e.searchObject},success:function(a){console.log(a),a.results?(e.results=a.results,e.toggleLoading(!1),"post_type"===e.searchType?e.appendPosts():e.appendTaxonomies()):(e.toggleLoading(!1),t(e.activeForm).siblings(e.selectors.noResults).show())}})},e.appendPosts=function(){var a="";t.each(e.results,function(t,s){a+='<li data-np-search-result><a href="#" data-np-menu-object="'+e.searchObject+'" data-np-menu-type="post_type" data-np-menu-objectid="'+s.ID+'" data-np-permalink="'+s.permalink+'" data-np-object-name="'+s.singular_name+'" data-np-menu-selection>'+s.post_title+"</a></li>"}),t(a).insertAfter(t(e.activeForm).parent("li")),e.toggleLoading(!1)},e.appendTaxonomies=function(){var a="";t.each(e.results,function(t,s){a+='<li data-np-search-result><a href="#" data-np-menu-object="'+e.searchObject+'" data-np-menu-type="post_type" data-np-menu-objectid="'+s.term_id+'" data-np-permalink="'+s.permalink+'" data-np-object-name="'+s.taxonomy+'" data-np-menu-selection>'+s.name+"</a></li>"}),t(a).insertAfter(t(e.activeForm).parent("li")),e.toggleLoading(!1)},e.toggleLoading=function(a){var s=t(e.activeForm).siblings(e.selectors.loadingIndicator);return t(e.selectors.noResults).hide(),a?void t(s).show():void t(s).hide()},e.init()},jQuery(document).ready(function(){new NestedPagesTrash});var NestedPagesTrash=function(){var e=this,t=jQuery;return e.trashButton=".np-empty-trash",e.confirmButton=".np-trash-confirm",e.warningModal="#np-trash-modal",e.errorAlert="#np-error",e.loadingIndicator="#nested-loading",e.trashLinks=".np-trash-links",e.postType=t("#np-trash-posttype").val(),e.nonce=nestedpages.np_nonce,e.formAction="npEmptyTrash",e.init=function(){e.bindEvents()},e.bindEvents=function(){t(document).on("click",e.trashButton,function(a){a.preventDefault(),t(e.warningModal).modal("show")}),t(document).on("click",e.confirmButton,function(t){t.preventDefault(),e.confirmEmpty()})},e.confirmEmpty=function(){e.loading(!0),t(e.warningModal).hide(),t(e.errorAlert).hide(),e.emptyTrash()},e.emptyTrash=function(){t.ajax({url:ajaxurl,type:"post",datatype:"json",data:{action:e.formAction,nonce:e.nonce,posttype:e.postType},success:function(a){e.loading(!1),"error"===a.status?t(e.errorAlert).text(a.message).show():t(e.trashLinks).hide()}})},e.loading=function(a){return a?void t(e.loadingIndicator).show():void t(e.loadingIndicator).hide()},e.init()},NestedPages=NestedPages||{};NestedPages.ConfirmDelete=function(){var e=this,t=jQuery;return e.deleteLink="",e.bindEvents=function(){t(document).on("click",NestedPages.selectors.linkDeleteButton,function(a){a.preventDefault(),e.confirmSingle(t(this))}),t(document).on("click",NestedPages.selectors.linkDeleteConfirmationButton,function(a){return a.preventDefault(),t(this).hasClass("bulk")?void e.deleteMultiple():void e.deleteSingle()}),t(document).on("submit",NestedPages.selectors.bulkActionsForm,function(t){e.confirmMultiple(t)})},e.confirmSingle=function(a){e.deleteLink=t(a).attr("href"),t(NestedPages.selectors.linkDeleteConfirmationModalText).text(nestedpages.link_delete_confirmation_singular),t(NestedPages.selectors.linkDeleteConfirmationButton).text(nestedpages.delete).removeClass("bulk"),t(NestedPages.selectors.linkDeleteConfirmationModal).modal("show")},e.confirmMultiple=function(e){if("trash"===t('select[name="np_bulk_action"]').val()){var a=t(NestedPages.selectors.bulkActionRedirectIds).val();""!==a&&(e.preventDefault(),t(NestedPages.selectors.linkDeleteConfirmationModalText).text(nestedpages.link_delete_confirmation),t(NestedPages.selectors.linkDeleteConfirmationButton).text(nestedpages.trash_delete_links).addClass("bulk"),t(NestedPages.selectors.linkDeleteConfirmationModal).modal("show"))}},e.deleteMultiple=function(){t(NestedPages.selectors.bulkActionsForm)[0].submit()},e.deleteSingle=function(){window.location.replace(e.deleteLink)},e.bindEvents()};var NestedPages=NestedPages||{};NestedPages.ManualSync=function(){var e=this,t=jQuery;return e.activeBtn="",e.bindEvents=function(){t(document).on("click",NestedPages.selectors.manualMenuSync,function(a){a.preventDefault(),e.activeBtn=t(this),e.syncMenu()}),t(document).on("click",NestedPages.selectors.manualOrderSync,function(a){a.preventDefault(),e.activeBtn=t(this),e.syncOrder()})},e.syncMenu=function(){e.loading(!0),t.ajax({url:ajaxurl,type:"post",datatype:"json",data:{action:NestedPages.formActions.manualMenuSync,nonce:NestedPages.jsData.nonce,post_type:NestedPages.jsData.posttype,syncmenu:"sync"},success:function(a){"error"===a.status?(t(NestedPages.selectors.errorDiv).text(a.message).show(),t(NestedPages.selectors.loadingIndicator).hide()):e.loading(!1)}})},e.syncOrder=function(){e.loading(!0);var t=new NestedPages.Nesting;t.syncNesting(!0,e.loading(!1))},e.loading=function(a){return a?(t(e.activeBtn).addClass("disabled"),void t(NestedPages.selectors.loadingIndicator).show()):(t(e.activeBtn).removeClass("disabled"),void t(NestedPages.selectors.loadingIndicator).hide())},e.bindEvents()};
assets/js/nestedpages.settings.min.js ADDED
@@ -0,0 +1 @@
 
1
+ var NestedPages=NestedPages||{};NestedPages.Settings=function(){var e=this,t=jQuery;return e.selectors={postTypeToggle:"[data-toggle-nestedpages-pt-settings]",postTypeCheckbox:"[data-nestedpages-pt-checkbox]",customFieldsCheckbox:"[data-toggle-nestedpages-cf-settings]",standardFieldsCheckbox:"[data-toggle-nestedpages-sf-settings]",taxonomiesFieldCheckbox:"[data-hide-taxonomies]",thumbnailsCheckbox:"[data-enable-thumbnails]",menuEnabledOption:"[data-menu-enabled-option]",disableMenuCheckbox:"[data-disable-menu-checkbox]",disableAutoCheckbox:"[data-menu-disable-auto-checkbox]"},e.bindEvents=function(){t(document).ready(function(){e.toggleAllSettingsButtons(),e.toogleAllFieldSettings(".custom-fields"),e.toogleAllFieldSettings(".standard-fields"),e.toggleMenuCheckboxes(),e.toggleHideCheckbox()}),t(document).on("click",e.selectors.postTypeToggle,function(o){o.preventDefault(),e.togglePostTypeSettings(t(this))}),t(document).on("change",e.selectors.postTypeCheckbox,function(){e.toggleSettingsButton(t(this))}),t(document).on("change",e.selectors.customFieldsCheckbox,function(){e.toogleFieldSettings(t(this),".custom-fields")}),t(document).on("change",e.selectors.standardFieldsCheckbox,function(){e.toogleFieldSettings(t(this),".standard-fields")}),t(document).on("change",e.selectors.taxonomiesFieldCheckbox,function(){e.toggleTaxonomyCheckboxes(t(this))}),t(document).on("change",e.selectors.thumbnailsCheckbox,function(){e.toggleThumbnailSettings(t(this))}),t(document).on("change",e.selectors.disableMenuCheckbox,function(){e.toggleMenuCheckboxes()}),t(document).on("change",e.selectors.disableAutoCheckbox,function(){e.toggleHideCheckbox()})},e.togglePostTypeSettings=function(e){t(e).parent(".head").siblings(".body").toggle(),t(e).parents(".post-type").toggleClass("active")},e.toggleSettingsButton=function(o){var n=t(o).parents(".head").find(e.selectors.postTypeToggle);return t(o).is(":checked")?void t(n).show():(t(n).hide(),t(n).parents(".head").siblings(".body").hide(),t(n).parents(".post-type").removeClass("active"),t(n).parents(".head").siblings(".body").find('input[type="checkbox"]').attr("checked",!1),void t(n).parents(".head").siblings(".body").find("select").val(!1))},e.toggleAllSettingsButtons=function(){var o=t(e.selectors.postTypeCheckbox);t.each(o,function(){e.toggleSettingsButton(t(this))})},e.toogleFieldSettings=function(e,o){var n=t(e).parents(".body").find(o);return t(e).is(":checked")?void t(n).show():void t(n).hide()},e.toogleAllFieldSettings=function(o){var n=t(e.selectors.customFieldsCheckbox);if(".standard-fields"==o)var n=t(e.selectors.standardFieldsCheckbox);t.each(n,function(){e.toogleFieldSettings(t(this),o)})},e.toggleTaxonomyCheckboxes=function(e){var o=t(e).parents("ul").find(t("*[data-taxonomy-single]"));return t(e).is(":checked")?void t(o).hide():void t(o).show()},e.toggleThumbnailSettings=function(e){var o=t(e).parents(".field").find(t("*[data-thumbnail-options]"));return t(e).is(":checked")?void t(o).show():void t(o).hide()},e.toggleMenuCheckboxes=function(){var o=t(e.selectors.disableMenuCheckbox),n=t(e.selectors.menuEnabledOption);return t(o).is(":checked")?void t(n).hide():void t(n).show()},e.toggleHideCheckbox=function(){var o=t(e.selectors.disableAutoCheckbox),n=t("[data-menu-hide-checkbox]");return t(o).is(":checked")?void t(n).hide():void t(n).show()},e.init=function(){e.bindEvents()},e.init()},new NestedPages.Settings;
languages/nestedpages-sv_SE.mo ADDED
Binary file
languages/nestedpages-sv_SE.po ADDED
@@ -0,0 +1,590 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Nested Pages\n"
4
+ "POT-Creation-Date: 2016-01-06 13:29+0200\n"
5
+ "PO-Revision-Date: 2016-01-06 13:47+0200\n"
6
+ "Language-Team: \n"
7
+ "MIME-Version: 1.0\n"
8
+ "Content-Type: text/plain; charset=UTF-8\n"
9
+ "Content-Transfer-Encoding: 8bit\n"
10
+ "X-Generator: Poedit 1.8.4\n"
11
+ "X-Poedit-Basepath: ..\n"
12
+ "X-Poedit-SourceCharset: UTF-8\n"
13
+ "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
14
+ "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
15
+ "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
16
+ "Last-Translator: Marcus Forsberg <marcus@marcusforsberg.net>\n"
17
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
+ "Language: sv_SE\n"
19
+ "X-Poedit-SearchPath-0: .\n"
20
+
21
+ #: app/Activation/Dependencies.php:106 app/Views/listing.php:29
22
+ msgid "Expand All"
23
+ msgstr "Expandera alla"
24
+
25
+ #: app/Activation/Dependencies.php:107
26
+ msgid "Collapse All"
27
+ msgstr "Kollapsa alla"
28
+
29
+ #: app/Activation/Dependencies.php:108 app/Views/partials/tool-list.php:18
30
+ msgid "Show Hidden"
31
+ msgstr "Visa dolda"
32
+
33
+ #: app/Activation/Dependencies.php:109
34
+ msgid "Hide Hidden"
35
+ msgstr "Visa ej dolda"
36
+
37
+ #: app/Activation/Dependencies.php:110 app/Views/listing.php:16
38
+ #: app/Views/listing.php:17
39
+ msgid "Add Link"
40
+ msgstr "Lägg till länk"
41
+
42
+ #: app/Activation/Dependencies.php:111
43
+ msgid "Add Child Link"
44
+ msgstr "Lägg till underlänk"
45
+
46
+ #: app/Activation/Dependencies.php:112
47
+ #: app/Entities/Post/PostUpdateRepository.php:69
48
+ #: app/Views/forms/new-child.php:19 app/Views/forms/new-child.php:21
49
+ #: app/Views/forms/quickedit-post.php:20 app/Views/partials/tool-list.php:64
50
+ msgid "Title"
51
+ msgstr "Titel"
52
+
53
+ #: app/Activation/Dependencies.php:113 app/Views/forms/quickedit-post.php:11
54
+ #: app/Views/partials/row-link.php:68 app/Views/partials/row.php:130
55
+ msgid "Quick Edit"
56
+ msgstr "Snabbredigera"
57
+
58
+ #: app/Activation/Dependencies.php:114
59
+ msgid "Page Title"
60
+ msgstr "Sidtitel"
61
+
62
+ #: app/Activation/Dependencies.php:115 app/Views/partials/row.php:134
63
+ msgid "View"
64
+ msgstr "Visa"
65
+
66
+ #: app/Activation/Dependencies.php:116 app/Views/forms/new-child.php:7
67
+ #: app/Views/partials/row.php:94
68
+ msgid "Add Child"
69
+ msgstr "Skapa undersida"
70
+
71
+ #: app/Activation/Dependencies.php:117
72
+ msgid "Add Child Page"
73
+ msgstr "Skapa undersida"
74
+
75
+ #: app/Activation/Dependencies.php:118
76
+ msgid "Add Child Pages"
77
+ msgstr "Skapa undersidor"
78
+
79
+ #: app/Activation/Dependencies.php:119 app/Views/forms/link-form.php:105
80
+ #: app/Views/forms/new-child.php:93
81
+ msgid "Add"
82
+ msgstr "Lägg till"
83
+
84
+ #: app/Activation/Dependencies.php:120
85
+ msgid "Add Page"
86
+ msgstr "Lägg till sida"
87
+
88
+ #: app/Activation/Dependencies.php:121
89
+ msgid "Add Pages"
90
+ msgstr "Lägg till sidor"
91
+
92
+ #: app/Activation/Dependencies.php:122 app/Views/listing.php:10
93
+ #: app/Views/listing.php:11
94
+ msgid "Add Multiple"
95
+ msgstr "Lägg till flera"
96
+
97
+ #: app/Activation/Dependencies.php:123
98
+ msgid ""
99
+ "Are you sure you would like to empty the trash? This action is not "
100
+ "reversable."
101
+ msgstr ""
102
+ "Är du säker på att du vill tömma papperskorgen? Detta går inte att ångra."
103
+
104
+ #: app/Activation/Dependencies.php:124 app/Views/partials/row-link.php:40
105
+ #: app/Views/partials/row.php:45
106
+ msgid "Hidden"
107
+ msgstr "Dold"
108
+
109
+ #: app/Bootstrap.php:60
110
+ msgid "Settings"
111
+ msgstr "Inställningar"
112
+
113
+ #: app/Config/Settings.php:53 app/Views/settings/settings.php:2
114
+ msgid "Nested Pages Settings"
115
+ msgstr "Inställningar för Nested Pages"
116
+
117
+ #: app/Config/Settings.php:54
118
+ msgid "Nested Pages"
119
+ msgstr "Nested Pages"
120
+
121
+ #: app/Entities/AdminMenu/AdminSubmenu.php:75
122
+ #: app/Views/partials/tool-list.php:33
123
+ msgid "Default"
124
+ msgstr "Standard"
125
+
126
+ #: app/Entities/Confirmation/LinkDeletedConfirmation.php:12
127
+ msgid "Link successfully deleted."
128
+ msgstr "Länken raderades utan problem."
129
+
130
+ #: app/Entities/Confirmation/TrashConfirmation.php:16
131
+ msgid "pages moved to the Trash"
132
+ msgstr "sidor flyttades till papperskorgen."
133
+
134
+ #: app/Entities/Confirmation/TrashConfirmation.php:18
135
+ msgid "moved to the Trash"
136
+ msgstr "flyttades till papperskorgen."
137
+
138
+ #: app/Entities/Confirmation/TrashConfirmation.php:23
139
+ msgid "Undo"
140
+ msgstr "Ångra"
141
+
142
+ #: app/Entities/Confirmation/TrashRestoredConfirmation.php:14
143
+ msgid "pages"
144
+ msgstr "sidor"
145
+
146
+ #: app/Entities/Confirmation/TrashRestoredConfirmation.php:14
147
+ msgid "page"
148
+ msgstr "sida"
149
+
150
+ #: app/Entities/Confirmation/TrashRestoredConfirmation.php:15
151
+ msgid "restored from trash"
152
+ msgstr "återställt från papperskorgen"
153
+
154
+ #: app/Entities/PostType/PostTypeRepository.php:189
155
+ msgid "Nested View"
156
+ msgstr "Flernivåsvy"
157
+
158
+ #: app/Entities/PostType/PostTypeRepository.php:189
159
+ msgid "Sort View"
160
+ msgstr "Sortera vy"
161
+
162
+ #: app/Entities/PostType/RegisterPostTypes.php:22
163
+ msgid "Redirects"
164
+ msgstr "Omdirigeringar"
165
+
166
+ #: app/Entities/PostType/RegisterPostTypes.php:23
167
+ msgid "Redirect"
168
+ msgstr "Omdirigering"
169
+
170
+ #: app/Form/Listeners/BaseHandler.php:80
171
+ msgid "Incorrect Form Field"
172
+ msgstr "Ogiltigt formulärfält"
173
+
174
+ #: app/Form/Listeners/BaseHandler.php:109
175
+ msgid "There was an error updating the page."
176
+ msgstr "Ett fel uppstod när sidan skulle uppdateras."
177
+
178
+ #: app/Form/Listeners/ClonePost.php:36
179
+ msgid "Post Not Found"
180
+ msgstr "Inlägget hittades inte."
181
+
182
+ #: app/Form/Listeners/EmptyTrash.php:19
183
+ msgid "Trash successfully emptied."
184
+ msgstr "Papperskorgen tömdes utan problem."
185
+
186
+ #: app/Form/Listeners/NewMenuItem.php:27
187
+ msgid "Custom Links must have a label"
188
+ msgstr "Anpassade länkar måste ha en etikett."
189
+
190
+ #: app/Form/Listeners/NewMenuItem.php:28
191
+ msgid "Please provide a valid URL"
192
+ msgstr "Vänligen ange en giltig URL."
193
+
194
+ #: app/Form/Listeners/NewMenuItem.php:47
195
+ #: app/Form/Listeners/QuickEditLink.php:30
196
+ msgid "Link successfully updated"
197
+ msgstr "Länken uppdaterades utan problem."
198
+
199
+ #: app/Form/Listeners/QuickEdit.php:32
200
+ msgid "Post successfully updated"
201
+ msgstr "Inlägget uppdaterades utan problem."
202
+
203
+ #: app/Form/Listeners/Sort.php:29
204
+ msgid "Page order successfully updated."
205
+ msgstr "Sidordningen uppdaterades utan problem."
206
+
207
+ #: app/Form/Listeners/Sort.php:31
208
+ msgid "There was an error updating the page order."
209
+ msgstr "Ett fel uppstod när sidordningen skulle uppdateras."
210
+
211
+ #: app/Form/Listeners/SyncMenu.php:27
212
+ msgid "Menu sync enabled."
213
+ msgstr "Menysynk aktiverad."
214
+
215
+ #: app/Form/Listeners/SyncMenu.php:30
216
+ msgid "Menu sync disabled."
217
+ msgstr "Menysynk inaktiverad."
218
+
219
+ #: app/Form/Validation/Validation.php:134
220
+ msgid "Please provide a valid date."
221
+ msgstr "Vänligen ange ett giltigt datum."
222
+
223
+ #: app/Form/Validation/Validation.php:145
224
+ msgid "Please provide a menu title."
225
+ msgstr "Vänligen ange ett namn på menyn."
226
+
227
+ #: app/Form/Validation/Validation.php:148
228
+ msgid "Please provide a valid URL."
229
+ msgstr "Vänligen ange en giltig URL."
230
+
231
+ #: app/Form/Validation/Validation.php:158
232
+ msgid "Please provide a "
233
+ msgstr "Vänligen ange en"
234
+
235
+ #: app/Form/Validation/Validation.php:171
236
+ msgid "A valid parent page was not provided."
237
+ msgstr "En giltig förälder angavs ej."
238
+
239
+ #: app/Form/Validation/Validation.php:178
240
+ msgid "Please provide at least one page title."
241
+ msgstr "Vänligen ange minst en sidtitel."
242
+
243
+ #: app/Form/Validation/Validation.php:186
244
+ msgid "Page titles cannot be blank."
245
+ msgstr "Sidtitlar kan inte vara tomma."
246
+
247
+ #: app/Views/forms/clone-form.php:9 app/Views/forms/clone-form.php:65
248
+ #: app/Views/partials/row.php:99
249
+ msgid "Clone"
250
+ msgstr "Klona"
251
+
252
+ #: app/Views/forms/clone-form.php:14
253
+ msgid "Number of Copies"
254
+ msgstr "Antal kopior"
255
+
256
+ #: app/Views/forms/clone-form.php:26 app/Views/forms/new-child.php:35
257
+ #: app/Views/forms/quickedit-link.php:27 app/Views/forms/quickedit-post.php:76
258
+ msgid "Status"
259
+ msgstr "Status"
260
+
261
+ #: app/Views/forms/clone-form.php:29 app/Views/forms/new-child.php:38
262
+ #: app/Views/forms/quickedit-link.php:30 app/Views/forms/quickedit-post.php:79
263
+ #: app/Views/partials/tool-list.php:10
264
+ msgid "Published"
265
+ msgstr "Publiserad"
266
+
267
+ #: app/Views/forms/clone-form.php:31 app/Views/forms/quickedit-link.php:33
268
+ #: app/Views/forms/quickedit-post.php:82
269
+ msgid "Pending Review"
270
+ msgstr "Väntar på granskning"
271
+
272
+ #: app/Views/forms/clone-form.php:32 app/Views/forms/new-child.php:40
273
+ #: app/Views/forms/quickedit-link.php:34 app/Views/forms/quickedit-post.php:83
274
+ #: app/Views/partials/tool-list.php:14
275
+ msgid "Draft"
276
+ msgstr "Utkast"
277
+
278
+ #: app/Views/forms/clone-form.php:50 app/Views/forms/new-child.php:61
279
+ #: app/Views/forms/quickedit-post.php:67
280
+ msgid "Author"
281
+ msgstr "Författare"
282
+
283
+ #: app/Views/forms/clone-form.php:62 app/Views/forms/empty-trash-modal.php:11
284
+ #: app/Views/forms/link-form.php:101 app/Views/forms/new-child.php:90
285
+ #: app/Views/forms/quickedit-link.php:84 app/Views/forms/quickedit-post.php:207
286
+ msgid "Cancel"
287
+ msgstr "Avbryt"
288
+
289
+ #: app/Views/forms/empty-trash-modal.php:12
290
+ msgid "Empty Trash"
291
+ msgstr "Töm papperskorgen"
292
+
293
+ #: app/Views/forms/link-form.php:18
294
+ msgid "Custom Link"
295
+ msgstr "Anpassad länk"
296
+
297
+ #: app/Views/forms/link-form.php:27 app/Views/forms/link-form.php:44
298
+ msgid "Search"
299
+ msgstr "Sök"
300
+
301
+ #: app/Views/forms/link-form.php:27 app/Views/forms/link-form.php:44
302
+ msgid "No Results"
303
+ msgstr "Inga resultat"
304
+
305
+ #: app/Views/forms/link-form.php:58
306
+ msgid "Select an item"
307
+ msgstr "Välj ett objekt"
308
+
309
+ #: app/Views/forms/link-form.php:63
310
+ msgid "Original"
311
+ msgstr "Original"
312
+
313
+ #: app/Views/forms/link-form.php:68 app/Views/forms/quickedit-link.php:22
314
+ msgid "URL"
315
+ msgstr "URL"
316
+
317
+ #: app/Views/forms/link-form.php:72 app/Views/forms/quickedit-link.php:17
318
+ #: app/Views/forms/quickedit-post.php:171
319
+ msgid "Navigation Label"
320
+ msgstr "Navigationsetikett"
321
+
322
+ #: app/Views/forms/link-form.php:76 app/Views/forms/quickedit-link.php:44
323
+ #: app/Views/forms/quickedit-post.php:175
324
+ msgid "Title Attribute"
325
+ msgstr "Titelattribut"
326
+
327
+ #: app/Views/forms/link-form.php:80
328
+ msgid "CSS Classes (optional)"
329
+ msgstr "CSS-klasser (frivilligt)"
330
+
331
+ #: app/Views/forms/link-form.php:86 app/Views/forms/quickedit-link.php:66
332
+ #: app/Views/forms/quickedit-post.php:193
333
+ msgid "Open link in a new window/tab"
334
+ msgstr "Öppna länk i nytt fönster/ny flik"
335
+
336
+ #: app/Views/forms/new-child.php:28
337
+ msgid "+"
338
+ msgstr "+"
339
+
340
+ #: app/Views/forms/new-child.php:71 app/Views/forms/quickedit-post.php:93
341
+ msgid "Template"
342
+ msgstr "Mall"
343
+
344
+ #: app/Views/forms/new-child.php:73 app/Views/forms/quickedit-post.php:95
345
+ msgid "Default Template"
346
+ msgstr "Standardmall"
347
+
348
+ #: app/Views/forms/new-child.php:96
349
+ msgid "Add & Edit"
350
+ msgstr "Skapa & Redigera"
351
+
352
+ #: app/Views/forms/quickedit-link.php:8
353
+ msgid "Link"
354
+ msgstr "Länk"
355
+
356
+ #: app/Views/forms/quickedit-link.php:31 app/Views/forms/quickedit-post.php:80
357
+ msgid "Scheduled"
358
+ msgstr "Schemalagd"
359
+
360
+ #: app/Views/forms/quickedit-link.php:48 app/Views/forms/quickedit-post.php:179
361
+ msgid "CSS Classes"
362
+ msgstr "CSS-klasser"
363
+
364
+ #: app/Views/forms/quickedit-link.php:54 app/Views/forms/quickedit-post.php:187
365
+ msgid "Hide in Nav Menu"
366
+ msgstr "Dölj i menyn"
367
+
368
+ #: app/Views/forms/quickedit-link.php:60 app/Views/forms/quickedit-post.php:126
369
+ msgid "Hide in Nested Pages"
370
+ msgstr "Dölj i Nested Pages"
371
+
372
+ #: app/Views/forms/quickedit-link.php:87 app/Views/forms/quickedit-post.php:210
373
+ msgid "Update"
374
+ msgstr "Uppdatera"
375
+
376
+ #: app/Views/forms/quickedit-post.php:24
377
+ msgid "Slug"
378
+ msgstr "Permalänk"
379
+
380
+ #: app/Views/forms/quickedit-post.php:30 app/Views/forms/quickedit-post.php:45
381
+ #: app/Views/partials/tool-list.php:63
382
+ msgid "Date"
383
+ msgstr "Datum"
384
+
385
+ #: app/Views/forms/quickedit-post.php:33
386
+ msgid "@"
387
+ msgstr "@"
388
+
389
+ #: app/Views/forms/quickedit-post.php:36
390
+ msgid "am"
391
+ msgstr "am"
392
+
393
+ #: app/Views/forms/quickedit-post.php:37
394
+ msgid "pm"
395
+ msgstr "pm"
396
+
397
+ #: app/Views/forms/quickedit-post.php:103
398
+ msgid "Password"
399
+ msgstr "Lösenord"
400
+
401
+ #: app/Views/forms/quickedit-post.php:106
402
+ msgid "&ndash;OR&ndash;"
403
+ msgstr "&ndash;ELLER&ndash;"
404
+
405
+ #: app/Views/forms/quickedit-post.php:109
406
+ msgid "Private"
407
+ msgstr "Privat"
408
+
409
+ #: app/Views/forms/quickedit-post.php:118
410
+ msgid "Allow Comments"
411
+ msgstr "Tillåt kommentarer"
412
+
413
+ #: app/Views/forms/quickedit-post.php:135
414
+ msgid "Menu Options"
415
+ msgstr "Menyalternativ"
416
+
417
+ #: app/Views/forms/quickedit-post.php:139
418
+ msgid "Taxonomies"
419
+ msgstr "Taxonomier"
420
+
421
+ #: app/Views/listing.php:35
422
+ msgid "Sync Menu"
423
+ msgstr "Synka meny"
424
+
425
+ #: app/Views/partials/row.php:23
426
+ msgid "Front Page"
427
+ msgstr "Startsida"
428
+
429
+ #: app/Views/partials/row.php:24
430
+ msgid "Posts Page"
431
+ msgstr "Inläggssida"
432
+
433
+ #: app/Views/partials/row.php:53
434
+ msgid "currently editing"
435
+ msgstr "redigerar just nu"
436
+
437
+ #: app/Views/partials/row.php:57
438
+ msgid "Edit"
439
+ msgstr "Redigera"
440
+
441
+ #: app/Views/partials/tool-list.php:6
442
+ msgid "All"
443
+ msgstr "Alla"
444
+
445
+ #: app/Views/partials/tool-list.php:24
446
+ msgid "Trash"
447
+ msgstr "Papperskorgen"
448
+
449
+ #: app/Views/partials/tool-list.php:25
450
+ msgid "Empty"
451
+ msgstr "Tom"
452
+
453
+ #: app/Views/partials/tool-list.php:47
454
+ msgid "All Authors"
455
+ msgstr "Alla författare"
456
+
457
+ #: app/Views/partials/tool-list.php:62
458
+ msgid "Menu Order"
459
+ msgstr "Menyordning"
460
+
461
+ #: app/Views/partials/tool-list.php:66
462
+ msgid "Order By"
463
+ msgstr "Ordna efter"
464
+
465
+ #: app/Views/partials/tool-list.php:80
466
+ msgid "Ascending"
467
+ msgstr "Stigande"
468
+
469
+ #: app/Views/partials/tool-list.php:81
470
+ msgid "Decending"
471
+ msgstr "Fallande"
472
+
473
+ #: app/Views/partials/tool-list.php:110
474
+ msgid "All "
475
+ msgstr "Alla"
476
+
477
+ #: app/Views/settings/settings-general.php:4
478
+ msgid "Currently Enabled"
479
+ msgstr "Aktiverad"
480
+
481
+ #: app/Views/settings/settings-general.php:4
482
+ msgid "Currently Disabled"
483
+ msgstr "Inaktiverad"
484
+
485
+ #: app/Views/settings/settings-general.php:8
486
+ msgid "Nested Pages Version"
487
+ msgstr "Nested Pages-version"
488
+
489
+ #: app/Views/settings/settings-general.php:13
490
+ msgid "Menu Name"
491
+ msgstr "Menynamn"
492
+
493
+ #: app/Views/settings/settings-general.php:16
494
+ msgid ""
495
+ "Important: Once the menu name has changed, theme files should be updated to "
496
+ "reference the new name."
497
+ msgstr ""
498
+ "Viktigt: När menynamnet har ändrats bör temafiler uppdateras för att "
499
+ "referera till det nya namnet."
500
+
501
+ #: app/Views/settings/settings-general.php:21
502
+ msgid "Display Options"
503
+ msgstr "Visningsalternativ"
504
+
505
+ #: app/Views/settings/settings-general.php:25
506
+ msgid "Enable Date Picker in Quick Edit"
507
+ msgstr "Aktivera datumväljare vid snabbredigering"
508
+
509
+ #: app/Views/settings/settings-general.php:30
510
+ msgid "Menu Sync"
511
+ msgstr "Menysynk"
512
+
513
+ #: app/Views/settings/settings-general.php:36
514
+ msgid "Hide Menu Sync Checkbox"
515
+ msgstr "Dölj checkbox för menysynk"
516
+
517
+ #: app/Views/settings/settings-general.php:43
518
+ msgid "Disable Menu Sync Completely"
519
+ msgstr "Inaktivera menysynk helt och hållet"
520
+
521
+ #: app/Views/settings/settings-general.php:49
522
+ msgid "Allow Page Sorting"
523
+ msgstr "Tillåt sortering av sidor"
524
+
525
+ #: app/Views/settings/settings-general.php:59
526
+ msgid "Admins always have sorting ability."
527
+ msgstr "Administratörer har alltid möjlighet att sortera."
528
+
529
+ #: app/Views/settings/settings-posttypes.php:7
530
+ msgid "Enable Nested Pages for:"
531
+ msgstr "Aktivera Nested Pages för:"
532
+
533
+ #: app/Views/settings/settings-posttypes.php:14
534
+ msgid "Post Type"
535
+ msgstr "Inläggstyp"
536
+
537
+ #: app/Views/settings/settings-posttypes.php:15
538
+ msgid "Hierarchical"
539
+ msgstr "Hierarkisk"
540
+
541
+ #: app/Views/settings/settings-posttypes.php:16
542
+ msgid "Enabled"
543
+ msgstr "Aktiverad"
544
+
545
+ #: app/Views/settings/settings-posttypes.php:17
546
+ msgid "Replace Default Menu"
547
+ msgstr "Ersätt standardmeny"
548
+
549
+ #: app/Views/settings/settings-posttypes.php:18
550
+ msgid "Hide Default Link"
551
+ msgstr "Dölj standardlänk"
552
+
553
+ #: app/Views/settings/settings-posttypes.php:19
554
+ msgid "Disable Nesting"
555
+ msgstr "Inaktivera flernivåstöd"
556
+
557
+ #: app/Views/settings/settings-posttypes.php:51
558
+ msgid "Note: Nesting features not enabled for non-hierarchical post types."
559
+ msgstr "Obs: Flernivåstöd är inte aktiverad för icke-hierarkiska inläggstyper."
560
+
561
+ #: app/Views/settings/settings-posttypes.php:54
562
+ msgid ""
563
+ "If default menu is not replaced, an additional submenu item will be added "
564
+ "for \"Nested/Sort View\""
565
+ msgstr ""
566
+ "Om standardmenyn inte ersätts kommer en ny undermeny skapas för \"Flernivå/"
567
+ "Sorteringsvy\""
568
+
569
+ #: app/Views/settings/settings-posttypes.php:57
570
+ msgid ""
571
+ "<strong>Important:</strong> Changing page structures on live sites may "
572
+ "effect SEO and existing inbound links. Limit URL structure changes on live "
573
+ "sites by disabling nesting. Sorting within the current nesting structure "
574
+ "will still be available. If nesting changes are made to a live site, it may "
575
+ "help to add a 301 redirect from the old location to the new one."
576
+ msgstr ""
577
+ "<strong>Viktigt:</strong> Ändringar i sidstrukturen på produktionssajter kan "
578
+ "påverka sökmotoroptimering samt inkommande länkar. Minimera ändringar i URL-"
579
+ "struktur på skarpa sajter genom att inaktivera flernivåstöd. Sortering i den "
580
+ "nuvarande sidstrukturen kommer ändå att fungera. Om strukturändringar utförs "
581
+ "på en produktionssajt kan det hjälpa att skapa en 301-omdirigering från den "
582
+ "gamla platsen till den nya."
583
+
584
+ #: app/Views/settings/settings.php:6
585
+ msgid "General"
586
+ msgstr "Allmänt"
587
+
588
+ #: app/Views/settings/settings.php:10
589
+ msgid "Post Types"
590
+ msgstr "Inläggstyper"
languages/nestedpages.mo CHANGED
Binary file
languages/nestedpages.pot CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Nested Pages\n"
4
- "POT-Creation-Date: 2015-08-30 10:36-0500\n"
5
- "PO-Revision-Date: 2015-08-30 10:36-0500\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "MIME-Version: 1.0\n"
@@ -16,107 +16,181 @@ msgstr ""
16
  "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
17
  "X-Poedit-SearchPath-0: .\n"
18
 
19
- #: app/Activation/Dependencies.php:106 app/Views/listing.php:29
 
20
  msgid "Expand All"
21
  msgstr ""
22
 
23
- #: app/Activation/Dependencies.php:107
24
  msgid "Collapse All"
25
  msgstr ""
26
 
27
- #: app/Activation/Dependencies.php:108 app/Views/partials/tool-list.php:18
28
  msgid "Show Hidden"
29
  msgstr ""
30
 
31
- #: app/Activation/Dependencies.php:109
32
  msgid "Hide Hidden"
33
  msgstr ""
34
 
35
- #: app/Activation/Dependencies.php:110 app/Views/listing.php:16
36
  #: app/Views/listing.php:17
37
  msgid "Add Link"
38
  msgstr ""
39
 
40
- #: app/Activation/Dependencies.php:111
41
  msgid "Add Child Link"
42
  msgstr ""
43
 
44
- #: app/Activation/Dependencies.php:112
45
- #: app/Entities/Post/PostUpdateRepository.php:69
46
  #: app/Views/forms/new-child.php:19 app/Views/forms/new-child.php:21
47
- #: app/Views/forms/quickedit-post.php:20 app/Views/partials/tool-list.php:64
48
  msgid "Title"
49
  msgstr ""
50
 
51
- #: app/Activation/Dependencies.php:113 app/Views/forms/quickedit-post.php:11
52
- #: app/Views/partials/row-link.php:68 app/Views/partials/row.php:130
53
  msgid "Quick Edit"
54
  msgstr ""
55
 
56
- #: app/Activation/Dependencies.php:114
57
  msgid "Page Title"
58
  msgstr ""
59
 
60
- #: app/Activation/Dependencies.php:115 app/Views/partials/row.php:134
61
  msgid "View"
62
  msgstr ""
63
 
64
- #: app/Activation/Dependencies.php:116 app/Views/forms/new-child.php:7
65
- #: app/Views/partials/row.php:94
66
  msgid "Add Child"
67
  msgstr ""
68
 
69
- #: app/Activation/Dependencies.php:117
70
  msgid "Add Child Page"
71
  msgstr ""
72
 
73
- #: app/Activation/Dependencies.php:118
74
  msgid "Add Child Pages"
75
  msgstr ""
76
 
77
- #: app/Activation/Dependencies.php:119 app/Views/forms/link-form.php:105
78
- #: app/Views/forms/new-child.php:93
79
  msgid "Add"
80
  msgstr ""
81
 
82
- #: app/Activation/Dependencies.php:120
83
  msgid "Add Page"
84
  msgstr ""
85
 
86
- #: app/Activation/Dependencies.php:121
87
  msgid "Add Pages"
88
  msgstr ""
89
 
90
- #: app/Activation/Dependencies.php:122 app/Views/listing.php:10
91
  #: app/Views/listing.php:11
92
  msgid "Add Multiple"
93
  msgstr ""
94
 
95
- #: app/Activation/Dependencies.php:123
96
  msgid ""
97
  "Are you sure you would like to empty the trash? This action is not "
98
  "reversable."
99
  msgstr ""
100
 
101
- #: app/Activation/Dependencies.php:124 app/Views/partials/row-link.php:40
102
- #: app/Views/partials/row.php:45
103
  msgid "Hidden"
104
  msgstr ""
105
 
106
- #: app/Bootstrap.php:60
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
  msgid "Settings"
108
  msgstr ""
109
 
110
- #: app/Config/Settings.php:53 app/Views/settings/settings.php:2
111
  msgid "Nested Pages Settings"
112
  msgstr ""
113
 
114
- #: app/Config/Settings.php:54
115
  msgid "Nested Pages"
116
  msgstr ""
117
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118
  #: app/Entities/AdminMenu/AdminSubmenu.php:75
119
- #: app/Views/partials/tool-list.php:33
120
  msgid "Default"
121
  msgstr ""
122
 
@@ -124,35 +198,40 @@ msgstr ""
124
  msgid "Link successfully deleted."
125
  msgstr ""
126
 
127
- #: app/Entities/Confirmation/TrashConfirmation.php:16
128
- msgid "pages moved to the Trash"
129
  msgstr ""
130
 
131
- #: app/Entities/Confirmation/TrashConfirmation.php:18
132
- msgid "moved to the Trash"
133
  msgstr ""
134
 
135
- #: app/Entities/Confirmation/TrashConfirmation.php:23
 
 
 
 
 
136
  msgid "Undo"
137
  msgstr ""
138
 
139
  #: app/Entities/Confirmation/TrashRestoredConfirmation.php:14
140
- msgid "pages"
141
  msgstr ""
142
 
143
  #: app/Entities/Confirmation/TrashRestoredConfirmation.php:14
144
- msgid "page"
145
  msgstr ""
146
 
147
  #: app/Entities/Confirmation/TrashRestoredConfirmation.php:15
148
- msgid "restored from trash"
149
  msgstr ""
150
 
151
- #: app/Entities/PostType/PostTypeRepository.php:189
152
  msgid "Nested View"
153
  msgstr ""
154
 
155
- #: app/Entities/PostType/PostTypeRepository.php:189
156
  msgid "Sort View"
157
  msgstr ""
158
 
@@ -168,7 +247,7 @@ msgstr ""
168
  msgid "Incorrect Form Field"
169
  msgstr ""
170
 
171
- #: app/Form/Listeners/BaseHandler.php:109
172
  msgid "There was an error updating the page."
173
  msgstr ""
174
 
@@ -181,20 +260,21 @@ msgid "Trash successfully emptied."
181
  msgstr ""
182
 
183
  #: app/Form/Listeners/NewMenuItem.php:27
184
- msgid "Custom Links must have a label"
185
  msgstr ""
186
 
187
  #: app/Form/Listeners/NewMenuItem.php:28
188
- msgid "Please provide a valid URL"
 
189
  msgstr ""
190
 
191
  #: app/Form/Listeners/NewMenuItem.php:47
192
  #: app/Form/Listeners/QuickEditLink.php:30
193
- msgid "Link successfully updated"
194
  msgstr ""
195
 
196
  #: app/Form/Listeners/QuickEdit.php:32
197
- msgid "Post successfully updated"
198
  msgstr ""
199
 
200
  #: app/Form/Listeners/Sort.php:29
@@ -205,12 +285,12 @@ msgstr ""
205
  msgid "There was an error updating the page order."
206
  msgstr ""
207
 
208
- #: app/Form/Listeners/SyncMenu.php:27
209
- msgid "Menu sync enabled."
210
  msgstr ""
211
 
212
- #: app/Form/Listeners/SyncMenu.php:30
213
- msgid "Menu sync disabled."
214
  msgstr ""
215
 
216
  #: app/Form/Validation/Validation.php:134
@@ -221,10 +301,6 @@ msgstr ""
221
  msgid "Please provide a menu title."
222
  msgstr ""
223
 
224
- #: app/Form/Validation/Validation.php:148
225
- msgid "Please provide a valid URL."
226
- msgstr ""
227
-
228
  #: app/Form/Validation/Validation.php:158
229
  msgid "Please provide a "
230
  msgstr ""
@@ -242,7 +318,7 @@ msgid "Page titles cannot be blank."
242
  msgstr ""
243
 
244
  #: app/Views/forms/clone-form.php:9 app/Views/forms/clone-form.php:65
245
- #: app/Views/partials/row.php:99
246
  msgid "Clone"
247
  msgstr ""
248
 
@@ -251,36 +327,32 @@ msgid "Number of Copies"
251
  msgstr ""
252
 
253
  #: app/Views/forms/clone-form.php:26 app/Views/forms/new-child.php:35
254
- #: app/Views/forms/quickedit-link.php:27 app/Views/forms/quickedit-post.php:76
255
  msgid "Status"
256
  msgstr ""
257
 
258
  #: app/Views/forms/clone-form.php:29 app/Views/forms/new-child.php:38
259
- #: app/Views/forms/quickedit-link.php:30 app/Views/forms/quickedit-post.php:79
260
  #: app/Views/partials/tool-list.php:10
261
  msgid "Published"
262
  msgstr ""
263
 
264
  #: app/Views/forms/clone-form.php:31 app/Views/forms/quickedit-link.php:33
265
- #: app/Views/forms/quickedit-post.php:82
266
  msgid "Pending Review"
267
  msgstr ""
268
 
269
  #: app/Views/forms/clone-form.php:32 app/Views/forms/new-child.php:40
270
- #: app/Views/forms/quickedit-link.php:34 app/Views/forms/quickedit-post.php:83
271
  #: app/Views/partials/tool-list.php:14
272
  msgid "Draft"
273
  msgstr ""
274
 
275
- #: app/Views/forms/clone-form.php:50 app/Views/forms/new-child.php:61
276
- #: app/Views/forms/quickedit-post.php:67
277
- msgid "Author"
278
- msgstr ""
279
-
280
- #: app/Views/forms/clone-form.php:62 app/Views/forms/empty-trash-modal.php:11
281
- #: app/Views/forms/link-form.php:101 app/Views/forms/new-child.php:90
282
- #: app/Views/forms/quickedit-link.php:84
283
- #: app/Views/forms/quickedit-post.php:207
284
  msgid "Cancel"
285
  msgstr ""
286
 
@@ -313,12 +385,12 @@ msgid "URL"
313
  msgstr ""
314
 
315
  #: app/Views/forms/link-form.php:72 app/Views/forms/quickedit-link.php:17
316
- #: app/Views/forms/quickedit-post.php:171
317
  msgid "Navigation Label"
318
  msgstr ""
319
 
320
  #: app/Views/forms/link-form.php:76 app/Views/forms/quickedit-link.php:44
321
- #: app/Views/forms/quickedit-post.php:175
322
  msgid "Title Attribute"
323
  msgstr ""
324
 
@@ -327,7 +399,7 @@ msgid "CSS Classes (optional)"
327
  msgstr ""
328
 
329
  #: app/Views/forms/link-form.php:86 app/Views/forms/quickedit-link.php:66
330
- #: app/Views/forms/quickedit-post.php:193
331
  msgid "Open link in a new window/tab"
332
  msgstr ""
333
 
@@ -335,108 +407,100 @@ msgstr ""
335
  msgid "+"
336
  msgstr ""
337
 
338
- #: app/Views/forms/new-child.php:71 app/Views/forms/quickedit-post.php:93
339
- msgid "Template"
340
  msgstr ""
341
 
342
- #: app/Views/forms/new-child.php:73 app/Views/forms/quickedit-post.php:95
343
- msgid "Default Template"
 
344
  msgstr ""
345
 
346
- #: app/Views/forms/new-child.php:96
347
  msgid "Add & Edit"
348
  msgstr ""
349
 
350
  #: app/Views/forms/quickedit-link.php:8
 
351
  msgid "Link"
352
  msgstr ""
353
 
354
- #: app/Views/forms/quickedit-link.php:31 app/Views/forms/quickedit-post.php:80
355
  msgid "Scheduled"
356
  msgstr ""
357
 
358
  #: app/Views/forms/quickedit-link.php:48
359
- #: app/Views/forms/quickedit-post.php:179
360
  msgid "CSS Classes"
361
  msgstr ""
362
 
363
- #: app/Views/forms/quickedit-link.php:54
364
- #: app/Views/forms/quickedit-post.php:187
365
- msgid "Hide in Nav Menu"
366
- msgstr ""
367
-
368
- #: app/Views/forms/quickedit-link.php:60
369
- #: app/Views/forms/quickedit-post.php:126
370
- msgid "Hide in Nested Pages"
371
- msgstr ""
372
-
373
  #: app/Views/forms/quickedit-link.php:87
374
- #: app/Views/forms/quickedit-post.php:210
375
  msgid "Update"
376
  msgstr ""
377
 
378
- #: app/Views/forms/quickedit-post.php:24
379
- msgid "Slug"
380
- msgstr ""
381
-
382
- #: app/Views/forms/quickedit-post.php:30 app/Views/forms/quickedit-post.php:45
383
- #: app/Views/partials/tool-list.php:63
384
  msgid "Date"
385
  msgstr ""
386
 
387
- #: app/Views/forms/quickedit-post.php:33
388
  msgid "@"
389
  msgstr ""
390
 
391
- #: app/Views/forms/quickedit-post.php:36
392
  msgid "am"
393
  msgstr ""
394
 
395
- #: app/Views/forms/quickedit-post.php:37
396
  msgid "pm"
397
  msgstr ""
398
 
399
- #: app/Views/forms/quickedit-post.php:103
400
  msgid "Password"
401
  msgstr ""
402
 
403
- #: app/Views/forms/quickedit-post.php:106
404
  msgid "&ndash;OR&ndash;"
405
  msgstr ""
406
 
407
- #: app/Views/forms/quickedit-post.php:109
408
  msgid "Private"
409
  msgstr ""
410
 
411
- #: app/Views/forms/quickedit-post.php:118
412
- msgid "Allow Comments"
413
  msgstr ""
414
 
415
- #: app/Views/forms/quickedit-post.php:135
416
- msgid "Menu Options"
417
  msgstr ""
418
 
419
- #: app/Views/forms/quickedit-post.php:139
420
- msgid "Taxonomies"
421
  msgstr ""
422
 
423
- #: app/Views/listing.php:35
424
- msgid "Sync Menu"
 
 
 
 
425
  msgstr ""
426
 
427
- #: app/Views/partials/row.php:23
428
  msgid "Front Page"
429
  msgstr ""
430
 
431
- #: app/Views/partials/row.php:24
432
  msgid "Posts Page"
433
  msgstr ""
434
 
435
- #: app/Views/partials/row.php:53
436
  msgid "currently editing"
437
  msgstr ""
438
 
439
- #: app/Views/partials/row.php:57
440
  msgid "Edit"
441
  msgstr ""
442
 
@@ -444,35 +508,35 @@ msgstr ""
444
  msgid "All"
445
  msgstr ""
446
 
447
- #: app/Views/partials/tool-list.php:24
448
  msgid "Trash"
449
  msgstr ""
450
 
451
- #: app/Views/partials/tool-list.php:25
452
  msgid "Empty"
453
  msgstr ""
454
 
455
- #: app/Views/partials/tool-list.php:47
456
  msgid "All Authors"
457
  msgstr ""
458
 
459
- #: app/Views/partials/tool-list.php:62
460
  msgid "Menu Order"
461
  msgstr ""
462
 
463
- #: app/Views/partials/tool-list.php:66
464
  msgid "Order By"
465
  msgstr ""
466
 
467
- #: app/Views/partials/tool-list.php:80
468
  msgid "Ascending"
469
  msgstr ""
470
 
471
- #: app/Views/partials/tool-list.php:81
472
- msgid "Decending"
473
  msgstr ""
474
 
475
- #: app/Views/partials/tool-list.php:110
476
  msgid "All "
477
  msgstr ""
478
 
@@ -484,29 +548,29 @@ msgstr ""
484
  msgid "Currently Disabled"
485
  msgstr ""
486
 
487
- #: app/Views/settings/settings-general.php:8
488
  msgid "Nested Pages Version"
489
  msgstr ""
490
 
491
- #: app/Views/settings/settings-general.php:13
492
  msgid "Menu Name"
493
  msgstr ""
494
 
495
- #: app/Views/settings/settings-general.php:16
496
  msgid ""
497
  "Important: Once the menu name has changed, theme files should be updated to "
498
  "reference the new name."
499
  msgstr ""
500
 
501
- #: app/Views/settings/settings-general.php:21
502
  msgid "Display Options"
503
  msgstr ""
504
 
505
- #: app/Views/settings/settings-general.php:25
506
  msgid "Enable Date Picker in Quick Edit"
507
  msgstr ""
508
 
509
- #: app/Views/settings/settings-general.php:30
510
  msgid "Menu Sync"
511
  msgstr ""
512
 
@@ -514,15 +578,23 @@ msgstr ""
514
  msgid "Hide Menu Sync Checkbox"
515
  msgstr ""
516
 
517
- #: app/Views/settings/settings-general.php:43
518
- msgid "Disable Menu Sync Completely"
 
 
 
 
 
 
 
 
519
  msgstr ""
520
 
521
- #: app/Views/settings/settings-general.php:49
522
  msgid "Allow Page Sorting"
523
  msgstr ""
524
 
525
- #: app/Views/settings/settings-general.php:59
526
  msgid "Admins always have sorting ability."
527
  msgstr ""
528
 
@@ -530,41 +602,131 @@ msgstr ""
530
  msgid "Enable Nested Pages for:"
531
  msgstr ""
532
 
533
- #: app/Views/settings/settings-posttypes.php:14
534
- msgid "Post Type"
535
  msgstr ""
536
 
537
- #: app/Views/settings/settings-posttypes.php:15
538
- msgid "Hierarchical"
539
  msgstr ""
540
 
541
- #: app/Views/settings/settings-posttypes.php:16
542
- msgid "Enabled"
543
  msgstr ""
544
 
545
- #: app/Views/settings/settings-posttypes.php:17
546
- msgid "Replace Default Menu"
547
  msgstr ""
548
 
549
- #: app/Views/settings/settings-posttypes.php:18
550
- msgid "Hide Default Link"
551
  msgstr ""
552
 
553
- #: app/Views/settings/settings-posttypes.php:19
 
 
 
 
 
 
 
 
 
 
 
 
 
 
554
  msgid "Disable Nesting"
555
  msgstr ""
556
 
557
- #: app/Views/settings/settings-posttypes.php:51
558
- msgid "Note: Nesting features not enabled for non-hierarchical post types."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
559
  msgstr ""
560
 
561
- #: app/Views/settings/settings-posttypes.php:54
562
  msgid ""
563
  "If default menu is not replaced, an additional submenu item will be added "
564
  "for \"Nested/Sort View\""
565
  msgstr ""
566
 
567
- #: app/Views/settings/settings-posttypes.php:57
568
  msgid ""
569
  "<strong>Important:</strong> Changing page structures on live sites may "
570
  "effect SEO and existing inbound links. Limit URL structure changes on live "
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Nested Pages\n"
4
+ "POT-Creation-Date: 2016-10-18 22:30-0500\n"
5
+ "PO-Revision-Date: 2016-10-18 22:30-0500\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "MIME-Version: 1.0\n"
16
  "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
17
  "X-Poedit-SearchPath-0: .\n"
18
 
19
+ #: app/Activation/Dependencies.php:124 app/Views/listing.php:31
20
+ #: app/Views/partials/list-header.php:21
21
  msgid "Expand All"
22
  msgstr ""
23
 
24
+ #: app/Activation/Dependencies.php:125
25
  msgid "Collapse All"
26
  msgstr ""
27
 
28
+ #: app/Activation/Dependencies.php:126 app/Views/partials/tool-list.php:19
29
  msgid "Show Hidden"
30
  msgstr ""
31
 
32
+ #: app/Activation/Dependencies.php:127 app/Views/partials/tool-list.php:21
33
  msgid "Hide Hidden"
34
  msgstr ""
35
 
36
+ #: app/Activation/Dependencies.php:128 app/Views/listing.php:16
37
  #: app/Views/listing.php:17
38
  msgid "Add Link"
39
  msgstr ""
40
 
41
+ #: app/Activation/Dependencies.php:129
42
  msgid "Add Child Link"
43
  msgstr ""
44
 
45
+ #: app/Activation/Dependencies.php:130
46
+ #: app/Entities/Post/PostUpdateRepository.php:91
47
  #: app/Views/forms/new-child.php:19 app/Views/forms/new-child.php:21
48
+ #: app/Views/forms/quickedit-post.php:21 app/Views/partials/tool-list.php:69
49
  msgid "Title"
50
  msgstr ""
51
 
52
+ #: app/Activation/Dependencies.php:131 app/Views/forms/quickedit-post.php:11
53
+ #: app/Views/partials/row-link.php:68 app/Views/partials/row.php:138
54
  msgid "Quick Edit"
55
  msgstr ""
56
 
57
+ #: app/Activation/Dependencies.php:132
58
  msgid "Page Title"
59
  msgstr ""
60
 
61
+ #: app/Activation/Dependencies.php:133 app/Views/partials/row.php:143
62
  msgid "View"
63
  msgstr ""
64
 
65
+ #: app/Activation/Dependencies.php:134 app/Views/forms/new-child.php:7
66
+ #: app/Views/partials/row.php:102
67
  msgid "Add Child"
68
  msgstr ""
69
 
70
+ #: app/Activation/Dependencies.php:135
71
  msgid "Add Child Page"
72
  msgstr ""
73
 
74
+ #: app/Activation/Dependencies.php:136
75
  msgid "Add Child Pages"
76
  msgstr ""
77
 
78
+ #: app/Activation/Dependencies.php:137 app/Views/forms/link-form.php:105
79
+ #: app/Views/forms/new-child.php:102
80
  msgid "Add"
81
  msgstr ""
82
 
83
+ #: app/Activation/Dependencies.php:138
84
  msgid "Add Page"
85
  msgstr ""
86
 
87
+ #: app/Activation/Dependencies.php:139
88
  msgid "Add Pages"
89
  msgstr ""
90
 
91
+ #: app/Activation/Dependencies.php:140 app/Views/listing.php:10
92
  #: app/Views/listing.php:11
93
  msgid "Add Multiple"
94
  msgstr ""
95
 
96
+ #: app/Activation/Dependencies.php:141
97
  msgid ""
98
  "Are you sure you would like to empty the trash? This action is not "
99
  "reversable."
100
  msgstr ""
101
 
102
+ #: app/Activation/Dependencies.php:142 app/Views/partials/row-link.php:40
103
+ #: app/Views/partials/row.php:48
104
  msgid "Hidden"
105
  msgstr ""
106
 
107
+ #: app/Activation/Dependencies.php:143 app/Views/partials/list-header.php:14
108
+ msgid "Bulk Actions"
109
+ msgstr ""
110
+
111
+ #: app/Activation/Dependencies.php:144
112
+ msgid ""
113
+ "Your selection includes link items, which cannot be recovered after "
114
+ "deleting. Would you like to continue? (Other items are moved to the trash)"
115
+ msgstr ""
116
+
117
+ #: app/Activation/Dependencies.php:145
118
+ msgid ""
119
+ "Are you sure you would like to delete this item? This action is not "
120
+ "reversable."
121
+ msgstr ""
122
+
123
+ #: app/Activation/Dependencies.php:146
124
+ #: app/Views/forms/delete-confirmation-modal.php:12
125
+ msgid "Delete"
126
+ msgstr ""
127
+
128
+ #: app/Activation/Dependencies.php:147
129
+ msgid "Trash Posts and Delete Links"
130
+ msgstr ""
131
+
132
+ #: app/Bootstrap.php:69 app/Views/settings/settings-posttypes.php:22
133
  msgid "Settings"
134
  msgstr ""
135
 
136
+ #: app/Config/Settings.php:66 app/Views/settings/settings.php:2
137
  msgid "Nested Pages Settings"
138
  msgstr ""
139
 
140
+ #: app/Config/Settings.php:67
141
  msgid "Nested Pages"
142
  msgstr ""
143
 
144
+ #: app/Config/SettingsRepository.php:79
145
+ msgid "Post Title"
146
+ msgstr ""
147
+
148
+ #: app/Config/SettingsRepository.php:80 app/Views/forms/quickedit-post.php:28
149
+ msgid "Slug"
150
+ msgstr ""
151
+
152
+ #: app/Config/SettingsRepository.php:81
153
+ msgid "Post Date"
154
+ msgstr ""
155
+
156
+ #: app/Config/SettingsRepository.php:82 app/Views/forms/clone-form.php:50
157
+ #: app/Views/forms/new-child.php:61 app/Views/forms/quickedit-post.php:74
158
+ msgid "Author"
159
+ msgstr ""
160
+
161
+ #: app/Config/SettingsRepository.php:83
162
+ msgid "Post Status"
163
+ msgstr ""
164
+
165
+ #: app/Config/SettingsRepository.php:84
166
+ msgid "Password/Private"
167
+ msgstr ""
168
+
169
+ #: app/Config/SettingsRepository.php:85 app/Views/forms/quickedit-post.php:129
170
+ msgid "Allow Comments"
171
+ msgstr ""
172
+
173
+ #: app/Config/SettingsRepository.php:89 app/Views/forms/new-child.php:71
174
+ #: app/Views/forms/quickedit-post.php:103
175
+ msgid "Template"
176
+ msgstr ""
177
+
178
+ #: app/Config/SettingsRepository.php:90 app/Views/forms/quickedit-post.php:145
179
+ msgid "Menu Options"
180
+ msgstr ""
181
+
182
+ #: app/Config/SettingsRepository.php:93 app/Views/forms/quickedit-link.php:60
183
+ #: app/Views/forms/quickedit-post.php:138
184
+ msgid "Hide in Nested Pages"
185
+ msgstr ""
186
+
187
+ #: app/Config/SettingsRepository.php:101
188
+ #: app/Views/forms/quickedit-post.php:149
189
+ msgid "Taxonomies"
190
+ msgstr ""
191
+
192
  #: app/Entities/AdminMenu/AdminSubmenu.php:75
193
+ #: app/Views/partials/tool-list.php:38
194
  msgid "Default"
195
  msgstr ""
196
 
198
  msgid "Link successfully deleted."
199
  msgstr ""
200
 
201
+ #: app/Entities/Confirmation/TrashConfirmation.php:20
202
+ msgid "Links Removed."
203
  msgstr ""
204
 
205
+ #: app/Entities/Confirmation/TrashConfirmation.php:21
206
+ msgid "Link Removed."
207
  msgstr ""
208
 
209
+ #: app/Entities/Confirmation/TrashConfirmation.php:30
210
+ #: app/Entities/Confirmation/TrashConfirmation.php:31
211
+ msgid "moved to the Trash."
212
+ msgstr ""
213
+
214
+ #: app/Entities/Confirmation/TrashConfirmation.php:35
215
  msgid "Undo"
216
  msgstr ""
217
 
218
  #: app/Entities/Confirmation/TrashRestoredConfirmation.php:14
219
+ msgid "items"
220
  msgstr ""
221
 
222
  #: app/Entities/Confirmation/TrashRestoredConfirmation.php:14
223
+ msgid "item"
224
  msgstr ""
225
 
226
  #: app/Entities/Confirmation/TrashRestoredConfirmation.php:15
227
+ msgid "restored from trash."
228
  msgstr ""
229
 
230
+ #: app/Entities/PostType/PostTypeRepository.php:317
231
  msgid "Nested View"
232
  msgstr ""
233
 
234
+ #: app/Entities/PostType/PostTypeRepository.php:317
235
  msgid "Sort View"
236
  msgstr ""
237
 
247
  msgid "Incorrect Form Field"
248
  msgstr ""
249
 
250
+ #: app/Form/Listeners/BaseHandler.php:113
251
  msgid "There was an error updating the page."
252
  msgstr ""
253
 
260
  msgstr ""
261
 
262
  #: app/Form/Listeners/NewMenuItem.php:27
263
+ msgid "Custom Links must have a label."
264
  msgstr ""
265
 
266
  #: app/Form/Listeners/NewMenuItem.php:28
267
+ #: app/Form/Validation/Validation.php:148
268
+ msgid "Please provide a valid URL."
269
  msgstr ""
270
 
271
  #: app/Form/Listeners/NewMenuItem.php:47
272
  #: app/Form/Listeners/QuickEditLink.php:30
273
+ msgid "Link successfully updated."
274
  msgstr ""
275
 
276
  #: app/Form/Listeners/QuickEdit.php:32
277
+ msgid "Post successfully updated."
278
  msgstr ""
279
 
280
  #: app/Form/Listeners/Sort.php:29
285
  msgid "There was an error updating the page order."
286
  msgstr ""
287
 
288
+ #: app/Form/Listeners/SyncMenu.php:26
289
+ msgid "Menu sync disabled."
290
  msgstr ""
291
 
292
+ #: app/Form/Listeners/SyncMenu.php:36
293
+ msgid "Menu sync enabled."
294
  msgstr ""
295
 
296
  #: app/Form/Validation/Validation.php:134
301
  msgid "Please provide a menu title."
302
  msgstr ""
303
 
 
 
 
 
304
  #: app/Form/Validation/Validation.php:158
305
  msgid "Please provide a "
306
  msgstr ""
318
  msgstr ""
319
 
320
  #: app/Views/forms/clone-form.php:9 app/Views/forms/clone-form.php:65
321
+ #: app/Views/partials/row.php:107
322
  msgid "Clone"
323
  msgstr ""
324
 
327
  msgstr ""
328
 
329
  #: app/Views/forms/clone-form.php:26 app/Views/forms/new-child.php:35
330
+ #: app/Views/forms/quickedit-link.php:27 app/Views/forms/quickedit-post.php:85
331
  msgid "Status"
332
  msgstr ""
333
 
334
  #: app/Views/forms/clone-form.php:29 app/Views/forms/new-child.php:38
335
+ #: app/Views/forms/quickedit-link.php:30 app/Views/forms/quickedit-post.php:88
336
  #: app/Views/partials/tool-list.php:10
337
  msgid "Published"
338
  msgstr ""
339
 
340
  #: app/Views/forms/clone-form.php:31 app/Views/forms/quickedit-link.php:33
341
+ #: app/Views/forms/quickedit-post.php:91
342
  msgid "Pending Review"
343
  msgstr ""
344
 
345
  #: app/Views/forms/clone-form.php:32 app/Views/forms/new-child.php:40
346
+ #: app/Views/forms/quickedit-link.php:34 app/Views/forms/quickedit-post.php:92
347
  #: app/Views/partials/tool-list.php:14
348
  msgid "Draft"
349
  msgstr ""
350
 
351
+ #: app/Views/forms/clone-form.php:62
352
+ #: app/Views/forms/delete-confirmation-modal.php:11
353
+ #: app/Views/forms/empty-trash-modal.php:11 app/Views/forms/link-form.php:101
354
+ #: app/Views/forms/new-child.php:99 app/Views/forms/quickedit-link.php:84
355
+ #: app/Views/forms/quickedit-post.php:231
 
 
 
 
356
  msgid "Cancel"
357
  msgstr ""
358
 
385
  msgstr ""
386
 
387
  #: app/Views/forms/link-form.php:72 app/Views/forms/quickedit-link.php:17
388
+ #: app/Views/forms/quickedit-post.php:195
389
  msgid "Navigation Label"
390
  msgstr ""
391
 
392
  #: app/Views/forms/link-form.php:76 app/Views/forms/quickedit-link.php:44
393
+ #: app/Views/forms/quickedit-post.php:199
394
  msgid "Title Attribute"
395
  msgstr ""
396
 
399
  msgstr ""
400
 
401
  #: app/Views/forms/link-form.php:86 app/Views/forms/quickedit-link.php:66
402
+ #: app/Views/forms/quickedit-post.php:217
403
  msgid "Open link in a new window/tab"
404
  msgstr ""
405
 
407
  msgid "+"
408
  msgstr ""
409
 
410
+ #: app/Views/forms/new-child.php:73 app/Views/forms/quickedit-post.php:105
411
+ msgid "Default Template"
412
  msgstr ""
413
 
414
+ #: app/Views/forms/new-child.php:83 app/Views/forms/quickedit-link.php:54
415
+ #: app/Views/forms/quickedit-post.php:211
416
+ msgid "Hide in Nav Menu"
417
  msgstr ""
418
 
419
+ #: app/Views/forms/new-child.php:105
420
  msgid "Add & Edit"
421
  msgstr ""
422
 
423
  #: app/Views/forms/quickedit-link.php:8
424
+ #: app/Views/settings/settings-posttypes.php:44
425
  msgid "Link"
426
  msgstr ""
427
 
428
+ #: app/Views/forms/quickedit-link.php:31 app/Views/forms/quickedit-post.php:89
429
  msgid "Scheduled"
430
  msgstr ""
431
 
432
  #: app/Views/forms/quickedit-link.php:48
433
+ #: app/Views/forms/quickedit-post.php:203
434
  msgid "CSS Classes"
435
  msgstr ""
436
 
 
 
 
 
 
 
 
 
 
 
437
  #: app/Views/forms/quickedit-link.php:87
438
+ #: app/Views/forms/quickedit-post.php:234
439
  msgid "Update"
440
  msgstr ""
441
 
442
+ #: app/Views/forms/quickedit-post.php:36 app/Views/forms/quickedit-post.php:51
443
+ #: app/Views/partials/tool-list.php:68
 
 
 
 
444
  msgid "Date"
445
  msgstr ""
446
 
447
+ #: app/Views/forms/quickedit-post.php:39
448
  msgid "@"
449
  msgstr ""
450
 
451
+ #: app/Views/forms/quickedit-post.php:42
452
  msgid "am"
453
  msgstr ""
454
 
455
+ #: app/Views/forms/quickedit-post.php:43
456
  msgid "pm"
457
  msgstr ""
458
 
459
+ #: app/Views/forms/quickedit-post.php:113
460
  msgid "Password"
461
  msgstr ""
462
 
463
+ #: app/Views/forms/quickedit-post.php:116
464
  msgid "&ndash;OR&ndash;"
465
  msgstr ""
466
 
467
+ #: app/Views/forms/quickedit-post.php:119
468
  msgid "Private"
469
  msgstr ""
470
 
471
+ #: app/Views/listing.php:38
472
+ msgid "Sync"
473
  msgstr ""
474
 
475
+ #: app/Views/listing.php:38
476
+ msgid "Order"
477
  msgstr ""
478
 
479
+ #: app/Views/listing.php:45 app/Views/listing.php:48
480
+ msgid "Sync Menu"
481
  msgstr ""
482
 
483
+ #: app/Views/partials/list-header.php:16
484
+ msgid "Move to Trash"
485
+ msgstr ""
486
+
487
+ #: app/Views/partials/list-header.php:21
488
+ msgid "Nested Items Selected"
489
  msgstr ""
490
 
491
+ #: app/Views/partials/row.php:31
492
  msgid "Front Page"
493
  msgstr ""
494
 
495
+ #: app/Views/partials/row.php:32
496
  msgid "Posts Page"
497
  msgstr ""
498
 
499
+ #: app/Views/partials/row.php:56
500
  msgid "currently editing"
501
  msgstr ""
502
 
503
+ #: app/Views/partials/row.php:60
504
  msgid "Edit"
505
  msgstr ""
506
 
508
  msgid "All"
509
  msgstr ""
510
 
511
+ #: app/Views/partials/tool-list.php:29
512
  msgid "Trash"
513
  msgstr ""
514
 
515
+ #: app/Views/partials/tool-list.php:30
516
  msgid "Empty"
517
  msgstr ""
518
 
519
+ #: app/Views/partials/tool-list.php:52
520
  msgid "All Authors"
521
  msgstr ""
522
 
523
+ #: app/Views/partials/tool-list.php:67
524
  msgid "Menu Order"
525
  msgstr ""
526
 
527
+ #: app/Views/partials/tool-list.php:71
528
  msgid "Order By"
529
  msgstr ""
530
 
531
+ #: app/Views/partials/tool-list.php:85
532
  msgid "Ascending"
533
  msgstr ""
534
 
535
+ #: app/Views/partials/tool-list.php:86
536
+ msgid "Descending"
537
  msgstr ""
538
 
539
+ #: app/Views/partials/tool-list.php:115
540
  msgid "All "
541
  msgstr ""
542
 
548
  msgid "Currently Disabled"
549
  msgstr ""
550
 
551
+ #: app/Views/settings/settings-general.php:9
552
  msgid "Nested Pages Version"
553
  msgstr ""
554
 
555
+ #: app/Views/settings/settings-general.php:14
556
  msgid "Menu Name"
557
  msgstr ""
558
 
559
+ #: app/Views/settings/settings-general.php:17
560
  msgid ""
561
  "Important: Once the menu name has changed, theme files should be updated to "
562
  "reference the new name."
563
  msgstr ""
564
 
565
+ #: app/Views/settings/settings-general.php:22
566
  msgid "Display Options"
567
  msgstr ""
568
 
569
+ #: app/Views/settings/settings-general.php:26
570
  msgid "Enable Date Picker in Quick Edit"
571
  msgstr ""
572
 
573
+ #: app/Views/settings/settings-general.php:31
574
  msgid "Menu Sync"
575
  msgstr ""
576
 
578
  msgid "Hide Menu Sync Checkbox"
579
  msgstr ""
580
 
581
+ #: app/Views/settings/settings-general.php:42
582
+ msgid "Manually sync menu."
583
+ msgstr ""
584
+
585
+ #: app/Views/settings/settings-general.php:48
586
+ msgid "Manually sync page order."
587
+ msgstr ""
588
+
589
+ #: app/Views/settings/settings-general.php:54
590
+ msgid "Disable menu sync completely"
591
  msgstr ""
592
 
593
+ #: app/Views/settings/settings-general.php:60
594
  msgid "Allow Page Sorting"
595
  msgstr ""
596
 
597
+ #: app/Views/settings/settings-general.php:70
598
  msgid "Admins always have sorting ability."
599
  msgstr ""
600
 
602
  msgid "Enable Nested Pages for:"
603
  msgstr ""
604
 
605
+ #: app/Views/settings/settings-posttypes.php:19
606
+ msgid "Hierarchical"
607
  msgstr ""
608
 
609
+ #: app/Views/settings/settings-posttypes.php:29
610
+ msgid "Replace Default Menu"
611
  msgstr ""
612
 
613
+ #: app/Views/settings/settings-posttypes.php:30
614
+ msgid "Replace the default top-level item with the nested view link."
615
  msgstr ""
616
 
617
+ #: app/Views/settings/settings-posttypes.php:33
618
+ msgid "Replace Default"
619
  msgstr ""
620
 
621
+ #: app/Views/settings/settings-posttypes.php:33
622
+ msgid "Menu"
623
  msgstr ""
624
 
625
+ #: app/Views/settings/settings-posttypes.php:40
626
+ msgid "Remove Default Link"
627
+ msgstr ""
628
+
629
+ #: app/Views/settings/settings-posttypes.php:41
630
+ msgid ""
631
+ "If the default menu is replaced, a link to the default view will be added. "
632
+ "Select this to remove the link"
633
+ msgstr ""
634
+
635
+ #: app/Views/settings/settings-posttypes.php:44
636
+ msgid "Hide Default"
637
+ msgstr ""
638
+
639
+ #: app/Views/settings/settings-posttypes.php:52
640
  msgid "Disable Nesting"
641
  msgstr ""
642
 
643
+ #: app/Views/settings/settings-posttypes.php:53
644
+ msgid "To disable nesting on hierarchical post types, select this option."
645
+ msgstr ""
646
+
647
+ #: app/Views/settings/settings-posttypes.php:56
648
+ msgid "Disable Nesting for"
649
+ msgstr ""
650
+
651
+ #: app/Views/settings/settings-posttypes.php:69
652
+ msgid "Display Thumbnails"
653
+ msgstr ""
654
+
655
+ #: app/Views/settings/settings-posttypes.php:70
656
+ msgid "Display the thumbnail in the list sort view."
657
+ msgstr ""
658
+
659
+ #: app/Views/settings/settings-posttypes.php:71
660
+ msgid ""
661
+ "Note: Thumbnail width is displayed at a maximum of 80px in the nested pages "
662
+ "view. The image is scaled proportionally."
663
+ msgstr ""
664
+
665
+ #: app/Views/settings/settings-posttypes.php:74
666
+ msgid "Display Thumbnails for"
667
+ msgstr ""
668
+
669
+ #: app/Views/settings/settings-posttypes.php:77
670
+ msgid "Thumbnail Source"
671
+ msgstr ""
672
+
673
+ #: app/Views/settings/settings-posttypes.php:88
674
+ msgid "Thumbnail Display Size"
675
+ msgstr ""
676
+
677
+ #: app/Views/settings/settings-posttypes.php:90
678
+ msgid "Small"
679
+ msgstr ""
680
+
681
+ #: app/Views/settings/settings-posttypes.php:91
682
+ msgid "Medium"
683
+ msgstr ""
684
+
685
+ #: app/Views/settings/settings-posttypes.php:92
686
+ msgid "Large"
687
+ msgstr ""
688
+
689
+ #: app/Views/settings/settings-posttypes.php:101
690
+ #: app/Views/settings/settings-posttypes.php:105
691
+ msgid "Configure Standard Fields"
692
+ msgstr ""
693
+
694
+ #: app/Views/settings/settings-posttypes.php:102
695
+ msgid "Remove standard fields from the quick edit form."
696
+ msgstr ""
697
+
698
+ #: app/Views/settings/settings-posttypes.php:108
699
+ msgid "Check to remove from Quick Edit."
700
+ msgstr ""
701
+
702
+ #: app/Views/settings/settings-posttypes.php:150
703
+ #: app/Views/settings/settings-posttypes.php:154
704
+ msgid "Configure Custom Fields"
705
+ msgstr ""
706
+
707
+ #: app/Views/settings/settings-posttypes.php:151
708
+ msgid "Set which custom fields display in the quick edit form."
709
+ msgstr ""
710
+
711
+ #: app/Views/settings/settings-posttypes.php:157
712
+ msgid "Check to Include in Quick Edit."
713
+ msgstr ""
714
+
715
+ #: app/Views/settings/settings-posttypes.php:163
716
+ msgid "Advanced Custom Fields"
717
+ msgstr ""
718
+
719
+ #: app/Views/settings/settings-posttypes.php:178
720
+ msgid "No ACF Fields configured for this post type"
721
  msgstr ""
722
 
723
+ #: app/Views/settings/settings-posttypes.php:194
724
  msgid ""
725
  "If default menu is not replaced, an additional submenu item will be added "
726
  "for \"Nested/Sort View\""
727
  msgstr ""
728
 
729
+ #: app/Views/settings/settings-posttypes.php:197
730
  msgid ""
731
  "<strong>Important:</strong> Changing page structures on live sites may "
732
  "effect SEO and existing inbound links. Limit URL structure changes on live "
nestedpages.php CHANGED
@@ -2,8 +2,8 @@
2
  /*
3
  Plugin Name: Nested Pages
4
  Plugin URI: http://nestedpages.com
5
- Description: Provides an intuitive drag and drop interface for managing pages in the Wordpress admin, while maintaining quick edit functionality.
6
- Version: 1.5.4
7
  Author: Kyle Phillips
8
  Author URI: https://github.com/kylephillips
9
  Text Domain: nestedpages
2
  /*
3
  Plugin Name: Nested Pages
4
  Plugin URI: http://nestedpages.com
5
+ Description: Provides an intuitive drag and drop interface for managing pages in the Wordpress admin, while enhancing quick edit. Includes an auto-generated menu to match the nested interface, support for all post types and more.
6
+ Version: 1.6.0
7
  Author: Kyle Phillips
8
  Author URI: https://github.com/kylephillips
9
  Text Domain: nestedpages
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: kylephillips
3
  Donate link: http://nestedpages.com/
4
  Tags: pages, admin, nested, tree view, page tree, sort, quick edit, structure
5
  Requires at least: 3.8
6
- Tested up to: 4.4
7
  Stable tag: 1.5.4
8
 
9
  License: GPLv2 or later
@@ -39,6 +39,7 @@ For more information visit [nestedpages.com](http://nestedpages.com).
39
  * Portuguese (Luis Martins)
40
  * Russian (Алексей Катаев)
41
  * Spanish (Raúl Martínez)
 
42
  * Turkish (Yuksel Beyti)
43
 
44
  == Installation ==
@@ -47,6 +48,7 @@ For more information visit [nestedpages.com](http://nestedpages.com).
47
  2. Activate the plugin through the Plugins menu in WordPress
48
  3. Click on the Pages Menu item to begin ordering pages. Nested Pages replaces the default Page management screen.
49
  4. To access the default the pages screen, select Default Pages located in the Pages submenu, or on the Nested Pages screen
 
50
 
51
  == Frequently Asked Questions ==
52
 
@@ -60,7 +62,7 @@ Nested Pages is not currently compatible with WPML.
60
  Click the “Default link in the page subnav, or on the Nested Pages screen. This item may be optionally hidden under the Nested Pages settings.
61
 
62
  = How do I save the order I create? =
63
- Post sorting and nesting is saved in the background after changes are made to the structure.
64
 
65
  = How do I edit in bulk? =
66
  Bulk quick edits are not currently supported by Nested Pages. To edit in bulk, click on the "Default" link to use the native interface.
@@ -71,25 +73,51 @@ Custom columns are not currently supported by Nested Pages. To view custom colum
71
  = What are those dots in my page rows? =
72
  If you have WordPress SEO by Yoast installed, your page score indicators are shown along with the pages.
73
 
 
 
 
74
 
75
  == Screenshots ==
76
 
77
  1. Expandable tree view of your page structure
78
 
79
- 2. Retains quick edit functionality while adding additional options and a cleaner interface
80
 
81
  3. Sortable page nesting updates in real time
82
 
83
- 4. Toggle nested child pages for a clutter-free tree
 
 
 
 
84
 
85
- 5. Quickly add posts without leaving the page tree
86
 
87
- 6. Set capabilities
88
 
89
- 7. The Nested Pages interface can be enabled on a per-post-type basis, with customizable options for each type.
90
 
91
  == Changelog ==
92
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
 
94
  = 1.5.4 =
95
  * Spanish translation added (Thanks to Raúl Martínez)
@@ -344,4 +372,14 @@ After installing Nested Pages, a new menu will be available with the name `Neste
344
 
345
  **Editing the generated menu:** Any manual changes made to the menu outside of the Nested Pages interface will be overwritten after the synchronization runs.
346
 
347
- **Hiding Pages in the Menu:** To hide a page from the Nested Pages menu, click “Quick Edit” on it’s row, select “Hide in Nav Menu”, and click “update”. If menu sync is disabled, enable it now to sync the setting. Hidden pages are marked “(Hidden)”. If a page with child pages is hidden from the menu, all of it’s child pages will also be hidden.
 
 
 
 
 
 
 
 
 
 
3
  Donate link: http://nestedpages.com/
4
  Tags: pages, admin, nested, tree view, page tree, sort, quick edit, structure
5
  Requires at least: 3.8
6
+ Tested up to: 4.6
7
  Stable tag: 1.5.4
8
 
9
  License: GPLv2 or later
39
  * Portuguese (Luis Martins)
40
  * Russian (Алексей Катаев)
41
  * Spanish (Raúl Martínez)
42
+ * Swedish (Marcus Forsberg)
43
  * Turkish (Yuksel Beyti)
44
 
45
  == Installation ==
48
  2. Activate the plugin through the Plugins menu in WordPress
49
  3. Click on the Pages Menu item to begin ordering pages. Nested Pages replaces the default Page management screen.
50
  4. To access the default the pages screen, select Default Pages located in the Pages submenu, or on the Nested Pages screen
51
+ 5. Additional options are available through the plugin settings at Settings > Nested Pages. Nested Pages may be enabled for any post type, and is configurable by post type. Options include quick edit field settings, thumbnail display and more.
52
 
53
  == Frequently Asked Questions ==
54
 
62
  Click the “Default link in the page subnav, or on the Nested Pages screen. This item may be optionally hidden under the Nested Pages settings.
63
 
64
  = How do I save the order I create? =
65
+ Post sorting and nesting is saved in the background after changes are made to the structure. If the "manual page order" option is enabled in the plugin options, you'll need to click the "Sync Order" button at the top of the page to save.
66
 
67
  = How do I edit in bulk? =
68
  Bulk quick edits are not currently supported by Nested Pages. To edit in bulk, click on the "Default" link to use the native interface.
73
  = What are those dots in my page rows? =
74
  If you have WordPress SEO by Yoast installed, your page score indicators are shown along with the pages.
75
 
76
+ = Can I show the thumbnail in the tree view? =
77
+ As of version 1.6, yes. Visit Settings > Nested Pages > Post Types to configure thumbnail settings for each post type. Filters are also available for customizing the images displayed.
78
+
79
 
80
  == Screenshots ==
81
 
82
  1. Expandable tree view of your page structure
83
 
84
+ 2. Enhanced quick edit offers configurable fields and additional options
85
 
86
  3. Sortable page nesting updates in real time
87
 
88
+ 4. Toggle child pages for a clutter-free and nestable tree
89
+
90
+ 5. Quickly add child posts without leaving the page tree
91
+
92
+ 6. Clone existing pages for quick setup
93
 
94
+ 7. Add pages in bulk great for setting up new site structures quickly
95
 
96
+ 8. Enable or disable nesting for any user group with the necessary permissions. Additional options offer more configuration options.
97
 
98
+ 9. The Nested Pages interface can be enabled on a per-post-type basis, with customizable options for each type.
99
 
100
  == Changelog ==
101
 
102
+ = 1.6.0 =
103
+ * Redesign of post type settings page, with additional options added.
104
+ * Thumbnail support added to nested/sort view. Visit Settings > Nested Pages > Post Types to enable post thumbnails and set options.
105
+ * Ability to customize quick edit fields for each post type added. Visit Settings > Nested Pages > Post Types to hide specific fields from the quick edit interface for each post type. Please note: specific fields are still hidden depending. on the current user's roles/capabilities.
106
+ * Bulk delete functionality added.
107
+ * When adding multiple pages, the option to set them as hidden in the nav menu is now available.
108
+ * Option added to manually sync the nav menu and page order.
109
+ * Bug fix where Post menu wasn't being replaced if option checked.
110
+ * Modified date set to not update when reordering post order through the nested view.
111
+ * Issue of duplicate posts item in nav menu resolved.
112
+ * Fix for invalid rel attribute in generated nav menus, resulting in W3C validation error.
113
+ * Filters added for title, edit links, and view links in the nested interface.
114
+ * Bug fix where non-hierarchical post types were allowing nesting.
115
+ * Bug fix where page redirect errors were showing while attempting to delete pages with the Page post type disabled. (Thanks to Evan Washkow)
116
+ * Bug fix where non-ascii characters were not displaying correctly in the quick edit slug field.
117
+ * Bug fix where "Add Child" was not available if menu sync was disabled completely.
118
+ * Tab index set when adding a new child or multiple pages. No mouse necessary for adding in bulk.
119
+ * Various UI enhancements.
120
+ * Swedish translation added (Thanks to Marcus Forsberg).
121
 
122
  = 1.5.4 =
123
  * Spanish translation added (Thanks to Raúl Martínez)
372
 
373
  **Editing the generated menu:** Any manual changes made to the menu outside of the Nested Pages interface will be overwritten after the synchronization runs.
374
 
375
+ **Hiding Pages in the Menu:** To hide a page from the Nested Pages menu, click “Quick Edit” on it’s row, select “Hide in Nav Menu”, and click “update”. If menu sync is disabled, enable it now to sync the setting. Hidden pages are marked “(Hidden)”. If a page with child pages is hidden from the menu, all of it’s child pages will also be hidden.
376
+
377
+ = Filters =
378
+
379
+ * `the_title($title, $post_id, $view)` – Standard title filter. Applied to the title displayed in the nested interface. A third paramater, $view, is passed to check if the current title is being displayed in the nested view.
380
+ * `nestedpages_thumbnail($image, $post)` – Customize the thumbnail for each page/post. Note: Thumbnails must be enabled for the post type.
381
+ * `nestedpages_thumbnail_fallback($image, $post)` - Customize the thumbnail fallback for each page/post (if the post does not have a featured image). Note: Thumbnails must be enabled for the post type.
382
+ * `nestedpages_edit_link($link, $post)` - Customize the "edit" link for each page/post in the nested interface.
383
+ * `nestedpages_edit_link_text($text, $post)` - Customize the "edit" link text for each page/post in the nested interface.
384
+ * `nestedpages_view_link($link, $post)` - Customize the "view" button link for each page/post in the nested interface.
385
+ * `nestedpages_view_link_text($text, $post)` - Customize the "view" button text for each page/post in the nested interface.