diff --git a/apimanager/api_config/apps.py b/apimanager/api_config/apps.py
deleted file mode 100644
index 72433ca..0000000
--- a/apimanager/api_config/apps.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from django.apps import AppConfig
-
-
-class ApiConfigConfig(AppConfig):
- name = 'api_config'
diff --git a/apimanager/api_config/migrations/__init__.py b/apimanager/api_config/migrations/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/apimanager/api_config/static/api_config/css/api_config.css b/apimanager/api_config/static/api_config/css/api_config.css
deleted file mode 100644
index cf59c32..0000000
--- a/apimanager/api_config/static/api_config/css/api_config.css
+++ /dev/null
@@ -1,3 +0,0 @@
-.api-config input[type="text"] {
- width: 100%;
-}
diff --git a/apimanager/api_config/templates/api_config/index.html b/apimanager/api_config/templates/api_config/index.html
deleted file mode 100644
index 790bd84..0000000
--- a/apimanager/api_config/templates/api_config/index.html
+++ /dev/null
@@ -1,35 +0,0 @@
-{% extends "base.html" %}
-{% load static %}
-
-{% block content %}
-
-
API Config
-
-
- There is no live data here!
-
-
-
-
-
-{% endblock %}
-
-
-{% block extracss %}
-
-{% endblock extracss %}
diff --git a/apimanager/api_config/urls.py b/apimanager/api_config/urls.py
deleted file mode 100644
index a20048b..0000000
--- a/apimanager/api_config/urls.py
+++ /dev/null
@@ -1,7 +0,0 @@
-from django.conf.urls import url
-
-from .views import IndexView
-
-urlpatterns = [
- url(r'^$', IndexView.as_view(), name='api-config-index'),
-]
diff --git a/apimanager/api_config/views.py b/apimanager/api_config/views.py
deleted file mode 100644
index 2ac1f85..0000000
--- a/apimanager/api_config/views.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-
-from django.contrib.auth.mixins import LoginRequiredMixin
-from django.views.generic import TemplateView
-
-
-CONFIG = {
- 'versions_disabled': ', '.join(['1.4.0', '2.0.0']),
- 'functions_disabled': ', '.join([
- 'getBank', 'getBanks', 'getAccounts', 'getAccount',
- 'getTransactions', 'getTransaction'
- ]),
- 'host': 'http://127.0.0.1:8080',
-}
-
-
-
-class IndexView(LoginRequiredMixin, TemplateView):
- template_name = "api_config/index.html"
-
- def get_context_data(self, **kwargs):
- context = super(IndexView, self).get_context_data(**kwargs)
- context.update({
- 'config': CONFIG,
- })
- return context
diff --git a/apimanager/apimanager/settings.py b/apimanager/apimanager/settings.py
index 11aac38..bc25ea8 100644
--- a/apimanager/apimanager/settings.py
+++ b/apimanager/apimanager/settings.py
@@ -50,7 +50,7 @@ INSTALLED_APPS = [
'users',
'customers',
'metrics',
- #'api_config',
+ 'config',
]
MIDDLEWARE = [
diff --git a/apimanager/apimanager/urls.py b/apimanager/apimanager/urls.py
index 87d9fe8..b50e381 100644
--- a/apimanager/apimanager/urls.py
+++ b/apimanager/apimanager/urls.py
@@ -15,5 +15,5 @@ urlpatterns = [
url(r'^users/', include('users.urls')),
url(r'^customers/', include('customers.urls')),
url(r'^metrics/', include('metrics.urls')),
- #url(r'^api_config/', include('api_config.urls')),
+ url(r'^config/', include('config.urls')),
]
diff --git a/apimanager/base/templates/base.html b/apimanager/base/templates/base.html
index 7ba0e31..6cb1b7a 100644
--- a/apimanager/base/templates/base.html
+++ b/apimanager/base/templates/base.html
@@ -35,10 +35,8 @@
Metrics
{% url "customers-create" as customers_create_url %}
Customers
- {% comment %}
- {% url "api-config-index" as api_config_index_url %}
- API Config
- {% endcomment %}
+ {% url "config-index" as config_index_url %}
+ Config
-
diff --git a/apimanager/api_config/__init__.py b/apimanager/config/__init__.py
similarity index 100%
rename from apimanager/api_config/__init__.py
rename to apimanager/config/__init__.py
diff --git a/apimanager/config/apps.py b/apimanager/config/apps.py
new file mode 100644
index 0000000..c111625
--- /dev/null
+++ b/apimanager/config/apps.py
@@ -0,0 +1,12 @@
+# -*- coding: utf-8 -*-
+"""
+App config for config app
+"""
+
+from django.apps import AppConfig
+
+
+
+class ConfigConfig(AppConfig):
+ """Config for config"""
+ name = 'config'
diff --git a/apimanager/config/static/config/css/config.css b/apimanager/config/static/config/css/config.css
new file mode 100644
index 0000000..c2c54e3
--- /dev/null
+++ b/apimanager/config/static/config/css/config.css
@@ -0,0 +1,10 @@
+#config pre {
+ overflow: auto;
+ word-wrap: normal;
+ white-space: pre;
+}
+#config .string { color: green; }
+#config .number { color: darkorange; }
+#config .boolean { color: blue; }
+#config .null { color: magenta; }
+#config .key { color: red; }
diff --git a/apimanager/config/static/config/js/config.js b/apimanager/config/static/config/js/config.js
new file mode 100644
index 0000000..fb0ea03
--- /dev/null
+++ b/apimanager/config/static/config/js/config.js
@@ -0,0 +1,25 @@
+$(document).ready(function($) {
+ function syntaxHighlight(json) {
+ if (typeof json != 'string') {
+ json = JSON.stringify(json, undefined, 2);
+ }
+ json = json.replace(/&/g, '&').replace(//g, '>');
+ return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {
+ var cls = 'number';
+ if (/^"/.test(match)) {
+ if (/:$/.test(match)) {
+ cls = 'key';
+ } else {
+ cls = 'string';
+ }
+ } else if (/true|false/.test(match)) {
+ cls = 'boolean';
+ } else if (/null/.test(match)) {
+ cls = 'null';
+ }
+ return '' + match + '';
+ });
+ }
+
+ $('#config-json').html((syntaxHighlight(ConfigJson)));
+});
diff --git a/apimanager/config/templates/config/index.html b/apimanager/config/templates/config/index.html
new file mode 100644
index 0000000..6029dae
--- /dev/null
+++ b/apimanager/config/templates/config/index.html
@@ -0,0 +1,27 @@
+{% extends 'base.html' %}
+{% load static %}
+
+{% block page_title %}{{ block.super }} / Users{% endblock page_title %}
+
+{% block content %}
+
+
Config
+
+
The configuration of the API
+
+
+
+
+{% endblock %}
+
+{% block extrajs %}
+
+
+{% endblock extrajs %}
+
+
+{% block extracss %}
+
+{% endblock extracss %}
diff --git a/apimanager/config/urls.py b/apimanager/config/urls.py
new file mode 100644
index 0000000..02f9816
--- /dev/null
+++ b/apimanager/config/urls.py
@@ -0,0 +1,14 @@
+# -*- coding: utf-8 -*-
+"""
+URLs for config app
+"""
+
+from django.conf.urls import url
+
+from .views import IndexView
+
+urlpatterns = [
+ url(r'^$',
+ IndexView.as_view(),
+ name='config-index'),
+]
diff --git a/apimanager/config/views.py b/apimanager/config/views.py
new file mode 100644
index 0000000..9563921
--- /dev/null
+++ b/apimanager/config/views.py
@@ -0,0 +1,33 @@
+# -*- coding: utf-8 -*-
+"""
+Views of config app
+"""
+
+import json
+
+from django.contrib import messages
+from django.contrib.auth.mixins import LoginRequiredMixin
+from django.views.generic import FormView, TemplateView, View
+
+from base.api import api, APIError
+
+
+
+
+class IndexView(LoginRequiredMixin, TemplateView):
+ """Index view for config"""
+ template_name = "config/index.html"
+
+ def get_context_data(self, **kwargs):
+ context = super(IndexView, self).get_context_data(**kwargs)
+ try:
+ urlpath = '/config'
+ config = api.get(self.request, urlpath)
+ except APIError as err:
+ messages.error(self.request, err)
+ config = {}
+
+ context.update({
+ 'config_json': json.dumps(config, indent=4),
+ })
+ return context