mirror of
https://github.com/rr-/szurubooru.git
synced 2025-07-17 08:26:24 +00:00
Added frontend outline
This commit is contained in:
48
public_html/js/State.js
Normal file
48
public_html/js/State.js
Normal file
@ -0,0 +1,48 @@
|
||||
var App = App || {};
|
||||
|
||||
App.State = function() {
|
||||
|
||||
var properties = {};
|
||||
var observers = {};
|
||||
|
||||
function get(key) {
|
||||
return properties[key];
|
||||
};
|
||||
|
||||
function set(key, value) {
|
||||
properties[key] = value;
|
||||
if (key in observers) {
|
||||
for (observerName in observers[key]) {
|
||||
if (observers[key].hasOwnProperty(observerName)) {
|
||||
observers[key][observerName](key, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function startObserving(key, observerName, callback) {
|
||||
if (!(key in observers))
|
||||
observers[key] = {};
|
||||
if (!(observerName in observers[key]))
|
||||
observers[key][observerName] = {};
|
||||
observers[key][observerName] = callback;
|
||||
};
|
||||
|
||||
function stopObserving(key, observerName) {
|
||||
if (!(key in observers))
|
||||
return;
|
||||
if (!(observerName in observers[key]))
|
||||
return;
|
||||
delete observers[key][observerName];
|
||||
};
|
||||
|
||||
return {
|
||||
get: get,
|
||||
set: set,
|
||||
startObserving: startObserving,
|
||||
stopObserving: stopObserving,
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
App.DI.registerSingleton('appState', App.State);
|
Reference in New Issue
Block a user