diff --git a/languages/en_CA.json b/languages/en_CA.json index 5928c8f8..b0008640 100644 --- a/languages/en_CA.json +++ b/languages/en_CA.json @@ -522,6 +522,7 @@ "Delete Monitor State?": "Delete Monitor State", "deleteMonitorStateText1": "Do you want to delete this Monitor States Preset? The monitor configurations associated cannot be recovered.", "deleteMonitorStateText2": "Do you want to delete this Monitor's Preset?", + "undoAllUnsaveChanges": "Are you sure you want to do this? This will undo all unsaved changes.", "monitorStatesError": "Monitor Presets Error", "monitorStateNotEnoughChanges": "You need to make a change in your monitor configuration before attempting to add it to a Preset.", "Search Images": "Search Images", diff --git a/web/libs/css/dash2.basic.css b/web/libs/css/dash2.basic.css index 7a3e71fb..803f9888 100644 --- a/web/libs/css/dash2.basic.css +++ b/web/libs/css/dash2.basic.css @@ -443,6 +443,9 @@ ul.msg_list li .message { .text-white { color: #fff!important; } +.cursor-pointer { + cursor: pointer!important; +} /* Start of custom table sorter */ .table .table-header-sorter { cursor: pointer; diff --git a/web/libs/js/dash2.monitoredit.js b/web/libs/js/dash2.monitoredit.js index ee78dc73..349b9218 100644 --- a/web/libs/js/dash2.monitoredit.js +++ b/web/libs/js/dash2.monitoredit.js @@ -977,11 +977,11 @@ monitorEditorWindow.find('.monitor-section-header').click(function(e){ } }) html += `
  • - + ${preset.name}   - ${hasSelectedMonitor ? `
      ${$.ccio.init('jsontoblock',humanizedMonitorKeys)}
    ` : ''} + ${hasSelectedMonitor ? `
      ${$.ccio.init('jsontoblock',humanizedMonitorKeys)}
    ` : ''}
    - + @@ -1117,6 +1117,23 @@ monitorEditorWindow.find('.monitor-section-header').click(function(e){ } }) } + var loadMonitorPartialFromPreset = function(preset,monitorId){ + $.confirm.create({ + title: lang['Import Monitor Configuration'], + body: lang.undoAllUnsaveChanges, + clickOptions: { + title: 'Import', + class: 'btn-primary' + }, + clickCallback: function(){ + var monitorConfigPartial = preset.details.monitors.find(monitor => monitor.mid === monitorId) || {}; + var copyCurrentConfig = $.ccio.init('cleanMon',$.ccio.mon[$user.ke+monitorId+$user.auth_token]) + copyCurrentConfig.details = $.parseJSON(copyCurrentConfig.details) + var monitorObjectToLoad = mergeDeep(copyCurrentConfig,monitorConfigPartial); + $.aM.import(monitorObjectToLoad) + } + }) + } loadPresets() monSectionPresets.find('.add-new').click(function(){ addNewPreset() @@ -1125,6 +1142,14 @@ monitorEditorWindow.find('.monitor-section-header').click(function(e){ var presetName = $(this).parents('[preset-name]').attr('preset-name') deletePreset(presetName) }) + monSectionPresets.on('click','.import-monitor-preset',function(e){ + e.preventDefault() + var presetName = $(this).parents('[preset-name]').attr('preset-name') + var preset = loadedPresets[presetName] + var currentMonitorInEditor = getSelectedMonitorInfo() + loadMonitorPartialFromPreset(preset,currentMonitorInEditor.mid) + return false + }) monitorPresetsSelection.on('change','.mdl-switch__input',function(){ var el = $(this) var name = el.val()