Index: branches/1.0.x/inc/js/list_manager.js =================================================================== diff -u -N -r14890 -r14900 --- branches/1.0.x/inc/js/list_manager.js (.../list_manager.js) (revision 14890) +++ branches/1.0.x/inc/js/list_manager.js (.../list_manager.js) (revision 14900) @@ -7,6 +7,7 @@ ListManager.xhrRequests = []; ListManager.reloadTimer = null; ListManager.reloadTimeout = 1000; +ListManager.firstLoad = true; ListManager.getUrl = function () { var $url = this.url; @@ -64,6 +65,10 @@ } } +ListManager.getParam = function ($name) { + return this.urlParams[$name] !== undefined ? this.urlParams[$name] : false; +} + ListManager.updateAnchor = function () { var $query_string = [], $url_params = sort_object(this.urlParams); @@ -86,17 +91,16 @@ ); this.urlParams = $query_string; + + // sync values from url params into empty filters on first page with anchor load + this.initFilters(); + this.reload(true); } -ListManager.replaceFilter = function ($form_id, $form_html) { - $('#' + $form_id).replaceWith($form_html); -} - -ListManager.registerFilter = function ($form_id) { +ListManager.registerFilter = function ($field) { var $manager = this, - $form = $('#' + $form_id), - $field = $form.attr('filter_field'); + $form = $('#filter-form-' + $field); $manager.filters[$field] = {'type': $form.attr('filter_type')}; @@ -145,6 +149,55 @@ } } +ListManager.initFilters = function () { + if ( !this.firstLoad ) { + return; + } + + for (var $filter_field in this.filters) { + this.initFilter($filter_field); + } + + this.firstLoad = false; +} + +ListManager.initFilter = function ($field) { + var $values = '', + $form = $('#filter-form-' + $field), + $param_name = 'filters[' + $field + ']', + $param_value = this.getParam($param_name); + + if ( $param_value === false || $param_value === '' ) { + return; + } + + switch( this.filters[$field].type ) { + case 'radio': + $('#' + jq($param_name + '_' + $param_value) ).attr('checked', true); + break; + + case 'checkbox': + $values = $param_value.substring(1, $param_value.length - 1).split('|'); + + for (var $i = 0; $i < $values.length; $i++) { + $('#' + jq($param_name + '_' + $values[$i]) ).attr('checked', true); + } + + $('#' + jq($param_name + '_') ).attr('checked', false); + $('#' + jq($param_name) ).val($param_value); + break; + + case 'range': + $values = $param_value.split('-'); + + $('#' + jq($param_name + '_slider') ).slider('option', 'values', $values); + $('#' + jq($param_name) ).val($param_value); + break; + } + + this.syncChecked( $("input[type=checkbox], input[type=radio]", '#filter-form-' + $field) ); +} + ListManager.syncChecked = function ($checkboxes) { $checkboxes.each( function () { Index: branches/1.0.x/inc/styles.css =================================================================== diff -u -N -r14859 -r14900 --- branches/1.0.x/inc/styles.css (.../styles.css) (revision 14859) +++ branches/1.0.x/inc/styles.css (.../styles.css) (revision 14900) @@ -607,17 +607,17 @@ } .manufacturer label { text-decoration: underline; } -#slider-vertical { +.slider-vertical { background: url(@templates_base@/img/bg-vertslider-full.png) no-repeat 0 0; float: left; padding: 5px 0 0; } -#slider-vertical .ui-slider-range { +.slider-vertical .ui-slider-range { background: url(@templates_base@/img/bg-vertslider-a.png) repeat-y 0 0; margin: 0 0 0 7px; } -#slider-vertical .ui-slider-handle { +.slider-vertical .ui-slider-handle { background: url(@templates_base@/img/point-vertslider.png) no-repeat 0 0; height: 9px; margin: 0; Index: branches/1.0.x/elements/content_boxes/products.elm.tpl =================================================================== diff -u -N -r14890 -r14900 --- branches/1.0.x/elements/content_boxes/products.elm.tpl (.../products.elm.tpl) (revision 14890) +++ branches/1.0.x/elements/content_boxes/products.elm.tpl (.../products.elm.tpl) (revision 14900) @@ -26,11 +26,3 @@ No Products - - - - - - \ No newline at end of file Index: branches/1.0.x/elements/filters.elm.tpl =================================================================== diff -u -N -r14894 -r14900 --- branches/1.0.x/elements/filters.elm.tpl (.../filters.elm.tpl) (revision 14894) +++ branches/1.0.x/elements/filters.elm.tpl (.../filters.elm.tpl) (revision 14900) @@ -56,7 +56,7 @@ -
+
@@ -66,17 +66,22 @@ - - - ListManager.replaceFilter('filter-form-', ''); - \ No newline at end of file