1
0
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:
Adolfo Gómez García 2016-02-15 11:04:21 +01:00
parent 44c367bf8f
commit 389cf62150
6 changed files with 767 additions and 174 deletions

View File

@ -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):
'''

View File

@ -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">&times;</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">&times;</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;
}

View File

@ -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,

View File

@ -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="$(&quot;#id_language&quot;).val(&quot;es&quot;); $(&quot;#form_language&quot;).submit()" href="#">Spanish</a></li>
<li><a onclick="$(&quot;#id_language&quot;).val(&quot;fr&quot;); $(&quot;#form_language&quot;).submit()" href="#">French</a></li>
<li><a onclick="$(&quot;#id_language&quot;).val(&quot;de&quot;); $(&quot;#form_language&quot;).submit()" href="#">German</a></li>
<li><a onclick="$(&quot;#id_language&quot;).val(&quot;pt&quot;); $(&quot;#form_language&quot;).submit()" href="#">Portuguese</a></li>
<li><a onclick="$(&quot;#id_language&quot;).val(&quot;it&quot;); $(&quot;#form_language&quot;).submit()" href="#">Italian</a></li>
<li><a onclick="$(&quot;#id_language&quot;).val(&quot;eu&quot;); $(&quot;#form_language&quot;).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">&times;</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">&times;</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">&times;</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">&times;</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">&times;</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. &copy; 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>

View File

@ -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);
}

View File

@ -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;