1
0
mirror of https://github.com/dkmstr/openuds.git synced 2025-01-10 01:17:59 +03:00

Advancing with very basic aspects of administration/REST api

This commit is contained in:
Adolfo Gómez 2013-11-14 11:17:07 +00:00
parent 6e0511add3
commit d68822eaf7
29 changed files with 836 additions and 383 deletions

View File

@ -11,7 +11,9 @@ encoding//src/server/urls.py=utf-8
encoding//src/uds/REST/__init__.py=utf-8 encoding//src/uds/REST/__init__.py=utf-8
encoding//src/uds/REST/handlers.py=utf-8 encoding//src/uds/REST/handlers.py=utf-8
encoding//src/uds/REST/methods/authentication.py=utf-8 encoding//src/uds/REST/methods/authentication.py=utf-8
encoding//src/uds/REST/methods/authenticators.py=utf-8
encoding//src/uds/REST/methods/providers.py=utf-8 encoding//src/uds/REST/methods/providers.py=utf-8
encoding//src/uds/REST/mixins.py=utf-8
encoding//src/uds/REST/processors.py=utf-8 encoding//src/uds/REST/processors.py=utf-8
encoding//src/uds/__init__.py=utf-8 encoding//src/uds/__init__.py=utf-8
encoding//src/uds/admin/urls.py=utf-8 encoding//src/uds/admin/urls.py=utf-8

View File

@ -0,0 +1,77 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy as _
from uds.models import Authenticator
from uds.core import auths
from uds.REST import Handler, HandlerError
from uds.REST.mixins import ModelHandlerMixin, ModelTypeHandlerMixin, ModelTableHandlerMixin
import logging
logger = logging.getLogger(__name__)
# Enclosed methods under /auth path
class Authenticators(ModelHandlerMixin, Handler):
model = Authenticator
def item_as_dict(self, auth):
type_ = auth.getType()
return { 'id': auth.id,
'name': auth.name,
'users_count': auth.users.count(),
'type': type_.type(),
'comments': auth.comments,
'type_name': type_.name(),
}
class Types(ModelTypeHandlerMixin, Handler):
path = 'authenticators'
model = Authenticator
def enum_types(self):
return auths.factory().providers().values()
class TableInfo(ModelTableHandlerMixin, Handler):
path = 'authenticators'
title = _('Current authenticators')
fields = [
{ 'name': {'title': _('Name'), 'visible': True } },
{ 'comments': {'title': _('Comments')}},
{ 'users_count': {'title': _('Users'), 'type': 'numeric', 'width': '5em'}}
]

View File

@ -32,48 +32,44 @@
''' '''
from __future__ import unicode_literals from __future__ import unicode_literals
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext, ugettext_lazy as _
from uds.models import Provider from uds.models import Provider
from uds.core import services from uds.core import services
from uds.REST import Handler, HandlerError from uds.REST import Handler, HandlerError
from uds.REST.mixins import ModelHandlerMixin, ModelTypeHandlerMixin, ModelTableHandlerMixin
import logging import logging
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
# Enclosed methods under /auth path
class Providers(Handler): class Providers(ModelHandlerMixin, Handler):
authenticated = True # Public method model = Provider
def provider_item(self, provider): def item_as_dict(self, provider):
type_ = provider.getType() type_ = provider.getType()
return { 'id': provider.id, return { 'id': provider.id,
'name': provider.name, 'name': provider.name,
'services_count': provider.services.count(), 'services_count': provider.services.count(),
'type': type_.type(), 'type': type_.type(),
'comments': provider.comments,
'type_name': type_.name(), 'type_name': type_.name(),
} }
def getProviders(self, *args, **kwargs): class Types(ModelTypeHandlerMixin, Handler):
for provider in Provider.objects.filter(*args, **kwargs):
yield self.provider_item(provider)
def get(self):
logger.error('getting providers')
return list(self.getProviders())
class Types(Handler):
path = 'providers' path = 'providers'
model = Provider
def get(self): def enum_types(self):
res = [] return services.factory().providers().values()
for type_ in services.factory().providers().values():
val = { 'name' : _(type_.name()), class TableInfo(ModelTableHandlerMixin, Handler):
'type' : type_.type(), path = 'providers'
'description' : _(type_.description()), title = _('Current service providers')
'icon' : type_.icon().replace('\n', '') } fields = [
res.append(val) { 'name': {'title': _('Name')} },
return res { 'comments': {'title': _('Comments')}},
{ 'services_count': {'title': _('Services'), 'type': 'numeric', 'width': '5em'}}
]

View File

@ -0,0 +1,123 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
from __future__ import unicode_literals
from django.utils.translation import ugettext as _
import logging
logger = logging.getLogger(__name__)
class ModelHandlerMixin(object):
'''
Basic Handler for a model
Basically we will need same operations for all models, so we can
take advantage of this fact to not repeat same code again and again...
'''
authenticated = True
needs_staff = True
model = None
def item_as_dict(self, item):
pass
def getItems(self, *args, **kwargs):
for item in self.model.objects.filter(*args, **kwargs):
yield self.item_as_dict(item)
def get(self):
logger.debug('methot GET for {0}'.format(self.__class__.__name__))
if len(self._args) == 0:
return list(self.getItems())
try:
return list(self.getItems(pk=self._args[0]))[0]
except:
return {'error': 'not found' }
class ModelTypeHandlerMixin(object):
'''
As With models, a lot of UDS model contains info about its class.
We take advantage of this for not repeating same code (as with ModelHandlerMixin)
'''
authenticated = True
needs_staff = True
model = None
def enum_types(self):
pass
def type_as_dict(self, type_):
return { 'name' : _(type_.name()),
'type' : type_.type(),
'description' : _(type_.description()),
'icon' : type_.icon().replace('\n', '')
}
def getTypes(self, *args, **kwargs):
for type_ in self.enum_types():
yield self.type_as_dict(type_)
def get(self):
return list(self.getTypes())
class ModelTableHandlerMixin(object):
authenticated = True
needs_staff = True
# Fields should have id of the field, type and length
# All options can be ommited
# Sample fields:
# fields = [
# { 'name': {'title': _('Name')} },
# { 'comments': {'title': _('Comments')}},
# { 'services_count': {'title': _('Services'), 'type': 'numeric', 'width': '5em'}}
#]
fields = []
title = ''
def get(self):
# Convert to unicode fields (ugettext_lazy needs to be rendered before passing it to Json
fields = [ { 'id' : {'visible': False } } ] # Always add id column as invisible
for f in self.fields:
for k1, v1 in f.iteritems():
dct = {}
for k2, v2 in v1.iteritems():
if type(v2) in (bool, int, long, float, unicode):
dct[k2] = v2
else:
dct[k2] = unicode(v2)
fields.append({k1: dct})
return { 'title': unicode(self.title), 'fields': fields };

View File

@ -32,7 +32,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-13 19:50+0100\n" "POT-Creation-Date: 2013-11-14 11:59+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -42,6 +42,31 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: REST/methods/authenticators.py:72
msgid "Current authenticators"
msgstr "Aktuelle Authentifikatoren"
#: REST/methods/authenticators.py:74 REST/methods/providers.py:71
msgid "Name"
msgstr "Name"
#: REST/methods/authenticators.py:75 REST/methods/providers.py:72
msgid "Comments"
msgstr "Kommentare"
#: REST/methods/authenticators.py:76
msgid "Users"
msgstr "Benutzer"
#: REST/methods/providers.py:69
msgid "Current service providers"
msgstr "Aktuelle Service-Provider"
#: REST/methods/providers.py:73 templates/uds/index.html:51
#: templates/uds/html5/index.html:68
msgid "Services"
msgstr "Dienstleistungen"
#: admin/views.py:53 admin/views.py:61 web/views.py:422 #: admin/views.py:53 admin/views.py:61 web/views.py:422
msgid "Forbidden" msgid "Forbidden"
msgstr "Verboten" msgstr "Verboten"
@ -1041,42 +1066,38 @@ msgstr ""
"Diese Seite enthält eine Liste der Downloads von verschiedenen Modulen " "Diese Seite enthält eine Liste der Downloads von verschiedenen Modulen "
"bereitgestellt" "bereitgestellt"
#: templates/uds/index.html:51 templates/uds/html5/index.html:63 #: templates/uds/index.html:70 templates/uds/html5/index.html:106
msgid "Services"
msgstr "Dienstleistungen"
#: templates/uds/index.html:70 templates/uds/html5/index.html:101
msgid "Java not found" msgid "Java not found"
msgstr "Java nicht gefunden" msgstr "Java nicht gefunden"
#: templates/uds/index.html:71 templates/uds/html5/index.html:104 #: templates/uds/index.html:71 templates/uds/html5/index.html:109
msgid "" msgid ""
"Java is not available on your browser, and the selected transport needs it." "Java is not available on your browser, and the selected transport needs it."
msgstr "" msgstr ""
"Java ist nicht verfügbar in Ihrem Browser, und der ausgewählte Transport " "Java ist nicht verfügbar in Ihrem Browser, und der ausgewählte Transport "
"muss es." "muss es."
#: templates/uds/index.html:72 templates/uds/html5/index.html:105 #: templates/uds/index.html:72 templates/uds/html5/index.html:110
msgid "Please, install latest version from" msgid "Please, install latest version from"
msgstr "Bitte installieren Sie neueste Version von" msgstr "Bitte installieren Sie neueste Version von"
#: templates/uds/index.html:72 templates/uds/html5/index.html:105 #: templates/uds/index.html:72 templates/uds/html5/index.html:110
msgid "Java website" msgid "Java website"
msgstr "Java-website" msgstr "Java-website"
#: templates/uds/index.html:72 templates/uds/html5/index.html:105 #: templates/uds/index.html:72 templates/uds/html5/index.html:110
msgid "and restart browser" msgid "and restart browser"
msgstr "und Browser neu starten" msgstr "und Browser neu starten"
#: templates/uds/index.html:78 templates/uds/html5/index.html:121 #: templates/uds/index.html:78 templates/uds/html5/index.html:126
msgid "Ip" msgid "Ip"
msgstr "IP" msgstr "IP"
#: templates/uds/index.html:79 templates/uds/html5/index.html:122 #: templates/uds/index.html:79 templates/uds/html5/index.html:127
msgid "Networks" msgid "Networks"
msgstr "Netzwerke" msgstr "Netzwerke"
#: templates/uds/index.html:80 templates/uds/html5/index.html:123 #: templates/uds/index.html:80 templates/uds/html5/index.html:128
msgid "Transports" msgid "Transports"
msgstr "Transporte" msgstr "Transporte"
@ -1140,10 +1161,6 @@ msgstr "Service-Provider"
msgid "Authenticators" msgid "Authenticators"
msgstr "Authentifikatoren" msgstr "Authentifikatoren"
#: templates/uds/admin/snippets/navbar.html:19
msgid "Os Managers"
msgstr "OS-Manager"
#: templates/uds/admin/snippets/navbar.html:20 #: templates/uds/admin/snippets/navbar.html:20
msgid "Connectivity" msgid "Connectivity"
msgstr "Konnektivität" msgstr "Konnektivität"
@ -1183,14 +1200,22 @@ msgstr "Zurück zur Liste"
msgid "Available services list" msgid "Available services list"
msgstr "Liste der verfügbaren Dienste" msgstr "Liste der verfügbaren Dienste"
#: templates/uds/html5/index.html:78 #: templates/uds/html5/index.html:83
msgid "transports" msgid "transports"
msgstr "Transporte" msgstr "Transporte"
#: templates/uds/html5/index.html:118 #: templates/uds/html5/index.html:123
msgid "Administrator info panel" msgid "Administrator info panel"
msgstr "Administrator-Info-Tafel" msgstr "Administrator-Info-Tafel"
#: templates/uds/html5/index.html:129
msgid "User Agent"
msgstr "User-Agent"
#: templates/uds/html5/index.html:130
msgid "OS"
msgstr "OS"
#: templates/uds/html5/login.html:4 templates/uds/html5/login.html.py:69 #: templates/uds/html5/login.html:4 templates/uds/html5/login.html.py:69
msgid "Welcome to UDS" msgid "Welcome to UDS"
msgstr "Willkommen bei der UDS" msgstr "Willkommen bei der UDS"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-13 19:50+0100\n" "POT-Creation-Date: 2013-11-14 11:59+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -26,58 +26,62 @@ msgstr "Erfolg auf\""
msgid "Received " msgid "Received "
msgstr "Empfangen " msgstr "Empfangen "
#: static/adm/js/gui.js:43 #: static/adm/js/gui.js:17
msgid "Name"
msgstr "Name"
#: static/adm/js/gui.js:44
msgid "Type"
msgstr "Typ"
#: static/adm/js/gui.js:45
msgid "Number of Services"
msgstr "Anzahl der Dienste"
#: static/adm/js/gui.js:48
msgid "Display _MENU_ records per page" msgid "Display _MENU_ records per page"
msgstr "_MENU_-Einträge pro Seite anzeigen" msgstr "_MENU_-Einträge pro Seite anzeigen"
#: static/adm/js/gui.js:49 #: static/adm/js/gui.js:18
msgid "Nothing found - sorry" msgid "Nothing found - sorry"
msgstr "Nichts gefunden - sorry" msgstr "Nichts gefunden - sorry"
#: static/adm/js/gui.js:50 #: static/adm/js/gui.js:19
msgid "Showing _START_ to _END_ of _TOTAL_ records" msgid "Showing record _START_ to _END_ of _TOTAL_"
msgstr "Anzeigen auf _END_ von _TOTAL_ Datensätzen _START_" msgstr "Ergebnis Rekord _START_ zu _END_ von _TOTAL_"
#: static/adm/js/gui.js:51 #: static/adm/js/gui.js:20
msgid "Showing 0 to 0 of 0 records" msgid "Showing 0 to 0 of 0 records"
msgstr "Anzeigen 0 bis 0 von 0 Einträge" msgstr "Anzeigen 0 bis 0 von 0 Einträge"
#: static/adm/js/gui.js:52 #: static/adm/js/gui.js:21
msgid "(filtered from _MAX_ total records)" msgid "(filtered from _MAX_ total records)"
msgstr "(von _MAX_ Datensätze gefiltert)" msgstr "(von _MAX_ Datensätze gefiltert)"
#: static/adm/js/gui.js:53 #: static/adm/js/gui.js:22
msgid "Please wait, processing" msgid "Please wait, processing"
msgstr "Bitte warten, Verarbeitung" msgstr "Bitte warten, Verarbeitung"
#: static/adm/js/gui.js:54 #: static/adm/js/gui.js:23
msgid "Search" msgid "Search"
msgstr "Suche" msgstr "Suche"
#: static/adm/js/gui.js:56 #: static/adm/js/gui.js:26
msgid "First" msgid "First"
msgstr "Erste" msgstr "Erste"
#: static/adm/js/gui.js:57 #: static/adm/js/gui.js:27
msgid "Last" msgid "Last"
msgstr "Letzter" msgstr "Letzter"
#: static/adm/js/gui.js:58 #: static/adm/js/gui.js:28
msgid "Next" msgid "Next"
msgstr "Nächste" msgstr "Nächste"
#: static/adm/js/gui.js:59 #: static/adm/js/gui.js:29
msgid "Previous" msgid "Previous"
msgstr "Vorherige" msgstr "Vorherige"
#: static/adm/js/gui.js:83
msgid "Connectivity"
msgstr "Konnektivität"
#: static/adm/js/gui.js:88
msgid "Deployed services"
msgstr "Bereitgestellten Dienste"
#: static/adm/js/gui.js:181
msgid "Service Providers"
msgstr "Service-Provider"
#: static/adm/js/gui.js:191
msgid "Authenticators"
msgstr "Authentifikatoren"

View File

@ -31,7 +31,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-13 19:50+0100\n" "POT-Creation-Date: 2013-11-14 11:59+0100\n"
"PO-Revision-Date: 2013-04-22 06:24+0200\n" "PO-Revision-Date: 2013-04-22 06:24+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Spanish <kde-i18n-doc@kde.org>\n" "Language-Team: Spanish <kde-i18n-doc@kde.org>\n"
@ -42,6 +42,31 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1)\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Lokalize 1.4\n" "X-Generator: Lokalize 1.4\n"
#: REST/methods/authenticators.py:72
msgid "Current authenticators"
msgstr "Autenticadores actuales"
#: REST/methods/authenticators.py:74 REST/methods/providers.py:71
msgid "Name"
msgstr "Nombre"
#: REST/methods/authenticators.py:75 REST/methods/providers.py:72
msgid "Comments"
msgstr "Comentarios"
#: REST/methods/authenticators.py:76
msgid "Users"
msgstr "Usuarios"
#: REST/methods/providers.py:69
msgid "Current service providers"
msgstr "Proveedores de servicio actuales"
#: REST/methods/providers.py:73 templates/uds/index.html:51
#: templates/uds/html5/index.html:68
msgid "Services"
msgstr "Servicios"
#: admin/views.py:53 admin/views.py:61 web/views.py:422 #: admin/views.py:53 admin/views.py:61 web/views.py:422
msgid "Forbidden" msgid "Forbidden"
msgstr "Prohibido" msgstr "Prohibido"
@ -1027,42 +1052,38 @@ msgstr ""
"Esta página contiene una lista de descargas proporcionadas por diferentes " "Esta página contiene una lista de descargas proporcionadas por diferentes "
"módulos" "módulos"
#: templates/uds/index.html:51 templates/uds/html5/index.html:63 #: templates/uds/index.html:70 templates/uds/html5/index.html:106
msgid "Services"
msgstr "Servicios"
#: templates/uds/index.html:70 templates/uds/html5/index.html:101
msgid "Java not found" msgid "Java not found"
msgstr "Java no encontrado" msgstr "Java no encontrado"
#: templates/uds/index.html:71 templates/uds/html5/index.html:104 #: templates/uds/index.html:71 templates/uds/html5/index.html:109
msgid "" msgid ""
"Java is not available on your browser, and the selected transport needs it." "Java is not available on your browser, and the selected transport needs it."
msgstr "" msgstr ""
"Java no está disponible en el navegador, y el transporte seleccionado " "Java no está disponible en el navegador, y el transporte seleccionado "
"precisa de el." "precisa de el."
#: templates/uds/index.html:72 templates/uds/html5/index.html:105 #: templates/uds/index.html:72 templates/uds/html5/index.html:110
msgid "Please, install latest version from" msgid "Please, install latest version from"
msgstr "Instale la versión mas reciente desde el" msgstr "Instale la versión mas reciente desde el"
#: templates/uds/index.html:72 templates/uds/html5/index.html:105 #: templates/uds/index.html:72 templates/uds/html5/index.html:110
msgid "Java website" msgid "Java website"
msgstr "Sitio Web de Java" msgstr "Sitio Web de Java"
#: templates/uds/index.html:72 templates/uds/html5/index.html:105 #: templates/uds/index.html:72 templates/uds/html5/index.html:110
msgid "and restart browser" msgid "and restart browser"
msgstr "y reinicie el navegador" msgstr "y reinicie el navegador"
#: templates/uds/index.html:78 templates/uds/html5/index.html:121 #: templates/uds/index.html:78 templates/uds/html5/index.html:126
msgid "Ip" msgid "Ip"
msgstr "IP" msgstr "IP"
#: templates/uds/index.html:79 templates/uds/html5/index.html:122 #: templates/uds/index.html:79 templates/uds/html5/index.html:127
msgid "Networks" msgid "Networks"
msgstr "Redes" msgstr "Redes"
#: templates/uds/index.html:80 templates/uds/html5/index.html:123 #: templates/uds/index.html:80 templates/uds/html5/index.html:128
msgid "Transports" msgid "Transports"
msgstr "Transportes" msgstr "Transportes"
@ -1126,10 +1147,6 @@ msgstr "Proveedores de servicios"
msgid "Authenticators" msgid "Authenticators"
msgstr "Autenticadores" msgstr "Autenticadores"
#: templates/uds/admin/snippets/navbar.html:19
msgid "Os Managers"
msgstr "Administradores de sistema operativo"
#: templates/uds/admin/snippets/navbar.html:20 #: templates/uds/admin/snippets/navbar.html:20
msgid "Connectivity" msgid "Connectivity"
msgstr "Conectividad" msgstr "Conectividad"
@ -1169,14 +1186,22 @@ msgstr "Volver a la lista de servicios"
msgid "Available services list" msgid "Available services list"
msgstr "Lista de servicios disponibles" msgstr "Lista de servicios disponibles"
#: templates/uds/html5/index.html:78 #: templates/uds/html5/index.html:83
msgid "transports" msgid "transports"
msgstr "transportes" msgstr "transportes"
#: templates/uds/html5/index.html:118 #: templates/uds/html5/index.html:123
msgid "Administrator info panel" msgid "Administrator info panel"
msgstr "Panel de información del administrador" msgstr "Panel de información del administrador"
#: templates/uds/html5/index.html:129
msgid "User Agent"
msgstr "Agente de usuario"
#: templates/uds/html5/index.html:130
msgid "OS"
msgstr "OS"
#: templates/uds/html5/login.html:4 templates/uds/html5/login.html.py:69 #: templates/uds/html5/login.html:4 templates/uds/html5/login.html.py:69
msgid "Welcome to UDS" msgid "Welcome to UDS"
msgstr "¡ Bienvenido a UDS" msgstr "¡ Bienvenido a UDS"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-13 19:50+0100\n" "POT-Creation-Date: 2013-11-14 11:59+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -26,58 +26,62 @@ msgstr "Éxito de\""
msgid "Received " msgid "Received "
msgstr "Recibido " msgstr "Recibido "
#: static/adm/js/gui.js:43 #: static/adm/js/gui.js:17
msgid "Name"
msgstr "Nombre"
#: static/adm/js/gui.js:44
msgid "Type"
msgstr "Tipo"
#: static/adm/js/gui.js:45
msgid "Number of Services"
msgstr "Número de servicios"
#: static/adm/js/gui.js:48
msgid "Display _MENU_ records per page" msgid "Display _MENU_ records per page"
msgstr "Pantalla _MENU_ registros por página" msgstr "Pantalla _MENU_ registros por página"
#: static/adm/js/gui.js:49 #: static/adm/js/gui.js:18
msgid "Nothing found - sorry" msgid "Nothing found - sorry"
msgstr "No encontrado - lo siento" msgstr "No encontrado - lo siento"
#: static/adm/js/gui.js:50 #: static/adm/js/gui.js:19
msgid "Showing _START_ to _END_ of _TOTAL_ records" msgid "Showing record _START_ to _END_ of _TOTAL_"
msgstr "Mostrando _START_ a _END_ de registros _TOTAL_" msgstr "Mostrando registro _START_ a _END_ de _TOTAL_"
#: static/adm/js/gui.js:51 #: static/adm/js/gui.js:20
msgid "Showing 0 to 0 of 0 records" msgid "Showing 0 to 0 of 0 records"
msgstr "Mostrando 0 a 0 de 0 registros" msgstr "Mostrando 0 a 0 de 0 registros"
#: static/adm/js/gui.js:52 #: static/adm/js/gui.js:21
msgid "(filtered from _MAX_ total records)" msgid "(filtered from _MAX_ total records)"
msgstr "(filtrado de registros total _MAX_)" msgstr "(filtrado de registros total _MAX_)"
#: static/adm/js/gui.js:53 #: static/adm/js/gui.js:22
msgid "Please wait, processing" msgid "Please wait, processing"
msgstr "Por favor espere, procesando" msgstr "Por favor espere, procesando"
#: static/adm/js/gui.js:54 #: static/adm/js/gui.js:23
msgid "Search" msgid "Search"
msgstr "Búsqueda de" msgstr "Búsqueda de"
#: static/adm/js/gui.js:56 #: static/adm/js/gui.js:26
msgid "First" msgid "First"
msgstr "Primero" msgstr "Primero"
#: static/adm/js/gui.js:57 #: static/adm/js/gui.js:27
msgid "Last" msgid "Last"
msgstr "Duran" msgstr "Duran"
#: static/adm/js/gui.js:58 #: static/adm/js/gui.js:28
msgid "Next" msgid "Next"
msgstr "Próxima" msgstr "Próxima"
#: static/adm/js/gui.js:59 #: static/adm/js/gui.js:29
msgid "Previous" msgid "Previous"
msgstr "Anterior" msgstr "Anterior"
#: static/adm/js/gui.js:83
msgid "Connectivity"
msgstr "Conectividad"
#: static/adm/js/gui.js:88
msgid "Deployed services"
msgstr "Servicios desplegados"
#: static/adm/js/gui.js:181
msgid "Service Providers"
msgstr "Proveedores de servicios"
#: static/adm/js/gui.js:191
msgid "Authenticators"
msgstr "Autenticadores"

View File

@ -32,7 +32,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-13 19:50+0100\n" "POT-Creation-Date: 2013-11-14 11:59+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -42,6 +42,31 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n"
#: REST/methods/authenticators.py:72
msgid "Current authenticators"
msgstr "Authentificateurs actuels"
#: REST/methods/authenticators.py:74 REST/methods/providers.py:71
msgid "Name"
msgstr "Nom"
#: REST/methods/authenticators.py:75 REST/methods/providers.py:72
msgid "Comments"
msgstr "Commentaires"
#: REST/methods/authenticators.py:76
msgid "Users"
msgstr "Utilisateurs"
#: REST/methods/providers.py:69
msgid "Current service providers"
msgstr "Fournisseurs de services actuels"
#: REST/methods/providers.py:73 templates/uds/index.html:51
#: templates/uds/html5/index.html:68
msgid "Services"
msgstr "Services"
#: admin/views.py:53 admin/views.py:61 web/views.py:422 #: admin/views.py:53 admin/views.py:61 web/views.py:422
msgid "Forbidden" msgid "Forbidden"
msgstr "Interdit" msgstr "Interdit"
@ -1039,42 +1064,38 @@ msgstr ""
"Cette page contient une liste de téléchargeables fournis par différents " "Cette page contient une liste de téléchargeables fournis par différents "
"modules" "modules"
#: templates/uds/index.html:51 templates/uds/html5/index.html:63 #: templates/uds/index.html:70 templates/uds/html5/index.html:106
msgid "Services"
msgstr "Services"
#: templates/uds/index.html:70 templates/uds/html5/index.html:101
msgid "Java not found" msgid "Java not found"
msgstr "Java non trouvé" msgstr "Java non trouvé"
#: templates/uds/index.html:71 templates/uds/html5/index.html:104 #: templates/uds/index.html:71 templates/uds/html5/index.html:109
msgid "" msgid ""
"Java is not available on your browser, and the selected transport needs it." "Java is not available on your browser, and the selected transport needs it."
msgstr "" msgstr ""
"Java n'est pas disponible sur votre navigateur, et le transport sélectionné " "Java n'est pas disponible sur votre navigateur, et le transport sélectionné "
"en a besoin." "en a besoin."
#: templates/uds/index.html:72 templates/uds/html5/index.html:105 #: templates/uds/index.html:72 templates/uds/html5/index.html:110
msgid "Please, install latest version from" msgid "Please, install latest version from"
msgstr "Veuillez installer une version plus récente de" msgstr "Veuillez installer une version plus récente de"
#: templates/uds/index.html:72 templates/uds/html5/index.html:105 #: templates/uds/index.html:72 templates/uds/html5/index.html:110
msgid "Java website" msgid "Java website"
msgstr "Site Web Java" msgstr "Site Web Java"
#: templates/uds/index.html:72 templates/uds/html5/index.html:105 #: templates/uds/index.html:72 templates/uds/html5/index.html:110
msgid "and restart browser" msgid "and restart browser"
msgstr "Redémarrez le navigateur" msgstr "Redémarrez le navigateur"
#: templates/uds/index.html:78 templates/uds/html5/index.html:121 #: templates/uds/index.html:78 templates/uds/html5/index.html:126
msgid "Ip" msgid "Ip"
msgstr "IP" msgstr "IP"
#: templates/uds/index.html:79 templates/uds/html5/index.html:122 #: templates/uds/index.html:79 templates/uds/html5/index.html:127
msgid "Networks" msgid "Networks"
msgstr "Réseaux" msgstr "Réseaux"
#: templates/uds/index.html:80 templates/uds/html5/index.html:123 #: templates/uds/index.html:80 templates/uds/html5/index.html:128
msgid "Transports" msgid "Transports"
msgstr "Transports" msgstr "Transports"
@ -1138,10 +1159,6 @@ msgstr "Fournisseurs de services"
msgid "Authenticators" msgid "Authenticators"
msgstr "Authentificateurs" msgstr "Authentificateurs"
#: templates/uds/admin/snippets/navbar.html:19
msgid "Os Managers"
msgstr "Gestionnaires de système d'exploitation"
#: templates/uds/admin/snippets/navbar.html:20 #: templates/uds/admin/snippets/navbar.html:20
msgid "Connectivity" msgid "Connectivity"
msgstr "Connectivité" msgstr "Connectivité"
@ -1181,14 +1198,22 @@ msgstr "Retour à la liste de services"
msgid "Available services list" msgid "Available services list"
msgstr "Liste des services disponibles" msgstr "Liste des services disponibles"
#: templates/uds/html5/index.html:78 #: templates/uds/html5/index.html:83
msgid "transports" msgid "transports"
msgstr "Transports" msgstr "Transports"
#: templates/uds/html5/index.html:118 #: templates/uds/html5/index.html:123
msgid "Administrator info panel" msgid "Administrator info panel"
msgstr "Panneau info administrateur" msgstr "Panneau info administrateur"
#: templates/uds/html5/index.html:129
msgid "User Agent"
msgstr "User Agent"
#: templates/uds/html5/index.html:130
msgid "OS"
msgstr "SYSTÈME D'EXPLOITATION"
#: templates/uds/html5/login.html:4 templates/uds/html5/login.html.py:69 #: templates/uds/html5/login.html:4 templates/uds/html5/login.html.py:69
msgid "Welcome to UDS" msgid "Welcome to UDS"
msgstr "Bienvenue à l'UDS" msgstr "Bienvenue à l'UDS"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-13 19:50+0100\n" "POT-Creation-Date: 2013-11-14 11:59+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -26,58 +26,62 @@ msgstr "Succès sur\""
msgid "Received " msgid "Received "
msgstr "Reçu " msgstr "Reçu "
#: static/adm/js/gui.js:43 #: static/adm/js/gui.js:17
msgid "Name"
msgstr "Nom"
#: static/adm/js/gui.js:44
msgid "Type"
msgstr "Type"
#: static/adm/js/gui.js:45
msgid "Number of Services"
msgstr "Nombre de Services"
#: static/adm/js/gui.js:48
msgid "Display _MENU_ records per page" msgid "Display _MENU_ records per page"
msgstr "Afficher _MENU_ enregistrements par page" msgstr "Afficher _MENU_ enregistrements par page"
#: static/adm/js/gui.js:49 #: static/adm/js/gui.js:18
msgid "Nothing found - sorry" msgid "Nothing found - sorry"
msgstr "Rien trouvé - Désolé" msgstr "Rien trouvé - Désolé"
#: static/adm/js/gui.js:50 #: static/adm/js/gui.js:19
msgid "Showing _START_ to _END_ of _TOTAL_ records" msgid "Showing record _START_ to _END_ of _TOTAL_"
msgstr "Liste des _START_ de _END_ de documents _TOTAL_" msgstr "Affichage des enregistrement _START_ à _END_ de _TOTAL_"
#: static/adm/js/gui.js:51 #: static/adm/js/gui.js:20
msgid "Showing 0 to 0 of 0 records" msgid "Showing 0 to 0 of 0 records"
msgstr "Affichage de 0 à 0 sur 0 documents" msgstr "Affichage de 0 à 0 sur 0 documents"
#: static/adm/js/gui.js:52 #: static/adm/js/gui.js:21
msgid "(filtered from _MAX_ total records)" msgid "(filtered from _MAX_ total records)"
msgstr "(filtrée de total d'enregistrements _MAX_)" msgstr "(filtrée de total d'enregistrements _MAX_)"
#: static/adm/js/gui.js:53 #: static/adm/js/gui.js:22
msgid "Please wait, processing" msgid "Please wait, processing"
msgstr "Veuillez patienter, traitement" msgstr "Veuillez patienter, traitement"
#: static/adm/js/gui.js:54 #: static/adm/js/gui.js:23
msgid "Search" msgid "Search"
msgstr "Rechercher" msgstr "Rechercher"
#: static/adm/js/gui.js:56 #: static/adm/js/gui.js:26
msgid "First" msgid "First"
msgstr "Première" msgstr "Première"
#: static/adm/js/gui.js:57 #: static/adm/js/gui.js:27
msgid "Last" msgid "Last"
msgstr "Dernière" msgstr "Dernière"
#: static/adm/js/gui.js:58 #: static/adm/js/gui.js:28
msgid "Next" msgid "Next"
msgstr "Prochaine" msgstr "Prochaine"
#: static/adm/js/gui.js:59 #: static/adm/js/gui.js:29
msgid "Previous" msgid "Previous"
msgstr "Précédent" msgstr "Précédent"
#: static/adm/js/gui.js:83
msgid "Connectivity"
msgstr "Connectivité"
#: static/adm/js/gui.js:88
msgid "Deployed services"
msgstr "Services déployés"
#: static/adm/js/gui.js:181
msgid "Service Providers"
msgstr "Fournisseurs de services"
#: static/adm/js/gui.js:191
msgid "Authenticators"
msgstr "Authentificateurs"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-13 19:50+0100\n" "POT-Creation-Date: 2013-11-14 11:59+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,6 +18,31 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: REST/methods/authenticators.py:72
msgid "Current authenticators"
msgstr "Autenticatori correnti"
#: REST/methods/authenticators.py:74 REST/methods/providers.py:71
msgid "Name"
msgstr "Nome"
#: REST/methods/authenticators.py:75 REST/methods/providers.py:72
msgid "Comments"
msgstr "Commenti"
#: REST/methods/authenticators.py:76
msgid "Users"
msgstr "Utenti"
#: REST/methods/providers.py:69
msgid "Current service providers"
msgstr "Attuali fornitori di servizi"
#: REST/methods/providers.py:73 templates/uds/index.html:51
#: templates/uds/html5/index.html:68
msgid "Services"
msgstr "Servizi"
#: admin/views.py:53 admin/views.py:61 web/views.py:422 #: admin/views.py:53 admin/views.py:61 web/views.py:422
msgid "Forbidden" msgid "Forbidden"
msgstr "Vietato" msgstr "Vietato"
@ -1007,42 +1032,38 @@ msgid ""
msgstr "" msgstr ""
"Questa pagina contiene un elenco di scaricabili forniti da diversi moduli" "Questa pagina contiene un elenco di scaricabili forniti da diversi moduli"
#: templates/uds/index.html:51 templates/uds/html5/index.html:63 #: templates/uds/index.html:70 templates/uds/html5/index.html:106
msgid "Services"
msgstr "Servizi"
#: templates/uds/index.html:70 templates/uds/html5/index.html:101
msgid "Java not found" msgid "Java not found"
msgstr "Java non trovato" msgstr "Java non trovato"
#: templates/uds/index.html:71 templates/uds/html5/index.html:104 #: templates/uds/index.html:71 templates/uds/html5/index.html:109
msgid "" msgid ""
"Java is not available on your browser, and the selected transport needs it." "Java is not available on your browser, and the selected transport needs it."
msgstr "" msgstr ""
"Java non è disponibile sul vostro browser, e il trasporto selezionato di cui " "Java non è disponibile sul vostro browser, e il trasporto selezionato di cui "
"ha bisogno." "ha bisogno."
#: templates/uds/index.html:72 templates/uds/html5/index.html:105 #: templates/uds/index.html:72 templates/uds/html5/index.html:110
msgid "Please, install latest version from" msgid "Please, install latest version from"
msgstr "Per favore, installare la versione più recente da" msgstr "Per favore, installare la versione più recente da"
#: templates/uds/index.html:72 templates/uds/html5/index.html:105 #: templates/uds/index.html:72 templates/uds/html5/index.html:110
msgid "Java website" msgid "Java website"
msgstr "Sito Web Java" msgstr "Sito Web Java"
#: templates/uds/index.html:72 templates/uds/html5/index.html:105 #: templates/uds/index.html:72 templates/uds/html5/index.html:110
msgid "and restart browser" msgid "and restart browser"
msgstr "e riavviare il browser" msgstr "e riavviare il browser"
#: templates/uds/index.html:78 templates/uds/html5/index.html:121 #: templates/uds/index.html:78 templates/uds/html5/index.html:126
msgid "Ip" msgid "Ip"
msgstr "IP" msgstr "IP"
#: templates/uds/index.html:79 templates/uds/html5/index.html:122 #: templates/uds/index.html:79 templates/uds/html5/index.html:127
msgid "Networks" msgid "Networks"
msgstr "Reti" msgstr "Reti"
#: templates/uds/index.html:80 templates/uds/html5/index.html:123 #: templates/uds/index.html:80 templates/uds/html5/index.html:128
msgid "Transports" msgid "Transports"
msgstr "Trasporti" msgstr "Trasporti"
@ -1106,10 +1127,6 @@ msgstr "Fornitori di servizi"
msgid "Authenticators" msgid "Authenticators"
msgstr "Autenticatori" msgstr "Autenticatori"
#: templates/uds/admin/snippets/navbar.html:19
msgid "Os Managers"
msgstr "OS Manager"
#: templates/uds/admin/snippets/navbar.html:20 #: templates/uds/admin/snippets/navbar.html:20
msgid "Connectivity" msgid "Connectivity"
msgstr "Connettività" msgstr "Connettività"
@ -1149,14 +1166,22 @@ msgstr "Torna alla lista di servizi"
msgid "Available services list" msgid "Available services list"
msgstr "Elenco dei servizi disponibili" msgstr "Elenco dei servizi disponibili"
#: templates/uds/html5/index.html:78 #: templates/uds/html5/index.html:83
msgid "transports" msgid "transports"
msgstr "trasporti" msgstr "trasporti"
#: templates/uds/html5/index.html:118 #: templates/uds/html5/index.html:123
msgid "Administrator info panel" msgid "Administrator info panel"
msgstr "Pannello info amministratore" msgstr "Pannello info amministratore"
#: templates/uds/html5/index.html:129
msgid "User Agent"
msgstr "Agente utente"
#: templates/uds/html5/index.html:130
msgid "OS"
msgstr "OS"
#: templates/uds/html5/login.html:4 templates/uds/html5/login.html.py:69 #: templates/uds/html5/login.html:4 templates/uds/html5/login.html.py:69
msgid "Welcome to UDS" msgid "Welcome to UDS"
msgstr "Benvenuti a UDS" msgstr "Benvenuti a UDS"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-13 19:50+0100\n" "POT-Creation-Date: 2013-11-14 11:59+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -26,58 +26,62 @@ msgstr "Successo su\""
msgid "Received " msgid "Received "
msgstr "Ricevuto " msgstr "Ricevuto "
#: static/adm/js/gui.js:43 #: static/adm/js/gui.js:17
msgid "Name"
msgstr "Nome"
#: static/adm/js/gui.js:44
msgid "Type"
msgstr "Tipo"
#: static/adm/js/gui.js:45
msgid "Number of Services"
msgstr "Numero dei servizi"
#: static/adm/js/gui.js:48
msgid "Display _MENU_ records per page" msgid "Display _MENU_ records per page"
msgstr "Visualizzare _MENU_ record per pagina" msgstr "Visualizzare _MENU_ record per pagina"
#: static/adm/js/gui.js:49 #: static/adm/js/gui.js:18
msgid "Nothing found - sorry" msgid "Nothing found - sorry"
msgstr "Trovato nulla - ci dispiace" msgstr "Trovato nulla - ci dispiace"
#: static/adm/js/gui.js:50 #: static/adm/js/gui.js:19
msgid "Showing _START_ to _END_ of _TOTAL_ records" msgid "Showing record _START_ to _END_ of _TOTAL_"
msgstr "Mostrando _START_ a _END_ di record _TOTAL_" msgstr "Risultati record _START_ per _END_ di _TOTAL_"
#: static/adm/js/gui.js:51 #: static/adm/js/gui.js:20
msgid "Showing 0 to 0 of 0 records" msgid "Showing 0 to 0 of 0 records"
msgstr "Mostrando 0-0 di 0 record" msgstr "Mostrando 0-0 di 0 record"
#: static/adm/js/gui.js:52 #: static/adm/js/gui.js:21
msgid "(filtered from _MAX_ total records)" msgid "(filtered from _MAX_ total records)"
msgstr "(filtrato da record totale _MAX_)" msgstr "(filtrato da record totale _MAX_)"
#: static/adm/js/gui.js:53 #: static/adm/js/gui.js:22
msgid "Please wait, processing" msgid "Please wait, processing"
msgstr "Attendere prego, elaborazione" msgstr "Attendere prego, elaborazione"
#: static/adm/js/gui.js:54 #: static/adm/js/gui.js:23
msgid "Search" msgid "Search"
msgstr "Ricerca" msgstr "Ricerca"
#: static/adm/js/gui.js:56 #: static/adm/js/gui.js:26
msgid "First" msgid "First"
msgstr "Primo" msgstr "Primo"
#: static/adm/js/gui.js:57 #: static/adm/js/gui.js:27
msgid "Last" msgid "Last"
msgstr "Ultima" msgstr "Ultima"
#: static/adm/js/gui.js:58 #: static/adm/js/gui.js:28
msgid "Next" msgid "Next"
msgstr "Prossimo" msgstr "Prossimo"
#: static/adm/js/gui.js:59 #: static/adm/js/gui.js:29
msgid "Previous" msgid "Previous"
msgstr "Precedente" msgstr "Precedente"
#: static/adm/js/gui.js:83
msgid "Connectivity"
msgstr "Connettività"
#: static/adm/js/gui.js:88
msgid "Deployed services"
msgstr "Servizi distribuiti"
#: static/adm/js/gui.js:181
msgid "Service Providers"
msgstr "Fornitori di servizi"
#: static/adm/js/gui.js:191
msgid "Authenticators"
msgstr "Autenticatori"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-13 19:50+0100\n" "POT-Creation-Date: 2013-11-14 11:59+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,6 +18,31 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: REST/methods/authenticators.py:72
msgid "Current authenticators"
msgstr "Autenticadores atuais"
#: REST/methods/authenticators.py:74 REST/methods/providers.py:71
msgid "Name"
msgstr "Nome"
#: REST/methods/authenticators.py:75 REST/methods/providers.py:72
msgid "Comments"
msgstr "Comentários"
#: REST/methods/authenticators.py:76
msgid "Users"
msgstr "Usuários"
#: REST/methods/providers.py:69
msgid "Current service providers"
msgstr "Provedores de serviço atual"
#: REST/methods/providers.py:73 templates/uds/index.html:51
#: templates/uds/html5/index.html:68
msgid "Services"
msgstr "Serviços"
#: admin/views.py:53 admin/views.py:61 web/views.py:422 #: admin/views.py:53 admin/views.py:61 web/views.py:422
msgid "Forbidden" msgid "Forbidden"
msgstr "Proibido" msgstr "Proibido"
@ -1009,42 +1034,38 @@ msgstr ""
"Esta página contém uma lista de downloadables fornecidos por diferentes " "Esta página contém uma lista de downloadables fornecidos por diferentes "
"módulos" "módulos"
#: templates/uds/index.html:51 templates/uds/html5/index.html:63 #: templates/uds/index.html:70 templates/uds/html5/index.html:106
msgid "Services"
msgstr "Serviços"
#: templates/uds/index.html:70 templates/uds/html5/index.html:101
msgid "Java not found" msgid "Java not found"
msgstr "Java não encontrado" msgstr "Java não encontrado"
#: templates/uds/index.html:71 templates/uds/html5/index.html:104 #: templates/uds/index.html:71 templates/uds/html5/index.html:109
msgid "" msgid ""
"Java is not available on your browser, and the selected transport needs it." "Java is not available on your browser, and the selected transport needs it."
msgstr "" msgstr ""
"Java não está disponível em seu navegador, e o transporte selecionado " "Java não está disponível em seu navegador, e o transporte selecionado "
"precisa disso." "precisa disso."
#: templates/uds/index.html:72 templates/uds/html5/index.html:105 #: templates/uds/index.html:72 templates/uds/html5/index.html:110
msgid "Please, install latest version from" msgid "Please, install latest version from"
msgstr "Por favor, instale a versão mais recente do" msgstr "Por favor, instale a versão mais recente do"
#: templates/uds/index.html:72 templates/uds/html5/index.html:105 #: templates/uds/index.html:72 templates/uds/html5/index.html:110
msgid "Java website" msgid "Java website"
msgstr "Site de Java" msgstr "Site de Java"
#: templates/uds/index.html:72 templates/uds/html5/index.html:105 #: templates/uds/index.html:72 templates/uds/html5/index.html:110
msgid "and restart browser" msgid "and restart browser"
msgstr "e reinicie o navegador" msgstr "e reinicie o navegador"
#: templates/uds/index.html:78 templates/uds/html5/index.html:121 #: templates/uds/index.html:78 templates/uds/html5/index.html:126
msgid "Ip" msgid "Ip"
msgstr "IP" msgstr "IP"
#: templates/uds/index.html:79 templates/uds/html5/index.html:122 #: templates/uds/index.html:79 templates/uds/html5/index.html:127
msgid "Networks" msgid "Networks"
msgstr "Redes" msgstr "Redes"
#: templates/uds/index.html:80 templates/uds/html5/index.html:123 #: templates/uds/index.html:80 templates/uds/html5/index.html:128
msgid "Transports" msgid "Transports"
msgstr "Transportes" msgstr "Transportes"
@ -1108,10 +1129,6 @@ msgstr "Prestadores de serviços"
msgid "Authenticators" msgid "Authenticators"
msgstr "Autenticadores" msgstr "Autenticadores"
#: templates/uds/admin/snippets/navbar.html:19
msgid "Os Managers"
msgstr "Os gerentes"
#: templates/uds/admin/snippets/navbar.html:20 #: templates/uds/admin/snippets/navbar.html:20
msgid "Connectivity" msgid "Connectivity"
msgstr "Conectividade" msgstr "Conectividade"
@ -1151,14 +1168,22 @@ msgstr "Voltar à lista de serviços"
msgid "Available services list" msgid "Available services list"
msgstr "Lista de serviços disponíveis" msgstr "Lista de serviços disponíveis"
#: templates/uds/html5/index.html:78 #: templates/uds/html5/index.html:83
msgid "transports" msgid "transports"
msgstr "transportes" msgstr "transportes"
#: templates/uds/html5/index.html:118 #: templates/uds/html5/index.html:123
msgid "Administrator info panel" msgid "Administrator info panel"
msgstr "Painel de informações do administrador" msgstr "Painel de informações do administrador"
#: templates/uds/html5/index.html:129
msgid "User Agent"
msgstr "Agente do usuário"
#: templates/uds/html5/index.html:130
msgid "OS"
msgstr "SISTEMA OPERACIONAL"
#: templates/uds/html5/login.html:4 templates/uds/html5/login.html.py:69 #: templates/uds/html5/login.html:4 templates/uds/html5/login.html.py:69
msgid "Welcome to UDS" msgid "Welcome to UDS"
msgstr "Bem-vindo ao UDS" msgstr "Bem-vindo ao UDS"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-13 19:50+0100\n" "POT-Creation-Date: 2013-11-14 11:59+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -26,58 +26,62 @@ msgstr "Sucesso na\""
msgid "Received " msgid "Received "
msgstr "Recebido " msgstr "Recebido "
#: static/adm/js/gui.js:43 #: static/adm/js/gui.js:17
msgid "Name"
msgstr "Nome"
#: static/adm/js/gui.js:44
msgid "Type"
msgstr "Tipo"
#: static/adm/js/gui.js:45
msgid "Number of Services"
msgstr "Número de serviços"
#: static/adm/js/gui.js:48
msgid "Display _MENU_ records per page" msgid "Display _MENU_ records per page"
msgstr "Exibir _MENU_ de registros por página" msgstr "Exibir _MENU_ de registros por página"
#: static/adm/js/gui.js:49 #: static/adm/js/gui.js:18
msgid "Nothing found - sorry" msgid "Nothing found - sorry"
msgstr "Nada foi encontrado - Desculpe" msgstr "Nada foi encontrado - Desculpe"
#: static/adm/js/gui.js:50 #: static/adm/js/gui.js:19
msgid "Showing _START_ to _END_ of _TOTAL_ records" msgid "Showing record _START_ to _END_ of _TOTAL_"
msgstr "Mostrando _START_ para _END_ de registros _TOTAL_" msgstr "Mostrando registro _START_ para _END_ de _TOTAL_"
#: static/adm/js/gui.js:51 #: static/adm/js/gui.js:20
msgid "Showing 0 to 0 of 0 records" msgid "Showing 0 to 0 of 0 records"
msgstr "Mostrando 0 a 0 de 0 registros" msgstr "Mostrando 0 a 0 de 0 registros"
#: static/adm/js/gui.js:52 #: static/adm/js/gui.js:21
msgid "(filtered from _MAX_ total records)" msgid "(filtered from _MAX_ total records)"
msgstr "(filtrada de registros total de _MAX_)" msgstr "(filtrada de registros total de _MAX_)"
#: static/adm/js/gui.js:53 #: static/adm/js/gui.js:22
msgid "Please wait, processing" msgid "Please wait, processing"
msgstr "Aguarde, processamento" msgstr "Aguarde, processamento"
#: static/adm/js/gui.js:54 #: static/adm/js/gui.js:23
msgid "Search" msgid "Search"
msgstr "Pesquisa" msgstr "Pesquisa"
#: static/adm/js/gui.js:56 #: static/adm/js/gui.js:26
msgid "First" msgid "First"
msgstr "Primeiro" msgstr "Primeiro"
#: static/adm/js/gui.js:57 #: static/adm/js/gui.js:27
msgid "Last" msgid "Last"
msgstr "Última" msgstr "Última"
#: static/adm/js/gui.js:58 #: static/adm/js/gui.js:28
msgid "Next" msgid "Next"
msgstr "Próxima" msgstr "Próxima"
#: static/adm/js/gui.js:59 #: static/adm/js/gui.js:29
msgid "Previous" msgid "Previous"
msgstr "Anterior" msgstr "Anterior"
#: static/adm/js/gui.js:83
msgid "Connectivity"
msgstr "Conectividade"
#: static/adm/js/gui.js:88
msgid "Deployed services"
msgstr "Serviços implantados"
#: static/adm/js/gui.js:181
msgid "Service Providers"
msgstr "Prestadores de serviços"
#: static/adm/js/gui.js:191
msgid "Authenticators"
msgstr "Autenticadores"

View File

@ -34,47 +34,70 @@
}; };
// Public attributes // Public attributes
api.debug = true; api.debug = false;
}(window.api = window.api || {}, jQuery)); }(window.api = window.api || {}, jQuery));
// Great part of UDS REST api provides same methods.
// We will take advantage of this and save a lot of nonsense, prone to failure code :-)
// Service providers related function BasicModelRest(path) {
api.providers = (function($){ this.path = path;
var pub = {}; this.cached_types = undefined;
this.cached_tableInfo = undefined;
}
pub.cached_types = undefined; BasicModelRest.prototype = {
get: function(options) {
pub.list = function(success_fnc) { if( options == undefined ){
api.getJson('providers',success_fnc); options = {};
}
pub.types = function(success_fnc) {
// Cache types locally, will not change unless new broker version
if( pub.cached_types ) {
if( success_fnc ) {
success_fnc(pub.cached_types);
} }
} var path = this.path;
if( options.id != undefined )
api.getJson('providers/types', function(data){ path += '/' + options.id;
pub.cached_types = data; api.getJson(path, options.success);
if( success_fnc ) { },
success_fnc(pub.cached_types); types: function(success_fnc) {
// Cache types locally, will not change unless new broker version
if( this.cached_types ) {
if( success_fnc ) {
success_fnc(this.cached_types);
}
} }
}); else {
} var $this = this;
return pub; api.getJson( this.path + '/types', function(data) {
}(jQuery)); $this.cached_types = data;
if( success_fnc ) {
success_fnc($this.cached_types);
}
});
}
},
tableInfo: function(success_fnc) {
// Cache types locally, will not change unless new broker version
if( this.cached_tableInfo ) {
if( success_fnc ) {
success_fnc(this.cached_tableInfo);
}
return;
}
var $this = this;
// Service related api.getJson( this.path + '/tableinfo', function(data) {
api.services = (function($){ $this.cached_tableInfo = data;
var pub = {}; if( success_fnc ) {
success_fnc($this.cached_tableInfo);
}
});
},
}
api.providers = new BasicModelRest('providers');
//api.services = new BasicModelRest('services');
api.authenticators = new BasicModelRest('authenticators');
pub.get = function(success_fnc) {
return api.getJson('/rest/providers', success_fnc);
}
return pub;
}(jQuery));

View File

@ -12,77 +12,189 @@
} }
} }
gui.table = function(table_id) { // Several convenience "constants"
return '<div class="well"><table class="display" id="' + table_id + '"></table></div>' gui.dataTablesLanguage = {
"sLengthMenu": gettext("Display _MENU_ records per page"),
"sZeroRecords": gettext("Nothing found - sorry"),
"sInfo": gettext("Showing record _START_ to _END_ of _TOTAL_"),
"sInfoEmpty": gettext("Showing 0 to 0 of 0 records"),
"sInfoFiltered": gettext("(filtered from _MAX_ total records)"),
"sProcessing": gettext("Please wait, processing"),
"sSearch": gettext("Search"),
"sInfoThousands": django.formats.THOUSAND_SEPARATOR,
"oPaginate": {
"sFirst": gettext("First"),
"sLast": gettext("Last"),
"sNext": gettext("Next"),
"sPrevious": gettext("Previous"),
}
};
gui.table = function(title, table_id, options) {
if( options == undefined )
options = { 'size': 12, 'icon': 'table'};
if( options.size == undefined )
options.size = 12;
if( options.icon == undefined )
options.icon = 'table';
return '<div class="col-lg-' + options.size + '"><div class="panel panel-primary"><div class="panel-heading">'+
'<h3 class="panel-title"><span class="fa fa-'+ options.icon + '"></span> ' + title + '</h3></div>'+
'<div class="panel-body"><table class="display" id="' + table_id + '"></table></div></div></div>';
}
gui.breadcrumbs = function(path) {
var items = path.split('/');
var active = items.pop();
var list = '';
$.each(items, function(index, value){
list += '<li><a href="#">' + value + '</a></li>';
});
list += '<li class="active">' + active + '</li>';
return '<div class="row"><div class="col-lg-12"><ol class="breadcrumb">'+ list + "</ol></div></div>";
} }
gui.clearWorkspace = function() { gui.clearWorkspace = function() {
$('#content').empty(); $('#page-wrapper').empty();
}; };
gui.appendToWorkspace = function(data) { gui.appendToWorkspace = function(data) {
$(data).appendTo('#content'); $(data).appendTo('#page-wrapper');
}; };
// Links methods
gui.dashboard = function() { gui.dashboard = function() {
gui.clearWorkspace(); gui.clearWorkspace();
gui.appendToWorkspace(gui.breadcrumbs('Dasboard'));
gui.doLog(this);
}; };
gui.providers = function() { gui.osmanagers = function() {
gui.clearWorkspace(); gui.clearWorkspace();
gui.appendToWorkspace(gui.breadcrumbs('OS Managers'));
api.providers.list(function(data){
gui.appendToWorkspace( gui.table('providers_table') );
var arr = [];
$.each(data, function(index, value){
arr.push([value.name, value.type_name, value.services_count]);
});
$('#providers_table').dataTable( {
"aaData": arr,
"aoColumns": [
{ "sTitle": gettext("Name") },
{ "sTitle": gettext("Type") },
{ "sTitle": gettext("Number of Services") },
],
"oLanguage": {
"sLengthMenu": gettext("Display _MENU_ records per page"),
"sZeroRecords": gettext("Nothing found - sorry"),
"sInfo": gettext("Showing _START_ to _END_ of _TOTAL_ records"),
"sInfoEmpty": gettext("Showing 0 to 0 of 0 records"),
"sInfoFiltered": gettext("(filtered from _MAX_ total records)"),
"sProcessing": gettext("Please wait, processing"),
"sSearch": gettext("Search"),
"sInfoThousands": django.formats.THOUSAND_SEPARATOR,
"oPaginate": {
"sFirst": gettext("First"),
"sLast": gettext("Last"),
"sNext": gettext("Next"),
"sPrevious": gettext("Previous"),
}
},
} );
});
return false;
} }
var sidebarLinks = [ gui.connectivity = function() {
{ id: 'dashboard', exec: gui.dashboard }, gui.clearWorkspace();
{ id: 'service_providers', exec: gui.providers }, gui.appendToWorkspace(gui.breadcrumbs(gettext('Connectivity')));
{ id: 'authenticators', exec: gui.dashboard }, }
{ id: 'osmanagers', exec: gui.dashboard },
{ id: 'connectivity', exec: gui.dashboard },
{ id: 'deployed_services', exec: gui.dashboard },
];
gui.init = function() { gui.deployed_services = function() {
gui.clearWorkspace();
gui.appendToWorkspace(gui.breadcrumbs(gettext('Deployed services')));
}
gui.setLinksEvents = function() {
var sidebarLinks = [
{ id: 'lnk-dashboard', exec: gui.dashboard },
{ id: 'lnk-service_providers', exec: gui.providers.link },
{ id: 'lnk-authenticators', exec: gui.authenticators.link },
{ id: 'lnk-osmanagers', exec: gui.osmanagers },
{ id: 'lnk-connectivity', exec: gui.connectivity },
{ id: 'lnk-deployed_services', exec: gui.deployed_services },
];
$.each(sidebarLinks, function(index, value){ $.each(sidebarLinks, function(index, value){
gui.doLog('Adding ' + value.id) gui.doLog('Adding ' + value.id)
$('#'+value.id).click(value.exec); $('.'+value.id).unbind('click').click(value.exec);
}); });
}
gui.init = function() {
gui.setLinksEvents();
}; };
// Public attributes // Public attributes
gui.debug = true; gui.debug = true;
}(window.gui = window.gui || {}, jQuery)); }(window.gui = window.gui || {}, jQuery));
function GuiElement(restItem) {
this.rest = restItem;
this.init();
}
GuiElement.prototype = {
init: function() {
gui.doLog('Initializing ' + this.rest.path);
var $this = this;
this.rest.types(function(data){
var styles = '<style media="screen">';
$.each(data, function(index, value){
var className = $this.rest.path + '-' + value.type;
gui.doLog('Creating style for ' + className )
var style = '.' + className +
' { display:inline-block; background: url(data:image/png;base64,' + value.icon + '); ' +
'width: 16px; height: 16px; vertical-align: middle; } ';
styles += style;
});
styles += '</style>'
$(styles).appendTo('head');
});
},
table: function(options) {
// Empty container_id first
gui.doLog('Composing table for ' + this.rest.path);
var tableId = this.rest.path + '-table';
var $this = this;
this.rest.tableInfo(function(data){
var title = data.title;
var columns = [];
$.each(data.fields,function(index, value) {
for( var v in value ){
var options = value[v];
gui.doLog(options);
var column = { mData: v };
column.sTitle = options.title;
if( options.type )
column.sType = options.type;
if( options.width )
column.sWidth = options.width;
if( options.visible != undefined )
column.bVisible = options.visible;
columns.push(column);
}
});
gui.doLog(columns);
$this.rest.get({
success: function(data) {
var table = gui.table(title, tableId, options);
gui.appendToWorkspace('<div class="row">' + table + '</div>');
$('#' + tableId).dataTable( {
"aaData": data,
"aoColumns": columns,
"oLanguage": gui.dataTablesLanguage,
} )
}
});
});
return '#' + tableId;
}
};
// Compose gui API
// Service providers
gui.providers = new GuiElement(api.providers);
gui.providers.link = function(event) {
gui.clearWorkspace();
gui.appendToWorkspace(gui.breadcrumbs(gettext('Service Providers')));
var tableId = gui.providers.table();
return false;
};
gui.authenticators = new GuiElement(api.authenticators);
gui.authenticators.link = function(event) {
gui.clearWorkspace();
gui.appendToWorkspace(gui.breadcrumbs(gettext('Authenticators')));
gui.authenticators.table();
return false;
};

View File

@ -8,21 +8,9 @@
{% block js %} {% block js %}
<script> <script>
$(function() { $(function() {
// Initialize gui
// Preload styles for service providers
api.providers.types(function(data){
var styles = '<style media="screen">';
$.each(data, function(index, value){
var style = '.prov-' + value.type +
' { display:inline-block; background: url(data:image/png;base64,' + value.icon + '); ' +
'width: 16px; height: 16px; } ';
styles += style;
});
styles += '</style>'
$(styles).appendTo('head');
});
gui.init(); gui.init();
}); });
</script> </script>
{% endblock %} {% endblock %}

View File

@ -13,12 +13,12 @@
<!-- Side bar --> <!-- Side bar -->
<ul class="nav navbar-nav side-nav"> <ul class="nav navbar-nav side-nav">
<li class="active"><a id="dashboard" href="#"><i class="fa fa-dashboard"></i> Dashboard</a></li> <li><a class="lnk-dashboard" href="#"><i class="fa fa-dashboard"></i> Dashboard</a></li>
<li><a id="service_providers" href="#"><i class="fa fa-bar-chart-o"></i> {% trans 'Service providers' %}</a></li> <li><a class="lnk-service_providers" href="#"><i class="fa fa-bar-chart-o"></i> {% trans 'Service providers' %}</a></li>
<li><a id="authenticators" href="#"><i class="fa fa-user"></i> {% trans 'Authenticators' %}</a></li> <li><a class="lnk-authenticators" href="#"><i class="fa fa-user"></i> {% trans 'Authenticators' %}</a></li>
<li><a id="osmanagers" href="#"><i class="fa fa-edit"></i> Os Managers</a></li> <li><a class="lnk-osmanagers" href="#"><i class="fa fa-edit"></i> Os Managers</a></li>
<li><a id="connectivity" href="#"><i class="fa fa-font"></i> {% trans 'Connectivity' %}</a></li> <li><a class="lnk-connectivity" href="#"><i class="fa fa-font"></i> {% trans 'Connectivity' %}</a></li>
<li><a id="deployed_services" href=""><i class="fa fa-desktop"></i> {% trans 'Deployed services' %}</a></li> <li><a class="lnk-deployed_services" href=""><i class="fa fa-desktop"></i> {% trans 'Deployed services' %}</a></li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-caret-square-o-down"></i> Tools <b class="caret"></b></a> <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-caret-square-o-down"></i> Tools <b class="caret"></b></a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">

View File

@ -16,14 +16,12 @@
<!-- Bootstrap --> <!-- Bootstrap -->
<link href="{% get_static_prefix %}css/bootstrap.min.css" rel="stylesheet" media="screen"> <link href="{% get_static_prefix %}css/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="{% get_static_prefix %}css/font-awesome.min.css" rel="stylesheet" media="screen"> <link href="{% get_static_prefix %}css/font-awesome.min.css" rel="stylesheet" media="screen">
<link href="{% get_static_prefix %}css/bootstrap-theme.min.css" rel="stylesheet" media="screen">
<link href="{% get_static_prefix %}css/bootstrap-formhelpers.min.css" rel="stylesheet" media="screen"> <link href="{% get_static_prefix %}css/bootstrap-formhelpers.min.css" rel="stylesheet" media="screen">
<link href="{% get_static_prefix %}css/bootstrap-responsive.min.css" rel="stylesheet" media="screen">
<link href="{% get_static_prefix %}css/bootstrap-switch.css" rel="stylesheet" media="screen"> <link href="{% get_static_prefix %}css/bootstrap-switch.css" rel="stylesheet" media="screen">
<link href="{% get_static_prefix %}adm/css/jquery.dataTables.css" rel="stylesheet" media="screen"> <link href="{% get_static_prefix %}adm/css/jquery.dataTables.css" rel="stylesheet" media="screen">
<link href="{% get_static_prefix %}css/tables.css" rel="stylesheet" media="screen"> <!-- <link href="{% get_static_prefix %}css/tables.css" rel="stylesheet" media="screen"> -->
<link href="{% get_static_prefix %}css/uds-admin.css" rel="stylesheet" media="screen"> <link href="{% get_static_prefix %}css/uds-admin.css" rel="stylesheet" media="screen">
{% block css %}{% endblock %} {% block css %}{% endblock %}
</head> </head>
@ -34,21 +32,9 @@
{% block menu %}{% include 'uds/admin/snippets/navbar.html' %}{% endblock %} {% block menu %}{% include 'uds/admin/snippets/navbar.html' %}{% endblock %}
<!-- End of menu --> <!-- End of menu -->
{% block messages %}
{% if messages %}
{% for message in messages %}
<div class="alert alert-dismissable {{ message.tags }}">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
{{ message }}
</div>
{% endfor %}
{% endif %}
{% endblock %}
<!-- Content --> <!-- Content -->
<div id="page-wrapper"> <div id="page-wrapper">
<div id="content" class="fluid-container"> {% block body %}{% endblock %}
{% block body %}{% endblock %}
</div>
</div> </div>
<!-- End of content --> <!-- End of content -->
</div> </div>
@ -62,22 +48,23 @@
<script src="{% url 'uds.web.views.jsCatalog' LANGUAGE_CODE %}"></script> <script src="{% url 'uds.web.views.jsCatalog' LANGUAGE_CODE %}"></script>
<script src="{% get_static_prefix %}adm/js/templating.js"></script> <script src="{% get_static_prefix %}adm/js/templating.js"></script>
<script>
// Initialize a few settings, needed for api to work
(function(api, $, undefined){
api.token = "{% auth_token %}";
api.auth_header = "{% auth_token_header %}";
api.base_url = "{% url 'REST' '' %}";
api.url_for = function(path) {
return api.base_url + path;
}
}(window.api = window.api || {}, jQuery));
</script>
<script src="{% get_static_prefix %}adm/js/api.js"></script> <script src="{% get_static_prefix %}adm/js/api.js"></script>
<script src="{% get_static_prefix %}adm/js/gui.js"></script> <script src="{% get_static_prefix %}adm/js/gui.js"></script>
<script>
// Initialize a few settings
(function(api, $, undefined){
api.token = "{% auth_token %}";
api.auth_header = "{% auth_token_header %}";
api.base_url = "{% url 'REST' '' %}";
api.url_for = function(path) {
return api.base_url + path;
}
}(window.api = window.api || {}, jQuery));
</script>
{% block js %}{% endblock %} {% block js %}{% endblock %}
</body> </body>