Skip to content

ResetDefaultSettings

OllisGit edited this page Jul 14, 2020 · 8 revisions

Reset-Buttons

Steps needed

  1. Copy ResetSettingsUtilsV2.js from one of my Repositories to static/js/ (always use the latest version)
  2. Include ResetSettingsUtilsV2.js to def get_assets(self)
  3. Add "reset-action" as API-Call
import flask
...

# add in Contructor 
octoprint.plugin.SimpleApiPlugin,
...

    # to allow the frontend to trigger an update
    def on_api_get(self, request):
        if len(request.values) != 0:
            action = request.values["action"]
            
            # deceide if you want the reset function in you settings dialog 
            if "isResetSettingsEnabled" == action:
                return flask.jsonify(enabled="true")

            if "resetSettings" == action:
                self._settings.set([], self.get_settings_defaults())
                self._settings.save()
                return flask.jsonify(self.get_settings_defaults())
  1. Assign default values after reset to the ViewModel in your JavaScript
        var PLUGIN_ID = "AutostartPrint"; // from setup.py plugin_identifier       

        self.onBeforeBinding = function() {
            // assign current pluginSettings
            self.pluginSettings = self.settingsViewModel.settings.plugins[PLUGIN_ID];

            // resetSettings-Stuff
             new ResetSettingsUtilV2(self.pluginSettings).assignResetSettingsFeature(PLUGIN_ID, function(data){
                // no additional reset function needed in V2
             });
        });