aboutsummaryrefslogtreecommitdiff
path: root/bootstrap/comments/api/frontends/latest/constructor.js
diff options
context:
space:
mode:
Diffstat (limited to 'bootstrap/comments/api/frontends/latest/constructor.js')
-rw-r--r--bootstrap/comments/api/frontends/latest/constructor.js79
1 files changed, 79 insertions, 0 deletions
diff --git a/bootstrap/comments/api/frontends/latest/constructor.js b/bootstrap/comments/api/frontends/latest/constructor.js
new file mode 100644
index 0000000..32c1880
--- /dev/null
+++ b/bootstrap/comments/api/frontends/latest/constructor.js
@@ -0,0 +1,79 @@
+// @licstart The following is the entire license notice for the
+// JavaScript code in this page.
+//
+// Copyright (C) 2018 Jacob Barkdull
+// This file is part of HashOver.
+//
+// HashOver is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// HashOver is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with HashOver. If not, see <http://www.gnu.org/licenses/>.
+//
+// @licend The above is the entire license notice for the
+// JavaScript code in this page.
+
+"use strict";
+
+// Latest comments API frontend constructor (constructor.js)
+function HashOverLatest (options)
+{
+ // Reference to this HashOver object
+ var hashover = this;
+
+ // Backend queries
+ if (options && options.thread !== undefined) {
+ var queries = ['thread=' + encodeURIComponent (options.thread)];
+ } else {
+ var queries = [];
+ }
+
+ // Backend request path
+ var requestPath = '/latestajax';
+
+ // Handle backend request
+ this.ajax ('POST', requestPath, queries, function (json) {
+ // Handle error messages
+ if (json.message !== undefined) {
+ hashover.displayError (json, 'hashover-widget');
+ return;
+ }
+
+ // Locales from HashOver backend
+ HashOverLatest.prototype.locale = json.locale;
+
+ // Setup information from HashOver back-end
+ HashOverLatest.prototype.setup = json.setup;
+
+ // UI HTML from HashOver back-end
+ HashOverLatest.prototype.ui = json.ui;
+
+ // Thread information from HashOver back-end
+ hashover.instance = json.instance;
+
+ // Backend execution time and memory usage statistics
+ hashover.statistics = json.statistics;
+
+ // Initiate HashOver latest comments
+ hashover.init ();
+ }, true);
+
+ // Add parent proterty to all prototype objects
+ for (var name in this) {
+ var value = this[name];
+
+ if (value && value.constructor === Object) {
+ value.parent = this;
+ }
+ }
+};
+
+// Constructor to add HashOver methods to
+var HashOverConstructor = HashOverLatest;