---
src/wok/API.json | 6 +++
ui/js/src/wok.api.js | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 97 insertions(+), 0 deletions(-)
create mode 100644 src/wok/API.json
create mode 100644 ui/js/src/wok.api.js
diff --git a/src/wok/API.json b/src/wok/API.json
new file mode 100644
index 0000000..8965db9
--- /dev/null
+++ b/src/wok/API.json
@@ -0,0 +1,6 @@
+{
+ "$schema": "http://json-schema.org/draft-03/schema#",
+ "title": "Wok API",
+ "description": "Json schema for Wok API",
+ "type": "object"
+}
diff --git a/ui/js/src/wok.api.js b/ui/js/src/wok.api.js
new file mode 100644
index 0000000..93a07ad
--- /dev/null
+++ b/ui/js/src/wok.api.js
@@ -0,0 +1,91 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2013-2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+var wok = {
+
+ widget: {},
+
+ /**
+ * A wrapper of jQuery.ajax function to allow custom bindings.
+ *
+ * @param settings an extended object to jQuery Ajax settings object
+ * with some extra properties (see below)
+ *
+ * resend: if the XHR has failed due to 401, the XHR can be resent
+ * after user being authenticated successfully by setting resend
+ * to true: settings = {resend: true}. It's useful for switching
+ * pages (Guests, Templates, etc.).
+ * e.g., the user wants to list guests by clicking Guests tab,
+ * but he is told not authorized and a login window will pop up.
+ * After login, the Ajax request for /vms will be resent without
+ * user clicking the tab again.
+ * Default to false.
+ */
+ requestJSON : function(settings) {
+ settings['originalError'] = settings['error'];
+ settings['error'] = null;
+ settings['wok'] = true;
+ return $.ajax(settings);
+ },
+
+ /**
+ * Get the i18 strings.
+ */
+ getI18n: function(suc, err, url, sync) {
+ wok.requestJSON({
+ url : url ? url : 'i18n.json',
+ type : 'GET',
+ resend: true,
+ dataType : 'json',
+ async : !sync,
+ success : suc,
+ error: err
+ });
+ },
+
+ login : function(settings, suc, err) {
+ $.ajax({
+ url : "login",
+ type : "POST",
+ contentType : "application/json",
+ data : JSON.stringify(settings),
+ dataType : "json"
+ }).done(suc).fail(err);
+ },
+
+ logout : function(suc, err) {
+ wok.requestJSON({
+ url : 'logout',
+ type : 'POST',
+ contentType : "application/json",
+ dataType : "json"
+ }).done(suc).fail(err);
+ },
+
+ listPlugins : function(suc, err, sync) {
+ wok.requestJSON({
+ url : 'plugins',
+ type : 'GET',
+ contentType : 'application/json',
+ dataType : 'json',
+ resend: true,
+ async : !sync,
+ success : suc,
+ error : err
+ });
+ },
+};
--
1.7.1