From d1baaf498377773e1803aaea729ee307adbf9cec Mon Sep 17 00:00:00 2001 From: Ian <aristophian@googlemail.com> Date: Mon, 26 Oct 2015 11:36:57 +0100 Subject: [PATCH] better listen on toggle_dir and remember --- include/admin/images.inc.php | 10 +++++++++- include/functions_images.inc.php | 14 ++++---------- templates/2k11/admin/media_pane.tpl | 9 ++++++--- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/include/admin/images.inc.php b/include/admin/images.inc.php index 327745e4..36fe34c5 100644 --- a/include/admin/images.inc.php +++ b/include/admin/images.inc.php @@ -14,10 +14,19 @@ if (!is_object($serendipity['smarty'])) { serendipity_smarty_init(); } +// No echo output here, before the switch, since that matters renaming alerts! + // unset adminAction type to default, if an image was bulkmoved and the origin page reloaded if (!is_array($serendipity['POST']) && $serendipity['GET']['adminAction'] == 'multidelete') { unset($serendipity['GET']['adminAction']); } +// Listens on toggle_dir STRICT to list items per directory, or include all sub directory items +if (empty($serendipity['GET']['toggle_dir']) && empty($serendipity['COOKIE']['serendipity_toggle_dir'])) { + $serendipity['GET']['toggle_dir'] = 'no'; // default +} +if (!empty($serendipity['COOKIE']['serendipity_toggle_dir'])) { + serendipity_restoreVar($serendipity['COOKIE']['serendipity_toggle_dir'], $serendipity['GET']['toggle_dir']); +} switch ($serendipity['GET']['adminAction']) { @@ -72,7 +81,6 @@ switch ($serendipity['GET']['adminAction']) { unset($messages); break; - case 'doMultiDelete': if (!serendipity_checkFormToken() || !serendipity_checkPermission('adminImagesDelete')) { break; diff --git a/include/functions_images.inc.php b/include/functions_images.inc.php index 4fd18fbf..c4852699 100644 --- a/include/functions_images.inc.php +++ b/include/functions_images.inc.php @@ -1452,16 +1452,8 @@ function serendipity_displayImageList($page = 0, $lineBreak = NULL, $manage = fa global $serendipity; static $debug = false; - $extraParems = serendipity_generateImageSelectorParems(); - - $rootDirStrict = false; // default - if (empty($serendipity['GET']['toggle_dir'])) { - $serendipity['GET']['toggle_dir'] = $serendipity['COOKIE']['serendipity_toggle_dir'] = 'yes'; - } - serendipity_restoreVar($serendipity['GET']['toggle_dir'], $serendipity['COOKIE']['serendipity_toggle_dir']); - if ($serendipity['GET']['toggle_dir'] == 'yes') { - $rootDirStrict = true; - } + $extraParems = serendipity_generateImageSelectorParems(); + $rootDirStrict = ($serendipity['GET']['toggle_dir'] == 'yes') ? true : false; // default $serendipity['GET']['only_path'] = serendipity_uploadSecure($limit_path . $serendipity['GET']['only_path'], true); $serendipity['GET']['only_filename'] = serendipity_specialchars(str_replace(array('*', '?'), array('%', '_'), $serendipity['GET']['only_filename'])); @@ -2945,6 +2937,7 @@ function serendipity_showMedia(&$file, &$paths, $url = '', $manage = false, $lin 'keywords_selected' => $serendipity['GET']['keywords'], 'filter' => $serendipity['GET']['filter'], 'sort_order' => serendipity_getImageFields(), + 'toggle_dir' => empty($serendipity['GET']['toggle_dir']) ? 'no' : $serendipity['GET']['toggle_dir'], 'authors' => serendipity_fetchUsers(), 'sort_row_interval' => array(8, 16, 50, 100), 'nr_files' => count($file), @@ -2965,6 +2958,7 @@ function serendipity_showMedia(&$file, &$paths, $url = '', $manage = false, $lin $media = array_merge($media, $smarty_vars); $media['files'] =& $file; + if (count($paths) > 0) { $media['paths'] =& $paths; } else { diff --git a/templates/2k11/admin/media_pane.tpl b/templates/2k11/admin/media_pane.tpl index eae2d5f0..d5930d61 100644 --- a/templates/2k11/admin/media_pane.tpl +++ b/templates/2k11/admin/media_pane.tpl @@ -12,7 +12,7 @@ <div class="form_select"> <label for="serendipity_only_path" class="visuallyhidden">{$CONST.FILTER_DIRECTORY}</label> <select id="serendipity_only_path" name="serendipity[only_path]"> - <option value="">{if NOT $media.limit_path}{$CONST.ALL_DIRECTORIES}{else}{$media.blimit_path}{/if}</option> + <option value="">{if NOT $media.limit_path}{if $media.toggle_dir == 'yes'}{$CONST.BASE_DIRECTORY}{else}{$CONST.ALL_DIRECTORIES}{/if}{else}{$media.blimit_path}{/if}</option> {foreach $media.paths AS $folderHead} <option{if ($media.only_path == $media.limit_path|cat:$folderHead.relpath)} selected{/if} value="{$folderHead.relpath}">{' '|str_repeat:($folderHead.depth*2)}{$folderHead.name}</option> @@ -35,12 +35,12 @@ <li id="media_dir_radio" class="media_select_strict"> <div class="clearfix"> <div class="form_radio"> - <input id="radio_link_no" name="serendipity[toggle_dir]" type="radio" value="no" {'toggle_dir'|ifRemember:'no'}> + <input id="radio_link_no" name="serendipity[toggle_dir]" type="radio" value="no" {if $media.toggle_dir == 'no'}checked="checked"{/if}> <label for="radio_link_no">Strict {$CONST.NO}</label> </div> <div class="form_radio"> - <input id="radio_link_yes" name="serendipity[toggle_dir]" type="radio" value="yes" {'toggle_dir'|ifRemember:'yes':true}> + <input id="radio_link_yes" name="serendipity[toggle_dir]" type="radio" value="yes" {if $media.toggle_dir == 'yes'}checked="checked"{/if}> <label for="radio_link_yes">Strict {$CONST.YES}</label> </div> </div> @@ -169,6 +169,8 @@ </fieldset> <script> $(document).ready(function() { + // alert(serendipity.GetCookie('serendipity[only_path]')); + // write: is plain "foo", read: is "serendipity[foo]"! {foreach $media.sortParams AS $sortParam} serendipity.SetCookie("sortorder_{$sortParam}","{$get_sortorder_{$sortParam}}"); @@ -178,6 +180,7 @@ serendipity.SetCookie("{$filterParam}", "{$get_{$filterParam}}"); {/foreach} + serendipity.SetCookie("serendipity_toggle_dir", "{$media.toggle_dir}"); }); </script> </form>