diff options
author | Stephen Beaver <sbeaver@netgate.com> | 2015-12-01 09:41:13 -0500 |
---|---|---|
committer | Stephen Beaver <sbeaver@netgate.com> | 2015-12-01 09:41:13 -0500 |
commit | d5d5836c4f94e70f5f4ddf1df8ac8bb6e684202c (patch) | |
tree | 277adefba5c50e67650b180ef96063ff559839b5 /src | |
parent | 3c759cafc710ddef828d3bbf28478a6828505808 (diff) | |
download | pfsense-d5d5836c4f94e70f5f4ddf1df8ac8bb6e684202c.zip pfsense-d5d5836c4f94e70f5f4ddf1df8ac8bb6e684202c.tar.gz |
Experimental changes to Form_Section() to allow the panel to be made collapsable in the same way that dashboard widgets are.
Currently used on diag_logs_filter.php ONLY
Diffstat (limited to 'src')
-rw-r--r-- | src/usr/local/www/classes/Form/Section.class.php | 19 | ||||
-rw-r--r-- | src/usr/local/www/diag_logs_filter.php | 5 | ||||
-rw-r--r-- | src/usr/local/www/index.php | 35 | ||||
-rw-r--r-- | src/usr/local/www/jquery/pfSenseHelpers.js | 34 |
4 files changed, 54 insertions, 39 deletions
diff --git a/src/usr/local/www/classes/Form/Section.class.php b/src/usr/local/www/classes/Form/Section.class.php index bebc11c..d17763e 100644 --- a/src/usr/local/www/classes/Form/Section.class.php +++ b/src/usr/local/www/classes/Form/Section.class.php @@ -37,13 +37,15 @@ class Form_Section extends Form_Element ); protected $_title; protected $_groups = array(); + protected $_collapsable; - public function __construct($title, $id = "") + public function __construct($title, $id = "", $collapsable = false) { if (!empty($id)) { $this->_attributes['id'] = $id; } $this->_title = $title; + $this->_collapsable = $collapsable; } public function add(Form_Group $group) @@ -70,13 +72,24 @@ class Form_Section extends Form_Element $element = parent::__toString(); $title = htmlspecialchars(gettext($this->_title)); $body = implode('', $this->_groups); + $hdricon = ""; + $bodyclass = '<div class="panel-body">'; + + if ($this->_collapsable) { + $hdricon = '<span class="widget-heading-icon">' . + '<a data-toggle="collapse" href="#' . $this->_attributes['id'] . ' .panel-body">' . + '<i class="fa fa-plus-circle"></i>' . + '</a>' . + '</span>'; + $bodyclass = '<div class="panel-body collapse in">'; + } return <<<EOT {$element} <div class="panel-heading"> - <h2 class="panel-title">{$title}</h2> + <h2 class="panel-title">{$title}{$hdricon}</h2> </div> - <div class="panel-body"> + {$bodyclass} {$body} </div> </div> diff --git a/src/usr/local/www/diag_logs_filter.php b/src/usr/local/www/diag_logs_filter.php index a159a3a..4142cf9 100644 --- a/src/usr/local/www/diag_logs_filter.php +++ b/src/usr/local/www/diag_logs_filter.php @@ -207,7 +207,7 @@ if ($filterfieldsarray['interface'] == "All") if (!isset($config['syslog']['rawfilter'])) { // Advanced log filter form $form = new Form(false); - $section = new Form_Section('Advanced Log Filter'); + $section = new Form_Section('Advanced Log Filter', 'adv-filter-panel', true); $group = new Form_Group(''); @@ -299,7 +299,7 @@ if (!isset($config['syslog']['rawfilter'])) { // Advanced log filter form $group->add(new Form_Button( 'filterlogentries_submit', - 'Filter' + 'Apply Filter' )); } else { // Simple log filter form @@ -593,6 +593,7 @@ if (typeof getURL == 'undefined') { events.push(function(){ $('.fa').tooltip(); + }); //]]> </script> diff --git a/src/usr/local/www/index.php b/src/usr/local/www/index.php index 28cc1f4..43846fe 100644 --- a/src/usr/local/www/index.php +++ b/src/usr/local/www/index.php @@ -302,7 +302,7 @@ pfSense_handle_custom_code("/usr/local/pkg/dashboard/pre_dashboard"); <div class="panel-heading"><?=gettext("Available Widgets"); ?> <span class="widget-heading-icon"> <a data-toggle="collapse" href="#widget-available .panel-body" name="widgets-available"> - <i class="fa fa-plus-cirle"></i> + <i class="fa fa-plus-circle"></i> </a> </span> </div> @@ -420,39 +420,6 @@ function updateWidgets(newWidget) } events.push(function() { - // Hide configuration button for panels without configuration - $('.container .panel-heading a.config').each(function (idx, el){ - var config = $(el).parents('.panel').children('.panel-footer'); - if (config.length == 1) - $(el).removeClass('hidden'); - }); - - // Initial state & toggle icons of collapsed panel - $('.container .panel-heading a[data-toggle="collapse"]').each(function (idx, el){ - var body = $(el).parents('.panel').children('.panel-body') - var isOpen = body.hasClass('in'); - - $(el).children('i').toggleClass('fa-plus-circle', !isOpen); - $(el).children('i').toggleClass('fa-minus-circle', isOpen); - - body.on('shown.bs.collapse', function(){ - $(el).children('i').toggleClass('fa-minus-circle', true); - $(el).children('i').toggleClass('fa-plus-circle', false); - - if($(el).closest('a').attr('name') != 'widgets-available') { - updateWidgets(); - } - }); - - body.on('hidden.bs.collapse', function(){ - $(el).children('i').toggleClass('fa-minus-circle', false); - $(el).children('i').toggleClass('fa-plus-circle', true); - - if($(el).closest('a').attr('name') != 'widgets-available') { - updateWidgets(); - } - }); - }); // Make panels destroyable $('.container .panel-heading a[data-toggle="close"]').each(function (idx, el){ diff --git a/src/usr/local/www/jquery/pfSenseHelpers.js b/src/usr/local/www/jquery/pfSenseHelpers.js index 3408008..aac6def 100644 --- a/src/usr/local/www/jquery/pfSenseHelpers.js +++ b/src/usr/local/www/jquery/pfSenseHelpers.js @@ -381,3 +381,37 @@ $('tbody').each(function(){ }); $('tbody:empty').html("<tr><td></td></tr>"); + + // Hide configuration button for panels without configuration + $('.container .panel-heading a.config').each(function (idx, el){ + var config = $(el).parents('.panel').children('.panel-footer'); + if (config.length == 1) + $(el).removeClass('hidden'); + }); + + // Initial state & toggle icons of collapsed panel + $('.container .panel-heading a[data-toggle="collapse"]').each(function (idx, el){ + var body = $(el).parents('.panel').children('.panel-body') + var isOpen = body.hasClass('in'); + + $(el).children('i').toggleClass('fa-plus-circle', !isOpen); + $(el).children('i').toggleClass('fa-minus-circle', isOpen); + + body.on('shown.bs.collapse', function(){ + $(el).children('i').toggleClass('fa-minus-circle', true); + $(el).children('i').toggleClass('fa-plus-circle', false); + + if($(el).closest('a').attr('name') != 'widgets-available') { + updateWidgets(); + } + }); + + body.on('hidden.bs.collapse', function(){ + $(el).children('i').toggleClass('fa-minus-circle', false); + $(el).children('i').toggleClass('fa-plus-circle', true); + + if($(el).closest('a').attr('name') != 'widgets-available') { + updateWidgets(); + } + }); + });
\ No newline at end of file |