mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 02:16:05 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			152 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			152 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const settings = (function() {
 | |
|     const dialogEl = $("#settings-dialog");
 | |
|     const tabsEl = $("#settings-tabs");
 | |
| 
 | |
|     const settingModules = [];
 | |
| 
 | |
|     function addModule(module) {
 | |
|         settingModules.push(module);
 | |
|     }
 | |
| 
 | |
|     async function showDialog() {
 | |
|         const settings = await $.ajax({
 | |
|             url: baseApiUrl + 'settings',
 | |
|             type: 'GET',
 | |
|             error: () => error("Error getting settings.")
 | |
|         });
 | |
| 
 | |
|         dialogEl.dialog({
 | |
|             modal: true,
 | |
|             width: 600
 | |
|         });
 | |
| 
 | |
|         tabsEl.tabs();
 | |
| 
 | |
|         for (module of settingModules) {
 | |
|             module.settingsLoaded(settings);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     function saveSettings(settingName, settingValue) {
 | |
|         return $.ajax({
 | |
|             url: baseApiUrl + 'settings',
 | |
|             type: 'POST',
 | |
|             data: JSON.stringify({
 | |
|                 name: settingName,
 | |
|                 value: settingValue
 | |
|             }),
 | |
|             contentType: "application/json",
 | |
|             success: () => {
 | |
|                 message("Settings change have been saved.");
 | |
|             },
 | |
|             error: () => alert("Error occurred during saving settings change.")
 | |
|         });
 | |
|     }
 | |
| 
 | |
|     return {
 | |
|         showDialog,
 | |
|         saveSettings,
 | |
|         addModule
 | |
|     };
 | |
| })();
 | |
| 
 | |
| settings.addModule((function() {
 | |
|     const formEl = $("#change-password-form");
 | |
|     const oldPasswordEl = $("#old-password");
 | |
|     const newPassword1El = $("#new-password1");
 | |
|     const newPassword2El = $("#new-password2");
 | |
| 
 | |
|     function settingsLoaded(settings) {
 | |
|     }
 | |
| 
 | |
|     formEl.submit(() => {
 | |
|         const oldPassword = oldPasswordEl.val();
 | |
|         const newPassword1 = newPassword1El.val();
 | |
|         const newPassword2 = newPassword2El.val();
 | |
| 
 | |
|         oldPasswordEl.val('');
 | |
|         newPassword1El.val('');
 | |
|         newPassword2El.val('');
 | |
| 
 | |
|         if (newPassword1 !== newPassword2) {
 | |
|             alert("New passwords are not the same.");
 | |
|             return false;
 | |
|         }
 | |
| 
 | |
|         $.ajax({
 | |
|             url: baseApiUrl + 'password/change',
 | |
|             type: 'POST',
 | |
|             data: JSON.stringify({
 | |
|                 'current_password': oldPassword,
 | |
|                 'new_password': newPassword1
 | |
|             }),
 | |
|             contentType: "application/json",
 | |
|             success: result => {
 | |
|                 if (result.success) {
 | |
|                     // encryption password changed so current encryption session is invalid and needs to be cleared
 | |
|                     resetEncryptionSession();
 | |
| 
 | |
|                     glob.encryptedDataKey = result.new_encrypted_data_key;
 | |
| 
 | |
|                     alert("Password has been changed.");
 | |
| 
 | |
|                     $("#settings-dialog").dialog('close');
 | |
|                 }
 | |
|                 else {
 | |
|                     alert(result.message);
 | |
|                 }
 | |
|             },
 | |
|             error: () => alert("Error occurred during changing password.")
 | |
|         });
 | |
| 
 | |
|         return false;
 | |
|     });
 | |
| 
 | |
|     return {
 | |
|         settingsLoaded
 | |
|     };
 | |
| })());
 | |
| 
 | |
| settings.addModule((function() {
 | |
|     const formEl = $("#encryption-timeout-form");
 | |
|     const encryptionTimeoutEl = $("#encryption-timeout-in-seconds");
 | |
|     const settingName = 'encryption_session_timeout';
 | |
| 
 | |
|     function settingsLoaded(settings) {
 | |
|         encryptionTimeoutEl.val(settings[settingName]);
 | |
|     }
 | |
| 
 | |
|     formEl.submit(() => {
 | |
|         const encryptionTimeout = encryptionTimeoutEl.val();
 | |
| 
 | |
|         settings.saveSettings(settingName, encryptionTimeout).then(() => {
 | |
|             glob.encryptionSessionTimeout = encryptionTimeout;
 | |
|         });
 | |
| 
 | |
|         return false;
 | |
|     });
 | |
| 
 | |
|     return {
 | |
|         settingsLoaded
 | |
|     };
 | |
| })());
 | |
| 
 | |
| settings.addModule((function () {
 | |
|     const formEl = $("#history-snapshot-time-interval-form");
 | |
|     const timeIntervalEl = $("#history-snapshot-time-interval-in-seconds");
 | |
|     const settingName = 'history_snapshot_time_interval';
 | |
| 
 | |
|     function settingsLoaded(settings) {
 | |
|         timeIntervalEl.val(settings[settingName]);
 | |
|     }
 | |
| 
 | |
|     formEl.submit(() => {
 | |
|         settings.saveSettings(settingName, timeIntervalEl.val());
 | |
| 
 | |
|         return false;
 | |
|     });
 | |
| 
 | |
|     return {
 | |
|         settingsLoaded
 | |
|     };
 | |
| })()); |