Skip to content

Commit

Permalink
Merge e2421ba into 2d1d220
Browse files Browse the repository at this point in the history
  • Loading branch information
yvesdaxmaz committed Jun 25, 2020
2 parents 2d1d220 + e2421ba commit 130db37
Show file tree
Hide file tree
Showing 7 changed files with 145 additions and 9 deletions.
2 changes: 2 additions & 0 deletions lib/output.php
Expand Up @@ -119,6 +119,8 @@ class Hm_Image_Sources {
public static $w = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AgKARwCjOZMwQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAA2UlEQVQ4y+3ToUrDURTH8Q/MwdCFMbSIj7BgHWgSBnsAGZjEbPYVfICFubSwtGbwH8xisRnWBcMQFLUpglrO5PBn7gHECzfc7/3xO4ffuZf/BV8L9lbc7cX5BbVg2yWtKp4S2Enmo8T3Ez9Akbs4S8JBsBpeEz9P+osw+Vm7SfgYXfUwTfwdTazjGWtQCYN7HKKBVdzgCENsRiYV3KGFN0zKYZ6mapdRpY7jxK9wje6iabRK6Y6Db+Aj2CcesPLbSG+TQSfxIvH+sjdxEqJZymc+trlB+4/9g28CnkONSGOI8gAAAABJRU5ErkJggg==';
public static $save_reminder = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AgSFQseE+bgxAAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAS0lEQVQ4y6WTSQoAMAgDk/z/z+21lK6ON5UZEIklNdXLIbAkhcBVgccmBP4VeDUMgV8FPi1D4JvAL7eFwDuBf/4aAs8CV0NB0sirA+jtAijusTaJAAAAAElFTkSuQmCC';

public static $edit = 'data:image/svg+xml,%3Csvg%20height%3D%22508%22%20viewBox%3D%220%20-1%20381.534%20381%22%20width%3D%22508%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M370.59%20230.965c-5.524%200-10%204.476-10%2010v88.793c-.02%2016.558-13.438%2029.98-30%2030H50c-16.563-.02-29.98-13.442-30-30V69.168c.02-16.563%2013.438-29.98%2030-30h88.79c5.523%200%2010-4.477%2010-10s-4.477-10-10-10H50c-27.602.031-49.969%2022.398-50%2050v260.59c.031%2027.601%2022.398%2049.969%2050%2050h280.59c27.601-.031%2049.969-22.399%2050-50v-88.79c0-5.523-4.477-10.003-10-10.003zm0%200%22%2F%3E%3Cpath%20d%3D%22M156.367%20178.344L302.38%2032.328l47.09%2047.09-146.012%20146.016zm0%200M132.543%20249.258l52.039-14.414-37.625-37.625zm0%200M362.488%207.578c-9.77-9.746-25.586-9.746-35.355%200l-10.606%2010.606%2047.09%2047.09%2010.606-10.606c9.75-9.77%209.75-25.586%200-35.355zm0%200%22%2F%3E%3C%2Fsvg%3E';

}

/**
Expand Down
45 changes: 45 additions & 0 deletions modules/core/message_list_functions.php
Expand Up @@ -395,6 +395,51 @@ function list_sources($sources, $output_mod) {
return $res;
}}



/**
* Output a source list for a message list
* @subpackage core/functions
* @param array $sources source of the list
* @param object $output_mod Hm_Output_Module
*/
if (!hm_exists('update_search_label_field')) {
function update_search_label_field($search_term, $output_mod) {
$res = '<div class="update_search_label_field">';
$res .= '<div class="update_saved_search_title">'.$output_mod->html_safe('Update saved search label') .'</div>';
$res .= '<div">
<input type="hidden" name="page" value="search">
<input type="hidden" name="search_terms" value="'. $search_term .'">
<label class="screen_reader" for="search_terms_label">Current Search Label</label>
<input required="" disabled id="old_search_terms_label" type="search" value="' . $search_term . '" class="old_search_terms_label" name="old_search_terms_label">
<label class="screen_reader" for="search_terms_label">New Search Terms</label>
<input required="" placeholder="New search terms label" id="search_terms_label" type="search" class="search_terms_label" name="search_terms_label">
<div>
<input type="button" class="search_label_update" value="Update">
</div>
</div>';
$res .= '</div>';
return $res;
}}



















/**
* Output message list controls
* @subpackage core/functions
Expand Down
9 changes: 5 additions & 4 deletions modules/core/site.css
Expand Up @@ -146,9 +146,10 @@ textarea, select, input { border: solid 1px #ddd; background-color: #fff; color:
.configured_server { float: left; margin-left: 25px; width: 230px; }
.add_server { margin-right: 25px; float: left; clear: left; margin-left: 25px; width: 230px; }
.configured_server input, .add_server input, .add_server select { margin-bottom: 10px; padding: 5px; margin-right: 5px; }
.list_sources { z-index: 100; border-left: solid 1px #ede8e6; border-bottom: solid 1px #ede8e6; position: absolute; right: 0px; top: 54px; background-color: #fafafa; font-size: 85%; padding: 30px; padding-top: 10px; display: none;}
.list_src { color: #666; margin-bottom: 10px; }
.src_title { color: #666; font-size: 110%; padding: 5px; margin-bottom: 10px; }
.list_sources, .update_search_label_field { z-index: 100; border-left: solid 1px #ede8e6; border-bottom: solid 1px #ede8e6; position: absolute; right: 0px; top: 54px; background-color: #fafafa; font-size: 85%; padding: 30px; padding-top: 10px; display: none;}
.list_src, .old_search_terms_label, .search_terms_label { color: #666; margin-bottom: 10px; }
.old_search_terms_label, .search_terms_label { display: block; width: 100%; }
.src_title, .update_saved_search_title { color: #666; font-size: 110%; padding: 5px; margin-bottom: 10px; }
.del_src_link { padding: 3px; color: #666; margin-right: 5px; }
.search_form { font-size: 80%; color: #999; display: inline; padding-left: 15px; }
.search_form input, .search_form select { margin-right: 3px; margin-left: 3px; }
Expand Down Expand Up @@ -255,4 +256,4 @@ div.unseen, .unseen .subject { font-weight: 700; }

@media print {
.sys_messages, .next, .prev, .folder_list, .msg_parts, .header_links, .content_title, .add_contact_row, .unsaved_icon, .add_vcal { display: none !important; }
}
}
46 changes: 45 additions & 1 deletion modules/saved_searches/modules.php
Expand Up @@ -76,6 +76,27 @@ public function process() {
}
}


/**
* @subpackage savedsearches/handler
*/
class Hm_Handler_update_save_search_label extends Hm_Handler_Module {
public function process() {
list($success, $form) = $this->process_form(array('search_name', 'search_terms_label', 'old_search_terms_label'));
if ($success) {
$searches = new Hm_Saved_Searches($this->user_config->get('saved_searches', array()));
if ($searches->rename($form['old_search_terms_label'], $form['search_terms_label'])) {
$this->session->record_unsaved('Update a saved search label');
$this->user_config->set('saved_searches', $searches->dump());
$this->session->set('user_data', $this->user_config->dump());
$this->out('new_saved_search_label', $form['search_terms_label']);
$this->out('update_save_search_label', true);
Hm_Msgs::add('Saved search label updated');
}
}
}
}

/**
* @subpackage savedsearches/handler
*/
Expand Down Expand Up @@ -113,7 +134,7 @@ protected function output() {
*/
class Hm_Output_filter_saved_search_result extends Hm_Output_Module {
protected function output() {
if ($this->get('saved_search') || $this->get('updated_search') || $this->get('deleted_search')) {
if ($this->get('saved_search') || $this->get('updated_search') || $this->get('deleted_search') || $this->get('update_save_search_label')) {
$this->out('saved_search_result', 1);
}
else {
Expand All @@ -134,6 +155,21 @@ protected function output() {
}
}


/**
* @subpackage savedsearches/output
*/
class Hm_Output_update_search_label_icon extends Hm_Output_Module {
protected function output() {
$style = '';
if (!$this->get('search_name')) {
$style = 'style="display: none;"';
}
return '<a href="" '.$style.' class="update_search_label" title="'.$this->trans('Update saved search label').'"><img width="20" height="20" alt="'.
$this->trans('Update saved search label').'" src="'.Hm_Image_Sources::$edit.'" /></a>' . update_search_label_field($this->get('search_name'), $this);
}
}

/**
* @subpackage savedsearches/output
*/
Expand Down Expand Up @@ -246,6 +282,14 @@ public function delete($del_name) {
$this->searches = $new_searches;
return count($new_searches) !== count($old_searches);
}
public function rename($old_name, $new_name) {
if(array_key_exists($old_name, $this->searches)) {
$this->searches[$new_name] = $this->searches[$old_name];
unset($this->searches[$old_name]);
return true;
}
return false;
}
}

/**
Expand Down
21 changes: 18 additions & 3 deletions modules/saved_searches/setup.php
Expand Up @@ -29,21 +29,33 @@
add_handler('ajax_delete_search', 'http_headers', true, 'core');
add_output('ajax_delete_search', 'filter_saved_search_result', true);

add_handler('ajax_update_save_search_label', 'login', false, 'core');
add_handler('ajax_update_save_search_label', 'load_user_data', true, 'core');
add_handler('ajax_update_save_search_label', 'update_save_search_label', true, 'core');
add_handler('ajax_update_save_search_label', 'language', true);
add_handler('ajax_update_save_search_label', 'date', true, 'core');
add_handler('ajax_update_save_search_label', 'http_headers', true, 'core');
add_output('ajax_update_save_search_label', 'filter_saved_search_result', true);


add_handler('ajax_hm_folders', 'saved_search_folder_data', true, 'saved_searches', 'load_user_data', 'after');
add_output('ajax_hm_folders', 'search_folders', true, 'saved_searches', 'folder_list_content_start', 'before');

add_handler('search', 'save_searches_data', true, 'saved_searches', 'load_user_data', 'after');
add_output('search', 'save_search_icon', true, 'saved_searches', 'search_results_table_end', 'after');
add_output('search', 'update_search_label_icon', true, 'saved_searches', 'search_results_table_end', 'after');
add_output('search', 'search_name_fld', true, 'saved_searches', 'search_form_content', 'after');
add_output('search', 'delete_search_icon', true, 'saved_searches', 'search_form_end', 'after');
add_output('search', 'update_search_icon', true, 'saved_searches', 'search_form_end', 'after');



return array(
'allowed_pages' => array(
'ajax_save_search',
'ajax_update_search',
'ajax_delete_search'
'ajax_delete_search',
'ajax_update_save_search_label',
),
'allowed_get' => array(
'search_name' => FILTER_SANITIZE_STRING
Expand All @@ -52,9 +64,12 @@
'search_name' => FILTER_SANITIZE_STRING,
'search_terms' => FILTER_SANITIZE_STRING,
'search_fld' => FILTER_SANITIZE_STRING,
'search_since' => FILTER_SANITIZE_STRING
'search_since' => FILTER_SANITIZE_STRING,
'search_terms_label' => FILTER_SANITIZE_STRING,
'old_search_terms_label' => FILTER_SANITIZE_STRING
),
'allowed_output' => array(
'saved_search_result' => array(FILTER_VALIDATE_INT, false)
'saved_search_result' => array(FILTER_VALIDATE_INT, false),
'new_saved_search_label' => array(FILTER_SANITIZE_STRING, false),
),
);
4 changes: 3 additions & 1 deletion modules/saved_searches/site.css
@@ -1,6 +1,8 @@
.saved_searches_form { margin-left: 30px; }
.saved_searches_form input { margin-left: 3px; margin-right: 3px; }
.update_search_label img { opacity: .5; position: absolute; right: 105px; top: 21px; }
.update_saved_search_title { color: #666; font-size: 110%; padding: 5px; margin-bottom: 10px; }
.save_search img, .delete_search img { opacity: .5; position: absolute; right: 75px; top: 21px; }
.update_search img { opacity: .5; position: absolute; right: 75px; top: 22px; }

.mobile .save_search, .mobile .delete_search, .mobile .add_search { display: none !important; }
.mobile .save_search, .mobile .update_search_label, .mobile .delete_search, .mobile .add_search { display: none !important; }
27 changes: 27 additions & 0 deletions modules/saved_searches/site.js
Expand Up @@ -46,6 +46,21 @@ var save_search = function(event) {
return false;
};


var update_save_search_label = function(event) {
event.preventDefault();
if($('.search_label_update').val().length) {
Hm_Ajax.request(
[{'name': 'hm_ajax_hook', 'value': 'ajax_update_save_search_label'},
{'name': 'search_terms_label', 'value': $('.search_terms_label').val()},
{'name': 'old_search_terms_label', 'value': $('.old_search_terms_label').val()},
{'name': 'search_name', 'value': $('.search_terms').val()}],
update_save_search_label_results
);
}
return false;
}

var search_delete_results = function(res) {
if (res.saved_search_result) {
Hm_Folders.reload_folders(true, '.search_folders');
Expand All @@ -69,14 +84,26 @@ var search_save_results = function(res) {
}
};

var update_save_search_label_results = function(res) {
if(res.saved_search_result) {
$('.update_search_label_field').toggle();
$('.search_terms_label').val("");
$('.old_search_terms_label').val(res.new_saved_search_label);
Hm_Folders.reload_folders(true, '.search_folders');
}
}

if (hm_page_name() == 'search') {
$('.save_search').on("click", save_search);
$('.update_search').on("click", update_search);
$('.delete_search').on("click", delete_search);
$('.update_search_label').on("click", function() { $('.update_search_label_field').toggle(); return false; });
$('.search_label_update').on("click", update_save_search_label);
if ($('.search_name').val().length) {
Hm_Utils.save_to_local_storage('formatted_search_data', '');
}
else if ($('.search_terms').val().length) {
$('.save_search').show();
$('.update_search_label').show()
}
}

0 comments on commit 130db37

Please sign in to comment.