From 7f92d2c330ccc294cdf1cabb1c943aab61bb8e89 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Mon, 22 Apr 2013 16:30:00 +0200 Subject: [PATCH 01/46] Updated coding style --- ding_facetbrowser.module | 47 +++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/ding_facetbrowser.module b/ding_facetbrowser.module index a19dc0c..9e12786 100644 --- a/ding_facetbrowser.module +++ b/ding_facetbrowser.module @@ -16,6 +16,8 @@ function ding_facetbrowser_block_info() { * Implements hook_menu(). */ function ding_facetbrowser_menu() { + $items = array(); + $items['admin/config/ting/facets'] = array( 'title' => 'Ting facets', 'description' => 'Configure facets.', @@ -92,8 +94,8 @@ function ding_facetbrowser_ctools_plugin_api($module, $api) { function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = FALSE) { global $base_root; - $checkboxes = array(); - $default_values = array(); + $checkboxes = array(); + $default_values = array(); $selected = array(); $not_selected = array(); @@ -185,8 +187,8 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = } $form[$facet->name][$element_name] = array( - '#type' => 'checkboxes', - '#options' => $selected + $not_selected, + '#type' => 'checkboxes', + '#options' => $selected + $not_selected, '#default_value' => $default_values, ); } @@ -195,11 +197,10 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = } // Reset previous set variables - $checkboxes = array(); + $checkboxes = array(); $default_values = array(); - $selected = array(); - $not_selected = array(); - + $selected = array(); + $not_selected = array(); } return $form; @@ -300,24 +301,25 @@ function theme_facetbrowser($search_result = FALSE) { * @return Array */ function ding_facetbrowser_block_view($delta = FALSE) { - $block = array(); - $block_content = FALSE; - $content_in_facet = FALSE; + $block = array(); + $block_content = FALSE; + $content_in_facet = FALSE; $executed_search_module = FALSE; drupal_add_js(drupal_get_path('module', 'ding_facetbrowser') . '/js/jquery.cookie.min.js'); drupal_add_js(drupal_get_path('module', 'ding_facetbrowser') . '/js/facetbrowser.js'); drupal_add_css(drupal_get_path('module', 'ding_facetbrowser') . '/css/facetbrowser.css'); + // TODO: Get the facetbrowser dom id automatic - drupal_add_js( - array('dingFacetBrowser' => array( - 'mainElement' => '.pane-ding-facetbrowser', - 'showCount' => variable_get('ding_facetbrowser_number_of_terms', 5)), - ), 'setting'); + drupal_add_js(array( + 'dingFacetBrowser' => array( + 'mainElement' => '.pane-ding-facetbrowser', + 'showCount' => variable_get('ding_facetbrowser_number_of_terms', 5)), + ), 'setting'); // Invoke ding_facetbrowser() from executed search module - $executed_search = menu_get_item(); + $executed_search = menu_get_item(); if (!empty($executed_search['page_arguments'])) { list($executed_search_module, ) = $executed_search['page_arguments']; } @@ -334,12 +336,13 @@ function ding_facetbrowser_block_view($delta = FALSE) { $block_content = theme('facetbrowser', array($results->facets, (!empty($results->searchkey) ? $results->searchkey : NULL))); } } + switch ($delta) { - case 'facetbrowser': - $block['subject'] = t('Facet browser'); - $block['content'] = $block_content; - break; - } + case 'facetbrowser': + $block['subject'] = t('Facet browser'); + $block['content'] = $block_content; + break; + } } return $block; From 7e072b5969413b5eeee4930f278931c00b6528e0 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Mon, 22 Apr 2013 20:14:48 +0200 Subject: [PATCH 02/46] Added make file --- ding_facetbrowser.make | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 ding_facetbrowser.make diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make new file mode 100644 index 0000000..94fc369 --- /dev/null +++ b/ding_facetbrowser.make @@ -0,0 +1,14 @@ +; This file was auto-generated by drush make + +core = 7.x +api = 2 + +; Projects +projects[ctools][subdir] = "contrib" +projects[ctools][version] = "1.3" + +projects[ting][type] = "module" +projects[ting][download][type] = "git" +projects[ting][download][url] = "git@github.com:ding2tal/ting.git" +projects[ting][download][branch] = "development" + From f173754e6ceef102d8f31e0830de5ab812c3d690 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Mon, 29 Apr 2013 10:29:04 +0200 Subject: [PATCH 03/46] Added ctools patch to fix filter_xss_admin call --- ding_facetbrowser.make | 1 + 1 file changed, 1 insertion(+) diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make index 94fc369..f50ca9f 100644 --- a/ding_facetbrowser.make +++ b/ding_facetbrowser.make @@ -6,6 +6,7 @@ api = 2 ; Projects projects[ctools][subdir] = "contrib" projects[ctools][version] = "1.3" +projects[ctools][patch][0] = "http://drupal.org/files/ctools-n1925018-12.patch" projects[ting][type] = "module" projects[ting][download][type] = "git" From 5f1ff05b9c047c7964cd7f797ad3910b9699a29b Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Mon, 6 May 2013 11:27:27 +0200 Subject: [PATCH 04/46] Changed makefile to point to ding2 on github --- ding_facetbrowser.make | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make index f50ca9f..c069b64 100644 --- a/ding_facetbrowser.make +++ b/ding_facetbrowser.make @@ -10,6 +10,6 @@ projects[ctools][patch][0] = "http://drupal.org/files/ctools-n1925018-12.patch" projects[ting][type] = "module" projects[ting][download][type] = "git" -projects[ting][download][url] = "git@github.com:ding2tal/ting.git" -projects[ting][download][branch] = "development" +projects[ting][download][url] = "git@github.com:ding2/ting.git" +projects[ting][download][branch] = "master" From fd86f31ff9ae30ea999658f5e4c7200f24e8d1a8 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Tue, 4 Jun 2013 12:37:22 +0200 Subject: [PATCH 05/46] Removed comment line from make file --- ding_facetbrowser.make | 2 -- 1 file changed, 2 deletions(-) diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make index c069b64..0017a2b 100644 --- a/ding_facetbrowser.make +++ b/ding_facetbrowser.make @@ -1,5 +1,3 @@ -; This file was auto-generated by drush make - core = 7.x api = 2 From dbe4a9805514042e7108681f8fa9ec4c1848ddd3 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Tue, 4 Jun 2013 13:01:26 +0200 Subject: [PATCH 06/46] Fixed newlines and spaces --- ding_facetbrowser.admin.inc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ding_facetbrowser.admin.inc b/ding_facetbrowser.admin.inc index a005c4e..c0505f2 100644 --- a/ding_facetbrowser.admin.inc +++ b/ding_facetbrowser.admin.inc @@ -14,7 +14,7 @@ function ding_facetbrowser_settings($form_state) { form_load_include($form_state, 'inc', 'ding_facetbrowser', 'ding_facetbrowser.admin'); $form = array(); $facets = variable_get('ding_facetbrowser_facets', array()); - + $form['description'] = array( '#markup' => '

' . t('Configure facets shown in the facetbrowser. Facet names can be found at DBC wiki and is usually named facet.something.') . '

', ); @@ -36,7 +36,7 @@ function ding_facetbrowser_settings($form_state) { '#options' => drupal_map_assoc(range(1, 15)), '#default_value' => $number_of_terms, ); - + $form['ding_facetbrowser_facets'] = array( '#tree' => TRUE, '#weight' => -20, @@ -123,7 +123,6 @@ function ding_facetbrowser_settings($form_state) { ); $i++; - $form['actions'] = array('#type' => 'actions'); $form['actions']['submit'] = array( '#type' => 'submit', @@ -179,6 +178,7 @@ function theme_ding_facetbrowser_settings($variables) { $output = theme('table', array('header' => $header, 'rows' => $rows, 'attributes' => array('id' => 'facets'))); $output .= drupal_render($form['actions']); $output = drupal_render_children($form) . $output; + return $output; } @@ -206,4 +206,4 @@ function ding_facetbrowser_delete_facet_submit($form, &$form_state) { variable_set('ding_facetbrowser_facets', $facets); drupal_set_message(t('@facet deleted.', array('@facet' => $form_state['values']['facet_id']))); $form_state['redirect'] = 'admin/config/ting/facets'; -} \ No newline at end of file +} From 4450daf71b4ad302879b76ee0261f24813697ac4 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Tue, 4 Jun 2013 13:02:08 +0200 Subject: [PATCH 07/46] Updated makefile to point to ding2tal --- ding_facetbrowser.make | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make index 0017a2b..c80f3d7 100644 --- a/ding_facetbrowser.make +++ b/ding_facetbrowser.make @@ -8,6 +8,6 @@ projects[ctools][patch][0] = "http://drupal.org/files/ctools-n1925018-12.patch" projects[ting][type] = "module" projects[ting][download][type] = "git" -projects[ting][download][url] = "git@github.com:ding2/ting.git" +projects[ting][download][url] = "git@github.com:ding2tal/ting.git" projects[ting][download][branch] = "master" From 2392bbdad17d9030c07e3716a342f2f521b17ddf Mon Sep 17 00:00:00 2001 From: Rasmus Frey Date: Wed, 12 Jun 2013 14:49:07 +0200 Subject: [PATCH 08/46] Fix bug with show more link being inserted as span tag when clicking show less link --- js/facetbrowser.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/js/facetbrowser.js b/js/facetbrowser.js index dc9c532..c871af6 100644 --- a/js/facetbrowser.js +++ b/js/facetbrowser.js @@ -69,7 +69,7 @@ // Add expand button, if there are more to show. if (terms_not_checked.length > number_of_terms) { - facetGroup.append('' + Drupal.t('Show more') + ''); + facetGroup.append('' + Drupal.t('Show more') + ''); } // Add some classes to checkbox wrappers. @@ -102,7 +102,7 @@ if (facetGroup.find('.form-type-checkbox.unselected-checkbox:visible').size() >= Drupal.settings.dingFacetBrowser.number_of_terms && facetGroup.find('#expand_less').size() === 0 && count % Drupal.settings.dingFacetBrowser.number_of_terms === 0) { - facetGroup.append('' + Drupal.t('Show less') + ''); + facetGroup.append('' + Drupal.t('Show less') + ''); } }); } @@ -125,7 +125,7 @@ if (clickedKey.id == 'expand_less'){ if (!(facetGroup.find('#expand_more').length)) { - facetGroup.append('' + Drupal.t('Show more') + ''); + facetGroup.append('' + Drupal.t('Show more') + ''); } } From 6543e11e580fd69a52eb0cd2c4f7948baf177b39 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Mon, 24 Jun 2013 15:04:15 +0200 Subject: [PATCH 09/46] Changed makefile to use development branch --- ding_facetbrowser.make | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make index c80f3d7..b04e487 100644 --- a/ding_facetbrowser.make +++ b/ding_facetbrowser.make @@ -9,5 +9,5 @@ projects[ctools][patch][0] = "http://drupal.org/files/ctools-n1925018-12.patch" projects[ting][type] = "module" projects[ting][download][type] = "git" projects[ting][download][url] = "git@github.com:ding2tal/ting.git" -projects[ting][download][branch] = "master" +projects[ting][download][branch] = "development" From 92c387beb9f1420f5ee8662007c01e6112d2c9d1 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Wed, 3 Jul 2013 13:35:15 +0200 Subject: [PATCH 10/46] Updated makefile to point to development branch and ding2tal --- ding_facetbrowser.make | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make index c80f3d7..b04e487 100644 --- a/ding_facetbrowser.make +++ b/ding_facetbrowser.make @@ -9,5 +9,5 @@ projects[ctools][patch][0] = "http://drupal.org/files/ctools-n1925018-12.patch" projects[ting][type] = "module" projects[ting][download][type] = "git" projects[ting][download][url] = "git@github.com:ding2tal/ting.git" -projects[ting][download][branch] = "master" +projects[ting][download][branch] = "development" From 74f0c22d7597e290db595f91a4fc46514912697c Mon Sep 17 00:00:00 2001 From: Alex Semeniuc Date: Tue, 28 May 2013 15:25:23 +0300 Subject: [PATCH 11/46] Case 2844 - Added sorting check. --- ding_facetbrowser.module | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/ding_facetbrowser.module b/ding_facetbrowser.module index 9e12786..345fa59 100644 --- a/ding_facetbrowser.module +++ b/ding_facetbrowser.module @@ -127,22 +127,23 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = ), ); - switch ($configured_facet['sorting']) { - case 'alphabetical': - ksort($facet->terms); - break; - case 'alphabetical_reverse': - krsort($facet->terms); - break; - case 'numeric': - ksort($facet->terms, SORT_NUMERIC); - break; - case 'numeric_reverse': - krsort($facet->terms, SORT_NUMERIC); - break; - default: - - break; + if (!empty($configured_facet['sorting'])) { + switch ($configured_facet['sorting']) { + case 'alphabetical' : + ksort($facet->terms); + break; + case 'alphabetical_reverse' : + krsort($facet->terms); + break; + case 'numeric' : + ksort($facet->terms, SORT_NUMERIC); + break; + case 'numeric_reverse' : + krsort($facet->terms, SORT_NUMERIC); + break; + default : + break; + } } foreach ($facet->terms as $term_name => $term_count) { From 2f5fea22f170b5fcf8519a722e6646b68ad48c2a Mon Sep 17 00:00:00 2001 From: Thomas Johansen Date: Wed, 30 Oct 2013 19:56:01 +0100 Subject: [PATCH 12/46] Changed mainElement to use facetElement, and now JS prepended. --- ding_facetbrowser.module | 2 +- js/facetbrowser.js | 4 ++-- plugins/content_types/ding_facetbrowser/ding_facetbrowser.inc | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ding_facetbrowser.module b/ding_facetbrowser.module index 345fa59..11891c7 100644 --- a/ding_facetbrowser.module +++ b/ding_facetbrowser.module @@ -314,7 +314,7 @@ function ding_facetbrowser_block_view($delta = FALSE) { // TODO: Get the facetbrowser dom id automatic drupal_add_js(array( 'dingFacetBrowser' => array( - 'mainElement' => '.pane-ding-facetbrowser', + 'facetElement' => '.js-facet-browser-toggle', 'showCount' => variable_get('ding_facetbrowser_number_of_terms', 5)), ), 'setting'); diff --git a/js/facetbrowser.js b/js/facetbrowser.js index c871af6..1d06031 100644 --- a/js/facetbrowser.js +++ b/js/facetbrowser.js @@ -5,7 +5,7 @@ attach: function(context, settings) { Drupal.FoldFacetGroup(); - var main_element = $(Drupal.settings.dingFacetBrowser.mainElement); + var main_element = $(Drupal.settings.dingFacetBrowser.facetElement); // Wrap all facet fieldsets marked as hidden in a container so we can hide // em. The link text is show less and will be changed to show more if the @@ -54,7 +54,7 @@ */ Drupal.FoldFacetGroup = function() { - var main_element = $(Drupal.settings.dingFacetBrowser.mainElement); + var main_element = $(Drupal.settings.dingFacetBrowser.facetElement); // Add show more button to each facet group and hide some terms. main_element.find('fieldset.form-wrapper').each(function() { diff --git a/plugins/content_types/ding_facetbrowser/ding_facetbrowser.inc b/plugins/content_types/ding_facetbrowser/ding_facetbrowser.inc index fdc2fd8..319172e 100644 --- a/plugins/content_types/ding_facetbrowser/ding_facetbrowser.inc +++ b/plugins/content_types/ding_facetbrowser/ding_facetbrowser.inc @@ -27,7 +27,7 @@ function ding_facetbrowser_content_type_render($subtype, $conf, $panel_args, $co drupal_add_js(drupal_get_path('module', 'ding_facetbrowser') . '/js/facetbrowser.js'); drupal_add_js(array( 'dingFacetBrowser' => array( - 'mainElement' => '.pane-ding-facetbrowser', + 'facetElement' => '.js-facet-browser-toggle', 'number_of_terms' => variable_get('ding_facetbrowser_number_of_terms', 5), ) ), 'setting'); @@ -51,7 +51,7 @@ function ding_facetbrowser_content_type_render($subtype, $conf, $panel_args, $co } } $block->title = t('Ding Facetbrowser'); - $block->content = $block_content; + $block->content = '
' . $block_content . '
'; return $block; } } From 46d538f48c547bcd3fcc85773427b135e1e58aaf Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Mon, 4 Nov 2013 21:21:15 +0100 Subject: [PATCH 13/46] Updated makefile to point to tag 7.x-1.0-beta2 --- ding_facetbrowser.make | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make index b04e487..94dc3e7 100644 --- a/ding_facetbrowser.make +++ b/ding_facetbrowser.make @@ -9,5 +9,5 @@ projects[ctools][patch][0] = "http://drupal.org/files/ctools-n1925018-12.patch" projects[ting][type] = "module" projects[ting][download][type] = "git" projects[ting][download][url] = "git@github.com:ding2tal/ting.git" -projects[ting][download][branch] = "development" +projects[ting][download][tag] = "7.x-1.0-beta2" From 3a283daf6ea8a34f9e577af8c5c39ea39247ed2e Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Wed, 6 Nov 2013 15:05:13 +0100 Subject: [PATCH 14/46] Added new loading overlay --- css/facetbrowser.css | 16 ---------- ding_facetbrowser.module | 31 +++++++++++-------- js/facetbrowser.js | 6 ++-- .../ding_facetbrowser/ding_facetbrowser.inc | 12 +++---- 4 files changed, 27 insertions(+), 38 deletions(-) delete mode 100644 css/facetbrowser.css diff --git a/css/facetbrowser.css b/css/facetbrowser.css deleted file mode 100644 index b527ad6..0000000 --- a/css/facetbrowser.css +++ /dev/null @@ -1,16 +0,0 @@ -.facetbrowser_overlay { - z-index: 10000; - filter: alpha(opacity=50); /*older IE*/ - filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50); /* IE */ - -moz-opacity: .50; /*older Mozilla*/ - -khtml-opacity: 0.5; /*older Safari*/ - opacity: 0.5; /*supported by current Mozilla, Safari, and Opera*/ - background-color:#999; - position:fixed; top:0px; left:0px; width:100%; height:100%; color:#FFFFFF; text-align:center; vertical-align:middle; -} - -.facetbrowser_overlay .spinner { - z-index:10001; - position:fixed; top:0px; left:0px; width:100%; height:100%; color:#FFFFFF; text-align:center; vertical-align:middle; - background: transparent url(../img/spinner.gif) no-repeat 50% 50%; -} diff --git a/ding_facetbrowser.module b/ding_facetbrowser.module index 11891c7..02690fc 100644 --- a/ding_facetbrowser.module +++ b/ding_facetbrowser.module @@ -104,7 +104,7 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = '#value' => $search, ); - // Building the facets fieldsets + // Building the facets fieldsets. $i = 0; $facet_show_count = variable_get('ding_facetbrowser_showcount'); foreach (variable_get('ding_facetbrowser_facets', array()) as $configured_facet) { @@ -112,7 +112,7 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = if (isset($facets[$configured_facet['name']])) { $facet = $facets[$configured_facet['name']]; - // Decide if the facet is to have the hidden class or not + // Decide if the facet is to have the hidden class or not. $facet_class = ($i >= $facet_show_count) ? 'hidden' : 'visible'; if (count($facet->terms) > 0) { @@ -129,19 +129,23 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = if (!empty($configured_facet['sorting'])) { switch ($configured_facet['sorting']) { - case 'alphabetical' : + case 'alphabetical': ksort($facet->terms); break; - case 'alphabetical_reverse' : + + case 'alphabetical_reverse': krsort($facet->terms); break; - case 'numeric' : + + case 'numeric': ksort($facet->terms, SORT_NUMERIC); break; - case 'numeric_reverse' : + + case 'numeric_reverse': krsort($facet->terms, SORT_NUMERIC); break; - default : + + default: break; } } @@ -194,10 +198,10 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = ); } } - $i++; // Loop is done so time to up that counter + $i++; // Loop is done so time to up that counter. } - // Reset previous set variables + // Reset previous set variables. $checkboxes = array(); $default_values = array(); $selected = array(); @@ -258,9 +262,11 @@ function _parseRequestUri() { } /** - * Parse the selected facets from the $form_state to a readable string for the ting_search + * Parse the selected facets from the $form_state to a readable string for the + * ting_search. * * @param array $form_state + * * @return string */ function _facetString($form_state = NULL) { @@ -270,7 +276,7 @@ function _facetString($form_state = NULL) { if (is_array($data)) { foreach ($data as $key => $value) { if ($key == $value && $value !== 0) { - $facets[] = 'facet.' . $name . ':' . $value; + $facets[] = 'facet.' . $name . ':' . $value; } } } @@ -309,9 +315,8 @@ function ding_facetbrowser_block_view($delta = FALSE) { drupal_add_js(drupal_get_path('module', 'ding_facetbrowser') . '/js/jquery.cookie.min.js'); drupal_add_js(drupal_get_path('module', 'ding_facetbrowser') . '/js/facetbrowser.js'); - drupal_add_css(drupal_get_path('module', 'ding_facetbrowser') . '/css/facetbrowser.css'); - // TODO: Get the facetbrowser dom id automatic + // @todo: Get the facetbrowser dom id automatic. drupal_add_js(array( 'dingFacetBrowser' => array( 'facetElement' => '.js-facet-browser-toggle', diff --git a/js/facetbrowser.js b/js/facetbrowser.js index 1d06031..6831cc0 100644 --- a/js/facetbrowser.js +++ b/js/facetbrowser.js @@ -43,7 +43,7 @@ // Check for click in checkbox, and execute search. main_element.find('.form-type-checkbox input').change(function(e) { - $('body').prepend('
'); + $('body').prepend('

' + Drupal.t('Searching please wait...') + '

'); window.location = $(e.target).parent().find('a').attr('href'); }); } @@ -143,14 +143,14 @@ var checkedFacets = ''; facetGroup.find('.form-type-checkbox.selected-checkbox').each(function() { var element = $(this); - // Uncheck checkboxes (for the visual effect). + // Un-check checkboxes (for the visual effect). element.find('input').click(); // Find the facets to be deselected and generate new URL. var facetMatch = element.find('a').attr('href').match(/&facets\[\]=-facet.*/); checkedFacets += facetMatch[0]; if (checkedFacets) { - $('body').prepend('
'); + $('body').prepend('

' + Drupal.t('Searching please wait...') + '

'); window.location.href += checkedFacets; } }); diff --git a/plugins/content_types/ding_facetbrowser/ding_facetbrowser.inc b/plugins/content_types/ding_facetbrowser/ding_facetbrowser.inc index 319172e..839a594 100644 --- a/plugins/content_types/ding_facetbrowser/ding_facetbrowser.inc +++ b/plugins/content_types/ding_facetbrowser/ding_facetbrowser.inc @@ -22,17 +22,17 @@ function ding_facetbrowser_content_type_render($subtype, $conf, $panel_args, $co $block->module = 'ding_facetbrowser'; $block->delta = 'ding_facetbrowser'; - drupal_add_css(drupal_get_path('module', 'ding_facetbrowser') . '/css/facetbrowser.css'); - drupal_add_js(drupal_get_path('module', 'ding_facetbrowser') . '/js/jquery.cookie.min.js'); - drupal_add_js(drupal_get_path('module', 'ding_facetbrowser') . '/js/facetbrowser.js'); + $path = drupal_get_path('module', 'ding_facetbrowser'); + drupal_add_js($path . '/js/jquery.cookie.min.js'); + drupal_add_js($path . '/js/facetbrowser.js'); drupal_add_js(array( 'dingFacetBrowser' => array( 'facetElement' => '.js-facet-browser-toggle', 'number_of_terms' => variable_get('ding_facetbrowser_number_of_terms', 5), - ) + ), ), 'setting'); - // Invoke ding_facetbrowser() from executed search module + // Invoke ding_facetbrowser() from executed search module. $executed_search = menu_get_item(); if (!empty($executed_search['page_arguments'])) { list($executed_search_module, ) = $executed_search['page_arguments']; @@ -57,7 +57,7 @@ function ding_facetbrowser_content_type_render($subtype, $conf, $panel_args, $co } /** - * Returns an edit form for settings + * Returns an edit form for settings. */ function ding_facetbrowser_ding_facetbrowser_content_type_edit_form($form, &$form_state) { return $form; From a438704ae9629470ecb5e42a1a160b84581e9527 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Tue, 26 Nov 2013 12:45:25 +0100 Subject: [PATCH 15/46] Updated makefile to point to tag 7.x-1.0-beta3 --- ding_facetbrowser.make | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make index 94dc3e7..1da0b00 100644 --- a/ding_facetbrowser.make +++ b/ding_facetbrowser.make @@ -9,5 +9,5 @@ projects[ctools][patch][0] = "http://drupal.org/files/ctools-n1925018-12.patch" projects[ting][type] = "module" projects[ting][download][type] = "git" projects[ting][download][url] = "git@github.com:ding2tal/ting.git" -projects[ting][download][tag] = "7.x-1.0-beta2" +projects[ting][download][tag] = "7.x-1.0-beta3" From 3d96ba250f8acae1f9b4cfd7703a9395c50485b9 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Wed, 27 Nov 2013 13:05:44 +0100 Subject: [PATCH 16/46] Fixed overlay on facet select and clean up code --- ding_facetbrowser.module | 50 +++-- js/ding_facetbrowser.js | 175 ++++++++++++++++++ js/facetbrowser.js | 164 ---------------- .../ding_facetbrowser/ding_facetbrowser.inc | 10 +- 4 files changed, 203 insertions(+), 196 deletions(-) create mode 100644 js/ding_facetbrowser.js delete mode 100644 js/facetbrowser.js diff --git a/ding_facetbrowser.module b/ding_facetbrowser.module index 02690fc..9e4b0e4 100644 --- a/ding_facetbrowser.module +++ b/ding_facetbrowser.module @@ -42,8 +42,6 @@ function ding_facetbrowser_menu() { /** * Implements hook_theme(). - * - * @return array */ function ding_facetbrowser_theme() { return array( @@ -94,7 +92,6 @@ function ding_facetbrowser_ctools_plugin_api($module, $api) { function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = FALSE) { global $base_root; - $checkboxes = array(); $default_values = array(); $selected = array(); $not_selected = array(); @@ -104,7 +101,7 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = '#value' => $search, ); - // Building the facets fieldsets. + // Building the facets field sets. $i = 0; $facet_show_count = variable_get('ding_facetbrowser_showcount'); foreach (variable_get('ding_facetbrowser_facets', array()) as $configured_facet) { @@ -156,20 +153,21 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = $facets_string = $facet->name . ':' . $term_name; $term_name_title = $term_name; // Check if term name is longer than 14 chars, - // if so, short it down to fit facetbrowser + // if so, short it down to fit facet browser. $substr_length = 19 + substr_count(drupal_substr($term_name, 0, 20), 'l') - + drupal_strtolower(substr_count(drupal_substr($term_name, 0, 20), 'i')) + + substr_count(drupal_substr($term_name, 0, 20), 'i') - drupal_strlen((string)$term_count); if (drupal_strlen($term_name) > $substr_length + 3) { $term_name_title = drupal_substr($term_name, 0, $substr_length) . '...'; } - if (_isFacetSet($facet->name, $term_name) === TRUE) { + if (_ding_factbrowser__isFacetSet($facet->name, $term_name) === TRUE) { $default_values[] = $term_name; $facets_string = '-' . $facets_string; - $selected[$term_name] = l($term_name_title . ' (' . $term_count . ')', $base_root . _parseRequestUri(), array( + $uri = $base_root . _ding_factbrowser_parseRequestUri(); + $selected[$term_name] = l($term_name_title . ' (' . $term_count . ')', $uri, array( 'html' => TRUE, 'query' => array( 'facets' => array('' => $facets_string), @@ -180,7 +178,8 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = )); } else { - $not_selected[$term_name] = l($term_name_title . ' (' . $term_count . ')', $base_root . _parseRequestUri(), array( + $uri = $base_root . _ding_factbrowser_parseRequestUri(); + $not_selected[$term_name] = l($term_name_title . ' (' . $term_count . ')', $uri, array( 'html' => TRUE, 'query' => array( 'facets' => array('' => $facets_string), @@ -198,11 +197,11 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = ); } } - $i++; // Loop is done so time to up that counter. + // Loop is done so time to up that counter. + $i++; } // Reset previous set variables. - $checkboxes = array(); $default_values = array(); $selected = array(); $not_selected = array(); @@ -219,7 +218,7 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = * @return Boolean */ -function _isFacetSet($term_cat, $term_name) { +function _ding_factbrowser__isFacetSet($term_cat, $term_name) { $facets = &drupal_static('ding_facetbrowser_facets'); if (!isset($facets)) { $request_uri_parts = explode('?', request_uri()); @@ -239,7 +238,7 @@ function _isFacetSet($term_cat, $term_name) { * * @return String */ -function _parseRequestUri() { +function _ding_factbrowser_parseRequestUri() { $new_query_part = array(); if (stristr(request_uri(), '?')) { $request_uri_parts = explode('?', request_uri()); @@ -269,7 +268,7 @@ function _parseRequestUri() { * * @return string */ -function _facetString($form_state = NULL) { +function _ding_factbrowser_facetString($form_state = NULL) { $facets = array(); if (!empty($form_state['values']) && is_array($form_state['values'])) { foreach ($form_state['values'] as $name => $data) { @@ -286,12 +285,11 @@ function _facetString($form_state = NULL) { } /** - * Facetbrowser theming function. + * Implements theme_facetbrowser(). * - * @param array $all_facets - * @return string + * Default theme function for the facet browser. */ -function theme_facetbrowser($search_result = FALSE) { +function theme_facetbrowser($search_result = array()) { $all_facets = array_shift($search_result); $searchkey = array_shift($search_result); $elements = array(); @@ -304,8 +302,6 @@ function theme_facetbrowser($search_result = FALSE) { /** * Implements hook_block_view(). - * - * @return Array */ function ding_facetbrowser_block_view($delta = FALSE) { $block = array(); @@ -314,17 +310,17 @@ function ding_facetbrowser_block_view($delta = FALSE) { $executed_search_module = FALSE; drupal_add_js(drupal_get_path('module', 'ding_facetbrowser') . '/js/jquery.cookie.min.js'); - drupal_add_js(drupal_get_path('module', 'ding_facetbrowser') . '/js/facetbrowser.js'); + drupal_add_js(drupal_get_path('module', 'ding_facetbrowser') . '/js/ding_facetbrowser.js'); - // @todo: Get the facetbrowser dom id automatic. + // @todo: Get the facet browser dom id automatic. drupal_add_js(array( - 'dingFacetBrowser' => array( - 'facetElement' => '.js-facet-browser-toggle', - 'showCount' => variable_get('ding_facetbrowser_number_of_terms', 5)), + 'ding_facetbrowser' => array( + 'selector' => '.js-facet-browser-toggle', + 'number_of_terms' => variable_get('ding_facetbrowser_number_of_terms', 5)), ), 'setting'); - // Invoke ding_facetbrowser() from executed search module + // Invoke ding_facetbrowser() from executed search module. $executed_search = menu_get_item(); if (!empty($executed_search['page_arguments'])) { list($executed_search_module, ) = $executed_search['page_arguments']; @@ -348,7 +344,7 @@ function ding_facetbrowser_block_view($delta = FALSE) { $block['subject'] = t('Facet browser'); $block['content'] = $block_content; break; - } + } } return $block; diff --git a/js/ding_facetbrowser.js b/js/ding_facetbrowser.js new file mode 100644 index 0000000..8ffd4bc --- /dev/null +++ b/js/ding_facetbrowser.js @@ -0,0 +1,175 @@ + +(function($) { + +Drupal.behaviors.ding_facetbrowser = { + attach: function(context, settings) { + // Fold facet groups as default. + ding_facetbrowser_fold_facet_group(); + + // Select the fact browser HTML element. + var fact_browser = $(Drupal.settings.ding_facetbrowser.selector); + + // Wrap all facet field sets marked as hidden in a container so we can + // hide em. The link text is show less and will be changed to show more + // if the cookie is false. + var show_more = $('' + Drupal.t('Show less filters') + ''); + fact_browser.find('fieldset.hidden').wrapAll('
'); + fact_browser.find('#hidden-facets').after(show_more); + + // Check the cookie. + if ($.cookie("ding_factbrowers_toggle") != 'true') { + fact_browser.find('#hidden-facets').hide(); + show_more.text(Drupal.t('Show more filters')); + show_more.removeClass().addClass("expand-facets expand-facets-hidden"); + } + + show_more.click(function(e) { + e.preventDefault(); + + // Toggle facts groups and update link/button text. + fact_browser.find('#hidden-facets').toggle('fast', function () { + var visible = $(this).is(':visible'); + show_more.text( + visible ? Drupal.t('Show less filters') : Drupal.t('Show more filters') + ); + show_more.removeClass().addClass( + visible ? "expand-facets expand-facets-visible" : "expand-facets expand-facets-hidden" + ); + + // Set cookie, so to remember if they where shown. + $.cookie("ding_factbrowers_toggle", visible); + }); + + return false; + }); + + // Check for click in checkbox, and execute search. + fact_browser.find('.form-type-checkbox input').change(function(e) { + ding_facetbrowser_show_overlay(); + window.location = $(e.target).parent().find('a').attr('href'); + }); + + // Check factet links for click events. + fact_browser.find('.form-type-checkbox a').click(function(e) { + ding_facetbrowser_show_overlay(); + }); + } +}; + +/** + * Fold facet groups to show only x unselected checkboxes per group. + */ +function ding_facetbrowser_fold_facet_group() { + // Select the fact browser HTML element. + var fact_browser = $(Drupal.settings.ding_facetbrowser.selector); + + // Add show more button to each facet group and hide some terms. + fact_browser.find('fieldset.form-wrapper').each(function() { + var facetGroup = $(this); + + // Limit the number of visible terms in the group. + var number_of_terms = Drupal.settings.ding_facetbrowser.number_of_terms; + var terms_not_checked = facetGroup.find('.form-type-checkbox input:not(:checked)'); + if (terms_not_checked.size() > number_of_terms) { + terms_not_checked.slice(number_of_terms).parent().hide(); + } + + // Add expand button, if there are more to show. + if (terms_not_checked.length > number_of_terms) { + facetGroup.append('' + Drupal.t('Show more') + ''); + } + + // Add some classes to checkbox wrappers. + facetGroup.find('.form-type-checkbox input:checked').parent().addClass('selected-checkbox'); + facetGroup.find('.form-type-checkbox input:not(:checked)').parent().addClass('unselected-checkbox'); + + // Add some div wrappers around selected and unselected checkboxes. + facetGroup.find('.selected-checkbox').wrapAll('
'); + facetGroup.find('.unselected-checkbox').wrapAll('
'); + + // Add a unselect all link. + if (facetGroup.find('.selected-checkbox-group').length) { + facetGroup.find('.selected-checkbox-group').append('' + Drupal.t('Remove all selected') + ''); + } + + }); + + /** + * Bind click function to show more and show less links. + */ + fact_browser.find('.expand').live('click', function(e) { + e.preventDefault(); + + var clickedKey = this; + var facetGroup = $(clickedKey).parent(); + + facetGroup.find('.form-type-checkbox.unselected-checkbox:' + (clickedKey.id == 'expand_more' ? 'hidden': 'visible')).each(function(count, facetElement) { + if (clickedKey.id == 'expand_more' && count < Drupal.settings.ding_facetbrowser.number_of_terms) { + $(facetElement).slideDown('fast', function() { + if (facetGroup.find('.form-type-checkbox.unselected-checkbox:visible').size() >= Drupal.settings.dingFacetBrowser.number_of_terms && + facetGroup.find('#expand_less').size() === 0 && + count % Drupal.settings.dingFacetBrowser.number_of_terms === 0) { + facetGroup.append('' + Drupal.t('Show less') + ''); + } + }); + } + else if (clickedKey.id == 'expand_less' && count >= Drupal.settings.ding_facetbrowser.number_of_terms) { + $(facetElement).slideUp('fast', function() { + if (facetGroup.find('.form-type-checkbox.unselected-checkbox:visible').size() == Drupal.settings.ding_facetbrowser.number_of_terms && + facetGroup.find('#expand_less:visible')) { + facetGroup.find('#expand_less').fadeOut().remove(); + } + }); + } + }); + + // Need to make sure we have the correct amount of unselected checkboxes to check against when wanting to remove the show more link. + var unselectedSize = facetGroup.attr('count')-facetGroup.find('.form-type-checkbox.selected-checkbox').size(); + + if ((facetGroup.find('.form-type-checkbox.unselected-checkbox:visible').size() >= unselectedSize) && (clickedKey.id == 'expand_more')) { + facetGroup.find('#expand_more').remove(); + } + + if (clickedKey.id == 'expand_less'){ + if (!(facetGroup.find('#expand_more').length)) { + facetGroup.append('' + Drupal.t('Show more') + ''); + } + } + + return false; + }); + + /** + * Bind click function to the un-select all selected checkboxes link. + */ + fact_browser.find('.unselect').live('click', function(e) { + e.preventDefault(); + + var clickedKey = this; + var facetGroup = $(clickedKey).parent(); + var checkedFacets = ''; + facetGroup.find('.form-type-checkbox.selected-checkbox').each(function() { + var element = $(this); + // Un-check checkboxes (for the visual effect). + element.find('input').click(); + + // Find the facets to be deselected and generate new URL. + var facetMatch = element.find('a').attr('href').match(/&facets\[\]=-facet.*/); + checkedFacets += facetMatch[0]; + if (checkedFacets) { + ding_facetbrowser_show_overlay(); + window.location.href += checkedFacets; + } + }); + + return false; + }); +}; + +function ding_facetbrowser_show_overlay() { + $('body').prepend('

' + Drupal.t('Searching please wait...') + '

'); +} + +})(jQuery); + + diff --git a/js/facetbrowser.js b/js/facetbrowser.js deleted file mode 100644 index 6831cc0..0000000 --- a/js/facetbrowser.js +++ /dev/null @@ -1,164 +0,0 @@ - -(function($) { - - Drupal.behaviors.facetbrowser = { - attach: function(context, settings) { - Drupal.FoldFacetGroup(); - - var main_element = $(Drupal.settings.dingFacetBrowser.facetElement); - - // Wrap all facet fieldsets marked as hidden in a container so we can hide - // em. The link text is show less and will be changed to show more if the - // cookie is false. - var show_more = $('' + Drupal.t('Show less filters') + ''); - main_element.find('fieldset.hidden').wrapAll('
'); - main_element.find('#hidden-facets').after(show_more); - - // Check the cookie. - if ($.cookie("ding_factbrowers_toggle") != 'true') { - main_element.find('#hidden-facets').hide(); - show_more.text(Drupal.t('Show more filters')); - show_more.removeClass().addClass("expand-facets expand-facets-hidden"); - } - - show_more.click(function(e) { - e.preventDefault(); - - // Toggle facts groups and update link/button text. - main_element.find('#hidden-facets').toggle('fast', function () { - var visible = $(this).is(':visible'); - show_more.text( - visible ? Drupal.t('Show less filters') : Drupal.t('Show more filters') - ); - show_more.removeClass().addClass( - visible ? "expand-facets expand-facets-visible" : "expand-facets expand-facets-hidden" - ); - - // Set cookie, so to remember if they where shown. - $.cookie("ding_factbrowers_toggle", visible); - }); - - return false; - }); - - // Check for click in checkbox, and execute search. - main_element.find('.form-type-checkbox input').change(function(e) { - $('body').prepend('

' + Drupal.t('Searching please wait...') + '

'); - window.location = $(e.target).parent().find('a').attr('href'); - }); - } - }; - - /** - * Fold facet groups to show only x unselected checkboxes per group. - */ - Drupal.FoldFacetGroup = function() { - - var main_element = $(Drupal.settings.dingFacetBrowser.facetElement); - - // Add show more button to each facet group and hide some terms. - main_element.find('fieldset.form-wrapper').each(function() { - var facetGroup = $(this); - - // Limit the number of visible terms in the group. - var number_of_terms = Drupal.settings.dingFacetBrowser.number_of_terms; - var terms_not_checked = facetGroup.find('.form-type-checkbox input:not(:checked)'); - if (terms_not_checked.size() > number_of_terms) { - terms_not_checked.slice(number_of_terms).parent().hide(); - } - - // Add expand button, if there are more to show. - if (terms_not_checked.length > number_of_terms) { - facetGroup.append('' + Drupal.t('Show more') + ''); - } - - // Add some classes to checkbox wrappers. - facetGroup.find('.form-type-checkbox input:checked').parent().addClass('selected-checkbox'); - facetGroup.find('.form-type-checkbox input:not(:checked)').parent().addClass('unselected-checkbox'); - - // Add some div wrappers around selected and unselected checkboxes. - facetGroup.find('.selected-checkbox').wrapAll('
'); - facetGroup.find('.unselected-checkbox').wrapAll('
'); - - // Add a unselect all link. - if (facetGroup.find('.selected-checkbox-group').length) { - facetGroup.find('.selected-checkbox-group').append('' + Drupal.t('Remove all selected') + ''); - } - - }); - - /** - * Bind click function to show more and show less links. - */ - main_element.find('.expand').live('click', function(e) { - e.preventDefault(); - - var clickedKey = this; - var facetGroup = $(clickedKey).parent(); - - facetGroup.find('.form-type-checkbox.unselected-checkbox:' + (clickedKey.id == 'expand_more' ? 'hidden': 'visible')).each(function(count, facetElement) { - if (clickedKey.id == 'expand_more' && count < Drupal.settings.dingFacetBrowser.number_of_terms) { - $(facetElement).slideDown('fast', function() { - if (facetGroup.find('.form-type-checkbox.unselected-checkbox:visible').size() >= Drupal.settings.dingFacetBrowser.number_of_terms && - facetGroup.find('#expand_less').size() === 0 && - count % Drupal.settings.dingFacetBrowser.number_of_terms === 0) { - facetGroup.append('' + Drupal.t('Show less') + ''); - } - }); - } - else if (clickedKey.id == 'expand_less' && count >= Drupal.settings.dingFacetBrowser.number_of_terms) { - $(facetElement).slideUp('fast', function() { - if (facetGroup.find('.form-type-checkbox.unselected-checkbox:visible').size() == Drupal.settings.dingFacetBrowser.number_of_terms && - facetGroup.find('#expand_less:visible')) { - facetGroup.find('#expand_less').fadeOut().remove(); - } - }); - } - }); - - // Need to make sure we have the correct amount of unselected checkboxes to check against when wanting to remove the show more link. - var unselectedSize = facetGroup.attr('count')-facetGroup.find('.form-type-checkbox.selected-checkbox').size(); - - if ((facetGroup.find('.form-type-checkbox.unselected-checkbox:visible').size() >= unselectedSize) && (clickedKey.id == 'expand_more')) { - facetGroup.find('#expand_more').remove(); - } - - if (clickedKey.id == 'expand_less'){ - if (!(facetGroup.find('#expand_more').length)) { - facetGroup.append('' + Drupal.t('Show more') + ''); - } - } - - return false; - }); - - /** - * Bind click function to the unselect all selected checkboxes link. - */ - main_element.find('.unselect').live('click', function(e) { - e.preventDefault(); - - var clickedKey = this; - var facetGroup = $(clickedKey).parent(); - var checkedFacets = ''; - facetGroup.find('.form-type-checkbox.selected-checkbox').each(function() { - var element = $(this); - // Un-check checkboxes (for the visual effect). - element.find('input').click(); - - // Find the facets to be deselected and generate new URL. - var facetMatch = element.find('a').attr('href').match(/&facets\[\]=-facet.*/); - checkedFacets += facetMatch[0]; - if (checkedFacets) { - $('body').prepend('

' + Drupal.t('Searching please wait...') + '

'); - window.location.href += checkedFacets; - } - }); - - return false; - }); - }; - -})(jQuery); - - diff --git a/plugins/content_types/ding_facetbrowser/ding_facetbrowser.inc b/plugins/content_types/ding_facetbrowser/ding_facetbrowser.inc index 839a594..45ad9cd 100644 --- a/plugins/content_types/ding_facetbrowser/ding_facetbrowser.inc +++ b/plugins/content_types/ding_facetbrowser/ding_facetbrowser.inc @@ -7,11 +7,11 @@ $plugin = array( 'content_types' => array('ding_facetbrowser'), 'render callback' => 'ding_facetbrowser_content_type_render', 'category' => t('Ting'), - 'render last' => TRUE, # Force the facetbrowser to be generated after the ting_search + 'render last' => TRUE, ); /** - * Callback function for the ctools content_type + * Callback function for the ctools content_type. */ function ding_facetbrowser_content_type_render($subtype, $conf, $panel_args, $context) { $block_content = FALSE; @@ -24,10 +24,10 @@ function ding_facetbrowser_content_type_render($subtype, $conf, $panel_args, $co $path = drupal_get_path('module', 'ding_facetbrowser'); drupal_add_js($path . '/js/jquery.cookie.min.js'); - drupal_add_js($path . '/js/facetbrowser.js'); + drupal_add_js($path . '/js/ding_facetbrowser.js'); drupal_add_js(array( - 'dingFacetBrowser' => array( - 'facetElement' => '.js-facet-browser-toggle', + 'ding_facetbrowser' => array( + 'selector' => '.js-facet-browser-toggle', 'number_of_terms' => variable_get('ding_facetbrowser_number_of_terms', 5), ), ), 'setting'); From ee4bd864abe126d69708f07635be52f699201283 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Tue, 10 Dec 2013 18:31:23 +0100 Subject: [PATCH 17/46] Changed the javascript to use the search overlay defined in ting_search --- ding_facetbrowser.info | 2 +- js/ding_facetbrowser.js | 10 +++------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/ding_facetbrowser.info b/ding_facetbrowser.info index 282c86a..52897cc 100644 --- a/ding_facetbrowser.info +++ b/ding_facetbrowser.info @@ -5,4 +5,4 @@ core = 7.x package = Ding! files[] = ding_facetbrowser.module files[] = ding_facetbrowser.test - +dependencies[] = ting_search diff --git a/js/ding_facetbrowser.js b/js/ding_facetbrowser.js index 8ffd4bc..a45884b 100644 --- a/js/ding_facetbrowser.js +++ b/js/ding_facetbrowser.js @@ -45,13 +45,13 @@ Drupal.behaviors.ding_facetbrowser = { // Check for click in checkbox, and execute search. fact_browser.find('.form-type-checkbox input').change(function(e) { - ding_facetbrowser_show_overlay(); + Drupal.TingSearchOverlay(); window.location = $(e.target).parent().find('a').attr('href'); }); // Check factet links for click events. fact_browser.find('.form-type-checkbox a').click(function(e) { - ding_facetbrowser_show_overlay(); + Drupal.TingSearchOverlay(); }); } }; @@ -157,7 +157,7 @@ function ding_facetbrowser_fold_facet_group() { var facetMatch = element.find('a').attr('href').match(/&facets\[\]=-facet.*/); checkedFacets += facetMatch[0]; if (checkedFacets) { - ding_facetbrowser_show_overlay(); + Drupal.TingSearchOverlay(); window.location.href += checkedFacets; } }); @@ -166,10 +166,6 @@ function ding_facetbrowser_fold_facet_group() { }); }; -function ding_facetbrowser_show_overlay() { - $('body').prepend('

' + Drupal.t('Searching please wait...') + '

'); -} - })(jQuery); From e2f58cbc4a16ae273ae806ec52f3806a9f38d323 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Thu, 12 Dec 2013 13:12:46 +0100 Subject: [PATCH 18/46] Updated makefile to point to tag 7.x-1.0-beta4 --- ding_facetbrowser.make | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make index 1da0b00..401043a 100644 --- a/ding_facetbrowser.make +++ b/ding_facetbrowser.make @@ -9,5 +9,5 @@ projects[ctools][patch][0] = "http://drupal.org/files/ctools-n1925018-12.patch" projects[ting][type] = "module" projects[ting][download][type] = "git" projects[ting][download][url] = "git@github.com:ding2tal/ting.git" -projects[ting][download][tag] = "7.x-1.0-beta3" +projects[ting][download][tag] = "7.x-1.0-beta4" From 5f8c33047d7896b686928d7dde67e067ffbc9b25 Mon Sep 17 00:00:00 2001 From: Thomas Johansen Date: Tue, 17 Dec 2013 15:10:12 +0100 Subject: [PATCH 19/46] Fixed number_of_terms issue to show less facets --- js/ding_facetbrowser.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/js/ding_facetbrowser.js b/js/ding_facetbrowser.js index a45884b..427b433 100644 --- a/js/ding_facetbrowser.js +++ b/js/ding_facetbrowser.js @@ -106,9 +106,10 @@ function ding_facetbrowser_fold_facet_group() { facetGroup.find('.form-type-checkbox.unselected-checkbox:' + (clickedKey.id == 'expand_more' ? 'hidden': 'visible')).each(function(count, facetElement) { if (clickedKey.id == 'expand_more' && count < Drupal.settings.ding_facetbrowser.number_of_terms) { $(facetElement).slideDown('fast', function() { - if (facetGroup.find('.form-type-checkbox.unselected-checkbox:visible').size() >= Drupal.settings.dingFacetBrowser.number_of_terms && + console.log(Drupal.settings.ding_facetbrowser.number_of_terms); + if (facetGroup.find('.form-type-checkbox.unselected-checkbox:visible').size() >= Drupal.settings.ding_facetbrowser.number_of_terms && facetGroup.find('#expand_less').size() === 0 && - count % Drupal.settings.dingFacetBrowser.number_of_terms === 0) { + count % Drupal.settings.ding_facetbrowser.number_of_terms === 0) { facetGroup.append('' + Drupal.t('Show less') + ''); } }); From aeb4a9dec4d557afac94bb90e301021d8e4f1c75 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Wed, 18 Dec 2013 05:02:44 +0100 Subject: [PATCH 20/46] Updated makefile to point to tag 7.x-1.0-beta5 --- ding_facetbrowser.make | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make index 401043a..15774ab 100644 --- a/ding_facetbrowser.make +++ b/ding_facetbrowser.make @@ -9,5 +9,5 @@ projects[ctools][patch][0] = "http://drupal.org/files/ctools-n1925018-12.patch" projects[ting][type] = "module" projects[ting][download][type] = "git" projects[ting][download][url] = "git@github.com:ding2tal/ting.git" -projects[ting][download][tag] = "7.x-1.0-beta4" +projects[ting][download][tag] = "7.x-1.0-beta5" From 745f476a1f3cb59afc38b377c79005bc2e4a5b21 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Wed, 18 Dec 2013 13:20:41 +0100 Subject: [PATCH 21/46] Removed debug statement from JS --- js/ding_facetbrowser.js | 1 - 1 file changed, 1 deletion(-) diff --git a/js/ding_facetbrowser.js b/js/ding_facetbrowser.js index 427b433..ff6132a 100644 --- a/js/ding_facetbrowser.js +++ b/js/ding_facetbrowser.js @@ -106,7 +106,6 @@ function ding_facetbrowser_fold_facet_group() { facetGroup.find('.form-type-checkbox.unselected-checkbox:' + (clickedKey.id == 'expand_more' ? 'hidden': 'visible')).each(function(count, facetElement) { if (clickedKey.id == 'expand_more' && count < Drupal.settings.ding_facetbrowser.number_of_terms) { $(facetElement).slideDown('fast', function() { - console.log(Drupal.settings.ding_facetbrowser.number_of_terms); if (facetGroup.find('.form-type-checkbox.unselected-checkbox:visible').size() >= Drupal.settings.ding_facetbrowser.number_of_terms && facetGroup.find('#expand_less').size() === 0 && count % Drupal.settings.ding_facetbrowser.number_of_terms === 0) { From fe792a415a1de0098d5b48dbd541acaad842a12b Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Thu, 19 Dec 2013 15:48:02 +0100 Subject: [PATCH 22/46] Fixed facet browser show/hide groups --- ding_facetbrowser.module | 10 +++-- js/ding_facetbrowser.js | 94 +++++++++++++++++++++++++--------------- 2 files changed, 65 insertions(+), 39 deletions(-) diff --git a/ding_facetbrowser.module b/ding_facetbrowser.module index 9e4b0e4..50b6a9f 100644 --- a/ding_facetbrowser.module +++ b/ding_facetbrowser.module @@ -110,7 +110,7 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = $facet = $facets[$configured_facet['name']]; // Decide if the facet is to have the hidden class or not. - $facet_class = ($i >= $facet_show_count) ? 'hidden' : 'visible'; + $facet_class = ($i >= $facet_show_count) ? 'js-hidden' : 'js-visible'; if (count($facet->terms) > 0) { $form[$facet->name] = array( @@ -118,9 +118,13 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = '#title' => check_plain($configured_facet['title']), '#attributes' => array( 'id' => str_replace('.', '-', $facet->name), - 'data' => array($facet->name), + 'data' => array( + $facet->name, + ), 'count' => count($facet->terms), - 'class' => array($facet_class), + 'class' => array( + $facet_class, + ), ), ); diff --git a/js/ding_facetbrowser.js b/js/ding_facetbrowser.js index ff6132a..21155ef 100644 --- a/js/ding_facetbrowser.js +++ b/js/ding_facetbrowser.js @@ -1,4 +1,7 @@ - +/** + * @file + * Implementation of the facet browser front-end to make the facet collapsible. + */ (function($) { Drupal.behaviors.ding_facetbrowser = { @@ -6,51 +9,70 @@ Drupal.behaviors.ding_facetbrowser = { // Fold facet groups as default. ding_facetbrowser_fold_facet_group(); - // Select the fact browser HTML element. - var fact_browser = $(Drupal.settings.ding_facetbrowser.selector); - - // Wrap all facet field sets marked as hidden in a container so we can - // hide em. The link text is show less and will be changed to show more - // if the cookie is false. - var show_more = $('' + Drupal.t('Show less filters') + ''); - fact_browser.find('fieldset.hidden').wrapAll('
'); - fact_browser.find('#hidden-facets').after(show_more); - - // Check the cookie. - if ($.cookie("ding_factbrowers_toggle") != 'true') { - fact_browser.find('#hidden-facets').hide(); - show_more.text(Drupal.t('Show more filters')); - show_more.removeClass().addClass("expand-facets expand-facets-hidden"); - } + // Select the fact browser(s) HTML element. + var fact_browsers = $(Drupal.settings.ding_facetbrowser.selector); + + // Hide extra facet groups (groups that have js-hidden class). + fact_browsers.each(function(index, facet_browser) { + // Create show more link. + var show_more_groups = $('', { + href: '#', + text: Drupal.t('Show more filters'), + class: 'expand expand-more' + }); + + // Create facet group wrapper. + var wrapper = $('
', { + class: 'hidden-facets-group' + }); + + // Add the wrapper and link to the browser. + var browser = $(facet_browser); + browser.find('.js-hidden').wrapAll(wrapper); + wrapper = browser.find('.hidden-facets-group'); + wrapper.after(show_more_groups); + + // Add event handler to show more links. + show_more_groups.click(function(e) { + e.preventDefault(); + + // Get the link clicked. + var self = $(this); + + // Toggle facts groups and update link/button text. + wrapper.toggle('fast', function () { + var cookie = 0; + if (self.hasClass('expand-more')) { + show_more_groups.text(Drupal.t('Show less filters')); + show_more_groups.removeClass('expand-more').addClass('expand-less'); + cookie = 1; + } + else { + show_more_groups.text(Drupal.t('Show more filters')); + show_more_groups.removeClass('expand-less').addClass('expand-more'); + } - show_more.click(function(e) { - e.preventDefault(); - - // Toggle facts groups and update link/button text. - fact_browser.find('#hidden-facets').toggle('fast', function () { - var visible = $(this).is(':visible'); - show_more.text( - visible ? Drupal.t('Show less filters') : Drupal.t('Show more filters') - ); - show_more.removeClass().addClass( - visible ? "expand-facets expand-facets-visible" : "expand-facets expand-facets-hidden" - ); - - // Set cookie, so to remember if they where shown. - $.cookie("ding_factbrowers_toggle", visible); + // Set cookie, so to remember if they where shown. + $.cookie('ding_factbrowers_groups_shown', cookie); + }); + + return false; }); - return false; + // Check the cookie, if facet groups should be hidden or shown as default. + if (parseInt($.cookie('ding_factbrowers_groups_shown'), 10) === 1) { + show_more_groups.trigger('click'); + } }); // Check for click in checkbox, and execute search. - fact_browser.find('.form-type-checkbox input').change(function(e) { + fact_browsers.find('.form-type-checkbox input').change(function(e) { Drupal.TingSearchOverlay(); window.location = $(e.target).parent().find('a').attr('href'); }); - // Check factet links for click events. - fact_browser.find('.form-type-checkbox a').click(function(e) { + // Check facet links for click events. + fact_browsers.find('.form-type-checkbox a').click(function(e) { Drupal.TingSearchOverlay(); }); } From 013a5a650e1916000575d4dcb37fa4a937ff2ad7 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Fri, 20 Dec 2013 15:39:00 +0100 Subject: [PATCH 23/46] Updated makefile to point to tag 7.x-1.0-rc1 --- ding_facetbrowser.make | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make index 15774ab..dd34545 100644 --- a/ding_facetbrowser.make +++ b/ding_facetbrowser.make @@ -9,5 +9,5 @@ projects[ctools][patch][0] = "http://drupal.org/files/ctools-n1925018-12.patch" projects[ting][type] = "module" projects[ting][download][type] = "git" projects[ting][download][url] = "git@github.com:ding2tal/ting.git" -projects[ting][download][tag] = "7.x-1.0-beta5" +projects[ting][download][tag] = "7.x-1.0-rc1" From 3d2a7db53b3b7b0ac2c6b3fb98bd67ee13c1d0c3 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Wed, 8 Jan 2014 21:57:23 +0100 Subject: [PATCH 24/46] Updated makefile to point to tag 7.x-1.0-rc2 --- ding_facetbrowser.make | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make index dd34545..62590e4 100644 --- a/ding_facetbrowser.make +++ b/ding_facetbrowser.make @@ -9,5 +9,5 @@ projects[ctools][patch][0] = "http://drupal.org/files/ctools-n1925018-12.patch" projects[ting][type] = "module" projects[ting][download][type] = "git" projects[ting][download][url] = "git@github.com:ding2tal/ting.git" -projects[ting][download][tag] = "7.x-1.0-rc1" +projects[ting][download][tag] = "7.x-1.0-rc2" From 6de1b38497f592c7d8355ad4615a81a2b5149976 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Wed, 8 Jan 2014 22:17:01 +0100 Subject: [PATCH 25/46] Fixed default value for number of facets shown --- ding_facetbrowser.admin.inc | 2 +- ding_facetbrowser.module | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ding_facetbrowser.admin.inc b/ding_facetbrowser.admin.inc index c0505f2..9508f91 100644 --- a/ding_facetbrowser.admin.inc +++ b/ding_facetbrowser.admin.inc @@ -19,7 +19,7 @@ function ding_facetbrowser_settings($form_state) { '#markup' => '

' . t('Configure facets shown in the facetbrowser. Facet names can be found at DBC wiki and is usually named facet.something.') . '

', ); - $showcount = variable_get('ding_facetbrowser_showcount', count($facets)); + $showcount = variable_get('ding_facetbrowser_showcount', 5); $form['ding_facetbrowser_showcount'] = array( '#type' => 'select', '#title' => t('Visible facets amount'), diff --git a/ding_facetbrowser.module b/ding_facetbrowser.module index 50b6a9f..7092c39 100644 --- a/ding_facetbrowser.module +++ b/ding_facetbrowser.module @@ -103,7 +103,7 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = // Building the facets field sets. $i = 0; - $facet_show_count = variable_get('ding_facetbrowser_showcount'); + $facet_show_count = variable_get('ding_facetbrowser_showcount', 5); foreach (variable_get('ding_facetbrowser_facets', array()) as $configured_facet) { if (isset($facets[$configured_facet['name']])) { From 481f59806f12bd2c8782ef3c3dbeaba828175344 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Mon, 20 Jan 2014 12:24:57 +0100 Subject: [PATCH 26/46] Updated makefile to point to tag 7.x-1.0-rc3 --- ding_facetbrowser.make | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make index 62590e4..ddfac2c 100644 --- a/ding_facetbrowser.make +++ b/ding_facetbrowser.make @@ -9,5 +9,5 @@ projects[ctools][patch][0] = "http://drupal.org/files/ctools-n1925018-12.patch" projects[ting][type] = "module" projects[ting][download][type] = "git" projects[ting][download][url] = "git@github.com:ding2tal/ting.git" -projects[ting][download][tag] = "7.x-1.0-rc2" +projects[ting][download][tag] = "7.x-1.0-rc3" From 7ed7b6a24a59281f54821d10aa901473ce127565 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Mon, 3 Feb 2014 12:57:35 +0100 Subject: [PATCH 27/46] Updated makefile to point to ding2 master branches --- ding_facetbrowser.make | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make index ddfac2c..0017a2b 100644 --- a/ding_facetbrowser.make +++ b/ding_facetbrowser.make @@ -8,6 +8,6 @@ projects[ctools][patch][0] = "http://drupal.org/files/ctools-n1925018-12.patch" projects[ting][type] = "module" projects[ting][download][type] = "git" -projects[ting][download][url] = "git@github.com:ding2tal/ting.git" -projects[ting][download][tag] = "7.x-1.0-rc3" +projects[ting][download][url] = "git@github.com:ding2/ting.git" +projects[ting][download][branch] = "master" From 122811a963d068452171bdb52f7dcb1f43a2e7a2 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Tue, 18 Feb 2014 10:40:29 +0100 Subject: [PATCH 28/46] Updated contrib module ctools --- ding_facetbrowser.make | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make index b04e487..cae035e 100644 --- a/ding_facetbrowser.make +++ b/ding_facetbrowser.make @@ -3,7 +3,7 @@ api = 2 ; Projects projects[ctools][subdir] = "contrib" -projects[ctools][version] = "1.3" +projects[ctools][version] = "1.4" projects[ctools][patch][0] = "http://drupal.org/files/ctools-n1925018-12.patch" projects[ting][type] = "module" From 0b01bc2da8fd73aac93b82299f31d15470aaadd3 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Tue, 18 Feb 2014 11:07:00 +0100 Subject: [PATCH 29/46] Removed ctools patch from make file --- ding_facetbrowser.make | 1 - 1 file changed, 1 deletion(-) diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make index cae035e..603c537 100644 --- a/ding_facetbrowser.make +++ b/ding_facetbrowser.make @@ -4,7 +4,6 @@ api = 2 ; Projects projects[ctools][subdir] = "contrib" projects[ctools][version] = "1.4" -projects[ctools][patch][0] = "http://drupal.org/files/ctools-n1925018-12.patch" projects[ting][type] = "module" projects[ting][download][type] = "git" From c79fd32a54ab290a5a585b3d55542559bd6967db Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Wed, 19 Mar 2014 16:22:06 +0100 Subject: [PATCH 30/46] Ensured that all facets are displayed as default --- ding_facetbrowser.module | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ding_facetbrowser.module b/ding_facetbrowser.module index 50b6a9f..2d38482 100644 --- a/ding_facetbrowser.module +++ b/ding_facetbrowser.module @@ -103,7 +103,7 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = // Building the facets field sets. $i = 0; - $facet_show_count = variable_get('ding_facetbrowser_showcount'); + $facet_show_count = variable_get('ding_facetbrowser_showcount', count($facets)); foreach (variable_get('ding_facetbrowser_facets', array()) as $configured_facet) { if (isset($facets[$configured_facet['name']])) { From 1b2d1ba4d86de130c11c4fc1a958ac446918fbcf Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Tue, 25 Mar 2014 10:28:00 +0100 Subject: [PATCH 31/46] Ensured that t function is available in install file --- ding_facetbrowser.install | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/ding_facetbrowser.install b/ding_facetbrowser.install index 4f2276a..b909929 100644 --- a/ding_facetbrowser.install +++ b/ding_facetbrowser.install @@ -1,17 +1,22 @@ t('Ding facetbrowser'), - 'value' => t('One or more facetgroups have been translated.'), + 'title' => $t('Ding facetbrowser'), + 'value' => $t('One or more facetgroups have been translated.'), ); if (variable_get('ding_facetbrowser_facets', FALSE) == FALSE) { - $requirements['ding_facetbrowser']['value'] = t('No facetgroups have been translated. Go to Settings.', array('!link' => '/admin/config/ting/facets')); + $requirements['ding_facetbrowser']['value'] = $t('No facetgroups have been translated. Go to Settings.', array('!link' => '/admin/config/ting/facets')); $requirements['ding_facetbrowser']['severity'] = REQUIREMENT_ERROR; } } From 768f5aae84f12a2fb4b15edf9352524c996edcd6 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Tue, 25 Mar 2014 10:40:01 +0100 Subject: [PATCH 32/46] Set default facets during installation --- ding_facetbrowser.install | 53 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/ding_facetbrowser.install b/ding_facetbrowser.install index b909929..6258e67 100644 --- a/ding_facetbrowser.install +++ b/ding_facetbrowser.install @@ -23,3 +23,56 @@ function ding_facetbrowser_requirements($phase) { return $requirements; } +/** + * Implements hook_install(). + * + * Set default facets during installation. + */ +function ding_facetbrowser_install() { + $facets = array( + 0 => array( + 'name' => 'facet.type', + 'title' => 'Materialetype', + 'sorting' => 'default', + 'weight' => '-10', + ), + 1 => array( + 'name' => 'facet.creator', + 'title' => 'Forfatter', + 'sorting' => 'default', + 'weight' => '-9', + ), + 2 => array( + 'name' => 'facet.subject', + 'title' => 'Emne', + 'sorting' => 'default', + 'weight' => '-8', + ), + 3 => array( + 'name' => 'facet.language', + 'title' => 'Sprog', + 'sorting' => 'default', + 'weight' => '-7', + ), + 4 => array( + 'name' => 'facet.category', + 'title' => 'Målgruppe', + 'sorting' => 'default', + 'weight' => '-6', + ), + 5 => array( + 'name' => 'facet.date', + 'title' => 'Årstal', + 'sorting' => 'numeric_reverse', + 'weight' => '-5', + ), + 6 => array( + 'name' => 'facet.acSource', + 'title' => 'Kilde', + 'sorting' => 'default', + 'weight' => '-4', + ), + ); + + variable_set('ding_facetbrowser_facets', $facets); +} From 52fc1be6b14d84c8eaa78d3751120c296d6ae38b Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Thu, 1 May 2014 12:33:28 +0200 Subject: [PATCH 33/46] Refactored function names to match code guidelines --- ding_facetbrowser.module | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ding_facetbrowser.module b/ding_facetbrowser.module index 2d38482..6b274e6 100644 --- a/ding_facetbrowser.module +++ b/ding_facetbrowser.module @@ -166,11 +166,11 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = $term_name_title = drupal_substr($term_name, 0, $substr_length) . '...'; } - if (_ding_factbrowser__isFacetSet($facet->name, $term_name) === TRUE) { + if (_ding_factbrowser_is_facet_set($facet->name, $term_name) === TRUE) { $default_values[] = $term_name; $facets_string = '-' . $facets_string; - $uri = $base_root . _ding_factbrowser_parseRequestUri(); + $uri = $base_root . _ding_factbrowser_parse_request_uri(); $selected[$term_name] = l($term_name_title . ' (' . $term_count . ')', $uri, array( 'html' => TRUE, 'query' => array( @@ -182,7 +182,7 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = )); } else { - $uri = $base_root . _ding_factbrowser_parseRequestUri(); + $uri = $base_root . _ding_factbrowser_parse_request_uri(); $not_selected[$term_name] = l($term_name_title . ' (' . $term_count . ')', $uri, array( 'html' => TRUE, 'query' => array( @@ -222,7 +222,7 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = * @return Boolean */ -function _ding_factbrowser__isFacetSet($term_cat, $term_name) { +function _ding_factbrowser_is_facet_set($term_cat, $term_name) { $facets = &drupal_static('ding_facetbrowser_facets'); if (!isset($facets)) { $request_uri_parts = explode('?', request_uri()); @@ -242,7 +242,7 @@ function _ding_factbrowser__isFacetSet($term_cat, $term_name) { * * @return String */ -function _ding_factbrowser_parseRequestUri() { +function _ding_factbrowser_parse_request_uri() { $new_query_part = array(); if (stristr(request_uri(), '?')) { $request_uri_parts = explode('?', request_uri()); @@ -272,7 +272,7 @@ function _ding_factbrowser_parseRequestUri() { * * @return string */ -function _ding_factbrowser_facetString($form_state = NULL) { +function _ding_factbrowser_facet_string($form_state = NULL) { $facets = array(); if (!empty($form_state['values']) && is_array($form_state['values'])) { foreach ($form_state['values'] as $name => $data) { From 2ce2ab78095188e51d17bb32c287ac5a4a3edaef Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Thu, 1 May 2014 12:33:28 +0200 Subject: [PATCH 34/46] Refactored function names to match code guidelines --- ding_facetbrowser.module | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ding_facetbrowser.module b/ding_facetbrowser.module index 7092c39..805633b 100644 --- a/ding_facetbrowser.module +++ b/ding_facetbrowser.module @@ -166,11 +166,11 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = $term_name_title = drupal_substr($term_name, 0, $substr_length) . '...'; } - if (_ding_factbrowser__isFacetSet($facet->name, $term_name) === TRUE) { + if (_ding_factbrowser_is_facet_set($facet->name, $term_name) === TRUE) { $default_values[] = $term_name; $facets_string = '-' . $facets_string; - $uri = $base_root . _ding_factbrowser_parseRequestUri(); + $uri = $base_root . _ding_factbrowser_parse_request_uri(); $selected[$term_name] = l($term_name_title . ' (' . $term_count . ')', $uri, array( 'html' => TRUE, 'query' => array( @@ -182,7 +182,7 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = )); } else { - $uri = $base_root . _ding_factbrowser_parseRequestUri(); + $uri = $base_root . _ding_factbrowser_parse_request_uri(); $not_selected[$term_name] = l($term_name_title . ' (' . $term_count . ')', $uri, array( 'html' => TRUE, 'query' => array( @@ -222,7 +222,7 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = * @return Boolean */ -function _ding_factbrowser__isFacetSet($term_cat, $term_name) { +function _ding_factbrowser_is_facet_set($term_cat, $term_name) { $facets = &drupal_static('ding_facetbrowser_facets'); if (!isset($facets)) { $request_uri_parts = explode('?', request_uri()); @@ -242,7 +242,7 @@ function _ding_factbrowser__isFacetSet($term_cat, $term_name) { * * @return String */ -function _ding_factbrowser_parseRequestUri() { +function _ding_factbrowser_parse_request_uri() { $new_query_part = array(); if (stristr(request_uri(), '?')) { $request_uri_parts = explode('?', request_uri()); @@ -272,7 +272,7 @@ function _ding_factbrowser_parseRequestUri() { * * @return string */ -function _ding_factbrowser_facetString($form_state = NULL) { +function _ding_factbrowser_facet_string($form_state = NULL) { $facets = array(); if (!empty($form_state['values']) && is_array($form_state['values'])) { foreach ($form_state['values'] as $name => $data) { From 666be799c313c5332dc3a19422606c579ac46130 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Wed, 28 May 2014 12:27:38 +0200 Subject: [PATCH 35/46] Updated comments in JS about wrapper classes --- js/ding_facetbrowser.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/ding_facetbrowser.js b/js/ding_facetbrowser.js index 21155ef..3f44c88 100644 --- a/js/ding_facetbrowser.js +++ b/js/ding_facetbrowser.js @@ -101,11 +101,11 @@ function ding_facetbrowser_fold_facet_group() { facetGroup.append('' + Drupal.t('Show more') + ''); } - // Add some classes to checkbox wrappers. + // Add classes to checkbox wrappers used to handle visibility. facetGroup.find('.form-type-checkbox input:checked').parent().addClass('selected-checkbox'); facetGroup.find('.form-type-checkbox input:not(:checked)').parent().addClass('unselected-checkbox'); - // Add some div wrappers around selected and unselected checkboxes. + // Add div wrappers around selected and unselected checkboxes to handle visibility. facetGroup.find('.selected-checkbox').wrapAll('
'); facetGroup.find('.unselected-checkbox').wrapAll('
'); From 37d3b961a43c7c78ff8910de547dfccbe1819b96 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Wed, 28 May 2014 12:27:38 +0200 Subject: [PATCH 36/46] Updated comments in JS about wrapper classes --- js/ding_facetbrowser.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/ding_facetbrowser.js b/js/ding_facetbrowser.js index 21155ef..3f44c88 100644 --- a/js/ding_facetbrowser.js +++ b/js/ding_facetbrowser.js @@ -101,11 +101,11 @@ function ding_facetbrowser_fold_facet_group() { facetGroup.append('' + Drupal.t('Show more') + ''); } - // Add some classes to checkbox wrappers. + // Add classes to checkbox wrappers used to handle visibility. facetGroup.find('.form-type-checkbox input:checked').parent().addClass('selected-checkbox'); facetGroup.find('.form-type-checkbox input:not(:checked)').parent().addClass('unselected-checkbox'); - // Add some div wrappers around selected and unselected checkboxes. + // Add div wrappers around selected and unselected checkboxes to handle visibility. facetGroup.find('.selected-checkbox').wrapAll('
'); facetGroup.find('.unselected-checkbox').wrapAll('
'); From 544241c9262e1441ba752a919be0ce96d65cfa95 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Wed, 28 May 2014 12:53:32 +0200 Subject: [PATCH 37/46] Removed the use of ID's from the javascript --- js/ding_facetbrowser.js | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/js/ding_facetbrowser.js b/js/ding_facetbrowser.js index 3f44c88..ecd4c87 100644 --- a/js/ding_facetbrowser.js +++ b/js/ding_facetbrowser.js @@ -98,7 +98,7 @@ function ding_facetbrowser_fold_facet_group() { // Add expand button, if there are more to show. if (terms_not_checked.length > number_of_terms) { - facetGroup.append('' + Drupal.t('Show more') + ''); + facetGroup.append('' + Drupal.t('Show more') + ''); } // Add classes to checkbox wrappers used to handle visibility. @@ -122,24 +122,24 @@ function ding_facetbrowser_fold_facet_group() { fact_browser.find('.expand').live('click', function(e) { e.preventDefault(); - var clickedKey = this; + var clickedKey = $(this); var facetGroup = $(clickedKey).parent(); - facetGroup.find('.form-type-checkbox.unselected-checkbox:' + (clickedKey.id == 'expand_more' ? 'hidden': 'visible')).each(function(count, facetElement) { - if (clickedKey.id == 'expand_more' && count < Drupal.settings.ding_facetbrowser.number_of_terms) { + facetGroup.find('.form-type-checkbox.unselected-checkbox:' + (clickedKey.hasClass('expand-more') ? 'hidden': 'visible')).each(function(count, facetElement) { + if (clickedKey.hasClass('expand-more') && count < Drupal.settings.ding_facetbrowser.number_of_terms) { $(facetElement).slideDown('fast', function() { if (facetGroup.find('.form-type-checkbox.unselected-checkbox:visible').size() >= Drupal.settings.ding_facetbrowser.number_of_terms && - facetGroup.find('#expand_less').size() === 0 && + facetGroup.find('.expand-less').size() === 0 && count % Drupal.settings.ding_facetbrowser.number_of_terms === 0) { - facetGroup.append('' + Drupal.t('Show less') + ''); + facetGroup.append('' + Drupal.t('Show less') + ''); } }); } - else if (clickedKey.id == 'expand_less' && count >= Drupal.settings.ding_facetbrowser.number_of_terms) { + else if (clickedKey.hasClass('expand-less') && count >= Drupal.settings.ding_facetbrowser.number_of_terms) { $(facetElement).slideUp('fast', function() { if (facetGroup.find('.form-type-checkbox.unselected-checkbox:visible').size() == Drupal.settings.ding_facetbrowser.number_of_terms && - facetGroup.find('#expand_less:visible')) { - facetGroup.find('#expand_less').fadeOut().remove(); + facetGroup.find('.expand-less:visible')) { + facetGroup.find('.expand-less').fadeOut().remove(); } }); } @@ -148,13 +148,13 @@ function ding_facetbrowser_fold_facet_group() { // Need to make sure we have the correct amount of unselected checkboxes to check against when wanting to remove the show more link. var unselectedSize = facetGroup.attr('count')-facetGroup.find('.form-type-checkbox.selected-checkbox').size(); - if ((facetGroup.find('.form-type-checkbox.unselected-checkbox:visible').size() >= unselectedSize) && (clickedKey.id == 'expand_more')) { - facetGroup.find('#expand_more').remove(); + if ((facetGroup.find('.form-type-checkbox.unselected-checkbox:visible').size() >= unselectedSize) && (clickedKey.hasClass('expand-more'))) { + facetGroup.find('.expand-more').remove(); } - if (clickedKey.id == 'expand_less'){ - if (!(facetGroup.find('#expand_more').length)) { - facetGroup.append('' + Drupal.t('Show more') + ''); + if (clickedKey.hasClass('expand-less')){ + if (!(facetGroup.find('.expand-more').length)) { + facetGroup.append('' + Drupal.t('Show more') + ''); } } From 011fdab4703b735b25bc90c0aad9519176fd421a Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Wed, 28 May 2014 12:53:32 +0200 Subject: [PATCH 38/46] Removed the use of ID's from the javascript --- js/ding_facetbrowser.js | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/js/ding_facetbrowser.js b/js/ding_facetbrowser.js index 3f44c88..ecd4c87 100644 --- a/js/ding_facetbrowser.js +++ b/js/ding_facetbrowser.js @@ -98,7 +98,7 @@ function ding_facetbrowser_fold_facet_group() { // Add expand button, if there are more to show. if (terms_not_checked.length > number_of_terms) { - facetGroup.append('' + Drupal.t('Show more') + ''); + facetGroup.append('' + Drupal.t('Show more') + ''); } // Add classes to checkbox wrappers used to handle visibility. @@ -122,24 +122,24 @@ function ding_facetbrowser_fold_facet_group() { fact_browser.find('.expand').live('click', function(e) { e.preventDefault(); - var clickedKey = this; + var clickedKey = $(this); var facetGroup = $(clickedKey).parent(); - facetGroup.find('.form-type-checkbox.unselected-checkbox:' + (clickedKey.id == 'expand_more' ? 'hidden': 'visible')).each(function(count, facetElement) { - if (clickedKey.id == 'expand_more' && count < Drupal.settings.ding_facetbrowser.number_of_terms) { + facetGroup.find('.form-type-checkbox.unselected-checkbox:' + (clickedKey.hasClass('expand-more') ? 'hidden': 'visible')).each(function(count, facetElement) { + if (clickedKey.hasClass('expand-more') && count < Drupal.settings.ding_facetbrowser.number_of_terms) { $(facetElement).slideDown('fast', function() { if (facetGroup.find('.form-type-checkbox.unselected-checkbox:visible').size() >= Drupal.settings.ding_facetbrowser.number_of_terms && - facetGroup.find('#expand_less').size() === 0 && + facetGroup.find('.expand-less').size() === 0 && count % Drupal.settings.ding_facetbrowser.number_of_terms === 0) { - facetGroup.append('' + Drupal.t('Show less') + ''); + facetGroup.append('' + Drupal.t('Show less') + ''); } }); } - else if (clickedKey.id == 'expand_less' && count >= Drupal.settings.ding_facetbrowser.number_of_terms) { + else if (clickedKey.hasClass('expand-less') && count >= Drupal.settings.ding_facetbrowser.number_of_terms) { $(facetElement).slideUp('fast', function() { if (facetGroup.find('.form-type-checkbox.unselected-checkbox:visible').size() == Drupal.settings.ding_facetbrowser.number_of_terms && - facetGroup.find('#expand_less:visible')) { - facetGroup.find('#expand_less').fadeOut().remove(); + facetGroup.find('.expand-less:visible')) { + facetGroup.find('.expand-less').fadeOut().remove(); } }); } @@ -148,13 +148,13 @@ function ding_facetbrowser_fold_facet_group() { // Need to make sure we have the correct amount of unselected checkboxes to check against when wanting to remove the show more link. var unselectedSize = facetGroup.attr('count')-facetGroup.find('.form-type-checkbox.selected-checkbox').size(); - if ((facetGroup.find('.form-type-checkbox.unselected-checkbox:visible').size() >= unselectedSize) && (clickedKey.id == 'expand_more')) { - facetGroup.find('#expand_more').remove(); + if ((facetGroup.find('.form-type-checkbox.unselected-checkbox:visible').size() >= unselectedSize) && (clickedKey.hasClass('expand-more'))) { + facetGroup.find('.expand-more').remove(); } - if (clickedKey.id == 'expand_less'){ - if (!(facetGroup.find('#expand_more').length)) { - facetGroup.append('' + Drupal.t('Show more') + ''); + if (clickedKey.hasClass('expand-less')){ + if (!(facetGroup.find('.expand-more').length)) { + facetGroup.append('' + Drupal.t('Show more') + ''); } } From 45bcdafb3c79c4a7291fa0543e8f26329308e7d6 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Mon, 6 Oct 2014 13:05:01 +0200 Subject: [PATCH 39/46] Updated make file to point to development branch --- ding_facetbrowser.make | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make index 588b76b..603c537 100644 --- a/ding_facetbrowser.make +++ b/ding_facetbrowser.make @@ -7,6 +7,6 @@ projects[ctools][version] = "1.4" projects[ting][type] = "module" projects[ting][download][type] = "git" -projects[ting][download][url] = "git@github.com:ding2/ting.git" -projects[ting][download][branch] = "master" +projects[ting][download][url] = "git@github.com:ding2tal/ting.git" +projects[ting][download][branch] = "development" From b77fe31186bd16ec4d21b82033bbfc7eae1c5b07 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Mon, 6 Oct 2014 15:31:31 +0200 Subject: [PATCH 40/46] Updated make file to point to master branch --- ding_facetbrowser.make | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make index 603c537..588b76b 100644 --- a/ding_facetbrowser.make +++ b/ding_facetbrowser.make @@ -7,6 +7,6 @@ projects[ctools][version] = "1.4" projects[ting][type] = "module" projects[ting][download][type] = "git" -projects[ting][download][url] = "git@github.com:ding2tal/ting.git" -projects[ting][download][branch] = "development" +projects[ting][download][url] = "git@github.com:ding2/ting.git" +projects[ting][download][branch] = "master" From aeeab5fb666f5339630822ca8035356eb37d7fcc Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Mon, 3 Nov 2014 13:14:34 +0100 Subject: [PATCH 41/46] Resovled merge conflict in facet form --- ding_facetbrowser.module | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ding_facetbrowser.module b/ding_facetbrowser.module index 805633b..6b274e6 100644 --- a/ding_facetbrowser.module +++ b/ding_facetbrowser.module @@ -103,7 +103,7 @@ function ding_facetbrowser_form($form, &$form_state, $facets = FALSE, $search = // Building the facets field sets. $i = 0; - $facet_show_count = variable_get('ding_facetbrowser_showcount', 5); + $facet_show_count = variable_get('ding_facetbrowser_showcount', count($facets)); foreach (variable_get('ding_facetbrowser_facets', array()) as $configured_facet) { if (isset($facets[$configured_facet['name']])) { From 4dfa135b94b6a658ae6755de82df743e7128d096 Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Thu, 15 Jan 2015 10:54:51 +0100 Subject: [PATCH 42/46] Issue #137 by cableman: Updated ctools in makefile to fix missing argument warnings --- ding_facetbrowser.make | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make index 603c537..55a8de9 100644 --- a/ding_facetbrowser.make +++ b/ding_facetbrowser.make @@ -3,7 +3,7 @@ api = 2 ; Projects projects[ctools][subdir] = "contrib" -projects[ctools][version] = "1.4" +projects[ctools][version] = "1.5" projects[ting][type] = "module" projects[ting][download][type] = "git" From 2c5692e2011ef1140dbc60334de9ee18b3b3479c Mon Sep 17 00:00:00 2001 From: Martin Cording Date: Thu, 31 Jul 2014 10:27:25 +0200 Subject: [PATCH 43/46] case 4312 - Dont make overlay appear if new window. Signed-off-by: Martin Cording --- js/ding_facetbrowser.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/js/ding_facetbrowser.js b/js/ding_facetbrowser.js index ecd4c87..fe07c2a 100644 --- a/js/ding_facetbrowser.js +++ b/js/ding_facetbrowser.js @@ -74,6 +74,9 @@ Drupal.behaviors.ding_facetbrowser = { // Check facet links for click events. fact_browsers.find('.form-type-checkbox a').click(function(e) { Drupal.TingSearchOverlay(); + if ($(this).not('[target="_blank"]').length) { + Drupal.TingSearchOverlay(); + } }); } }; From 67828ebda4375b4d0379dc0d0efedce430ab4aaa Mon Sep 17 00:00:00 2001 From: Martin Cording Date: Tue, 23 Sep 2014 13:44:11 +0200 Subject: [PATCH 44/46] case 4312 - Dont make overlay appear if new window. Signed-off-by: Martin Cording --- js/ding_facetbrowser.js | 1 - 1 file changed, 1 deletion(-) diff --git a/js/ding_facetbrowser.js b/js/ding_facetbrowser.js index fe07c2a..398d477 100644 --- a/js/ding_facetbrowser.js +++ b/js/ding_facetbrowser.js @@ -73,7 +73,6 @@ Drupal.behaviors.ding_facetbrowser = { // Check facet links for click events. fact_browsers.find('.form-type-checkbox a').click(function(e) { - Drupal.TingSearchOverlay(); if ($(this).not('[target="_blank"]').length) { Drupal.TingSearchOverlay(); } From e8f7c855b46b77cfd76ecda6a6e713a144e87112 Mon Sep 17 00:00:00 2001 From: JrgenGNielsen Date: Mon, 17 Aug 2015 13:17:28 +0200 Subject: [PATCH 45/46] Issue #1275 by JrgenGNielsen: urledcode facet value part --- ding_facetbrowser.module | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/ding_facetbrowser.module b/ding_facetbrowser.module index 6b274e6..7a7583d 100644 --- a/ding_facetbrowser.module +++ b/ding_facetbrowser.module @@ -244,24 +244,29 @@ function _ding_factbrowser_is_facet_set($term_cat, $term_name) { */ function _ding_factbrowser_parse_request_uri() { $new_query_part = array(); - if (stristr(request_uri(), '?')) { - $request_uri_parts = explode('?', request_uri()); - $query = rawurldecode(end($request_uri_parts)); - $query_parts = explode('&', $query); - foreach ($query_parts as $key => $part) { - if (preg_match('/^page\=/', $part)) { - unset($query_parts[$key]); - continue; - } - $new_query_part[] = $part; - } - $query = $new_query_part; - return $request_uri_parts[0] . '?' . implode('&', $query); - } - else { + if (!stristr(request_uri(), '?')) { return request_uri(); } + + $request_uri_parts = explode('?', request_uri()); + + $query = rawurldecode(end($request_uri_parts)); + $query_parts = explode('&', $query); + foreach ($query_parts as $key => $part) { + if (preg_match('/^page\=/', $part)) { + unset($query_parts[$key]); + continue; + } + if (stristr($part, '=')) { + $decode_part = explode('=', $part); + $decode_part[1] = rawurlencode($decode_part[1]); + $part = implode('=', $decode_part); + } + $new_query_part[] = $part; + } + $query = $new_query_part; + return $request_uri_parts[0] . '?' . implode('&', $query); } /** From b4a9ec54fe4241ee1a02ed55e5c12c63b33e9bff Mon Sep 17 00:00:00 2001 From: Jesper Kristensen Date: Thu, 20 Aug 2015 12:49:43 +0200 Subject: [PATCH 46/46] Security: Updated ctools to version 1.9 --- ding_facetbrowser.make | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ding_facetbrowser.make b/ding_facetbrowser.make index 075d86b..c359ba2 100644 --- a/ding_facetbrowser.make +++ b/ding_facetbrowser.make @@ -3,7 +3,7 @@ api = 2 ; Projects projects[ctools][subdir] = "contrib" -projects[ctools][version] = "1.5" +projects[ctools][version] = "1.9" projects[ting][type] = "module" projects[ting][download][type] = "git"