diff options
author | friendica <info@friendica.com> | 2014-11-03 14:49:03 -0800 |
---|---|---|
committer | friendica <info@friendica.com> | 2014-11-03 14:49:03 -0800 |
commit | a6d8c3193a6fc243f3e516118c793e5b871b8247 (patch) | |
tree | 1425c809b156a47498f4caaeac683c3b3177079e | |
parent | ac858f4bd4fcb9c65cbc7b19288cdad0076aa072 (diff) | |
download | volse-hubzilla-a6d8c3193a6fc243f3e516118c793e5b871b8247.tar.gz volse-hubzilla-a6d8c3193a6fc243f3e516118c793e5b871b8247.tar.bz2 volse-hubzilla-a6d8c3193a6fc243f3e516118c793e5b871b8247.zip |
various UI issues related to having an enormous number of entries in the posted_date selector including years/months that had no posts
-rwxr-xr-x | include/items.php | 7 | ||||
-rw-r--r-- | include/widgets.php | 17 | ||||
-rwxr-xr-x | view/tpl/posted_date_widget.tpl | 28 |
3 files changed, 47 insertions, 5 deletions
diff --git a/include/items.php b/include/items.php index d173e1a98..325947341 100755 --- a/include/items.php +++ b/include/items.php @@ -4128,10 +4128,13 @@ function first_post_date($uid,$wall = false) { * current flat list of all representative dates. */ -function list_post_dates($uid,$wall) { +function list_post_dates($uid,$wall,$mindate) { $dnow = datetime_convert('',date_default_timezone_get(),'now','Y-m-d'); - $dthen = first_post_date($uid,$wall); + if($mindate) + $dthen = datetime_convert('',date_default_timezone_get(),$mindate); + else + $dthen = first_post_date($uid,$wall); if(! $dthen) return array(); diff --git a/include/widgets.php b/include/widgets.php index 2e406aa77..703bc07a8 100644 --- a/include/widgets.php +++ b/include/widgets.php @@ -330,19 +330,32 @@ function widget_archive($arr) { $wall = ((array_key_exists('wall', $arr)) ? intval($arr['wall']) : 0); $style = ((array_key_exists('style', $arr)) ? $arr['style'] : 'select'); + $showend = ((get_pconfig($uid,'system','archive_show_end_date')) ? true : false); + $mindate = get_pconfig($uid,'system','archive_mindate'); + $visible_years = get_pconfig($uid,'system','archive_visible_years'); + if(! $visible_years) + $visible_years = 5; + + $url = z_root() . '/' . $a->cmd; - $ret = list_post_dates($uid,$wall); + $ret = list_post_dates($uid,$wall,$mindate); if(! count($ret)) return ''; + $cutoff_year = intval(datetime_convert('',date_default_timezone_get(),'now','Y')) - $visible_years; + $cutoff = ((array_key_exists($cutoff_year,$ret))? true : false); + $o = replace_macros(get_markup_template('posted_date_widget.tpl'),array( '$title' => t('Archives'), - '$size' => ((count($ret) > 6) ? 6 : count($ret)), + '$size' => $visible_years, + '$cutoff_year' => $cutoff_year, + '$cutoff' => $cutoff, '$url' => $url, '$style' => $style, + '$showend' => $showend, '$dates' => $ret )); return $o; diff --git a/view/tpl/posted_date_widget.tpl b/view/tpl/posted_date_widget.tpl index 1104d61bb..6298ca0aa 100755 --- a/view/tpl/posted_date_widget.tpl +++ b/view/tpl/posted_date_widget.tpl @@ -1,8 +1,30 @@ +<script> + +function toggle_posted_date_button() { + if($('#posted-date-dropdown').is(':visible')) { + $('#posted-date-icon').removeClass('icon-caret-up'); + $('#posted-date-icon').addClass('icon-caret-down'); + $('#posted-date-dropdown').hide(); + } + else { + $('#posted-date-icon').addClass('icon-caret-up'); + $('#posted-date-icon').removeClass('icon-caret-down'); + $('#posted-date-dropdown').show(); + } +} +</script> + + <div id="datebrowse-sidebar" class="widget"> <h3>{{$title}}</h3> <script>function dateSubmit(dateurl) { window.location.href = dateurl; } </script> <ul id="posted-date-selector" class="nav nav-pills nav-stacked"> {{foreach $dates as $y => $arr}} + {{if $y == $cutoff_year}} + </ul> + <div id="posted-date-dropdown" style="display: none;"> + <ul id="posted-date-selector-drop" class="nav nav-pills nav-stacked"> + {{/if}} <li id="posted-date-selector-year-{{$y}}"> <a href="#" onclick="openClose('posted-date-selector-{{$y}}'); return false;">{{$y}}</a> </li> @@ -10,11 +32,15 @@ <ul class="posted-date-selector-months nav nav-pills nav-stacked"> {{foreach $arr as $d}} <li> - <a href="#" onclick="dateSubmit('{{$url}}?f=&dend={{$d.1}}&dbegin={{$d.2}}'); return false;">{{$d.0}}</a> + <a href="#" onclick="dateSubmit('{{$url}}?f=&dend={{$d.1}}{{if $showend}}&dbegin={{$d.2}}{{/if}}'); return false;">{{$d.0}}</a> </li> {{/foreach}} </ul> </div> {{/foreach}} + {{if $cutoff}} + </div> + <button class="btn btn-default btn-sm" onclick="toggle_posted_date_button(); return false;"><i id="posted-date-icon" class="icon-caret-down"></i></button> + {{/if}} </ul> </div> |