diff options
| -rw-r--r-- | ext/bg/js/options.js | 4 | ||||
| -rw-r--r-- | ext/bg/js/settings/backup.js | 22 | ||||
| -rw-r--r-- | ext/bg/settings.html | 31 | 
3 files changed, 57 insertions, 0 deletions
| diff --git a/ext/bg/js/options.js b/ext/bg/js/options.js index 1650cea9..84e74bd8 100644 --- a/ext/bg/js/options.js +++ b/ext/bg/js/options.js @@ -488,3 +488,7 @@ function optionsSave(options) {          });      });  } + +function optionsGetDefault() { +    return optionsUpdateVersion({}, {}); +} diff --git a/ext/bg/js/settings/backup.js b/ext/bg/js/settings/backup.js index 1e099288..d278b718 100644 --- a/ext/bg/js/settings/backup.js +++ b/ext/bg/js/settings/backup.js @@ -339,10 +339,32 @@ function _onSettingsImportFileChange(e) {  } +// Resetting + +function _onSettingsResetClick() { +    $('#settings-reset-modal').modal('show'); +} + +async function _onSettingsResetConfirmClick() { +    $('#settings-reset-modal').modal('hide'); + +    // Get default options +    const optionsFull = optionsGetDefault(); + +    // Assign options +    await _settingsImportSetOptionsFull(optionsFull); + +    // Reload settings page +    window.location.reload(); +} + +  // Setup  window.addEventListener('DOMContentLoaded', () => {      document.querySelector('#settings-export').addEventListener('click', _onSettingsExportClick, false);      document.querySelector('#settings-import').addEventListener('click', _onSettingsImportClick, false);      document.querySelector('#settings-import-file').addEventListener('change', _onSettingsImportFileChange, false); +    document.querySelector('#settings-reset').addEventListener('click', _onSettingsResetClick, false); +    document.querySelector('#settings-reset-modal-confirm').addEventListener('click', _onSettingsResetConfirmClick, false);  }, false); diff --git a/ext/bg/settings.html b/ext/bg/settings.html index 56b5610e..4c973674 100644 --- a/ext/bg/settings.html +++ b/ext/bg/settings.html @@ -867,6 +867,7 @@                  <div>                      <button class="btn btn-default" id="settings-export">Export Settings</button>                      <button class="btn btn-default" id="settings-import">Import Settings</button> +                    <button class="btn btn-danger" id="settings-reset">Reset Default Settings</button>                  </div>                  <div hidden><input type="file" id="settings-import-file" accept=".json,application/json"></div> @@ -916,6 +917,36 @@                          </div>                      </div>                  </div> + +                <div class="modal fade" tabindex="-1" role="dialog" id="settings-reset-modal"> +                    <div class="modal-dialog modal-dialog-centered"> +                        <div class="modal-content"> +                            <div class="modal-header"> +                                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> +                                <h4 class="modal-title">Settings Reset</h4> +                            </div> +                            <div class="modal-body"> +                                <p class="text-danger"> +                                    You are about to reset all Yomichan settings back to their default values. +                                    This will delete all custom profiles you may have created. +                                    <strong>This action cannot be undone.</strong> +                                </p> +                                <p> +                                    Consider making a backup using the "Export Settings" button before resetting +                                    if you want to be able to revert. +                                </p> +                                <p> +                                    Dictionary data will not be deleted, but any installed dictionaries +                                    will need to be re-enabled. +                                </p> +                            </div> +                            <div class="modal-footer"> +                                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> +                                <button type="button" class="btn btn-danger" id="settings-reset-modal-confirm">Reset All Settings</button> +                            </div> +                        </div> +                    </div> +                </div>              </div>              <div> |