Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/01/15 14:59:47 (9 years ago)
Author:
ascheibe
Message:

#2394 merged r12428, r12429, r12430, r12435, r12442, r12443, r12445, r12514, r12517, r12519, r12520, r12521, r12523, r12532, r12542, r12546, r12552, r12553, r12556, r12557, r12559, r12561, r12146, r12457 into stable

Location:
stable
Files:
11 edited
5 copied

Legend:

Unmodified
Added
Removed
  • stable

  • stable/HeuristicLab.Services.WebApp/3.3/WebApp/app.css

    r12428 r12563  
    33     -moz-border-radius: 0 !important;
    44          border-radius: 0 !important;
    5     /* -webkit-box-shadow: none !important;
    6         -moz-box-shadow: none !important;
    7           -o-box-shadow: none !important;
    8              box-shadow: none !important;*/
    95  font-family: "Open Sans", Helvetica, Arial, sans-serif;
    106}
     
    7975
    8076#menu {
    81   position: absolute;
    82   min-height: inherit;
    83   width: 250px;
     77  position: relative;
    8478  background: #FAFAFA;
    8579  display: block;
    8680  overflow: hidden;
    87   border-right: 1px solid #D3D3D3;
     81  z-index: 10000;
     82  width: 100%;
    8883}
    8984
     
    10196#view {
    10297  position: relative;
    103   left: 0px;
    104   margin-left: 250px;
     98  left: 0;
     99  margin-left: 0px;
    105100  display: block;
    106101  overflow: hidden;
    107102}
     103
    108104
    109105.view-header {
     
    124120}
    125121
    126 .navbar-header{
    127   width: 250px;
     122.navbar-header {
     123  width: 100%;
    128124  background: #3c3a39;
    129125  color: #FFFFFF;
     126  float: left;
     127}
     128
     129
     130@media (min-width: 768px) {
     131  #view {
     132    margin-left: 250px;
     133  }
     134
     135  #menu {
     136    visibility: visible;
     137    position: absolute;
     138    width: 250px;
     139    min-height: inherit;
     140    border-right: 1px solid #D3D3D3;
     141    z-index: 0;
     142  }
     143
     144  .navbar-header {
     145    width: 250px;
     146  }
     147}
     148.container-fluid .navbar-header {
     149  margin: 0;
     150  padding: 0;
     151}
     152
     153.navbar-nav {
     154  margin: 0;
     155  padding: 0;
     156}
     157
     158.navbar-right {
     159  float: right!important
     160}
     161
     162.navbar-nav>li>a {
     163  padding-top: 15px;
     164  padding-bottom: 15px;
     165}
     166
     167.navbar-content {
     168  padding-right: 15px;
     169}
     170
     171.navbar-nav > li {
     172  float: left;
    130173}
    131174
     
    140183.nav-sidebar {
    141184  font-size: 12px;
     185  padding-bottom: 30px;
    142186}
    143187
     
    279323}
    280324
     325.table-no-border>thead>tr>th,
     326.table-no-border>tbody>tr>th,
     327.table-no-border>tfoot>tr>th,
     328.table-no-border>thead>tr>td,
     329.table-no-border>tbody>tr>td,
     330.table-no-border>tfoot>tr>td,
     331.table-no-border>tbody,
     332.table-no-border>thead,
     333.table-no-border>tfoot{
     334  border-top: none !important;
     335  border-bottom: none !important;
     336}
     337
     338.table-auto-width {
     339  width: auto !important;
     340}
     341
     342.center-element {
     343  margin: 0 auto;
     344}
     345
     346.table-content {
     347  margin-bottom: 0;
     348}
    281349
    282350#top-navbar {
     
    311379
    312380.navbar-default .navbar-text {
     381  display: block;
    313382  color: #ffffff;
    314383  text-shadow: none !important;
    315 }
    316 
     384  margin: 0;
     385  padding: 15px;
     386}
     387
     388.navbar-nav {
     389  float:left;
     390  margin:0
     391}
     392
     393.navbar-nav>li {
     394  float:left
     395}
     396
     397.navbar-nav>li>a {
     398  padding-top:15px;
     399  padding-bottom:15px
     400}
     401
     402.navbar-toggle {
     403  border: none !important;
     404}
     405
     406.navbar-toggle:focus {
     407  background-color: transparent !important;
     408}
     409
     410.navbar-toggle:hover {
     411  background-color: #D3D3D3 !important;
     412}
     413
     414#menu .navbar-collapse {
     415  padding: 0;
     416  margin: 0;
     417}
    317418
    318419.default-view-container {
    319420  padding: 30px;
    320421}
     422
     423.panel-heading a:after {
     424    font-family:'Glyphicons Halflings';
     425    content:"\e114";
     426    float: right;
     427    color: grey;
     428}
     429.panel-heading a.collapsed:after {
     430    content:"\e080";
     431}
     432
     433.panel-heading a:focus, a:hover {
     434  text-decoration: none;
     435}
  • stable/HeuristicLab.Services.WebApp/3.3/WebApp/plugins/about/about.cshtml

    r12546 r12563  
    88                <div class="panel-body">
    99                    <p>
    10                         Heuristic and Evolutionary Algorithms Laboratory (HEAL)<br />
     10                        <strong>Heuristic and Evolutionary Algorithms Laboratory (HEAL)</strong><br />
    1111                        School of Informatics, Communications and Media<br />
    1212                        University of Applied Sciences Upper Austria<br />
     
    2727                </div>
    2828                <div class="panel-body">
    29                     <p><strong>Support and Inquiries</strong>: ​<a href="mailto:#">support@heuristiclab.com</a></p>
    30                     <p><strong>Heuristic and Evolutionary Algorithms Laboratory (HEAL)</strong>: <a href="​http://heal.heuristiclab.com">​http://heal.heuristiclab.com</a></p>
     29                    <p><strong>Support and Inquiries</strong>: ​<a href="mailto:support@heuristiclab.com">support@heuristiclab.com</a></p>
     30                    <p><strong>Heuristic and Evolutionary Algorithms Laboratory (HEAL)</strong>: <a href="App/RedirectUrl?url=http://heal.heuristiclab.com">​http://heal.heuristiclab.com</a></p>
     31                    <p><strong>HeuristicLab development site</strong>: <a href="App/RedirectUrl?url=http://dev.heuristiclab.com">http://dev.heuristiclab.com</a></p>
    3132                    <p>
    32                         <strong>Head of HeuristicLab</strong>:<br />
     33                        <strong>Head of HeuristicLab</strong>: <br />
    3334                        FH-Prof. DI Dr. Stefan Wagner<br />
    34                         Phone: +43 50804 22030<br />
    35                         Fax: +43 50804 21599<br />
    36                         E-mail: <a href="mailto:#">stefan.wagner@heuristiclab.com</a><br />
     35                        <span class="glyphicon glyphicon-phone-alt"></span> +43 50804 22030<br />
     36                        <span class="glyphicon glyphicon-print"></span> +43 50804 21599<br />
     37                        <span class="glyphicon glyphicon-envelope"></span> <a href="mailto:stefan.wagner@heuristiclab.com">stefan.wagner@heuristiclab.com</a><br />
    3738                    </p>
    3839                </div>
     
    4546            <div class="panel panel-default">
    4647                <div class="panel-heading">
    47                     <h3 class="panel-title">Disclaimer of Liability and Endorsement</h3>
     48                    <h3 class="panel-title">Disclaimer</h3>
    4849                </div>
    4950                <div class="panel-body">
    50                     <p style="text-align:justify">HeuristicLab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details (http://www.gnu.org/licenses). All contents on the development homepage and wiki of the HeuristicLab have been compiled carefully. Still, the Heuristic and Evolutionary Algorithms Laboratory (HEAL) makes no guarantees of accuracy, completeness and timeliness of the information on this website. Therefore HEAL accepts no responsibility or liability for damages or losses resulting from the use of this website and/or the software.</p>
     51                    <p style="text-align: justify">HeuristicLab, Hive and HeuristicLab WebApp are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details (<a href="App/RedirectUrl?url=http://www.gnu.org/licenses">http://www.gnu.org/licenses</a>). </p>
    5152                </div>
    5253            </div>
  • stable/HeuristicLab.Services.WebApp/3.3/WebApp/plugins/about/about.js

    r12546 r12563  
    99
    1010    var menu = app.getMenu();
    11     var section = menu.getSection('Menü', -1);
     11    var section = menu.getSection('Menu', -1);
    1212    section.addEntry({
    1313        index: 10000,
  • stable/HeuristicLab.Services.WebApp/3.3/WebApp/plugins/login/loginCtrl.js

    r12428 r12563  
    99                        $window.location.reload();
    1010                    } else {
    11                         $scope.result = "error logging in";
     11                        $scope.result = "Invalid username or password. Please try again.";
    1212                    }
    1313                });
  • stable/HeuristicLab.Services.WebApp/3.3/WebApp/plugins/plugins/plugins.cshtml

    r12428 r12563  
    11<div class="default-view-container">
     2    <script type="text/ng-template" id="pluginsExceptionDialog">
     3        <div class="modal-header">
     4            <button type="button" ng-click="close()" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
     5            <h4 class="modal-title">Plugin {{pluginName}}</h4>
     6        </div>
     7        <div class="modal-body">
     8            {{exception}}
     9        </div>
     10    </script>
    211    <div class="row">
    312        <div class="col-lg-12">
     
    716                </div>
    817                <div class="panel-body">
    9                     <table class="table table-hover table-condensed">
     18                    <table class="table table-hover table-condensed" ts-wrapper>
    1019                        <thead>
    1120                            <tr>
    1221                                <th>#</th>
    13                                 <th>Name</th>
    14                                 <th>Assembly</th>
    15                                 <th>Last reload</th>
     22                                <th ts-criteria="Name">Name</th>
     23                                <th ts-criteria ="AssemblyName">Assembly</th>
     24                                <th ts-criteria="LastReload">Last reload</th>
     25                                <th>Status</th>
    1626                                <th></th>
    1727                            </tr>
    1828                        </thead>
    19                         <tr ng-repeat="plugin in plugins">
    20                             <td>{{$index + 1}}</td>
    21                             <td>{{plugin.Name}}</td>
    22                             <td>{{plugin.AssemblyName}}</td>
    23                             <td>{{plugin.LastReload}}</td>
    24                             <td>
    25                                 <a ng-href="" data-ng-click="reloadPlugin(plugin.Name)">Reload</a>
    26                             </td>
    27                         </tr>
     29                        <tbody>
     30                            <tr ng-repeat="plugin in plugins" ts-repeat>
     31                                <td>{{$index + 1}}</td>
     32                                <td>{{plugin.Name}}</td>
     33                                <td>{{plugin.AssemblyName}}</td>
     34                                <td>{{plugin.LastReload}}</td>
     35                                <td>
     36                                    <span ng-hide="plugin.Exception" class="glyphicon glyphicon glyphicon-ok" style="color: green"></span>
     37                                    <span ng-show="plugin.Exception" class="glyphicon glyphicon glyphicon-remove" style="color: darkred"
     38                                          ng-click="open(plugin.Name, plugin.Exception)"></span>
     39                                </td>
     40                                <td>
     41                                    <a ng-href="" data-ng-click="reloadPlugin(plugin.Name)">Reload</a>
     42                                </td>
     43                            </tr>
     44                        </tbody>
    2845                    </table>
    2946                </div>
  • stable/HeuristicLab.Services.WebApp/3.3/WebApp/plugins/plugins/plugins.js

    r12428 r12563  
    22(function () {
    33    var plugin = appPluginsPlugin;
    4     plugin.dependencies = ['ngResource', 'ui.bootstrap'];
     4    plugin.dependencies = ['ngResource', 'ui.bootstrap', 'tableSort'];
    55    plugin.files = [
    66        'pluginsService.js',
    7         'pluginsCtrl.js'
     7        'pluginsCtrl.js',
     8        'pluginsExceptionCtrl.js'
    89    ];
    910    plugin.view = 'plugins.cshtml';
  • stable/HeuristicLab.Services.WebApp/3.3/WebApp/plugins/plugins/pluginsCtrl.js

    r12428 r12563  
    22    var module = appPluginsPlugin.getAngularModule();
    33    module.controller('app.plugins.ctrl',
    4         ['$scope', 'app.plugins.service', function ($scope, pluginService) {
     4        ['$scope', '$modal', 'app.plugins.service', function ($scope, $modal, pluginService) {
    55            var getPlugins = function () {
    66                pluginService.getPlugins({}, function (plugins) {
     
    2222
    2323            $scope.reloadPlugin = function (name) {
    24                 pluginService.reloadPlugin({ name: name }, function() {
     24                pluginService.reloadPlugin({ name: name }, function () {
    2525                    getPlugins();
     26                });
     27            };
     28
     29            $scope.open = function (pluginName, exception) {
     30                $scope.pluginName = pluginName;
     31                $scope.exception = exception;
     32                $modal.open({
     33                    animation: true,
     34                    templateUrl: 'pluginsExceptionDialog',
     35                    controller: 'app.plugins.pluginsExceptionCtrl',
     36                    resolve: {
     37                        pluginName: function () {
     38                            return $scope.pluginName;
     39                        },
     40                        exception: function () {
     41                            return $scope.exception;
     42                        }
     43                    }
    2644                });
    2745            };
  • stable/HeuristicLab.Services.WebApp/3.3/WebApp/shared/directives/flot.js

    r12428 r12563  
    66            link: function (scope, element, attrs) {
    77                var chart = null, opts = scope[attrs.options];
     8                var div = null;
    89
    910                scope.$watchCollection(attrs.dataset, function (newData, oldData) {
    1011                    if (!chart) {
    11                         var div = element.append("<div>");
     12                        div = element.append("<div>");
    1213                        div.bind("plotselected", function (event, ranges) {
    1314                            $.each(chart.getXAxes(), function (_, axis) {
  • stable/HeuristicLab.Services.WebApp/3.3/WebApp/shared/layout/layout.cshtml

    r12428 r12563  
    1 @using HeuristicLab.Services.WebApp.Configs
     1@* HeuristicLab
     2 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 *
     4 * This file is part of HeuristicLab.
     5 *
     6 * HeuristicLab is free software: you can redistribute it and/or modify
     7 * it under the terms of the GNU General Public License as published by
     8 * the Free Software Foundation, either version 3 of the License, or
     9 * (at your option) any later version.
     10 *
     11 * HeuristicLab is distributed in the hope that it will be useful,
     12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     14 * GNU General Public License for more details.
     15 *
     16 * You should have received a copy of the GNU General Public License
     17 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
     18*@
     19
     20@using HeuristicLab.Services.WebApp.Configs
    221<!DOCTYPE html>
    322<html lang="en" ng-app="app">
     
    1534    <![endif]-->
    1635    @Scripts.Render("~/Bundles/Vendors/js")
    17     @{
    18         BundleTable.EnableOptimizations = false;
     36    @foreach (var script in BundleConfig.GetWebAppScripts()) {
     37        <script src="@script"></script>
    1938    }
    20     @Scripts.Render("~/Bundles/WebApp/js")
    21     @{
    22         BundleTable.EnableOptimizations = true;
    23     }
     39
     40    @Scripts.Render("~/Bundles/WebApp/Shared")
    2441</head>
    25 <body>
    26     <div id="app">
    27         <header id="toolbar" class="navbar navbar-default navbar-static-top no-border no-padding-margin"
    28                 ng-controller="app.menu.ctrl">
    29             <nav>
    30                 <div class="container-fluid">
    31                     <div class="navbar-header">
    32                         <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#top-navbar">
     42<body ngcloak>
     43<div id="app">
     44    <header id="toolbar" class="navbar navbar-default navbar-static-top no-border no-padding-margin"
     45            ng-controller="app.menu.ctrl">
     46        <nav>
     47            <div class="container-fluid">
     48                <div class="navbar-header">
     49                    <div class="center-block">
     50                        <a class="navbar-brand" href="#">
     51                            <img src="~/WebApp/shared/images/HeuristicLab-Logo.png" style="float: left; height: 100%; margin-right: 5px;"/>
     52                            <span style="color: #f7921d">HeuristicLab</span>
     53                        </a>
     54                        <button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target="#menu .navbar-collapse">
    3355                            <span class="sr-only">Toggle navigation</span>
    3456                            <span class="icon-bar"></span>
     
    3658                            <span class="icon-bar"></span>
    3759                        </button>
    38                         <a class="navbar-brand" href="#">
    39                             <img src="~/WebApp/shared/images/HeuristicLab-Logo.png" style="float: left; height: 100%; margin-left: 25px; margin-right: 5px;" />
    40                             Heuristic<span style="color: #f7921d">Lab</span>
    41                         </a>
    42                     </div>
    43 
    44                     <div class="collapse navbar-collapse" id="top-navbar">
    45                         <ul class="nav navbar-nav navbar-right">
    46                             @if (Request.IsAuthenticated) {
    47                                 <li>
    48                                     <p class="navbar-text">Hello @User.Identity.Name!</p>
    49                                 </li>
    50                                 <li>
    51                                     <a ng-href="" data-ng-click="logout()">Logout</a>
    52                                 </li>
    53                             } else {
    54                                 <li>
    55                                     <a ng-href="#/login">Login</a>
    56                                 </li>
    57                             }
    58                         </ul>
    5960                    </div>
    6061                </div>
    61             </nav>
    62         </header>
    6362
    64         <aside id="menu" ng-controller="app.menu.ctrl">
     63                <div class="navbar-content">
     64                    <ul class="nav navbar-nav navbar-right">
     65                        @if (Request.IsAuthenticated)
     66                        {
     67                            <li>
     68                                <span class="navbar-text">Hello @User.Identity.Name!</span>
     69                            </li>
     70                            <li>
     71                                <a ng-href="" data-ng-click="logout()">Logout</a>
     72                            </li>
     73                        }
     74                        else
     75                        {
     76                            <li>
     77                                <a ng-href="#/login" data-ng-click="hideMenu()">Login</a>
     78                            </li>
     79                        }
     80                    </ul>
     81                </div>
     82            </div>
     83        </nav>
     84    </header>
     85
     86    <aside id="menu" ng-controller="app.menu.ctrl">
     87        <div class="navbar-collapse collapse">
    6588            <ul class="nav nav-sidebar"
    6689                ng-include="'App/LoadSharedView?directory=menu&view=menu.cshtml&dateTime=@DateTime.Now'"
    6790                ng-init="entries = menuEntries;"></ul>
    68         </aside>
     91        </div>
     92    </aside>
    6993
    70         <section id="view">
    71             <ui-view/>
    72         </section>
    73     </div>
     94    <section id="view">
     95        <ui-view/>
     96    </section>
     97</div>
     98<script type="text/javascript">
     99$('.navbar-collapse').on('click', 'li a', function () {
     100    $('.navbar-collapse').collapse('hide');
     101});
     102</script>
    74103</body>
    75104</html>
  • stable/HeuristicLab.Services.WebApp/3.3/WebApp/shared/menu/menuCtrl.js

    r12428 r12563  
    77            $scope.menuEntries = app.getMenu().getMenuEntries();
    88            $scope.isActive = function (viewLocation) {
    9                 var loc = viewLocation.toUpperCase().substr(1);
    10                 var actualLocation = $location.path().toUpperCase();
    11                 var splitLoc = loc.split("/");
    12                 if (splitLoc.length <= 2) {
    13                     var actualLocationSplit = actualLocation.split("/");
    14                     if (actualLocationSplit.length > 1) {
    15                         if (splitLoc[1] == actualLocationSplit[1]) {
    16                             return true;
     9                var linkLocation = viewLocation.toUpperCase().substr(1);
     10                var currentLocation = $location.path().toUpperCase();
     11                if (linkLocation == currentLocation) {
     12                    return true;
     13                }
     14                var linkLocationParts = linkLocation.split("/");
     15                var currentLocationParts = currentLocation.split("/");
     16                var linkLocationPartsLength = linkLocationParts.length;
     17                if (linkLocationPartsLength < currentLocationParts.length) {
     18                    for (var i = 0; i < linkLocationPartsLength; ++i) {
     19                        if (linkLocationParts[i] !== currentLocationParts[i]) {
     20                            return false;
    1721                        }
    1822                    }
     23                    return true;
    1924                }
    20                 return $location.path().toUpperCase() == loc;
     25                return false;
    2126            };
    2227
    23             $scope.logout = function() {
    24                 authService.logout({}, function() {
     28            $scope.logout = function () {
     29                authService.logout({}, function () {
    2530                    $window.location.hash = "";
    2631                    $window.location.reload();
    2732                });
    2833            };
     34
     35            $scope.hideMenu = function () {
     36                $(".navbar-collapse").collapse('hide');
     37            };
    2938        }]
    3039    );
Note: See TracChangeset for help on using the changeset viewer.