From 88c714ac93599be33bf4821b42eb4b011f2a4ae5 Mon Sep 17 00:00:00 2001 From: dgt41 Date: Fri, 14 Nov 2014 01:14:16 +0200 Subject: [PATCH 01/10] js error fix --- media/com_finder/css/sliderfilter.css | 7 +++++-- media/com_finder/js/sliderfilter.js | 7 ++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/media/com_finder/css/sliderfilter.css b/media/com_finder/css/sliderfilter.css index 89a316da62316..a2752ed9fd2ce 100644 --- a/media/com_finder/css/sliderfilter.css +++ b/media/com_finder/css/sliderfilter.css @@ -5,8 +5,7 @@ overflow: auto; } -.checklist, -#branch-selectors { +.checklist { border: 1px solid #ccc; height: 220px; overflow: auto; @@ -15,6 +14,10 @@ margin: 0; } +#branch-selectors { + display:none; +} + #finder-filter-window dl { padding: 0; margin: 0; diff --git a/media/com_finder/js/sliderfilter.js b/media/com_finder/js/sliderfilter.js index 474d317edc2f6..500991db5e4e3 100644 --- a/media/com_finder/js/sliderfilter.js +++ b/media/com_finder/js/sliderfilter.js @@ -1,6 +1,7 @@ FinderFilter = new Class({ - Extends: Fx.Elements, + Implements: [Options, Events], + Extends: Fx, options: { onActive: Class.empty, @@ -20,8 +21,8 @@ FinderFilter = new Class({ this.frame = document.id(frame); this.effects = {}; - if (this.options.opacity) this.effects.opacity = 'fullOpacity'; - if (this.options.width) this.effects.width = this.options.fixedWidth ? 'fullWidth' : 'offsetWidth'; +// if (this.options.opacity) this.effects.opacity = 'fullOpacity'; +// if (this.options.width) this.effects.width = this.options.fixedWidth ? 'fullWidth' : 'offsetWidth'; this.container.setStyle('width', '230px'); this.addEvent('onActive', function (toggler, element) { From e19a05dbf56e94e1ef257f5046272b0b1c432d3c Mon Sep 17 00:00:00 2001 From: dgt41 Date: Sat, 15 Nov 2014 02:05:55 +0200 Subject: [PATCH 02/10] Enhancements --- media/com_finder/css/sliderfilter.css | 3 ++ media/com_finder/js/sliderfilter.js | 44 +++++++++++++-------------- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/media/com_finder/css/sliderfilter.css b/media/com_finder/css/sliderfilter.css index a2752ed9fd2ce..2854f77c42556 100644 --- a/media/com_finder/css/sliderfilter.css +++ b/media/com_finder/css/sliderfilter.css @@ -27,6 +27,9 @@ .checklist { border-left-width: 0; } +dl.checklist { + border: 1px solid #ccc; +} #filter_lists div { float: left; diff --git a/media/com_finder/js/sliderfilter.js b/media/com_finder/js/sliderfilter.js index 500991db5e4e3..4195df0a85955 100644 --- a/media/com_finder/js/sliderfilter.js +++ b/media/com_finder/js/sliderfilter.js @@ -23,22 +23,22 @@ FinderFilter = new Class({ this.effects = {}; // if (this.options.opacity) this.effects.opacity = 'fullOpacity'; // if (this.options.width) this.effects.width = this.options.fixedWidth ? 'fullWidth' : 'offsetWidth'; - this.container.setStyle('width', '230px'); +// this.container.setStyle('width', '230px'); - this.addEvent('onActive', function (toggler, element) { - element.set('styles', { - 'border-top': '1px solid #ccc', - 'border-right': '1px solid #ccc', - 'border-bottom': '1px solid #ccc', - 'overflow': 'auto' - }); - this.container.set('styles', { - width: this.container.getStyle('width').toInt() + element.fullWidth - }); - coord = element.getCoordinates([this.frame]); - scroller = new Fx.Scroll(frame); - scroller.start(coord.top, coord.left); - }); + //this.addEvent('onActive', function (toggler, element) { + // element.set('styles', { + // 'border-top': '1px solid #ccc', + // 'border-right': '1px solid #ccc', + // 'border-bottom': '1px solid #ccc', + // 'overflow': 'auto' + // }); + // this.container.set('styles', { + // width: this.container.getStyle('width').toInt() + element.fullWidth + // }); + // coord = element.getCoordinates([this.frame]); + // scroller = new Fx.Scroll(frame); + // scroller.start(coord.top, coord.left); + //}); this.addEvent('onBackground', function () { el = this.elements[this.active]; el.getElements('input').each(function (n) { @@ -103,13 +103,13 @@ FinderFilter = new Class({ } var idx = this.togglers.indexOf(toggler); toggler.addEvent('click', this.toggle.bind(this, idx)); - if (this.options.width) element.set('styles', { - 'padding-left': 0, - 'border-left': 'none', - 'padding-right': 0, - 'border-right': 'none' - }); - element.fullOpacity = 1; + //if (this.options.width) element.set('styles', { + // 'padding-left': 0, + // 'border-left': 'none', + // 'padding-right': 0, + // 'border-right': 'none' + //}); + //element.fullOpacity = 1; if (this.options.fixedWidth) element.fullWidth = this.options.fixedWidth; if (this.options.fixedHeight) element.fullHeight = this.options.fixedHeight; element.set('styles', {'overflow': 'hidden'}); From 927ce4bf4639a2aab3c5b4f08ee8f925a9e80970 Mon Sep 17 00:00:00 2001 From: dgt41 Date: Sat, 15 Nov 2014 03:50:36 +0200 Subject: [PATCH 03/10] Fully restored functionality --- media/com_finder/css/sliderfilter.css | 10 +---- media/com_finder/js/sliderfilter.js | 54 +++++++++++++++------------ 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/media/com_finder/css/sliderfilter.css b/media/com_finder/css/sliderfilter.css index 2854f77c42556..89a316da62316 100644 --- a/media/com_finder/css/sliderfilter.css +++ b/media/com_finder/css/sliderfilter.css @@ -5,7 +5,8 @@ overflow: auto; } -.checklist { +.checklist, +#branch-selectors { border: 1px solid #ccc; height: 220px; overflow: auto; @@ -14,10 +15,6 @@ margin: 0; } -#branch-selectors { - display:none; -} - #finder-filter-window dl { padding: 0; margin: 0; @@ -27,9 +24,6 @@ .checklist { border-left-width: 0; } -dl.checklist { - border: 1px solid #ccc; -} #filter_lists div { float: left; diff --git a/media/com_finder/js/sliderfilter.js b/media/com_finder/js/sliderfilter.js index 4195df0a85955..dc60f2bad6144 100644 --- a/media/com_finder/js/sliderfilter.js +++ b/media/com_finder/js/sliderfilter.js @@ -21,29 +21,35 @@ FinderFilter = new Class({ this.frame = document.id(frame); this.effects = {}; -// if (this.options.opacity) this.effects.opacity = 'fullOpacity'; -// if (this.options.width) this.effects.width = this.options.fixedWidth ? 'fullWidth' : 'offsetWidth'; -// this.container.setStyle('width', '230px'); + if (this.options.opacity) this.effects.opacity = 'fullOpacity'; + if (this.options.width) this.effects.width = this.options.fixedWidth ? 'fullWidth' : 'offsetWidth'; + this.container.setStyle('width', '230px'); - //this.addEvent('onActive', function (toggler, element) { - // element.set('styles', { - // 'border-top': '1px solid #ccc', - // 'border-right': '1px solid #ccc', - // 'border-bottom': '1px solid #ccc', - // 'overflow': 'auto' - // }); - // this.container.set('styles', { - // width: this.container.getStyle('width').toInt() + element.fullWidth - // }); - // coord = element.getCoordinates([this.frame]); - // scroller = new Fx.Scroll(frame); - // scroller.start(coord.top, coord.left); - //}); + this.addEvent('onActive', function (toggler, element) { + element.set('styles', { + 'border-top': '1px solid #ccc', + 'border-right': '1px solid #ccc', + 'border-bottom': '1px solid #ccc', + 'overflow': 'auto', + 'width': '220px', + 'opacity': 1 + }); + this.container.set('styles', { + width: this.container.getStyle('width').toInt() + element.fullWidth + }); + coord = element.getCoordinates([this.frame]); + scroller = new Fx.Scroll(frame); + scroller.start(coord.top, coord.left); + }); this.addEvent('onBackground', function () { el = this.elements[this.active]; el.getElements('input').each(function (n) { n.removeProperty('checked'); }); + el.set('styles', { + 'width' : '0', + 'opacity': 0 + }); }); this.addEvent('onComplete', function () { el = this.elements[this.active]; @@ -103,13 +109,13 @@ FinderFilter = new Class({ } var idx = this.togglers.indexOf(toggler); toggler.addEvent('click', this.toggle.bind(this, idx)); - //if (this.options.width) element.set('styles', { - // 'padding-left': 0, - // 'border-left': 'none', - // 'padding-right': 0, - // 'border-right': 'none' - //}); - //element.fullOpacity = 1; + if (this.options.width) element.set('styles', { + 'padding-left': 0, + 'border-left': 'none', + 'padding-right': 0, + 'border-right': 'none' + }); + element.fullOpacity = 1; if (this.options.fixedWidth) element.fullWidth = this.options.fixedWidth; if (this.options.fixedHeight) element.fullHeight = this.options.fixedHeight; element.set('styles', {'overflow': 'hidden'}); From 1cb7ca8ab91c19d0e97d8d13192d8f8ad118df82 Mon Sep 17 00:00:00 2001 From: dgt41 Date: Mon, 8 Dec 2014 01:27:10 +0200 Subject: [PATCH 04/10] Changes for boxes --- components/com_finder/helpers/html/filter.php | 2 +- media/com_finder/css/sliderfilter.css | 10 +++++-- media/com_finder/js/sliderfilter.js | 30 ------------------- 3 files changed, 9 insertions(+), 33 deletions(-) diff --git a/components/com_finder/helpers/html/filter.php b/components/com_finder/helpers/html/filter.php index 6d6c70cca337e..13d40367ffd6f 100644 --- a/components/com_finder/helpers/html/filter.php +++ b/components/com_finder/helpers/html/filter.php @@ -114,7 +114,7 @@ public static function slider($options = array()) if ($loadMedia) { JHtml::_('stylesheet', 'com_finder/sliderfilter.css', false, true, false); - JHtml::_('script', 'com_finder/sliderfilter.js', false, true); + JHtml::_('script', 'com_finder/sliderfilter.js', true, true); } // Load plug-in language files. diff --git a/media/com_finder/css/sliderfilter.css b/media/com_finder/css/sliderfilter.css index 89a316da62316..2854f77c42556 100644 --- a/media/com_finder/css/sliderfilter.css +++ b/media/com_finder/css/sliderfilter.css @@ -5,8 +5,7 @@ overflow: auto; } -.checklist, -#branch-selectors { +.checklist { border: 1px solid #ccc; height: 220px; overflow: auto; @@ -15,6 +14,10 @@ margin: 0; } +#branch-selectors { + display:none; +} + #finder-filter-window dl { padding: 0; margin: 0; @@ -24,6 +27,9 @@ .checklist { border-left-width: 0; } +dl.checklist { + border: 1px solid #ccc; +} #filter_lists div { float: left; diff --git a/media/com_finder/js/sliderfilter.js b/media/com_finder/js/sliderfilter.js index dc60f2bad6144..fbb78506ec9f2 100644 --- a/media/com_finder/js/sliderfilter.js +++ b/media/com_finder/js/sliderfilter.js @@ -21,35 +21,12 @@ FinderFilter = new Class({ this.frame = document.id(frame); this.effects = {}; - if (this.options.opacity) this.effects.opacity = 'fullOpacity'; - if (this.options.width) this.effects.width = this.options.fixedWidth ? 'fullWidth' : 'offsetWidth'; - this.container.setStyle('width', '230px'); - this.addEvent('onActive', function (toggler, element) { - element.set('styles', { - 'border-top': '1px solid #ccc', - 'border-right': '1px solid #ccc', - 'border-bottom': '1px solid #ccc', - 'overflow': 'auto', - 'width': '220px', - 'opacity': 1 - }); - this.container.set('styles', { - width: this.container.getStyle('width').toInt() + element.fullWidth - }); - coord = element.getCoordinates([this.frame]); - scroller = new Fx.Scroll(frame); - scroller.start(coord.top, coord.left); - }); this.addEvent('onBackground', function () { el = this.elements[this.active]; el.getElements('input').each(function (n) { n.removeProperty('checked'); }); - el.set('styles', { - 'width' : '0', - 'opacity': 0 - }); }); this.addEvent('onComplete', function () { el = this.elements[this.active]; @@ -109,13 +86,6 @@ FinderFilter = new Class({ } var idx = this.togglers.indexOf(toggler); toggler.addEvent('click', this.toggle.bind(this, idx)); - if (this.options.width) element.set('styles', { - 'padding-left': 0, - 'border-left': 'none', - 'padding-right': 0, - 'border-right': 'none' - }); - element.fullOpacity = 1; if (this.options.fixedWidth) element.fullWidth = this.options.fixedWidth; if (this.options.fixedHeight) element.fullHeight = this.options.fixedHeight; element.set('styles', {'overflow': 'hidden'}); From daf34b4daa4eb77fef36744aaf8c0735fc606d5e Mon Sep 17 00:00:00 2001 From: dgt41 Date: Mon, 8 Dec 2014 13:27:23 +0200 Subject: [PATCH 05/10] Client side validation for title etc... --- .../components/com_finder/models/forms/filter.xml | 11 ++++++----- .../components/com_finder/views/filter/tmpl/edit.php | 10 ++++++++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/administrator/components/com_finder/models/forms/filter.xml b/administrator/components/com_finder/models/forms/filter.xml index 988edc4828db1..b2461ba00e14c 100644 --- a/administrator/components/com_finder/models/forms/filter.xml +++ b/administrator/components/com_finder/models/forms/filter.xml @@ -5,11 +5,12 @@ description ="JGLOBAL_FIELD_ID_DESC" size="10" default="0" readonly="true" /> - + addScriptDeclaration(' + Joomla.submitbutton = function(task) + { + if (task == "filter.cancel" || document.formvalidator.isValid(document.getElementById("adminForm"))) + { + Joomla.submitform(task, document.getElementById("adminForm")); + } + }; +'); ?>
From 711a8324e5bf2881871c978cd5bf1757e97fb4ab Mon Sep 17 00:00:00 2001 From: dgt41 Date: Wed, 10 Dec 2014 01:31:00 +0200 Subject: [PATCH 06/10] remove initial selectors --- media/com_finder/js/sliderfilter.js | 9 --------- 1 file changed, 9 deletions(-) diff --git a/media/com_finder/js/sliderfilter.js b/media/com_finder/js/sliderfilter.js index fbb78506ec9f2..204e28f57a726 100644 --- a/media/com_finder/js/sliderfilter.js +++ b/media/com_finder/js/sliderfilter.js @@ -114,13 +114,4 @@ FinderFilter = new Class({ window.addEvent('domready', function () { Filter = new FinderFilter(document.getElements('input.toggler'), document.getElements('dl.checklist'), document.id('finder-filter-container'), document.id('finder-filter-window')); - document.id('tax-select-all').addEvent('change', function () { - if (document.id('tax-select-all').getProperty('checked')) { - document.id('finder-filter-window').getElements('input').each(function (input) { - if (input.getProperty('id') != 'tax-select-all') { - input.removeProperty('checked'); - } - }); - } - }); }); From 3e4af721af945ad2edf32368aec2262b2b25dc9b Mon Sep 17 00:00:00 2001 From: dgt41 Date: Wed, 10 Dec 2014 18:31:58 +0200 Subject: [PATCH 07/10] Overflow problem --- media/com_finder/js/sliderfilter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/media/com_finder/js/sliderfilter.js b/media/com_finder/js/sliderfilter.js index 204e28f57a726..847b99de903ed 100644 --- a/media/com_finder/js/sliderfilter.js +++ b/media/com_finder/js/sliderfilter.js @@ -88,7 +88,7 @@ FinderFilter = new Class({ toggler.addEvent('click', this.toggle.bind(this, idx)); if (this.options.fixedWidth) element.fullWidth = this.options.fixedWidth; if (this.options.fixedHeight) element.fullHeight = this.options.fixedHeight; - element.set('styles', {'overflow': 'hidden'}); + element.set('styles', {'overflow-y': 'auto', 'overflow-x': 'hidden'}); return this; }, From ad30a8bbaaa5c4f7d30c738fadd2daba6c007bfb Mon Sep 17 00:00:00 2001 From: dgt41 Date: Wed, 10 Dec 2014 18:55:46 +0200 Subject: [PATCH 08/10] changes for overflow --- media/com_finder/css/sliderfilter.css | 3 +++ media/com_finder/js/sliderfilter.js | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/media/com_finder/css/sliderfilter.css b/media/com_finder/css/sliderfilter.css index 2854f77c42556..f60ce65b449b1 100644 --- a/media/com_finder/css/sliderfilter.css +++ b/media/com_finder/css/sliderfilter.css @@ -12,6 +12,9 @@ width: 220px; float: left; margin: 0; + overflow-x: hidden; + -ms-overflow-y: auto; + -ms-overflow-x: hidden; } #branch-selectors { diff --git a/media/com_finder/js/sliderfilter.js b/media/com_finder/js/sliderfilter.js index 847b99de903ed..b0b613bb796be 100644 --- a/media/com_finder/js/sliderfilter.js +++ b/media/com_finder/js/sliderfilter.js @@ -88,7 +88,6 @@ FinderFilter = new Class({ toggler.addEvent('click', this.toggle.bind(this, idx)); if (this.options.fixedWidth) element.fullWidth = this.options.fixedWidth; if (this.options.fixedHeight) element.fullHeight = this.options.fixedHeight; - element.set('styles', {'overflow-y': 'auto', 'overflow-x': 'hidden'}); return this; }, From ceb432b71593a39dd92dab7027bb4280888abf6d Mon Sep 17 00:00:00 2001 From: dgt41 Date: Thu, 11 Dec 2014 12:10:50 +0200 Subject: [PATCH 09/10] Add rtl support --- .../com_finder/views/filter/tmpl/edit.php | 1 + components/com_finder/helpers/html/filter.php | 6 ++++- media/com_finder/css/finder-rtl.css | 26 +++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 media/com_finder/css/finder-rtl.css diff --git a/administrator/components/com_finder/views/filter/tmpl/edit.php b/administrator/components/com_finder/views/filter/tmpl/edit.php index 29f9e8f62f1ea..efe76559f32d5 100644 --- a/administrator/components/com_finder/views/filter/tmpl/edit.php +++ b/administrator/components/com_finder/views/filter/tmpl/edit.php @@ -12,6 +12,7 @@ JHtml::_('behavior.formvalidator'); JHtml::_('behavior.keepalive'); JHtml::_('formbehavior.chosen', 'select'); +JHtml::_('script', 'com_finder/sliderfilter.js', true, true); JFactory::getDocument()->addScriptDeclaration(' Joomla.submitbutton = function(task) diff --git a/components/com_finder/helpers/html/filter.php b/components/com_finder/helpers/html/filter.php index 13d40367ffd6f..ecf71173919ce 100644 --- a/components/com_finder/helpers/html/filter.php +++ b/components/com_finder/helpers/html/filter.php @@ -114,7 +114,11 @@ public static function slider($options = array()) if ($loadMedia) { JHtml::_('stylesheet', 'com_finder/sliderfilter.css', false, true, false); - JHtml::_('script', 'com_finder/sliderfilter.js', true, true); + + if (JFactory::getDocument()->direction == 'rtl') + { + JHtml::_('stylesheet', 'com_finder/finder-rtl.css', false, true, false); + } } // Load plug-in language files. diff --git a/media/com_finder/css/finder-rtl.css b/media/com_finder/css/finder-rtl.css new file mode 100644 index 0000000000000..9937459bd8e4d --- /dev/null +++ b/media/com_finder/css/finder-rtl.css @@ -0,0 +1,26 @@ +.checklist { + float: right; +} + +.checklist { + border-right-width: 0; + } + +#filter_lists div { + float: right; + } + +.checklist dt, +#branch-selectors dt { + padding: 0 2px 2px 0; + text-align: right; + } + +.checklist, +.checklist dd, +#branch-selectors dd, +.checklist div.control-group, +#branch-selectors div.control-group { + padding: 0 2px 0 0; + text-align: right; + } \ No newline at end of file From f7f5b4a4518410b4c918979ebc13eb7faa7282dd Mon Sep 17 00:00:00 2001 From: dgt41 Date: Thu, 11 Dec 2014 12:19:16 +0200 Subject: [PATCH 10/10] oops --- .../components/com_finder/views/filter/tmpl/edit.php | 1 - components/com_finder/helpers/html/filter.php | 6 ++++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/administrator/components/com_finder/views/filter/tmpl/edit.php b/administrator/components/com_finder/views/filter/tmpl/edit.php index efe76559f32d5..29f9e8f62f1ea 100644 --- a/administrator/components/com_finder/views/filter/tmpl/edit.php +++ b/administrator/components/com_finder/views/filter/tmpl/edit.php @@ -12,7 +12,6 @@ JHtml::_('behavior.formvalidator'); JHtml::_('behavior.keepalive'); JHtml::_('formbehavior.chosen', 'select'); -JHtml::_('script', 'com_finder/sliderfilter.js', true, true); JFactory::getDocument()->addScriptDeclaration(' Joomla.submitbutton = function(task) diff --git a/components/com_finder/helpers/html/filter.php b/components/com_finder/helpers/html/filter.php index ecf71173919ce..8c0bb8e1c0b37 100644 --- a/components/com_finder/helpers/html/filter.php +++ b/components/com_finder/helpers/html/filter.php @@ -119,6 +119,7 @@ public static function slider($options = array()) { JHtml::_('stylesheet', 'com_finder/finder-rtl.css', false, true, false); } + JHtml::_('script', 'com_finder/sliderfilter.js', true, true); } // Load plug-in language files. @@ -436,6 +437,11 @@ public static function select($idxQuery, $options) if ($loadMedia) { JHtml::stylesheet('com_finder/sliderfilter.css', false, true, false); + + if (JFactory::getDocument()->direction == 'rtl') + { + JHtml::_('stylesheet', 'com_finder/finder-rtl.css', false, true, false); + } } return $html;