(function () { var ns = $.namespace("pskl.controller.settings"); ns.ApplicationSettingsController = function () {}; ns.ApplicationSettingsController.prototype.init = function() { this.backgroundContainer = document.querySelector('.background-picker-wrapper'); this.backgroundContainer.addEventListener('click', this.onBackgroundClick_.bind(this)); // Highlight selected background : var background = pskl.UserSettings.get(pskl.UserSettings.CANVAS_BACKGROUND); var selectedBackground = this.backgroundContainer.querySelector('[data-background=' + background + ']'); if (selectedBackground) { selectedBackground.classList.add('selected'); } // Grid display and size var gridWidth = pskl.UserSettings.get(pskl.UserSettings.GRID_WIDTH); var gridSelect = document.querySelector('.grid-width-select'); var selectedOption = gridSelect.querySelector('option[value="'+gridWidth+'"]'); if (selectedOption) { selectedOption.setAttribute('selected', 'selected'); } gridSelect.addEventListener('change', this.onGridWidthChange_.bind(this)); }; ns.ApplicationSettingsController.prototype.onGridWidthChange_ = function (evt) { var width = $('#grid-width').val(); pskl.UserSettings.set(pskl.UserSettings.GRID_WIDTH, parseInt(width, 10)); }; ns.ApplicationSettingsController.prototype.onBackgroundClick_ = function (evt) { var target = evt.target; var background = target.dataset.background; if (background) { pskl.UserSettings.set(pskl.UserSettings.CANVAS_BACKGROUND, background); var selected = this.backgroundContainer.querySelector('.selected'); if (selected) { selected.classList.remove('selected'); } target.classList.add('selected'); } }; })();