Merge branch 'onelab' of ssh://git.onelab.eu/git/myslice into fibre
authorLoic Baron <loic.baron@lip6.fr>
Thu, 24 Jul 2014 13:46:28 +0000 (10:46 -0300)
committerLoic Baron <loic.baron@lip6.fr>
Thu, 24 Jul 2014 13:46:28 +0000 (10:46 -0300)
Conflicts:
portal/registrationview.py

1  2 
manifoldapi/static/js/manifold.js
portal/static/css/fibre.css

@@@ -17,6 -17,6 +17,32 @@@ function debug_query (msg, query) 
      else messages.debug ("debug_query: " + msg + " query= " + query);
  }
  
++// http://stackoverflow.com/questions/7837456/comparing-two-arrays-in-javascript
++// attach the .equals method to Array's prototype to call it on any array
++Array.prototype.equals = function (array) {
++    // if the other array is a falsy value, return
++    if (!array)
++        return false;
++
++    // compare lengths - can save a lot of time 
++    if (this.length != array.length)
++        return false;
++
++    for (var i = 0, l=this.length; i < l; i++) {
++        // Check if we have nested arrays
++        if (this[i] instanceof Array && array[i] instanceof Array) {
++            // recurse into the nested arrays
++            if (!this[i].equals(array[i]))
++                return false;       
++        }           
++        else if (this[i] != array[i]) { 
++            // Warning - two different object instances will never be equal: {x:20} != {x:20}
++            return false;   
++        }           
++    }       
++    return true;
++}
++
  // http://javascriptweblog.wordpress.com/2011/08/08/fixing-the-javascript-typeof-operator/
  Object.toType = (function toType(global) {
    return function(obj) {
@@@ -463,7 -462,7 +489,7 @@@ function QueryStore() 
      {
          var query_ext = this.find_analyzed_query_ext(query_uuid);
          query_ext.filters = $.grep(query_ext.filters, function(x) {
--            return x != filter;
++            return !(x.equals(filter));
          });
  
          this.apply_filters(query_uuid);
index 639b040,0000000..05526c8
mode 100644,000000..100644
--- /dev/null
@@@ -1,696 -1,0 +1,698 @@@
 +@import url("../fonts/opensans_bold_macroman/stylesheet.css");
 +
 +html { height: 100% }
 +
 +body {
 +    background-color:white;
 +    color:black;
 +    margin:0;
 +    padding:0;
 +    height: 100%;
 +}
 +a, a:active, a:focus {
 +    outline: 0;
 +    text-decoration:none;
 +}
 +
 +h1 {
 +    border-bottom:1px solid #DDDDDD;
 +    padding:0 0 0 0;
 +    margin:15px 0 15px 0;
 +    font-size:14pt;
 +}
 +h1 img {
 +    vertical-align:middle;
 +    margin-bottom:4px;
 +    margin-right:10px;
 +}
 +h2 {
 +    font-size:14pt;
 +    color:#333333;
 +}
 +h3 {
 +    font-size:13pt;
 +    color:#201E62;
 +}
 +input[type=text], input[type=password], input[type=email], input[type=tel], input[type=number], select, option {
 +    min-width:260px;
 +    padding:6px;
 +    border:1pt solid #22606D;
 +    vertical-align:bottom;
 +    border-radius:0;
 +}
 +
 +textarea {
 +    padding:6px;
 +    border:1pt solid #22606D !important;
 +    border-radius:0 !important;
 +}
 +
 +span.label {
 +    font-size:11pt;
 +    color:gray;
 +    font-weight:normal;
 +    padding:0;
 +}
 +div.el {
 +    padding-bottom:15px;
 +}
 +div.breadcrumbs {
 +    margin:15px 0;
 +    color:gray;
 +    font-size:10pt;
 +}
 +/* buttons */
 +button.btn, input.btn {
 +    padding:6px 10px;
 +    border-radius:5px;
 +    font-size:10pt;
 +    font-weight:normal;
 +}
 +button.btn span.glyphicon {
 +    margin-right:6px;
 +}
 +button.btn-default {
 +    border-bottom:3px solid #cccccc;
 +}
 +button.btn-default:hover {
 +    background-color:white;
 +    border:1px solid #ADADAD;
 +    border-bottom:3px solid #ADADAD;
 +}
 +button.btn-default:active {
 +    background-color:white;
 +    border:1px solid #ADADAD;
 +    border-bottom:1px solid #ADADAD;
 +    margin-top:2px;
 +    box-shadow:none;
 +}
 +button.btn-primary {
 +    border-bottom:3px solid #3071A9;
 +}
 +button.btn-primary:hover {
 +    box-shadow:none;
 +    background-color:#428bca;
 +    border:1px solid #357ebd;
 +    border-bottom:3px solid #3071A9;
 +}
 +button.btn-primary:active {
 +    box-shadow:none;
 +    border-bottom:1px solid #3071A9;
 +    margin-top:2px;
 +}
 +button.btn-danger {
 +    border-bottom:3px solid #A13F3A;
 +}
 +button.btn-danger:hover {
 +    box-shadow:none;
 +    background-color:#d9534f;
 +    border:1px solid #d43f3a;
 +    border-bottom:3px solid #A13F3A;
 +}
 +button.btn-danger:active {
 +    border:1px solid #d43f3a;
 +    box-shadow:none;
 +    margin-top:2px;
 +}
 +button.btn-onelab, input.btn-onelab {
 +    border:0;
 +    border-bottom:3px solid #760073;
 +    background-color:#302562;
 +    color:white;
 +}
 +button.btn-onelab:hover, input.btn-onelab:hover {
 +    border:0;
 +    border-bottom:3px solid #760073;
 +    background-color:#302562;
 +    color:white;
 +}
 +button.btn-onelab:active, input.btn-onelab:active {
 +    box-shadow:none;
 +    border-bottom:1px solid #760073;
 +    margin-top:2px;
 +}
 +
 +.container-resource button {
 +    padding:2px 4px;
 +    border-radius:3px;
 +    font-size:9pt;
 +    font-weight:normal;
 +}
 +.container-resource select,.container-resource option, .container-resource input {
 +    padding:2px 4px;
 +    font-size:9pt;
 +}
 +.badge {
 +    font-size:9pt;
 +    margin-left:4px;
 +}
 +/***** Notifications *****/
 +.warning {
 +    border: 1px solid red;
 +    margin: 20px 60px;
 +    padding: 10px 20px;
 +    color: red;
 +    background-color: #f2dbdb;
 +    text-align: center;
 +}
 +
 +/* HOME DASHBOARD */
 +div#home-dashboard {
 +    color:black;
 +    margin:0 auto 25px auto;
 +}
 +div#home-dashboard table {
 +    margin:25px;
 +    width:100%;
 +}
 +div#home-dashboard table td {
 +    text-align:center;
 +    padding:15px 0;
 +    width:33%;
 +}
 +div#home-dashboard table tr:first-child td {
 +    font-size:12pt;
 +    font-weight:bold;
 +    color:#270A5A;
 +}
 +div#home-dashboard table tr:last-child td {
 +    vertical-align:top;
 +    padding:25px 0;
 +}
 +div#home-dashboard table tr:last-child td.logged-in {
 +    border-right:1px solid #DDDDDD;
 +    padding:25px;
 +}
 +div#home-dashboard table tr:last-child td.support {
 +    border-left:1px solid #DDDDDD;
 +    padding:25px;
 +}
 +div#home-dashboard table tr:last-child td:first-child {
 +}
 +div#home-dashboard table tr:last-child td:last-child {
 +    border-right:0;
 +}
 +div#home-dashboard table tr:last-child td.logged-in div {
 +    text-align:left;
 +    padding:25px 0;
 +}
 +div#home-dashboard table tr:last-child td.support div {
 +    text-align:left;
 +    padding:25px 0;
 +}
 +div#home-dashboard div.login-widget {
 +    padding:20px;
 +}
 +div#home-dashboard table td.support {
 +}
 +div#home-dashboard table td.support a {
 +}
 +div#home-dashboard table td.support a:hover {
 +    text-decoration:none;
 +}
 +
 +div#home-dashboard div#manager {
 +    display:none;
 +}
 +
 +div#home-dashboard div#home-slice-list {
 +    margin:25px 0;
 +    padding:0 25px;
 +    text-align:left;
 +}
 +div#home-dashboard div#home-slice-list ul {
 +    list-style: none;
 +    padding:0;
 +    margin:0;
 +}
 +div#home-dashboard div#home-slice-list li {
 +    
 +}
 +
 +/**/
 +
 +/**/
 +/* WELL */
 +div.well {
 +}
 +/**/
 +/* TABLE */
 +table.table {
 +    margin:0;
 +}
 +table.table thead {
 +    padding:0;
 +}
 +table.table tbody {
 +    padding:0;
 +}
 +table.table tr {
 +    padding:0;
 +}
 +table.table td {
 +    padding:0;
 +}
 +/* INSTITUTION */
 +div#institution {
 +    color:black;
 +}
 +.form-hint {
 +    font-size:11pt;
 +    font-style:italic;
 +    color:gray;
 +}
 +
 +
 +.form-hint {
 +    font-size:11pt;
 +    font-style:italic;
 +    color:gray;
 +}
 +
 +
 +
 +/* TICKET REQUEST */
 +div#ticket-request {
 +    color:black;
 +}
 +.form-hint {
 +    font-size:11pt;
 +    font-style:italic;
 +    color:gray;
 +}
 +div#ticket-request p {
 +    margin:20px 0;
 +}
 +
 +ul.nav-tabs {
 +    margin:0 0 15px 0;
 +}
 +ul.nav-tabs ul {}
 +ul.nav-tabs li {}
 +
 +ul.nav-section li a {
 +    color:black;
 +    border-bottom:0;
 +}
 +ul.nav-section li:first-child {
 +    padding:0;
 +}
 +ul.nav-section li:first-child a {
 +}
 +ul.nav-section li:first-child.active a {
 +}
 +
 +ul.nav-resources {
 +    margin:15px 0;
 +}
 +ul.nav-resources a {
 +    padding: 4px 10px 5px 10px;
 +}
 +
 +/* SLICE VIEW */
 +div.container-resource, div.container-slice {
 +    padding-right:15px;
 +    padding-left:15px;
 +}
 +.table th {
 +    border-top:0 !important;
 +}
 +div#slice-view {
 +    margin:0;
 +}
 +div.list-group-item {
 +    border:0;
 +    -moz-border-radius: 0;
 +    border-radius: 0;
 +    background-color:white;
 +    font-weight:bold;
 +    padding-left:0;
 +}
 +a.list-group-item {
 +    -moz-border-radius: 0;
 +    border-radius: 0;
 +    border:0;
 +    background-color:white;
 +    padding:3px 2px 3px 10px;
 +    border-left:2pt white solid;
 +}
 +a.list-group-item.active, a.list-group-item.active:hover, a.list-group-item.active:focus {
 +    -moz-border-radius: 0;
 +    border-radius: 0;
 +    font-weight: bold;
 +    color:black;
 +    background-color:#F5F5F5;
 +    border-left:2pt blue solid;
 +}
 +
 +a.list-group-item:hover {
 +    -moz-border-radius: 0;
 +    border-radius: 0;
 +    border-left:2pt blue solid;
 +}
 +a.list-group-item p.list-group-item-text {
 +    -moz-border-radius: 0;
 +    border-radius: 0;
 +    font-size:9pt;
 +    font-style:italic;
 +    font-weight: normal;
 +    color: black !important;
 +}
 +
 +span.sl-resources {
 +    font-size:9pt;
 +    color:gray;
 +}
 +a.sl-resources, a.sl-resources:hover {
 +    font-size:9pt;
 +    border:0;
 +    padding:2px 4px;
 +    -moz-border-radius: 4px;
 +    border-radius: 4px;
++    width:125px;
++    text-align: center;
 +}
 +a.sl-resources.active, a.sl-resources.active:hover, a.sl-resources.active:focus {
 +    border:0;
 +    -moz-border-radius: 4px;
 +    border-radius: 4px;
 +}
 +
 +div#slice-info {
 +    margin-top:25px;
 +}
 +div#slice-info table {
 +    width:100%;
 +    margin:0 auto;
 +}
 +div#slice-info table td:first-child {
 +    text-align:right;
 +    font-weight:bold;
 +    padding-right:15px;
 +}
 +div#slice-info td {
 +    padding:5px;
 +}
 +
 +/* SLICE VIEW sections */
 +.slice-sections, .slice-pending {
 +    margin:0;
 +    padding:0;
 +}
 +.slice-sections ul, .slice-pending ul {
 +    margin:0;
 +    padding:0;
 +}
 +.slice-pending ul {
 +    width:400px;
 +    margin:0 auto 15px auto;
 +}
 +.slice-sections li {
 +    text-align:left;
 +    margin:0;
 +    padding:0;
 +}
 +.slice-pending li {
 +    padding-right:15px;
 +}
 +.slice-sections li a, .slice-pending li a {
 +    font-size:14px;
 +    color:black;
 +    padding:0;
 +}
 +.slice-sections li.active a, .slice-pending li.active a  {
 +    color:#201E62;
 +    background-color:#EFEFEF;
 +    text-decoration:underline;
 +    padding:0;
 +}
 +.slice-sections ul.nav-pills li a:hover, .slice-pending ul.nav-pills li a:hover {
 +    text-decoration:underline;
 +    background-color:#EFEFEF;
 +    color:black;
 +}
 +.slice-sections ul.nav-pills li.active, .slice-pending ul.nav-pills li.active {
 +
 +}
 +.slice-sections li:first-child, .slice-sections li:first-child a {
 +    color:#201E62;
 +    font-weight:bold;
 +}
 +.slice-experiment {
 +    text-align:right;
 +    padding:0;
 +}
 +.slice-experiment button {
 +    margin:3px 0 0 0;
 +    background-color:#CC4125;
 +    color:white;
 +}
 +
 +.slice-pending {
 +}
 +.slice-pending button {
 +    font-size:9pt;
 +    margin:-2px 0 0 0;
 +    padding:3px 5px;
 +}
 +.slice-pending button.apply {
 +}
 +.slice-pending button.clear {
 +}
 +tr.active, tr.active td {
 +    background-color:#FFFFCC !important;
 +}
 +div.dataTables_filter label{
 +    float:left;
 +    width:400px;
 +}
 +
 +/* HEADER */
 +
 +
 +.header {
 +  -moz-box-shadow:    0 0 1px rgba(82,82,82,0.6);
 +  -webkit-box-shadow: 0 0 1px rgba(82,82,82,0.6);
 +  box-shadow:         0 0 1px rgba(82,82,82,0.6);
 +  height:61px;
 +  background-color:white;
 +  margin-bottom: 35px;
 +}
 +
 +div.navigation {
 +    
 +}
 +div.navigation ul {
 +    margin:26px 0 0 0;
 +    padding:0;
 +    display: inline-block;
 +    list-style-type: none;
 +    white-space: nowrap;
 +}
 +
 +div.navigation li {
 +    color:#0C0047;
 +    font-family:open_sansbold, sans-serif;
 +    font-size:9pt;
 +    font-weight:normal;
 +    line-height:0.8em;
 +    letter-spacing:0.4pt;
 +    list-style:none;
 +    float:left;
 +    padding:0 15px;
 +    margin:0;
 +    text-transform:uppercase;
 +}
 +div.navigation li:hover {
 +}
 +div.navigation li a {
 +    color:#0C0047;
 +}
 +div.navigation li a:hover, div.navigation li a.current {
 +    color:#760073;
 +    text-decoration:none;
 +}
 +
 +div.navigation li:last-child {
 +    margin-right:0;
 +}
 +
 +
 +div.navigation .dropdown-menu {
 +    color:black;
 +    -moz-box-shadow:    1px 1px 0px 0 rgba(58, 48, 100,0.8);
 +    -webkit-box-shadow: 1px 1px 0px 0 rgba(58, 48, 100,0.8);
 +    box-shadow:         1px 1px 0px 0 rgba(58, 48, 100,0.8);
 +    border-radius:2px;
 +    padding:0 5px 5px 5px;
 +    margin-top:5px;
 +    margin-left:20px;
 +}
 +div.navigation .dropdown-menu ul {
 +    margin:0;
 +    padding:15px 5px 5px 5px;
 +    display:list-item;
 +}
 +div.navigation .dropdown-menu li {
 +    margin:0 10px 0 0;
 +    padding:0 0 8px 0;
 +    display:list-item;
 +    float:none;
 +    text-transform: none;
 +}
 +
 +div.navigation .dropdown-menu a {
 +    font-family:Helvetica,sans-serif;
 +    font-size:10pt;
 +    color:black;
 +}
 +div.navigation .dropdown-menu li.title {
 +    margin-bottom:10px;
 +}
 +div.navigation .dropdown-menu li.title a {
 +    font-family:open_sansbold, sans-serif;
 +}
 +
 +
 +div.navigation .dropdown-menu li:first-child {
 +    border-bottom:1px solid white;
 +    padding-bottom:5px;
 +     
 +}
 +
 +div.secondary {
 +    text-align:right;
 +}
 +
 +div.secondary ul {
 +   margin:6px 0 0 0;
 +   padding:0;
 +}
 +
 +div.secondary li {
 +    font-size:9pt;
 +    display:inline;
 +    list-style:none;
 +    margin:0px;
 +    padding:0;
 +    margin-right:15px;
 +    color:#747474;
 +    letter-spacing:0.4px;
 +}
 +div.secondary li:last-child {
 +    margin-right:0;
 +}
 +div.secondary li a {
 +    color:#747474;
 +}
 +div.secondary li a:hover {
 +    text-decoration:none;
 +}
 +div.secondary .button {    
 +    width:300px;
 +    margin-top:15px;
 +}
 +div.secondary .account {
 +    margin-top:10px;
 +    padding:0;
 +    font-size:9pt;
 +    color:gray;
 +    text-align:right;
 +}
 +div.secondary .account span {
 +    font-size:8pt;
 +}
 +div.secondary .account a {
 +    color:black;
 +}
 +div.home {
 +    font-size:11pt;
 +    line-height:1.2em;
 +    letter-spacing:0.3pt;
 +    min-height:500px;
 +    background-image: url('../img/optical_fibre.jpg');
 +    background-repeat:no-repeat;
 +    background-size:cover;
 +    background-position:center top;
 +    background-color:#013ADF;
 +    padding:100px 0;
 +}
 +div.home h2 {
 +    color:white;
 +    line-height:1.2em;
 +    font-size:18pt;
 +}
 +div.home h3 {
 +    color:white;
 +    line-height:1.4em;
 +}
 +div.dashboard {
 +    text-align:center;
 +}
 +div.dashboard div {
 +    margin:25px 0;
 +}
 +div.dashboard ul {
 +    text-align:left;
 +    margin-left:24px;
 +    list-style:none;
 +}
 +div.registration-form {
 +    padding-top:150px;
 +    text-align:center;
 +}
 +
 +.login-form input {
 +    width:320px;
 +}
 +.login-form input[type=submit] {
 +    width:108px;
 +}
 +
 +.login-submit {
 +    vertical-align:middle;
 +    padding:0;
 +}
 +.lost-password {
 +    font-size:10pt;
 +    color:black;
 +    text-align:right;
 +    padding:0px;
 +}
 +.lost-password a {
 +    color:white;
 +    text-shadow:0.5px 0.5px black;
 +}
 +.login-signup {
 +    font-size:12pt;
 +    color:white;
 +    text-shadow:0.5px 0.5px black;
 +    margin-top:45px;
 +    padding:5px 0 0 4px;
 +    
 +}
 +.login-signup a {
 +    color:white;
 +    text-shadow:0.5px 0.5px black;
 +    padding-bottom:2px;
 +    border-bottom:2pt solid white;
 +}
 +.login-signup a:hover {
 +    text-decoration:none;
 +}
 +.login-signup button {
 +    padding:8px;
 +    border:0;
 +    border-bottom:2px solid #540086;
 +    background-color:#302562;
 +    color:white;
 +    width:100px;
 +    border-radius:5px;
 +    font-size:12pt;
 +}
 +div.slogan {
 +    text-align:center;
 +    color:white;
 +    padding-top:60px;
 +    text-shadow: 1px 1px #013540;
 +}