Skip to content

Instantly share code, notes, and snippets.

@JamesIgoe
Last active September 4, 2018 17:00
Show Gist options
  • Save JamesIgoe/cddce9c1880b9ad305baad9c8a8788f8 to your computer and use it in GitHub Desktop.
Save JamesIgoe/cddce9c1880b9ad305baad9c8a8788f8 to your computer and use it in GitHub Desktop.
Settings Manager for Outlook Add-in, , written in JavaScript - MS code converted into reusable
var settingsManager = (function () {
"use strict";
var settingsManager = {};
var _settings;
settingsManager.initialize = function () {
//global for custom property
_settings = Office.context.roamingSettings;
settingsManager.checkPropertyValue = function (propertyToManage, value) {
var check = _settings.get(propertyToManage);
if (check == null || typeof check == 'undefined') {
this.setAddInSetting(propertyToManage, value);
check = value;
}
return check;
};
// Set a roaming setting
settingsManager.setAddInSetting = function (propertyToManage, value) {
_settings.set(propertyToManage, value);
_settings.saveAsync(saveAddInSettingsCallback);
};
// Remove an add-in setting.
settingsManager.removeAddInSetting = function (propertyToManage) {
_settings.remove(propertyToManage);
_settings.saveAsync(saveAddInSettingsCallback);
};
// Callback method after saving custom roaming settings.
function saveAddInSettingsCallback (asyncResult) {
if (asyncResult.status == Office.AsyncResultStatus.Failed) {
app.showNotification("Save Settings for" + propertyToManage, asyncResult.error.message);
}
}
};
return settingsManager;
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment