summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
authorStephen Beaver <sbeaver@netgate.com>2015-12-01 09:41:13 -0500
committerStephen Beaver <sbeaver@netgate.com>2015-12-01 09:41:13 -0500
commitd5d5836c4f94e70f5f4ddf1df8ac8bb6e684202c (patch)
tree277adefba5c50e67650b180ef96063ff559839b5 /src/usr
parent3c759cafc710ddef828d3bbf28478a6828505808 (diff)
downloadpfsense-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/usr')
-rw-r--r--src/usr/local/www/classes/Form/Section.class.php19
-rw-r--r--src/usr/local/www/diag_logs_filter.php5
-rw-r--r--src/usr/local/www/index.php35
-rw-r--r--src/usr/local/www/jquery/pfSenseHelpers.js34
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
OpenPOWER on IntegriCloud