diff --git a/assets/css/admin.css b/assets/css/admin.css index 28b2e2cc..4156a2ba 100644 --- a/assets/css/admin.css +++ b/assets/css/admin.css @@ -150,6 +150,18 @@ text-align: right; } +.sportspress table.form-table .sp-color-option { + max-width: 225px; +} + +.sportspress table.form-table .sp-color-option table { + outline: 1px solid #ddd; +} + +.sportspress table.form-table .sp-custom-colors { + padding: 5px 15px 15px; +} + .sportspress table.form-table .sp-color-box { border: 1px solid #ccc; box-shadow: 1px 1px 3px rgba(0,0,0,.2); @@ -208,7 +220,8 @@ table.widefat.sp-data-table img { vertical-align: top; } -table.widefat.sp-data-table th.column-outcome { +table.widefat.sp-data-table th.column-outcome, +table.widefat.sp-data-table th.column-position { width: 10em; } @@ -284,7 +297,12 @@ table.widefat.sp-data-table tfoot td { border-top: 1px solid #e1e1e1; } -table.widefat select.sp-outcome { +table.widefat.sp-data-table tfoot tr.sp-total { + background: #f9f9f9; +} + +table.widefat select.sp-outcome, +table.widefat select.sp-position { width: 100%; } diff --git a/assets/js/admin/sportspress-admin.js b/assets/js/admin/sportspress-admin.js index 2f1c6c33..10486e15 100644 --- a/assets/js/admin/sportspress-admin.js +++ b/assets/js/admin/sportspress-admin.js @@ -468,7 +468,16 @@ jQuery(document).ready(function($){ $.post( ajaxurl, { action: "sp-save-primary-result", primary_result: $(this).val(), - nonce: $("#sp-config-nonce").val() + nonce: $("#sp-primary-result-nonce").val() + }); + }); + + // Configure primary performance option (Ajax) + $(".sp-admin-config-table").on("click", ".sp-primary-performance-option", function() { + $.post( ajaxurl, { + action: "sp-save-primary-performance", + primary_performance: $(this).val(), + nonce: $("#sp-primary-performance-nonce").val() }); }); @@ -548,6 +557,14 @@ jQuery(document).ready(function($){ }); $(".sp-date-selector select").trigger("change"); + // Apply color scheme + $(".sp-color-option").on("click", function() { + colors = $(this).find("label").data("sp-colors").split(","); + $(".sp-custom-colors").find(".sp-color-box").each(function(index) { + $(this).find("input").val("#"+colors[index]).css("background-color", "#"+colors[index]); + });; + }); + // Edit inline results $("#the-list").on("click, focus", ".sp-result, .sp-edit-results", function(){ team = $(this).data("team"); diff --git a/includes/admin/class-sp-admin-ajax.php b/includes/admin/class-sp-admin-ajax.php index b873a6cb..62f591e2 100644 --- a/includes/admin/class-sp-admin-ajax.php +++ b/includes/admin/class-sp-admin-ajax.php @@ -19,6 +19,7 @@ class SP_Admin_AJAX { */ public function __construct() { add_action( 'wp_ajax_sp-save-primary-result', array( $this, 'save_primary_result' ), 1 ); + add_action( 'wp_ajax_sp-save-primary-performance', array( $this, 'save_primary_performance' ), 1 ); add_action( 'wp_ajax_sp-save-inline-results', array( $this, 'save_inline_results' ) ); } @@ -36,6 +37,20 @@ class SP_Admin_AJAX { wp_send_json_success(); } + /** + * Auto-save the selected primary performance. + * + * @since 1.7 + */ + function save_primary_performance() { + check_ajax_referer( 'sp-save-primary-performance', 'nonce' ); + + $primary_performance = sanitize_key( $_POST['primary_performance'] ); + + update_option( 'sportspress_primary_performance', $primary_performance ); + wp_send_json_success(); + } + /** * Save event results inline. * diff --git a/includes/admin/settings/class-sp-settings-general.php b/includes/admin/settings/class-sp-settings-general.php index cb7577c6..56d28878 100644 --- a/includes/admin/settings/class-sp-settings-general.php +++ b/includes/admin/settings/class-sp-settings-general.php @@ -282,36 +282,68 @@ class SP_Settings_General extends SP_Settings_Page { * @return void */ public function frontend_styles_setting() { + // Define color schemes each with 5 colors: Primary, Background, Text, Heading, Link + $color_schemes = apply_filters( 'sportspress_color_schemes', array( + 'ThemeBoy' => array( '2b353e', 'f4f4f4', '222222', 'ffffff', '00a69c' ), + 'Gold' => array( '333333', 'f7f7f7', '333333', 'd8bf94', '9f8958' ), + 'Denim' => array( '0e2440', 'eae5e0', '0e2440', 'ffffff', '2b6291' ), + 'Freedom' => array( '0d4785', 'ecedee', '333333', 'ffffff', 'c51d27' ), + 'Metro' => array( '3a7895', '223344', 'ffffff', 'ffffff', 'ffa800' ), + 'Stellar' => array( '313150', '050528', 'ffffff', 'ffffff', 'e00034' ), + 'Carbon' => array( '353535', '191919', 'ededed', 'ffffff', 'f67f17' ), + 'Avocado' => array( '00241e', '013832', 'ffffff', 'ffffff', 'efb11e' ), + ) ); ?> - +
+ $colors ) { ?> +
+ + + + + + + + + +
   
+
+ +
+
+
+
+ color_picker( __( 'Primary', 'sportspress' ), 'sportspress_frontend_css_primary', $colors['primary'] ); + $this->color_picker( __( 'Background', 'sportspress' ), 'sportspress_frontend_css_background', $colors['background'] ); + $this->color_picker( __( 'Text', 'sportspress' ), 'sportspress_frontend_css_text', $colors['text'] ); + $this->color_picker( __( 'Heading', 'sportspress' ), 'sportspress_frontend_css_heading', $colors['heading'] ); + $this->color_picker( __( 'Link', 'sportspress' ), 'sportspress_frontend_css_link', $colors['link'] ); - // Show inputs - $this->color_picker( __( 'Primary', 'sportspress' ), 'sportspress_frontend_css_primary', $colors['primary'] ); - $this->color_picker( __( 'Background', 'sportspress' ), 'sportspress_frontend_css_background', $colors['background'] ); - $this->color_picker( __( 'Text', 'sportspress' ), 'sportspress_frontend_css_text', $colors['text'] ); - $this->color_picker( __( 'Heading', 'sportspress' ), 'sportspress_frontend_css_heading', $colors['heading'] ); - $this->color_picker( __( 'Link', 'sportspress' ), 'sportspress_frontend_css_link', $colors['link'] ); - - if ( ( $styles = SP_Frontend_Scripts::get_styles() ) && ! current_theme_supports( 'sportspress' ) && array_key_exists( 'sportspress-general', $styles ) ): - ?>
- - + if ( ( $styles = SP_Frontend_Scripts::get_styles() ) && array_key_exists( 'sportspress-general', $styles ) ): + ?>
+ + +
+