@@ -158,6 +158,9 @@ protected function _renderManualConfigExample() {
158
158
* @access protected
159
159
*/
160
160
protected function _renderAdvancedSettings () {
161
+ // Chart control settings.
162
+ $ this ->_renderChartControlsGroup ();
163
+
161
164
if ( Visualizer_Module_Admin::proFeaturesLocked () ) {
162
165
self ::_renderGroupStart ( esc_html__ ( 'Frontend Actions ' , 'visualizer ' ) );
163
166
} else {
@@ -345,14 +348,15 @@ protected static function _renderColorPickerItem( $title, $name, $value, $defaul
345
348
* @param string $type The type for the input (out of number, email, tel etc., default is text).
346
349
* @param array $custom_attributes The custom attributes.
347
350
*/
348
- protected static function _renderTextItem ( $ title , $ name , $ value , $ desc , $ placeholder = '' , $ type = 'text ' , $ custom_attributes = array () ) {
351
+ protected static function _renderTextItem ( $ title , $ name , $ value , $ desc , $ placeholder = '' , $ type = 'text ' , $ custom_attributes = array (), $ extra_class = array () ) {
349
352
$ attributes = '' ;
350
353
if ( $ custom_attributes ) {
351
354
foreach ( $ custom_attributes as $ k => $ v ) {
352
355
$ attributes .= ' ' . $ k . '=" ' . esc_attr ( $ v ) . '" ' ;
353
356
}
354
357
}
355
- echo '<div class="viz-section-item"> ' ;
358
+ $ extra_class [] = 'viz-section-item ' ;
359
+ echo '<div class=" ' . esc_attr ( implode ( ' ' , $ extra_class ) ) . '"> ' ;
356
360
echo '<a class="more-info" href="javascript:;">[?]</a> ' ;
357
361
echo '<b> ' , $ title , '</b> ' ;
358
362
echo '<input type=" ' , $ type , '" class="control-text" ' , $ attributes , ' name=" ' , $ name , '" value=" ' , esc_attr ( $ value ), '" placeholder=" ' , $ placeholder , '"> ' ;
@@ -567,4 +571,244 @@ protected function _renderChartImageSettings() {
567
571
);
568
572
self ::_renderSectionEnd ();
569
573
}
574
+
575
+ /**
576
+ * Renders chart controls group.
577
+ *
578
+ * @access protected
579
+ */
580
+ protected function _renderChartControlsGroup () {
581
+ if ( 'google ' !== $ this ->getLibrary () ) {
582
+ return ;
583
+ }
584
+ if ( Visualizer_Module_Admin::proFeaturesLocked () ) {
585
+ self ::_renderGroupStart ( esc_html__ ( 'Chart Data Filter Configuration ' , 'visualizer ' ) );
586
+ } else {
587
+ self ::_renderGroupStart ( esc_html__ ( 'Chart Data Filter Configuration ' , 'visualizer ' ) . '<span class="dashicons dashicons-lock"></span> ' , '' , apply_filters ( 'visualizer_pro_upsell_class ' , 'only-pro-feature ' , 'chart-filter-controls ' ), 'vz-data-controls ' );
588
+ echo '<div style="position: relative"> ' ;
589
+ }
590
+ self ::_renderSectionStart ();
591
+ self ::_renderSectionDescription ( '<span class="viz-gvlink"> ' . sprintf ( __ ( 'Configure the data filter controls by providing configuration variables right from the %1$sChart Controls API%2$s. ' , 'visualizer ' ), '<a href="https://developers.google.com/chart/interactive/docs/gallery/controls#controls-gallery" target="_blank"> ' , '</a> ' ) . '</span> ' );
592
+ self ::_renderSectionEnd ();
593
+ $ this ->_renderChartControlsSettings ();
594
+ if ( ! Visualizer_Module_Admin::proFeaturesLocked () ) {
595
+ echo apply_filters ( 'visualizer_pro_upsell ' , '' , 'chart-permissions ' );
596
+ echo '</div> ' ;
597
+ }
598
+ self ::_renderGroupEnd ();
599
+ }
600
+
601
+ /**
602
+ * Renders chart controls setting.
603
+ *
604
+ * @access protected
605
+ */
606
+ protected function _renderChartControlsSettings () {
607
+
608
+ self ::_renderSectionStart ( esc_html__ ( 'Options ' , 'visualizer ' ), false );
609
+ $ control_type = ! empty ( $ this ->controls ['controlType ' ] ) ? $ this ->controls ['controlType ' ] : '' ;
610
+
611
+ self ::_renderSelectItem (
612
+ esc_html__ ( 'Filter Type ' , 'visualizer ' ),
613
+ 'controls[controlType] ' ,
614
+ $ control_type ,
615
+ array (
616
+ '' => '' ,
617
+ 'StringFilter ' => esc_html__ ( 'String Filter ' , 'visualizer ' ),
618
+ 'NumberRangeFilter ' => esc_html__ ( 'Number Range Filter ' , 'visualizer ' ),
619
+ 'CategoryFilter ' => esc_html__ ( 'Category Filter ' , 'visualizer ' ),
620
+ 'ChartRangeFilter ' => esc_html__ ( 'Chart Range Filter ' , 'visualizer ' ),
621
+ 'DateRangeFilter ' => esc_html__ ( 'Date Range Filter ' , 'visualizer ' ),
622
+ ),
623
+ '' ,
624
+ false
625
+ );
626
+
627
+ $ column_index = [ 'false ' => '' ];
628
+ $ column_label = [ 'false ' => '' ];
629
+ if ( ! empty ( $ this ->__series ) ) {
630
+ foreach ( $ this ->__series as $ key => $ column ) {
631
+ $ column_type = isset ( $ column ['type ' ] ) ? $ column ['type ' ] : '' ;
632
+ $ label = isset ( $ column ['label ' ] ) ? $ column ['label ' ] : '' ;
633
+ $ column_label [ $ label ] = $ label ;
634
+ $ column_index [ $ key ] = sprintf ( __ ( '%1$d — Column Type: %2$s ' , 'visualizer ' ), $ key , ucfirst ( $ column_type ) );
635
+ }
636
+ }
637
+
638
+ self ::_renderSelectItem (
639
+ esc_html__ ( 'Filter By Column Index ' , 'visualizer ' ),
640
+ 'controls[filterColumnIndex] ' ,
641
+ ! empty ( $ this ->controls ['filterColumnIndex ' ] ) ? $ this ->controls ['filterColumnIndex ' ] : '' ,
642
+ $ column_index ,
643
+ '' ,
644
+ false
645
+ );
646
+
647
+ self ::_renderSelectItem (
648
+ esc_html__ ( 'Filter By Column Label ' , 'visualizer ' ),
649
+ 'controls[filterColumnLabel] ' ,
650
+ ! empty ( $ this ->controls ['filterColumnLabel ' ] ) ? $ this ->controls ['filterColumnLabel ' ] : '' ,
651
+ $ column_label ,
652
+ '' ,
653
+ false
654
+ );
655
+
656
+ self ::_renderSelectItem (
657
+ esc_html__ ( 'Use Formatted Value ' , 'visualizer ' ),
658
+ 'controls[useFormattedValue] ' ,
659
+ ! empty ( $ this ->controls ['useFormattedValue ' ] ) ? $ this ->controls ['useFormattedValue ' ] : '' ,
660
+ array (
661
+ 'false ' => esc_html__ ( 'False ' , 'visualizer ' ),
662
+ 'true ' => esc_html__ ( 'True ' , 'visualizer ' ),
663
+ ),
664
+ '' ,
665
+ false
666
+ );
667
+
668
+ self ::_renderTextItem (
669
+ esc_html__ ( 'Min Value ' , 'visualizer ' ),
670
+ 'controls[minValue] ' ,
671
+ ! empty ( $ this ->controls ['minValue ' ] ) ? $ this ->controls ['minValue ' ] : '' ,
672
+ esc_html__ ( 'Minimum allowed value for the range lower extent. ' , 'visualizer ' ),
673
+ '' ,
674
+ 'text '
675
+ );
676
+
677
+ self ::_renderTextItem (
678
+ esc_html__ ( 'Max Value ' , 'visualizer ' ),
679
+ 'controls[maxValue] ' ,
680
+ ! empty ( $ this ->controls ['maxValue ' ] ) ? $ this ->controls ['maxValue ' ] : '' ,
681
+ esc_html__ ( 'Maximum allowed value for the range higher extent. ' , 'visualizer ' ),
682
+ '' ,
683
+ 'text '
684
+ );
685
+
686
+ self ::_renderSelectItem (
687
+ esc_html__ ( 'Match Type ' , 'visualizer ' ),
688
+ 'controls[matchType] ' ,
689
+ ! empty ( $ this ->controls ['matchType ' ] ) ? $ this ->controls ['matchType ' ] : '' ,
690
+ array (
691
+ 'prefix ' => esc_html__ ( 'Prefix ' , 'visualizer ' ),
692
+ 'exact ' => esc_html__ ( 'Exact ' , 'visualizer ' ),
693
+ 'any ' => esc_html__ ( 'Any ' , 'visualizer ' ),
694
+ ),
695
+ '' ,
696
+ false
697
+ );
698
+
699
+ self ::_renderSelectItem (
700
+ esc_html__ ( 'Case Sensitive ' , 'visualizer ' ),
701
+ 'controls[caseSensitive] ' ,
702
+ ! empty ( $ this ->controls ['caseSensitive ' ] ) ? $ this ->controls ['caseSensitive ' ] : '' ,
703
+ array (
704
+ 'false ' => esc_html__ ( 'False ' , 'visualizer ' ),
705
+ 'true ' => esc_html__ ( 'True ' , 'visualizer ' ),
706
+ ),
707
+ '' ,
708
+ false
709
+ );
710
+
711
+ self ::_renderSelectItem (
712
+ esc_html__ ( 'Case Sensitive ' , 'visualizer ' ),
713
+ 'controls[caseSensitive] ' ,
714
+ ! empty ( $ this ->controls ['caseSensitive ' ] ) ? $ this ->controls ['caseSensitive ' ] : '' ,
715
+ array (
716
+ 'false ' => esc_html__ ( 'False ' , 'visualizer ' ),
717
+ 'true ' => esc_html__ ( 'True ' , 'visualizer ' ),
718
+ ),
719
+ '' ,
720
+ false
721
+ );
722
+ self ::_renderSectionEnd ();
723
+
724
+ self ::_renderSectionStart ( esc_html__ ( 'UI Options ' , 'visualizer ' ), false );
725
+
726
+ self ::_renderTextItem (
727
+ esc_html__ ( 'Label ' , 'visualizer ' ),
728
+ 'controls[ui][label] ' ,
729
+ ! empty ( $ this ->controls ['ui ' ]['label ' ] ) ? $ this ->controls ['ui ' ]['label ' ] : '' ,
730
+ '' ,
731
+ '' ,
732
+ 'text '
733
+ );
734
+
735
+ self ::_renderTextItem (
736
+ esc_html__ ( 'Label Separator ' , 'visualizer ' ),
737
+ 'controls[ui][labelSeparator] ' ,
738
+ ! empty ( $ this ->controls ['ui ' ]['labelSeparator ' ] ) ? $ this ->controls ['ui ' ]['labelSeparator ' ] : '' ,
739
+ '' ,
740
+ '' ,
741
+ 'text '
742
+ );
743
+
744
+ self ::_renderTextItem (
745
+ esc_html__ ( 'Caption ' , 'visualizer ' ),
746
+ 'controls[ui][caption] ' ,
747
+ ! empty ( $ this ->controls ['ui ' ]['caption ' ] ) ? $ this ->controls ['ui ' ]['caption ' ] : '' ,
748
+ '' ,
749
+ '' ,
750
+ 'text '
751
+ );
752
+
753
+ self ::_renderSelectItem (
754
+ esc_html__ ( 'Label Stacking ' , 'visualizer ' ),
755
+ 'controls[labelStacking] ' ,
756
+ ! empty ( $ this ->controls ['labelStacking ' ] ) ? $ this ->controls ['labelStacking ' ] : '' ,
757
+ array (
758
+ 'horizontal ' => esc_html__ ( 'Horizontal ' , 'visualizer ' ),
759
+ 'vertical ' => esc_html__ ( 'Vertical ' , 'visualizer ' ),
760
+ ),
761
+ '' ,
762
+ false
763
+ );
764
+
765
+ self ::_renderSelectItem (
766
+ esc_html__ ( 'Orientation ' , 'visualizer ' ),
767
+ 'controls[orientation] ' ,
768
+ ! empty ( $ this ->controls ['orientation ' ] ) ? $ this ->controls ['orientation ' ] : '' ,
769
+ array (
770
+ 'horizontal ' => esc_html__ ( 'Horizontal ' , 'visualizer ' ),
771
+ 'vertical ' => esc_html__ ( 'Vertical ' , 'visualizer ' ),
772
+ ),
773
+ '' ,
774
+ false
775
+ );
776
+
777
+ self ::_renderSelectItem (
778
+ esc_html__ ( 'Show Range Values ' , 'visualizer ' ),
779
+ 'controls[showRangeValues] ' ,
780
+ ! empty ( $ this ->controls ['showRangeValues ' ] ) ? $ this ->controls ['showRangeValues ' ] : '' ,
781
+ array (
782
+ 'true ' => esc_html__ ( 'True ' , 'visualizer ' ),
783
+ 'false ' => esc_html__ ( 'False ' , 'visualizer ' ),
784
+ ),
785
+ '' ,
786
+ false
787
+ );
788
+
789
+ self ::_renderSelectItem (
790
+ esc_html__ ( 'Allow Multiple ' , 'visualizer ' ),
791
+ 'controls[allowMultiple] ' ,
792
+ ! empty ( $ this ->controls ['allowMultiple ' ] ) ? $ this ->controls ['allowMultiple ' ] : '' ,
793
+ array (
794
+ 'true ' => esc_html__ ( 'True ' , 'visualizer ' ),
795
+ 'false ' => esc_html__ ( 'False ' , 'visualizer ' ),
796
+ ),
797
+ '' ,
798
+ false
799
+ );
800
+
801
+ self ::_renderSelectItem (
802
+ esc_html__ ( 'Allow Typing ' , 'visualizer ' ),
803
+ 'controls[allowTyping] ' ,
804
+ ! empty ( $ this ->controls ['allowTyping ' ] ) ? $ this ->controls ['allowTyping ' ] : '' ,
805
+ array (
806
+ 'true ' => esc_html__ ( 'True ' , 'visualizer ' ),
807
+ 'false ' => esc_html__ ( 'False ' , 'visualizer ' ),
808
+ ),
809
+ '' ,
810
+ false
811
+ );
812
+ self ::_renderSectionEnd ();
813
+ }
570
814
}
0 commit comments