From 7f97fc9ba0e2350f4710be7c69d299abff84e297 Mon Sep 17 00:00:00 2001 From: Brian Miyaji Date: Sat, 20 Aug 2016 23:08:41 +1000 Subject: [PATCH] Add tab options to layout designer --- assets/css/admin.css | 7 ++ assets/css/sportspress.css | 32 +++++++ assets/js/admin/sportspress-admin.js | 3 +- assets/js/sportspress.js | 8 ++ .../settings/class-sp-settings-events.php | 3 + .../admin/settings/class-sp-settings-page.php | 65 +++++++++++++- .../settings/class-sp-settings-players.php | 3 + .../settings/class-sp-settings-staff.php | 3 + .../settings/class-sp-settings-teams.php | 3 + includes/class-sp-template-loader.php | 87 +++++++++++++++---- 10 files changed, 195 insertions(+), 19 deletions(-) diff --git a/assets/css/admin.css b/assets/css/admin.css index a1bef21c..d1970582 100644 --- a/assets/css/admin.css +++ b/assets/css/admin.css @@ -640,6 +640,13 @@ table.widefat.sp-sortable-table tbody tr .icon { } /* Sortable lists */ +.sp-sortable-list { + margin: 0; + overflow: hidden; + padding-top: 5px; + min-height: 50px; +} + .sp-sortable-list li { float: left; clear: both; diff --git a/assets/css/sportspress.css b/assets/css/sportspress.css index df4528bb..af3009de 100644 --- a/assets/css/sportspress.css +++ b/assets/css/sportspress.css @@ -40,6 +40,37 @@ overflow: hidden; } +/* Tabs */ +.sp-tab-menu { + display: block; + clear: both; + padding: 0 5px; + margin: 0 0 1.5em; + list-style: none; +} +.sp-tab-menu-item { + display: inline-block; + margin: 0; +} +.sp-tab-menu-item a { + display: block; + margin: 0 10px; + color: inherit; + opacity: 0.5; + transition: all .3s; +} +.sp-tab-menu-item a:focus { + outline: none; +} +.sp-tab-menu-item-active a, +.sp-tab-menu-item a:hover { + color: inherit; + opacity: 1; +} +.sp-tab-content { + display: none; +} + /* Data Tables */ .sp-scrollable-table-wrapper { width: 100%; @@ -339,6 +370,7 @@ max-width: none; width: 100%; height: auto; + color: inherit; } .sp-template-event-logos-block .team-logo img { diff --git a/assets/js/admin/sportspress-admin.js b/assets/js/admin/sportspress-admin.js index ddad9827..c04afce6 100644 --- a/assets/js/admin/sportspress-admin.js +++ b/assets/js/admin/sportspress-admin.js @@ -315,7 +315,8 @@ jQuery(document).ready(function($){ // Sortable lists $( ".sp-sortable-list" ).sortable({ handle: ".sp-item-handle", - placeholder: "sp-item-placeholder" + placeholder: "sp-item-placeholder", + connectWith: ".sp-connected-list" }); // Autosave diff --git a/assets/js/sportspress.js b/assets/js/sportspress.js index 777c6c6b..17173a16 100644 --- a/assets/js/sportspress.js +++ b/assets/js/sportspress.js @@ -79,4 +79,12 @@ function sp_viewport() { /* Scrollable Tables */ $(".sp-scrollable-table").wrap("
"); + /* Template tabs */ + $(".sp-tab-menu-item a").click(function() { + $template = $(this).data("sp-tab"); + $(this).closest(".sp-tab-menu-item").addClass("sp-tab-menu-item-active").siblings(".sp-tab-menu-item").removeClass("sp-tab-menu-item-active"); + $(this).closest(".sp-tab-group").find(".sp-tab-content-"+$template).show().siblings(".sp-tab-content").hide(); + return false; + }); + })(jQuery); \ No newline at end of file diff --git a/includes/admin/settings/class-sp-settings-events.php b/includes/admin/settings/class-sp-settings-events.php index 8ce22c3f..8d45459c 100644 --- a/includes/admin/settings/class-sp-settings-events.php +++ b/includes/admin/settings/class-sp-settings-events.php @@ -32,6 +32,7 @@ class SP_Settings_Events extends SP_Settings_Page { add_action( 'sportspress_admin_field_current_mode', array( $this, 'current_mode_setting' ) ); add_action( 'sportspress_admin_field_delimiter', array( $this, 'delimiter_setting' ) ); add_action( 'sportspress_admin_field_event_layout', array( $this, 'layout_setting' ) ); + add_action( 'sportspress_admin_field_event_tabs', array( $this, 'tabs_setting' ) ); add_action( 'sportspress_settings_save_' . $this->id, array( $this, 'save' ) ); } @@ -61,6 +62,8 @@ class SP_Settings_Events extends SP_Settings_Page { apply_filters( 'sportspress_event_template_options', array( array( 'type' => 'event_layout' ), + array( 'type' => 'event_tabs' ), + array( 'title' => __( 'Display', 'sportspress' ), 'desc' => __( 'Date', 'sportspress' ), diff --git a/includes/admin/settings/class-sp-settings-page.php b/includes/admin/settings/class-sp-settings-page.php index 12675a92..be6c8e6c 100644 --- a/includes/admin/settings/class-sp-settings-page.php +++ b/includes/admin/settings/class-sp-settings-page.php @@ -90,6 +90,11 @@ class SP_Settings_Page { } $templates = array_merge( array_flip( $layout ), $templates ); + + $slice = array_search( 'tabs', array_flip( $templates ) ); + if ( $slice ) { + $templates = array_slice( $templates, 0, $slice ); + } ?> @@ -97,8 +102,64 @@ class SP_Settings_Page {

- -