mirror of
https://github.com/dkmstr/openuds.git
synced 2025-01-08 21:18:00 +03:00
Experimenting & adavancing on services grouping
This commit is contained in:
parent
44c367bf8f
commit
389cf62150
@ -42,7 +42,7 @@ from uds.models.Image import Image
|
||||
|
||||
import logging
|
||||
|
||||
__updated__ = '2016-02-12'
|
||||
__updated__ = '2016-02-15'
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@ -57,7 +57,7 @@ class ServicesPoolGroup(UUIDModel):
|
||||
name = models.CharField(max_length=128, default='')
|
||||
comments = models.CharField(max_length=256, default='')
|
||||
priority = models.IntegerField(default=0, db_index=True)
|
||||
image = models.ForeignKey(Image, null=True, blank=True, related_name='servicesPoolsGrou', on_delete=models.SET_NULL)
|
||||
image = models.ForeignKey(Image, null=True, blank=True, related_name='servicesPoolsGroup', on_delete=models.SET_NULL)
|
||||
|
||||
class Meta(UUIDModel.Meta):
|
||||
'''
|
||||
|
@ -3,53 +3,66 @@
|
||||
{% block title %}{% trans 'Available services list' %}{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<h2 class="text-center">{% trans "Services" %}</h2>
|
||||
{% for ser in services %}
|
||||
{% if ser.transports %}
|
||||
<div class="service-container">
|
||||
{% with trans=ser.transports|first numTransports=ser.transports|length %}
|
||||
<div class="service{% if ser.maintenance %} maintenance{% endif %}{% if ser.in_use %} inuse{% endif %}"
|
||||
{% if ser.maintenance %}
|
||||
data-content="{% trans "Under maintenance" %}"
|
||||
{% elif ser.in_use %}
|
||||
data-content="{%trans "Currently in use" %}"
|
||||
{% endif %}
|
||||
data-href="{{ trans.link }}"
|
||||
data-href-alt="{% url 'uds.web.views.client_downloads' %}">
|
||||
<div class="service-image">
|
||||
<img src="{% url "uds.web.views.serviceImage" idImage=ser.imageId %}" />
|
||||
</div>
|
||||
<span {% if ser.name|length > 16 %}class="with-tooltip" data-content="{{ser.name|capfirst}}"{% endif %}{% if ser.show_transports and numTransports > 1 %} style="width: 80%;"{% endif %}>{{ ser.name|capfirst|truncatechars:16 }}</span>
|
||||
{% if ser.show_transports and numTransports > 1 %}
|
||||
<span class="gear"><span class="fa fa-gear"> </span></span>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% if ser.show_transports and numTransports > 1 %}
|
||||
<div class="modal fade in">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title text-center">{% trans "Connections" %}</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<ul class="transports">
|
||||
{% for trans in ser.transports %}
|
||||
<li><a class="uds-service-transport" data-href-alt="{% url 'uds.web.views.client_downloads' %}" href="{{ trans.link }}"><img class="transport" src="{% url "uds.web.views.transportIcon" idTrans=trans.id %}" alt="{{ trans.name }}" />{{ trans.name }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
{% endif %}
|
||||
|
||||
{% endwith %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<ul class="bottom_tabs nav nav-tabs">
|
||||
{% for grp in groups %}
|
||||
<li{% if forloop.first %} class="active"{% endif %}><a href="#tab-services-{{ forloop.counter }}" data-toggle="tab">{{ grp }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
{% for grp in groups %}
|
||||
<div class="tab-pane fade{% if forloop.first %} in active{% endif %}" id="tab-services-{{ forloop.counter }}">
|
||||
|
||||
{% for ser in services %}
|
||||
{% if ser.group.0 == grp %}
|
||||
{% if ser.transports %}
|
||||
<div class="service-container">
|
||||
{% with trans=ser.transports|first numTransports=ser.transports|length %}
|
||||
<div class="service{% if ser.maintenance %} maintenance{% endif %}{% if ser.in_use %} inuse{% endif %}"
|
||||
{% if ser.maintenance %}
|
||||
data-content="{% trans "Under maintenance" %}"
|
||||
{% elif ser.in_use %}
|
||||
data-content="{%trans "Currently in use" %}"
|
||||
{% endif %}
|
||||
data-href="{{ trans.link }}"
|
||||
data-href-alt="{% url 'uds.web.views.client_downloads' %}">
|
||||
<div class="service-image">
|
||||
<img src="{% url "uds.web.views.serviceImage" idImage=ser.imageId %}" />
|
||||
</div>
|
||||
<span {% if ser.name|length > 16 %}class="with-tooltip" data-content="{{ser.name|capfirst}}"{% endif %}{% if ser.show_transports and numTransports > 1 %} style="width: 80%;"{% endif %}>{{ ser.name|capfirst|truncatechars:16 }}</span>
|
||||
{% if ser.show_transports and numTransports > 1 %}
|
||||
<span class="gear"><span class="fa fa-gear"> </span></span>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% if ser.show_transports and numTransports > 1 %}
|
||||
<div class="modal fade in">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title text-center">{% trans "Connections" %}</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<ul class="transports">
|
||||
{% for trans in ser.transports %}
|
||||
<li><a class="uds-service-transport" data-href-alt="{% url 'uds.web.views.client_downloads' %}" href="{{ trans.link }}"><img class="transport" src="{% url "uds.web.views.transportIcon" idTrans=trans.id %}" alt="{{ trans.name }}" />{{ trans.name }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
{% endif %}
|
||||
|
||||
{% endwith %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="maintenance-dialog">
|
||||
<div class="modal-dialog">
|
||||
@ -90,6 +103,12 @@
|
||||
|
||||
{% block css %}
|
||||
<style media="screen">
|
||||
|
||||
.tab-content {
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
|
||||
.with-tooltip {
|
||||
z-index: 1000;
|
||||
}
|
||||
|
@ -33,6 +33,8 @@ from __future__ import unicode_literals
|
||||
from django.shortcuts import render_to_response
|
||||
from django.shortcuts import render
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext
|
||||
|
||||
from django.template import RequestContext
|
||||
|
||||
from uds.core.auths.auth import webLoginRequired
|
||||
@ -49,7 +51,7 @@ import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
__updated__ = '2016-01-20'
|
||||
__updated__ = '2016-02-15'
|
||||
|
||||
|
||||
def about(request):
|
||||
@ -118,9 +120,13 @@ def index(request):
|
||||
else:
|
||||
imageId = 'x' # Invalid
|
||||
|
||||
# Extract app group
|
||||
group = (svr.deployed_service.servicesPoolGroup.name, svr.deployed_service.servicesPoolGroup.priority) if svr.deployed_service.servicesPoolGroup is not None else (ugettext('Default'), -1000)
|
||||
|
||||
services.append({
|
||||
'id': 'A' + svr.uuid,
|
||||
'name': svr['name'],
|
||||
'name': svr.name,
|
||||
'group': group,
|
||||
'transports': trans,
|
||||
'imageId': imageId,
|
||||
'show_transports': svr.deployed_service.show_transports,
|
||||
@ -159,9 +165,12 @@ def index(request):
|
||||
else:
|
||||
in_use = ads.in_use
|
||||
|
||||
group = (svr.servicesPoolGroup.name, svr.servicesPoolGroup.priority) if svr.servicesPoolGroup is not None else (ugettext('Default'), -1000)
|
||||
|
||||
services.append({
|
||||
'id': 'F' + svr.uuid,
|
||||
'name': svr.name,
|
||||
'group': group,
|
||||
'transports': trans,
|
||||
'imageId': imageId,
|
||||
'show_transports': svr.show_transports,
|
||||
@ -180,9 +189,21 @@ def index(request):
|
||||
autorun = True
|
||||
# return redirect('uds.web.views.service', idService=services[0]['id'], idTransport=services[0]['transports'][0]['id'])
|
||||
|
||||
# List of services groups
|
||||
groups = list(set([v[0] for v in sorted([ser['group'] for ser in services], key=lambda s: s[1])]))
|
||||
|
||||
byGroup = {}
|
||||
for s in services:
|
||||
grpName = s['group'][0]
|
||||
if grpName not in byGroup:
|
||||
byGroup[grpName] = []
|
||||
byGroup[grpName].append(s)
|
||||
|
||||
response = render_to_response(
|
||||
theme.template('index.html'),
|
||||
{
|
||||
'groups': groups,
|
||||
'byGroup': byGroup,
|
||||
'services': services,
|
||||
'ip': request.ip,
|
||||
'nets': nets,
|
||||
|
@ -1,145 +1,640 @@
|
||||
<!doctype html>
|
||||
<html class="no-js" lang="">
|
||||
<head>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang='es'>
|
||||
<head>
|
||||
<title>Lista de servicios disponibles</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
|
||||
|
||||
<link href="img/favicon.png?v=2" rel="icon" type="image/x-icon" />
|
||||
|
||||
<!-- Bootstrap -->
|
||||
<link href="styles/main.css" rel="stylesheet" media="screen" />
|
||||
<link href="styles/jquery-ui.min.css" rel="stylesheet" media="screen" />
|
||||
<link href="styles/font-awesome.min.css" rel="stylesheet" media="screen" />
|
||||
<link href="styles/bootstrap-switch.css" rel="stylesheet" media="screen" />
|
||||
|
||||
<style media="screen">
|
||||
.with-tooltip {
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
ul.transports > li {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
img.transport {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
height: 32px;
|
||||
width: 32px;
|
||||
margin-right: 8px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
div.service-container {
|
||||
display: inline-block;
|
||||
width: 140px;
|
||||
height: 162px;
|
||||
margin: 0px 8px 24px 8px;
|
||||
}
|
||||
|
||||
div.service {
|
||||
/*background-color: #FAFAFA;*/
|
||||
/*background-image: url("/img/uds-small-back.png");*/
|
||||
padding: 6px;
|
||||
/*border: 1px solid #BABABA;
|
||||
border-radius: 2px;*/
|
||||
display: block;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
box-shadow: 6px 6px 5px #E0E0E0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
div.service.disabled {
|
||||
opacity: 0.4;
|
||||
filter: alpha(opacity=40);
|
||||
}
|
||||
|
||||
div.service.maintenance {
|
||||
opacity: 0.6;
|
||||
filter: alpha(opacity=60);
|
||||
}
|
||||
|
||||
div.service.inuse {
|
||||
background-color: #DCDCFF;
|
||||
|
||||
}
|
||||
|
||||
div.service-image {
|
||||
width: 128px;
|
||||
height: 128px;
|
||||
}
|
||||
|
||||
div.service.over:not(.disabled) {
|
||||
background-color: #F0F0F0;
|
||||
animation: pulse 0.5s infinite alternate;
|
||||
-webkit-animation-name: pulse;
|
||||
-webkit-animation-duration: 0.8s;
|
||||
-webkit-animation-iteration-count: infinite;
|
||||
-webkit-animation-timing-function: alternate;
|
||||
}
|
||||
|
||||
@keyframes pulse {
|
||||
from { box-shadow: 0px 0px 3px 3px #0066cc; }
|
||||
to { box-shadow: 0px 0px 8px 5px #0066cc; }
|
||||
}
|
||||
|
||||
@-webkit-keyframes pulse {
|
||||
from { box-shadow: 0px 0px 3px 3px #0066cc; }
|
||||
to { box-shadow: 0px 0px 8px 5px #0066cc; }
|
||||
}
|
||||
|
||||
|
||||
<meta charset="utf-8">
|
||||
<title>public</title>
|
||||
<meta name="description" content="">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
div.service > img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
||||
<!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
|
||||
div.service > span {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
vertical-align: bottom;
|
||||
text-align: center;
|
||||
left: 0px;
|
||||
bottom: 0px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
<!-- build:css(.) styles/vendor.css -->
|
||||
<!-- bower:css -->
|
||||
<!-- endbower -->
|
||||
<!-- endbuild -->
|
||||
<!-- build:css(.tmp) styles/main.css -->
|
||||
<link rel="stylesheet" href="styles/main.css">
|
||||
<!-- endbuild -->
|
||||
<!-- build:js scripts/vendor/modernizr.js -->
|
||||
<script src="/bower_components/modernizr/modernizr.js"></script>
|
||||
<!-- endbuild -->
|
||||
div.service > span.gear {
|
||||
text-align: right;
|
||||
padding-right: 12px;
|
||||
}
|
||||
|
||||
span.gear > span.fa {
|
||||
cursor: zoom-in;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<!--[if lt IE 10]>
|
||||
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
|
||||
<![endif]-->
|
||||
|
||||
<body>
|
||||
<!-- Navigation bar -->
|
||||
<div class="container-fluid">
|
||||
|
||||
|
||||
<div class="container">
|
||||
<nav role="navigation" class="navbar navbar-default navbar-fixed-top">
|
||||
|
||||
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
|
||||
<!-- Brand and toggle get grouped for better mobile display -->
|
||||
<div class="navbar-header">
|
||||
<button data-target=".navbar-ex1-collapse" data-toggle="collapse" class="navbar-toggle" type="button">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
|
||||
<span class="sr-only">Navegación alterna</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a href="/" class="navbar-brand">
|
||||
<img class="navbar-img pull-left" src="img/udsicon.png" alt="Universal Desktop Services">
|
||||
<span>Universal Desktop Services</span>
|
||||
</a>
|
||||
<a class ="navbar-brand" href="/">
|
||||
<img alt="Universal Desktop Services" src="img/udsicon.png" class="navbar-img pull-left">
|
||||
<span>Universal Desktop Services</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse navbar-ex1-collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
</ul>
|
||||
<form method="post" action="/i18n/setlang/" id="form_language">
|
||||
<input type="hidden" value="zWr48z50KDHA2mmsgTdLvkByo7FSaYgD" name="csrfmiddlewaretoken">
|
||||
<input type="hidden" value="" name="language" id="id_language">
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li><a href="/about">About</a></li>
|
||||
<li class="dropdown">
|
||||
<a data-toggle="dropdown" class="dropdown-toggle" href="#"><i class="fa fa-comments-o"></i> English<b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a onclick="$("#id_language").val("es"); $("#form_language").submit()" href="#">Spanish</a></li>
|
||||
<li><a onclick="$("#id_language").val("fr"); $("#form_language").submit()" href="#">French</a></li>
|
||||
<li><a onclick="$("#id_language").val("de"); $("#form_language").submit()" href="#">German</a></li>
|
||||
<li><a onclick="$("#id_language").val("pt"); $("#form_language").submit()" href="#">Portuguese</a></li>
|
||||
<li><a onclick="$("#id_language").val("it"); $("#form_language").submit()" href="#">Italian</a></li>
|
||||
<li><a onclick="$("#id_language").val("eu"); $("#form_language").submit()" href="#">Basque</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="dropdown">
|
||||
<a data-toggle="dropdown" class="dropdown-toggle" href="#"><i class="fa fa-user"></i> 172.27.0.8 <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="/prefs"><span class="fa fa-edit"></span> Preferences</a></li>
|
||||
<li><a href="/down"><span class="fa fa-download"></span> UDS Plugin</a></li>
|
||||
<li><a href="/idown/"><span class="fa fa-download"></span> Downloads</a></li>
|
||||
<li><a href="/adm/"><span class="fa fa-dashboard"></span> Dashboard</a></li>
|
||||
<li><a href="/logout"><span class="fa fa-power-off text-danger"></span> Logout</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</form>
|
||||
<div class="collapse navbar-collapse navbar-ex1-collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
</ul>
|
||||
<form id="form_language" action="/i18n/setlang/" method="post">
|
||||
<input type='hidden' name='csrfmiddlewaretoken' value='ZCuWxaQpGX7li8TaMVtDe5zR7Gdotf0T' />
|
||||
<input id="id_language" type="hidden" name="language" value=""/>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li><a href="/about">Acerca de</a></li>
|
||||
<li class="dropdown">
|
||||
|
||||
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-comments-o"></i> Español<b class="caret"></b></a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<li><a href="#" onclick='$("#id_language").val("en"); $("#form_language").submit()'>Inglés</a></li>
|
||||
|
||||
|
||||
|
||||
<li><a href="#" onclick='$("#id_language").val("fr"); $("#form_language").submit()'>Francés</a></li>
|
||||
|
||||
|
||||
|
||||
<li><a href="#" onclick='$("#id_language").val("de"); $("#form_language").submit()'>Alemán</a></li>
|
||||
|
||||
|
||||
|
||||
<li><a href="#" onclick='$("#id_language").val("pt"); $("#form_language").submit()'>Portugués</a></li>
|
||||
|
||||
|
||||
|
||||
<li><a href="#" onclick='$("#id_language").val("it"); $("#form_language").submit()'>Italiano</a></li>
|
||||
|
||||
|
||||
|
||||
<li><a href="#" onclick='$("#id_language").val("eu"); $("#form_language").submit()'>Vasco</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> 172.27.0.8 <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
<li><a href="/prefs"><span class="fa fa-edit"></span> Preferencias</a></li>
|
||||
|
||||
<li><a href="/down"><span class="fa fa-download"></span> UDS Plugin</a></li>
|
||||
|
||||
<li><a href="/idown/"><span class="fa fa-download"></span> Descargas</a></li>
|
||||
|
||||
<li><a href="/adm/"><span class="fa fa-dashboard"></span> Dashboard</a></li>
|
||||
|
||||
|
||||
<li><a href="/logout"><span class="fa fa-power-off text-danger"></span> Cerrar sesión</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
</nav>
|
||||
|
||||
<div class="jumbotron">
|
||||
<h1>'Allo, 'Allo!</h1>
|
||||
<p class="lead">Always a pleasure scaffolding your apps.</p>
|
||||
<p><a class="btn btn-lg btn-success" href="#">Splendid! <span class="glyphicon glyphicon-ok"></span></a></p>
|
||||
</div>
|
||||
|
||||
<div class="row marketing">
|
||||
<div class="col-lg-6">
|
||||
<h4><a href="https://html5boilerplate.com/">HTML5 Boilerplate</a></h4>
|
||||
<p>HTML5 Boilerplate is a professional front-end template for building fast, robust, and adaptable web apps or sites.</p>
|
||||
|
||||
<h4><a href="http://libsass.org/">Sass</a></h4>
|
||||
<p>Sass is a mature, stable, and powerful professional grade CSS extension language.</p>
|
||||
|
||||
|
||||
<h4><a href="http://getbootstrap.com/">Bootstrap</a></h4>
|
||||
<p>Sleek, intuitive, and powerful mobile first front-end framework for faster and easier web development.</p>
|
||||
|
||||
<h4><a href="http://modernizr.com/">Modernizr</a></h4>
|
||||
<p>Modernizr is an open-source JavaScript library that helps you build the next generation of HTML5 and CSS3-powered websites.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<p><span class="glyphicon glyphicon-heart"></span> from the Yeoman team</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- End of menu -->
|
||||
<div class="st-sticky-wrap">
|
||||
<div class="container">
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Content -->
|
||||
|
||||
<ul class="bottom_tabs nav nav-tabs">
|
||||
|
||||
<li class="active"><a href="#tab-services-1" data-toggle="tab">Default</a></li>
|
||||
|
||||
<li><a href="#tab-services-2" data-toggle="tab">VDI</a></li>
|
||||
|
||||
<li><a href="#tab-services-3" data-toggle="tab">Apps</a></li>
|
||||
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
|
||||
<div class="tab-pane fade in active" id="tab-services-1">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="service-container">
|
||||
|
||||
<div class="service"
|
||||
|
||||
data-href="udsa://F8de67842-327e-5f07-aa71-f03caeb530ed/ccaacb14-557c-54fc-a137-6c9540112ff1"
|
||||
data-href-alt="/down">
|
||||
<div class="service-image">
|
||||
<img src="img/test/17a45e71-30c9-5c22-8c16-916ce4a51c56.png" />
|
||||
</div>
|
||||
<span >Prueba Juanje</span>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="service-container">
|
||||
|
||||
<div class="service"
|
||||
|
||||
data-href="udsa://F6201b357-c4cd-5463-891e-71441a25faee/43fd7c69-40cb-5fce-a706-b631338ec862"
|
||||
data-href-alt="/down">
|
||||
<div class="service-image">
|
||||
<img src="img/test/17a45e71-30c9-5c22-8c16-916ce4a51c56.png" />
|
||||
</div>
|
||||
<span style="width: 80%;">Ubuntu 14</span>
|
||||
|
||||
<span class="gear"><span class="fa fa-gear"> </span></span>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="modal fade in">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title text-center">Conexiones</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<ul class="transports">
|
||||
|
||||
<li><a class="uds-service-transport" data-href-alt="/down" href="udsa://F6201b357-c4cd-5463-891e-71441a25faee/43fd7c69-40cb-5fce-a706-b631338ec862"><img class="transport" src="/transicon/43fd7c69-40cb-5fce-a706-b631338ec862" alt="NX tunelizado" />NX tunelizado</a></li>
|
||||
|
||||
<li><a class="uds-service-transport" data-href-alt="/down" href="udsa://F6201b357-c4cd-5463-891e-71441a25faee/a6b80804-7816-500e-8e8f-3cca9e320f49"><img class="transport" src="/transicon/a6b80804-7816-500e-8e8f-3cca9e320f49" alt="nx" />nx</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade" id="tab-services-2">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="service-container">
|
||||
|
||||
<div class="service maintenance"
|
||||
|
||||
data-content="En mantenimiento"
|
||||
|
||||
data-href="udsa://Fba61eea7-2a59-5f78-9992-671ea385ff9c/b20f5ca1-411c-50e2-93cd-468ccaba5985"
|
||||
data-href-alt="/down">
|
||||
<div class="service-image">
|
||||
<img src="img/test/17a45e71-30c9-5c22-8c16-916ce4a51c56.png" />
|
||||
</div>
|
||||
<span style="width: 80%;">Ovirt</span>
|
||||
|
||||
<span class="gear"><span class="fa fa-gear"> </span></span>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="modal fade in">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title text-center">Conexiones</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<ul class="transports">
|
||||
|
||||
<li><a class="uds-service-transport" data-href-alt="/down" href="udsa://Fba61eea7-2a59-5f78-9992-671ea385ff9c/b20f5ca1-411c-50e2-93cd-468ccaba5985"><img class="transport" src="/transicon/b20f5ca1-411c-50e2-93cd-468ccaba5985" alt="TUNEL spice" />TUNEL spice</a></li>
|
||||
|
||||
<li><a class="uds-service-transport" data-href-alt="/down" href="udsa://Fba61eea7-2a59-5f78-9992-671ea385ff9c/e31f1072-9ed8-5130-be4c-22de8d2bd905"><img class="transport" src="/transicon/e31f1072-9ed8-5130-be4c-22de8d2bd905" alt="spice" />spice</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="service-container">
|
||||
|
||||
<div class="service inuse"
|
||||
|
||||
data-content="Actualmente en uso"
|
||||
|
||||
data-href="udsa://F305d37c2-2c45-5a3c-ae84-c05fb68add7d/05af9548-2877-56dc-9749-9b9012e473c8"
|
||||
data-href-alt="/down">
|
||||
<div class="service-image">
|
||||
<img src="img/test/17a45e71-30c9-5c22-8c16-916ce4a51c56.png" />
|
||||
</div>
|
||||
<span style="width: 80%;">WinAdolfo</span>
|
||||
|
||||
<span class="gear"><span class="fa fa-gear"> </span></span>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="modal fade in">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title text-center">Conexiones</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<ul class="transports">
|
||||
|
||||
<li><a class="uds-service-transport" data-href-alt="/down" href="udsa://F305d37c2-2c45-5a3c-ae84-c05fb68add7d/05af9548-2877-56dc-9749-9b9012e473c8"><img class="transport" src="/transicon/05af9548-2877-56dc-9749-9b9012e473c8" alt="RDP Tunelizado" />RDP Tunelizado</a></li>
|
||||
|
||||
<li><a class="uds-service-transport" data-href-alt="/down" href="udsa://F305d37c2-2c45-5a3c-ae84-c05fb68add7d/95f8cad1-ad92-55ad-b88a-0e91be93d0ee"><img class="transport" src="/transicon/95f8cad1-ad92-55ad-b88a-0e91be93d0ee" alt="Rdp Win7-32" />Rdp Win7-32</a></li>
|
||||
|
||||
<li><a class="uds-service-transport" data-href-alt="/down" href="udsa://F305d37c2-2c45-5a3c-ae84-c05fb68add7d/e439f7e4-e02b-59ae-9e73-c265d748ba20"><img class="transport" src="/transicon/e439f7e4-e02b-59ae-9e73-c265d748ba20" alt="rgs" />rgs</a></li>
|
||||
|
||||
<li><a class="uds-service-transport" data-href-alt="/down" href="udsa://F305d37c2-2c45-5a3c-ae84-c05fb68add7d/c0019c6a-8062-5650-9a59-320e16eef804"><img class="transport" src="/transicon/c0019c6a-8062-5650-9a59-320e16eef804" alt="PCoIP" />PCoIP</a></li>
|
||||
|
||||
<li><a class="uds-service-transport" data-href-alt="/down" href="/trans/F305d37c2-2c45-5a3c-ae84-c05fb68add7d/9685173b-f53f-56d4-bed2-53901a5e3ba5"><img class="transport" src="/transicon/9685173b-f53f-56d4-bed2-53901a5e3ba5" alt="HTML5" />HTML5</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade" id="tab-services-3">
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="service-container">
|
||||
|
||||
<div class="service inuse"
|
||||
|
||||
data-content="Actualmente en uso"
|
||||
|
||||
data-href="udsa://F4357cf70-612f-5adf-81de-a8746b5a590b/c0019c6a-8062-5650-9a59-320e16eef804"
|
||||
data-href-alt="/down">
|
||||
<div class="service-image">
|
||||
<img src="img/test/17a45e71-30c9-5c22-8c16-916ce4a51c56.png" />
|
||||
</div>
|
||||
<span >3-WinPCoIP</span>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="service-container">
|
||||
|
||||
<div class="service"
|
||||
|
||||
data-href="udsa://F927db623-b286-5f37-b7c4-17bc4f5ac9f7/55575d77-24b3-5b77-89c6-b17509f6eeca"
|
||||
data-href-alt="/down">
|
||||
<div class="service-image">
|
||||
<img src="img/test/17a45e71-30c9-5c22-8c16-916ce4a51c56.png" />
|
||||
</div>
|
||||
<span style="width: 80%;">Calc</span>
|
||||
|
||||
<span class="gear"><span class="fa fa-gear"> </span></span>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="modal fade in">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title text-center">Conexiones</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<ul class="transports">
|
||||
|
||||
<li><a class="uds-service-transport" data-href-alt="/down" href="udsa://F927db623-b286-5f37-b7c4-17bc4f5ac9f7/55575d77-24b3-5b77-89c6-b17509f6eeca"><img class="transport" src="/transicon/55575d77-24b3-5b77-89c6-b17509f6eeca" alt="RDS" />RDS</a></li>
|
||||
|
||||
<li><a class="uds-service-transport" data-href-alt="/down" href="udsa://F927db623-b286-5f37-b7c4-17bc4f5ac9f7/d93fee51-c2cc-555f-9ebb-18970d5d4a48"><img class="transport" src="/transicon/d93fee51-c2cc-555f-9ebb-18970d5d4a48" alt="UDS Tunneler" />UDS Tunneler</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="service-container">
|
||||
|
||||
<div class="service"
|
||||
|
||||
data-href="udsa://F55b3a26a-a84c-54e5-9f2d-430219c08575/55575d77-24b3-5b77-89c6-b17509f6eeca"
|
||||
data-href-alt="/down">
|
||||
<div class="service-image">
|
||||
<img src="img/test/17a45e71-30c9-5c22-8c16-916ce4a51c56.png" />
|
||||
</div>
|
||||
<span >Firefox</span>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="service-container">
|
||||
|
||||
<div class="service"
|
||||
|
||||
data-href="udsa://F533d2790-8196-5792-ae50-df59df06a5b6/55575d77-24b3-5b77-89c6-b17509f6eeca"
|
||||
data-href-alt="/down">
|
||||
<div class="service-image">
|
||||
<img src="img/test/17a45e71-30c9-5c22-8c16-916ce4a51c56.png" />
|
||||
</div>
|
||||
<span >Mstsc</span>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="maintenance-dialog">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title">Servicio en mantenimiento</h4>
|
||||
</div>
|
||||
<div class="modal-body text-center">
|
||||
<p>Este servicio está en modo de mantenimiento.</p>
|
||||
<p>Por favor, intente entrar de nuevo en unos momentos</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="panel panel-warning">
|
||||
<div class="panel-heading">
|
||||
Panel de información del administrador
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p>IP: 172.27.0.8</p>
|
||||
<p>Redes: casa</p>
|
||||
<p>Transportes: HTML5,nx,NX tunelizado,PCoIP,r1,RDP directo,RDP Tunelizado,Rdp Win7-32,RDS,rgs,RGS transport,spice,t1,TUNEL spice,tunneled rgs,UDS Tunneler</p>
|
||||
<p>Agente de usuario: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36</p>
|
||||
<p>SO: Windows</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- End of content -->
|
||||
</div> <!-- End of container -->
|
||||
<div class="st-sticky-push"></div>
|
||||
</div>
|
||||
<footer>
|
||||
|
||||
<a href="http://www.udsenterprise.com">UDS Enterprise Edition. © 2012-2015 Virtual Cable S.L.U.</a>
|
||||
|
||||
</footer>
|
||||
|
||||
<!-- build:js(.) scripts/vendor.js -->
|
||||
<!-- bower:js -->
|
||||
<script src="/bower_components/jquery/dist/jquery.js"></script>
|
||||
<!-- endbower -->
|
||||
<!-- endbuild -->
|
||||
<script src="scripts/jquery-ui.min.js"></script>
|
||||
<script src="scripts/jquery.cookie.js"></script>
|
||||
<script src="scripts/jquery.blockUI.js"></script>
|
||||
<script src="scripts/jquery.cookiebar.js"></script>
|
||||
<script src="scripts/bootstrap.min.js"></script>
|
||||
<script src="scripts/bootstrap-switch.min.js"></script>
|
||||
<script src="scripts/bootstrap-select.min.js"></script>
|
||||
|
||||
|
||||
<!-- build:js(.) scripts/plugins.js -->
|
||||
<script src="/bower_components/bootstrap-sass/assets/javascripts/bootstrap/affix.js"></script>
|
||||
<script src="/bower_components/bootstrap-sass/assets/javascripts/bootstrap/alert.js"></script>
|
||||
<script src="/bower_components/bootstrap-sass/assets/javascripts/bootstrap/dropdown.js"></script>
|
||||
<script src="/bower_components/bootstrap-sass/assets/javascripts/bootstrap/tooltip.js"></script>
|
||||
<script src="/bower_components/bootstrap-sass/assets/javascripts/bootstrap/modal.js"></script>
|
||||
<script src="/bower_components/bootstrap-sass/assets/javascripts/bootstrap/transition.js"></script>
|
||||
<script src="/bower_components/bootstrap-sass/assets/javascripts/bootstrap/button.js"></script>
|
||||
<script src="/bower_components/bootstrap-sass/assets/javascripts/bootstrap/popover.js"></script>
|
||||
<script src="/bower_components/bootstrap-sass/assets/javascripts/bootstrap/carousel.js"></script>
|
||||
<script src="/bower_components/bootstrap-sass/assets/javascripts/bootstrap/scrollspy.js"></script>
|
||||
<script src="/bower_components/bootstrap-sass/assets/javascripts/bootstrap/collapse.js"></script>
|
||||
<script src="/bower_components/bootstrap-sass/assets/javascripts/bootstrap/tab.js"></script>
|
||||
<!-- endbuild -->
|
||||
|
||||
|
||||
<!-- build:js scripts/main.js -->
|
||||
<script src="scripts/main.js"></script>
|
||||
<!-- endbuild -->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
<script>
|
||||
var clientRest = "/" + "/enable/x/x".split("/")[1];
|
||||
var bypassPluginDetection = "0" == "1";
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -1 +1,32 @@
|
||||
console.log('\'Allo \'Allo!'); // eslint-disable-line no-console
|
||||
|
||||
|
||||
// Sample services received
|
||||
var services = [
|
||||
{
|
||||
name: 'Service1',
|
||||
group: 'Default',
|
||||
inuse: false,
|
||||
inmaintenance: false,
|
||||
transports: [
|
||||
{
|
||||
name: 'RDP',
|
||||
type: 'xxxx',
|
||||
id: 'a1234123123'
|
||||
},
|
||||
{
|
||||
name: 'RDP',
|
||||
type: 'xxxx',
|
||||
id: 'a1234123123'
|
||||
}
|
||||
]
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
function showTransports() {
|
||||
var $servicesGroup = $('#services-groups');
|
||||
|
||||
alert($servicesGroup);
|
||||
|
||||
}
|
@ -13,6 +13,33 @@ body {
|
||||
padding-top: 60px;
|
||||
}
|
||||
|
||||
.service-item {
|
||||
border: 2px solid #141414;
|
||||
margin-right: 16px;
|
||||
cursor: pointer;
|
||||
outline: 0 none;
|
||||
}
|
||||
|
||||
.service-title {
|
||||
|
||||
}
|
||||
|
||||
.service-image {
|
||||
background-position: 50% 50%;
|
||||
background-repeat: no-repeat;
|
||||
background-size: auto 100%;
|
||||
padding: 25% 0;
|
||||
-moz-transition: background-size 400ms;
|
||||
transition: background-size 400ms;
|
||||
&:hover {
|
||||
background-size: auto 125%;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* old */
|
||||
|
||||
.st-sticky-wrap {
|
||||
min-height: 100%;
|
||||
height: auto !important;
|
||||
|
Loading…
Reference in New Issue
Block a user