Skip to content
Open
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions lib/framework.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
require APP_PATH.'lib/api.php';
require APP_PATH.'lib/webdav_formats.php';
require APP_PATH.'lib/js_libs.php';
require APP_PATH.'lib/version.php';

require_once APP_PATH.'modules/core/functions.php';

Expand Down
15 changes: 15 additions & 0 deletions lib/version.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

define('CYPHT_VERSION', '2.5.2');

$releases = json_decode(file_get_contents('https://github.com/cypht-org/cypht/blob/master/releases.json?raw=true'), true);
$latestRelease = end($releases['release']);

if (version_compare(CYPHT_VERSION, $latestRelease['version'], '<')) {
$needUpgrade = true;
} else {
$needUpgrade = false;
}

define('CYPHT_NEED_UPGRADE', $needUpgrade);
define('CYPHT_LATEST_VERSION', $latestRelease['version']);
4 changes: 2 additions & 2 deletions modules/account/setup.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@
add_handler('accounts', 'process_delete_account', true, 'account', 'process_create_account', 'after');
add_handler('accounts', 'check_internal_users', true, 'account', 'login', 'after');
add_handler('accounts', 'account_list', true, 'account', 'check_internal_users', 'after');
add_output('accounts', 'create_form', true, 'account', 'content_section_start', 'after');
add_output('accounts', 'create_form', true, 'account', 'version_upgrade_checker', 'after');
add_output('accounts', 'user_list', true, 'account', 'create_form', 'after');

setup_base_page('change_password', 'core');
add_handler('change_password', 'process_change_password', true, 'account', 'load_user_data', 'after');
add_handler('change_password', 'check_internal_users', true, 'account', 'login', 'after');
add_output('change_password', 'change_password', true, 'account', 'content_section_start', 'after');
add_output('change_password', 'change_password', true, 'account', 'version_upgrade_checker', 'after');

/* folder list link */
add_handler('ajax_hm_folders', 'check_internal_users', true, 'account', 'login', 'after');
Expand Down
2 changes: 1 addition & 1 deletion modules/advanced_search/setup.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
/* advanced search page */
setup_base_page('advanced_search', 'core');
add_handler('advanced_search', 'advanced_search_prepare', true, 'advanced_search', 'date', 'after');
add_output('advanced_search', 'advanced_search_content_start', true, 'advanced_search', 'content_section_start', 'after');
add_output('advanced_search', 'advanced_search_content_start', true, 'advanced_search', 'version_upgrade_checker', 'after');
add_output('advanced_search', 'advanced_search_form_start', true, 'advanced_search', 'advanced_search_content_start', 'after');
add_output('advanced_search', 'advanced_search_form_content', true, 'advanced_search', 'advanced_search_form_start', 'after');
add_output('advanced_search', 'advanced_search_form_end', true, 'advanced_search', 'advanced_search_form_content', 'after');
Expand Down
4 changes: 2 additions & 2 deletions modules/calendar/setup.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
add_handler('calendar', 'process_delete_event', true, 'calendar', 'get_calendar_date', 'after');
add_handler('ajax_imap_message_content', 'vcalendar_check', true, 'calendar', 'imap_message_content', 'after');
/*add_output('ajax_imap_message_content', 'vcalendar_add_output', true, 'calendar', 'filter_message_headers', 'after');*/
add_output('calendar', 'calendar_content', true, 'calendar', 'content_section_start', 'after');
add_output('calendar', 'add_cal_event_form', true, 'calendar', 'content_section_start', 'after');
add_output('calendar', 'calendar_content', true, 'calendar', 'version_upgrade_checker', 'after');
add_output('calendar', 'add_cal_event_form', true, 'calendar', 'version_upgrade_checker', 'after');
add_output('ajax_hm_folders', 'calendar_page_link', true, 'calendar', 'main_menu_content', 'before');

return array(
Expand Down
2 changes: 1 addition & 1 deletion modules/contacts/setup.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

add_handler('contacts', 'load_contacts', true, 'contacts', 'load_user_data', 'after');
add_handler('contacts', 'check_imported_contacts', true, 'contacts', 'load_user_data', 'after');
add_output('contacts', 'contacts_content_start', true, 'contacts', 'content_section_start', 'after');
add_output('contacts', 'contacts_content_start', true, 'contacts', 'version_upgrade_checker', 'after');
add_output('contacts', 'contacts_list', true, 'contacts', 'contacts_content_start', 'after');
add_output('contacts', 'contacts_content_end', true, 'contacts', 'contacts_list', 'after');
add_output('settings', 'contact_auto_collect_setting', true, 'contacts', 'max_google_contacts_number', 'after');
Expand Down
1 change: 1 addition & 0 deletions modules/core/functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -442,6 +442,7 @@ function setup_base_page($name, $source=false, $use_layout=true) {
add_output($name, 'folder_list_start', true, $source);
add_output($name, 'folder_list_end', true, $source);
add_output($name, 'content_section_start', true, $source);
add_output($name, 'version_upgrade_checker', true, $source, 'content_section_start', 'after');
add_output($name, 'content_section_end', true, $source);
add_output($name, 'modals', true, $source);
add_output($name, 'save_reminder', true, $source);
Expand Down
15 changes: 15 additions & 0 deletions modules/core/output_modules.php
Original file line number Diff line number Diff line change
Expand Up @@ -2514,3 +2514,18 @@ protected function output() {
$this->out('formatted_message_list', $messageList);
}
}

class Hm_Output_version_upgrade_checker extends Hm_Output_Module {
protected function output()
{
if (! CYPHT_NEED_UPGRADE) return '';

return '
<div class="alert alert-info alert-dismissible fade align-items-center" role="alert" id="cypht-upgrade-alert">
<i class="bi bi-info-circle-fill me-2"></i>
You are currently running Cypht version '.CYPHT_VERSION.'. A higher version (<b>'.CYPHT_LATEST_VERSION.'</b>) is available.
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
';
}
}
16 changes: 8 additions & 8 deletions modules/core/setup.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@
/* homepage */
setup_base_page('home');
add_handler('home', 'check_missing_passwords', true, 'core', 'load_user_data', 'after');
add_output('home', 'home_heading', true, 'core', 'content_section_start', 'after');
add_output('home', 'home_heading', true, 'core', 'version_upgrade_checker', 'after');
add_output('home', 'home_password_dialogs', true, 'core', 'home_heading', 'after');

/* servers page */
setup_base_page('servers');
add_handler('servers', 'reload_folder_cookie', true, 'core', 'save_user_data', 'after');
add_output('servers', 'server_content_start', true, 'core', 'content_section_start', 'after');
add_output('servers', 'server_content_start', true, 'core', 'version_upgrade_checker', 'after');
add_output('servers', 'server_config_stepper', true, 'core', 'server_content_start', 'after');
add_output('servers', 'server_config_stepper_end_part', true, 'core', 'server_config_stepper', 'after');
add_output('servers', 'server_config_stepper_accordion_end_part', true, 'core', 'server_config_stepper_end_part', 'after');
Expand All @@ -32,7 +32,7 @@
/* save settings */
setup_base_page('save');
add_handler('save', 'process_save_form', true, 'core', 'load_user_data', 'after');
add_output('save', 'save_form', true, 'core', 'content_section_start', 'after');
add_output('save', 'save_form', true, 'core', 'version_upgrade_checker', 'after');

/* settings */
setup_base_page('settings');
Expand Down Expand Up @@ -69,7 +69,7 @@
add_handler('settings', 'reload_folder_cookie', true, 'core', 'save_user_settings', 'after');
add_handler('settings', 'privacy_settings', true, 'core', 'date', 'after');

add_output('settings', 'start_settings_form', true, 'core', 'content_section_start', 'after');
add_output('settings', 'start_settings_form', true, 'core', 'version_upgrade_checker', 'after');
add_output('settings', 'start_search_settings', true, 'core', 'start_settings_form', 'after');
add_output('settings', 'start_general_settings', true, 'core', 'start_search_settings', 'after');
add_output('settings', 'language_setting', true, 'core', 'start_general_settings', 'after');
Expand Down Expand Up @@ -113,14 +113,14 @@
/* message list page */
setup_base_page('message_list');
add_handler('message_list', 'default_sort_order_setting', true, 'core', 'load_user_data', 'after');
add_output('message_list', 'message_list_heading', true, 'core', 'content_section_start', 'after');
add_output('message_list', 'message_list_heading', true, 'core', 'version_upgrade_checker', 'after');
add_output('message_list', 'message_list_start', true, 'core', 'message_list_heading', 'after');
add_output('message_list', 'message_list_end', true, 'core', 'message_list_start', 'after');

/* search page */
setup_base_page('search');
add_handler('search', 'default_sort_order_setting', true, 'core', 'load_user_data', 'after');
add_output('search', 'search_content_start', true, 'core', 'content_section_start', 'after');
add_output('search', 'search_content_start', true, 'core', 'version_upgrade_checker', 'after');
add_output('search', 'search_form_start', true, 'core', 'search_content_start', 'after');
add_output('search', 'search_form_content', true, 'core', 'search_form_start', 'after');
add_output('search', 'search_form_end', true, 'core', 'search_form_content', 'after');
Expand All @@ -139,12 +139,12 @@

/* message view page */
setup_base_page('message');
add_output('message', 'message_start', true, 'core', 'content_section_start', 'after');
add_output('message', 'message_start', true, 'core', 'version_upgrade_checker', 'after');
add_output('message', 'message_end', true, 'core', 'message_start', 'after');

/* not-found page data and output */
setup_base_page('notfound');
add_output('notfound', 'notfound_content', true, 'core', 'content_section_start', 'after');
add_output('notfound', 'notfound_content', true, 'core', 'version_upgrade_checker', 'after');

/* message action ajax request */
setup_base_ajax_page('ajax_message_action', 'core');
Expand Down
11 changes: 11 additions & 0 deletions modules/core/site.js
Original file line number Diff line number Diff line change
Expand Up @@ -2605,3 +2605,14 @@ document.addEventListener("show.bs.dropdown", function (event) {
});
});

window.addEventListener('page-change', () => {
document.getElementById("cypht-upgrade-alert")?.addEventListener("close.bs.alert", function () {
Hm_Utils.save_to_local_storage('cypht_upgrade_alert_dismissed', '1');
});
if (Hm_Utils.get_from_local_storage('cypht_upgrade_alert_dismissed') !== '1') {
$("#cypht-upgrade-alert").addClass("show");
} else {
$("#cypht-upgrade-alert").addClass("hide");
}
})

4 changes: 2 additions & 2 deletions modules/developer/setup.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
/* info page */
setup_base_page('info', 'core');
add_handler('info', 'process_server_info', true, 'developer', 'load_user_data', 'after');
add_output('info', 'info_heading', true, 'developer', 'content_section_start', 'after');
add_output('info', 'info_heading', true, 'developer', 'version_upgrade_checker', 'after');
add_output('info', 'server_information', true, 'developer', 'info_heading', 'after');
add_output('info', 'server_status_start', true, 'developer', 'server_information', 'after');
add_output('info', 'server_status_end', true, 'developer', 'server_status_start', 'after');
Expand All @@ -26,7 +26,7 @@

/* developer docs */
setup_base_page('dev', 'core');
add_output('dev', 'dev_content', true, 'developer', 'content_section_start', 'after');
add_output('dev', 'dev_content', true, 'developer', 'version_upgrade_checker', 'after');

/* add pages */
return array(
Expand Down
4 changes: 2 additions & 2 deletions modules/highlights/setup.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
add_handler('highlights', 'load_feeds_from_config', true, 'feeds', 'load_user_data', 'after');
add_handler('highlights', 'highlight_process_form', true, 'highlights', 'language', 'after');
add_handler('highlights', 'highlight_page_data', true, 'highlights', 'highlight_process_form', 'after');
add_output('highlights', 'highlight_config_page', true, 'highlights', 'content_section_start', 'after');
add_output('highlights', 'highlight_config_page', true, 'highlights', 'version_upgrade_checker', 'after');

add_handler('message_list', 'highlight_list_data', true, 'highlights', 'load_user_data', 'after');
add_output('message_list', 'highlight_css', true, 'highlights', 'content_section_start', 'before');
add_output('message_list', 'highlight_css', true, 'highlights', 'version_upgrade_checker', 'before');

add_output('ajax_hm_folders', 'highlight_link', true, 'highlights', 'settings_save_link', 'after');

Expand Down
2 changes: 1 addition & 1 deletion modules/history/setup.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

setup_base_page('history', 'core');
add_handler('history', 'load_message_history', true, 'history', 'save_user_data', 'before');
add_output('history', 'history_heading', true, 'history', 'content_section_start', 'after');
add_output('history', 'history_heading', true, 'history', 'version_upgrade_checker', 'after');
add_output('history', 'history_content', true, 'history', 'history_heading', 'after');
add_output('history', 'history_footer', true, 'history', 'history_content', 'after');

Expand Down
4 changes: 2 additions & 2 deletions modules/imap_folders/setup.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
setup_base_page('folders', 'core');
add_handler('folders', 'folders_server_id', true, 'imap_folders', 'load_user_data', 'after');
add_handler('folders', 'special_folders', true, 'imap_folders', 'folders_server_id', 'after');
add_output('folders', 'folders_content_start', true, 'imap_folders', 'content_section_start', 'after');
add_output('folders', 'folders_content_start', true, 'imap_folders', 'version_upgrade_checker', 'after');
add_output('folders', 'folders_server_select', true, 'imap_folders', 'folders_folder_subscription_button', 'after');
add_output('folders', 'folders_create_dialog', true, 'imap_folders', 'folders_server_select', 'after');
add_output('folders', 'folders_rename_dialog', true, 'imap_folders', 'folders_create_dialog', 'after');
Expand Down Expand Up @@ -79,7 +79,7 @@
add_handler('folders_subscription', 'folders_server_id', true, 'imap_folders', 'load_user_data', 'after');
add_handler('folders_subscription', 'special_folders', true, 'imap_folders', 'folders_server_id', 'after');
add_handler('folders_subscription', 'get_only_subscribed_folders_setting', true, 'imap_folders');
add_output('folders_subscription', 'folders_subscription_content_start', true, 'imap_folders', 'content_section_start', 'after');
add_output('folders_subscription', 'folders_subscription_content_start', true, 'imap_folders', 'version_upgrade_checker', 'after');
add_output('folders_subscription', 'folders_server_select', true, 'imap_folders', 'folders_subscription_content_start', 'after');
add_output('folders_subscription', 'folders_folder_subscription', true, 'imap_folders', 'folders_server_select', 'after');

Expand Down
2 changes: 1 addition & 1 deletion modules/keyboard_shortcuts/setup.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
setup_base_page('shortcuts', 'core');
add_handler('shortcuts', 'load_edit_id', true, 'keyboard_shortcuts', 'load_keyboard_shortcuts', 'after');
add_handler('shortcuts', 'process_edit_shortcut', true, 'keyboard_shortcuts', 'load_edit_id', 'after');
add_output('shortcuts', 'start_shortcuts_page', true, 'keyboard_shortcuts', 'content_section_start', 'after');
add_output('shortcuts', 'start_shortcuts_page', true, 'keyboard_shortcuts', 'version_upgrade_checker', 'after');
add_output('shortcuts', 'shortcut_edit_form', true, 'keyboard_shortcuts', 'start_shortcuts_page', 'after');
add_output('shortcuts', 'shortcuts_content', true, 'keyboard_shortcuts', 'shortcut_edit_form', 'after');

Expand Down
2 changes: 1 addition & 1 deletion modules/nasa/setup.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
/* APOD display */
setup_base_page('nasa_apod', 'core');
add_handler('nasa_apod', 'fetch_apod_content', true, 'nasa', 'http_headers', 'after');
add_output('nasa_apod', 'apod_content', true, 'nasa', 'content_section_start', 'after');
add_output('nasa_apod', 'apod_content', true, 'nasa', 'version_upgrade_checker', 'after');

/* folder list entry */
add_handler('ajax_hm_folders', 'nasa_folder_data', true, 'nasa', 'load_user_data', 'after');
Expand Down
2 changes: 1 addition & 1 deletion modules/pgp/setup.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
add_handler('pgp', 'pgp_delete_public_key', true, 'pgp', 'http_headers', 'after');
add_handler('pgp', 'pgp_import_public_key', true, 'pgp', 'pgp_delete_public_key', 'after');
add_handler('pgp', 'load_pgp_data', true, 'pgp', 'pgp_import_public_key', 'after');
add_output('pgp', 'pgp_settings_start', true, 'pgp', 'content_section_start', 'after');
add_output('pgp', 'pgp_settings_start', true, 'pgp', 'version_upgrade_checker', 'after');
add_output('pgp', 'pgp_settings_public_keys', true, 'pgp', 'pgp_settings_start', 'after');
add_output('pgp', 'pgp_settings_private_key', true, 'pgp', 'pgp_settings_public_keys', 'after');
add_output('pgp', 'pgp_settings_end', true, 'pgp', 'pgp_settings_private_key', 'after');
Expand Down
2 changes: 1 addition & 1 deletion modules/profiles/setup.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
add_handler('profiles', 'profile_edit_data', true, 'profiles', 'profile_data', 'after');
add_handler('profiles', 'process_profile_delete', true, 'profiles', 'profile_data', 'after');
add_handler('profiles', 'process_profile_update', true, 'profiles', 'process_profile_delete', 'after');
add_output('profiles', 'profile_edit_form', true, 'profiles', 'content_section_start', 'after');
add_output('profiles', 'profile_edit_form', true, 'profiles', 'version_upgrade_checker', 'after');
add_output('profiles', 'profile_content', true, 'profiles', 'profile_edit_form', 'after');

add_handler('folders', 'load_default_server_from_profiles', true, 'profiles', 'folders_server_id', 'before');
Expand Down
2 changes: 1 addition & 1 deletion modules/recover_settings/setup.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
setup_base_page('recover_settings', 'core');
add_handler('recover_settings', 'reload_folder_cookie', true, 'core', 'save_user_data', 'after');
add_handler('recover_settings', 'process_recover_settings_form', true, 'recover_settings', 'load_user_data', 'after');
add_output('recover_settings', 'recover_settings_page', true, 'recover_settings', 'content_section_start', 'after');
add_output('recover_settings', 'recover_settings_page', true, 'recover_settings', 'version_upgrade_checker', 'after');

add_module_to_all_pages('handler', 'check_for_lost_settings', true, 'recover_settings', 'load_user_data', 'after');
add_handler('ajax_hm_folders', 'check_for_lost_settings', true, 'recover_settings', 'load_user_data', 'after');
Expand Down
4 changes: 2 additions & 2 deletions modules/sievefilters/setup.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
add_handler('ajax_imap_debug', 'sieve_connect', true, 'imap', 'imap_connect', 'after');

// sieve filter
add_output('sieve_filters', 'sievefilters_settings_start', true, 'sievefilters', 'content_section_start', 'after');
add_output('sieve_filters', 'sievefilters_settings_start', true, 'sievefilters', 'version_upgrade_checker', 'after');
add_output('ajax_hm_folders', 'sievefilters_settings_link', true, 'sievefilters', 'settings_menu_end', 'before');
setup_base_ajax_page('ajax_account_sieve_filters', 'core');
add_handler('ajax_account_sieve_filters', 'settings_load_imap', true, 'sievefilters', 'load_user_data', 'after');
Expand All @@ -28,7 +28,7 @@
add_output('ajax_account_sieve_filters', 'check_filter_status', true, 'sievefilters');

// block list
add_output('block_list', 'blocklist_settings_start', true, 'sievefilters', 'content_section_start', 'after');
add_output('block_list', 'blocklist_settings_start', true, 'sievefilters', 'version_upgrade_checker', 'after');
setup_base_ajax_page('ajax_block_account_sieve_filters', 'core');
add_handler('ajax_block_account_sieve_filters', 'settings_load_imap', true, 'sievefilters', 'load_user_data', 'after');
add_handler('ajax_block_account_sieve_filters', 'load_behaviour', true, 'sievefilters', 'settings_load_imap', 'after');
Expand Down
2 changes: 1 addition & 1 deletion modules/smtp/setup.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
add_handler('compose', 'load_smtp_servers_from_config', true, 'smtp', 'load_smtp_reply_to_details', 'after');
add_handler('compose', 'add_smtp_servers_to_page_data', true, 'smtp', 'load_smtp_servers_from_config', 'after');
add_handler('compose', 'process_compose_form_submit', true, 'smtp', 'load_smtp_servers_from_config', 'after');
add_output('compose', 'compose_title', true, 'smtp', 'content_section_start', 'after');
add_output('compose', 'compose_title', true, 'smtp', 'version_upgrade_checker', 'after');
add_output('compose', 'compose_form_start', true, 'smtp', 'compose_title', 'after');
add_output('compose', 'compose_form_draft_list', true, 'smtp', 'compose_form_start', 'before');
add_output('compose', 'compose_form_content', true, 'smtp', 'compose_form_start', 'after');
Expand Down
2 changes: 1 addition & 1 deletion modules/tags/setup.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
output_source('tags');

setup_base_page('tags');
add_output('tags', 'tags_heading', true, 'core', 'content_section_start', 'after');
add_output('tags', 'tags_heading', true, 'core', 'version_upgrade_checker', 'after');
add_output('tags', 'tags_tree', true, 'core', 'tags_heading', 'after');
add_output('tags', 'tags_form', true, 'core', 'tags_tree', 'after');

Expand Down
Loading
Loading