Changeset 12563 for stable/HeuristicLab.Services.WebApp/3.3/WebApp
- Timestamp:
- 07/01/15 14:59:47 (9 years ago)
- Location:
- stable
- Files:
-
- 11 edited
- 5 copied
Legend:
- Unmodified
- Added
- Removed
-
stable
- Property svn:mergeinfo changed
/trunk/sources merged: 12146,12428-12430,12435,12442-12443,12445,12457,12514,12517,12519-12521,12523,12532,12542,12546,12552-12553,12556-12557,12559,12561 -
Property
svn:global-ignores
set to
*.nuget
packages
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Services.WebApp/3.3/WebApp/app.css
r12428 r12563 3 3 -moz-border-radius: 0 !important; 4 4 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;*/9 5 font-family: "Open Sans", Helvetica, Arial, sans-serif; 10 6 } … … 79 75 80 76 #menu { 81 position: absolute; 82 min-height: inherit; 83 width: 250px; 77 position: relative; 84 78 background: #FAFAFA; 85 79 display: block; 86 80 overflow: hidden; 87 border-right: 1px solid #D3D3D3; 81 z-index: 10000; 82 width: 100%; 88 83 } 89 84 … … 101 96 #view { 102 97 position: relative; 103 left: 0 px;104 margin-left: 250px;98 left: 0; 99 margin-left: 0px; 105 100 display: block; 106 101 overflow: hidden; 107 102 } 103 108 104 109 105 .view-header { … … 124 120 } 125 121 126 .navbar-header {127 width: 250px;122 .navbar-header { 123 width: 100%; 128 124 background: #3c3a39; 129 125 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; 130 173 } 131 174 … … 140 183 .nav-sidebar { 141 184 font-size: 12px; 185 padding-bottom: 30px; 142 186 } 143 187 … … 279 323 } 280 324 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 } 281 349 282 350 #top-navbar { … … 311 379 312 380 .navbar-default .navbar-text { 381 display: block; 313 382 color: #ffffff; 314 383 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 } 317 418 318 419 .default-view-container { 319 420 padding: 30px; 320 421 } 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 8 8 <div class="panel-body"> 9 9 <p> 10 Heuristic and Evolutionary Algorithms Laboratory (HEAL)<br />10 <strong>Heuristic and Evolutionary Algorithms Laboratory (HEAL)</strong><br /> 11 11 School of Informatics, Communications and Media<br /> 12 12 University of Applied Sciences Upper Austria<br /> … … 27 27 </div> 28 28 <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> 31 32 <p> 32 <strong>Head of HeuristicLab</strong>: <br />33 <strong>Head of HeuristicLab</strong>: <br /> 33 34 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 /> 37 38 </p> 38 39 </div> … … 45 46 <div class="panel panel-default"> 46 47 <div class="panel-heading"> 47 <h3 class="panel-title">Disclaimer of Liability and Endorsement</h3>48 <h3 class="panel-title">Disclaimer</h3> 48 49 </div> 49 50 <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> 51 52 </div> 52 53 </div> -
stable/HeuristicLab.Services.WebApp/3.3/WebApp/plugins/about/about.js
r12546 r12563 9 9 10 10 var menu = app.getMenu(); 11 var section = menu.getSection('Men ü', -1);11 var section = menu.getSection('Menu', -1); 12 12 section.addEntry({ 13 13 index: 10000, -
stable/HeuristicLab.Services.WebApp/3.3/WebApp/plugins/login/loginCtrl.js
r12428 r12563 9 9 $window.location.reload(); 10 10 } else { 11 $scope.result = " error logging in";11 $scope.result = "Invalid username or password. Please try again."; 12 12 } 13 13 }); -
stable/HeuristicLab.Services.WebApp/3.3/WebApp/plugins/plugins/plugins.cshtml
r12428 r12563 1 1 <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">×</span></button> 5 <h4 class="modal-title">Plugin {{pluginName}}</h4> 6 </div> 7 <div class="modal-body"> 8 {{exception}} 9 </div> 10 </script> 2 11 <div class="row"> 3 12 <div class="col-lg-12"> … … 7 16 </div> 8 17 <div class="panel-body"> 9 <table class="table table-hover table-condensed" >18 <table class="table table-hover table-condensed" ts-wrapper> 10 19 <thead> 11 20 <tr> 12 21 <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> 16 26 <th></th> 17 27 </tr> 18 28 </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> 28 45 </table> 29 46 </div> -
stable/HeuristicLab.Services.WebApp/3.3/WebApp/plugins/plugins/plugins.js
r12428 r12563 2 2 (function () { 3 3 var plugin = appPluginsPlugin; 4 plugin.dependencies = ['ngResource', 'ui.bootstrap' ];4 plugin.dependencies = ['ngResource', 'ui.bootstrap', 'tableSort']; 5 5 plugin.files = [ 6 6 'pluginsService.js', 7 'pluginsCtrl.js' 7 'pluginsCtrl.js', 8 'pluginsExceptionCtrl.js' 8 9 ]; 9 10 plugin.view = 'plugins.cshtml'; -
stable/HeuristicLab.Services.WebApp/3.3/WebApp/plugins/plugins/pluginsCtrl.js
r12428 r12563 2 2 var module = appPluginsPlugin.getAngularModule(); 3 3 module.controller('app.plugins.ctrl', 4 ['$scope', ' app.plugins.service', function ($scope, pluginService) {4 ['$scope', '$modal', 'app.plugins.service', function ($scope, $modal, pluginService) { 5 5 var getPlugins = function () { 6 6 pluginService.getPlugins({}, function (plugins) { … … 22 22 23 23 $scope.reloadPlugin = function (name) { 24 pluginService.reloadPlugin({ name: name }, function () {24 pluginService.reloadPlugin({ name: name }, function () { 25 25 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 } 26 44 }); 27 45 }; -
stable/HeuristicLab.Services.WebApp/3.3/WebApp/shared/directives/flot.js
r12428 r12563 6 6 link: function (scope, element, attrs) { 7 7 var chart = null, opts = scope[attrs.options]; 8 var div = null; 8 9 9 10 scope.$watchCollection(attrs.dataset, function (newData, oldData) { 10 11 if (!chart) { 11 vardiv = element.append("<div>");12 div = element.append("<div>"); 12 13 div.bind("plotselected", function (event, ranges) { 13 14 $.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 2 21 <!DOCTYPE html> 3 22 <html lang="en" ng-app="app"> … … 15 34 <![endif]--> 16 35 @Scripts.Render("~/Bundles/Vendors/js") 17 @ {18 BundleTable.EnableOptimizations = false;36 @foreach (var script in BundleConfig.GetWebAppScripts()) { 37 <script src="@script"></script> 19 38 } 20 @Scripts.Render("~/Bundles/WebApp/js") 21 @{ 22 BundleTable.EnableOptimizations = true; 23 } 39 40 @Scripts.Render("~/Bundles/WebApp/Shared") 24 41 </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"> 33 55 <span class="sr-only">Toggle navigation</span> 34 56 <span class="icon-bar"></span> … … 36 58 <span class="icon-bar"></span> 37 59 </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>59 60 </div> 60 61 </div> 61 </nav>62 </header>63 62 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"> 65 88 <ul class="nav nav-sidebar" 66 89 ng-include="'App/LoadSharedView?directory=menu&view=menu.cshtml&dateTime=@DateTime.Now'" 67 90 ng-init="entries = menuEntries;"></ul> 68 </aside> 91 </div> 92 </aside> 69 93 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> 74 103 </body> 75 104 </html> -
stable/HeuristicLab.Services.WebApp/3.3/WebApp/shared/menu/menuCtrl.js
r12428 r12563 7 7 $scope.menuEntries = app.getMenu().getMenuEntries(); 8 8 $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; 17 21 } 18 22 } 23 return true; 19 24 } 20 return $location.path().toUpperCase() == loc;25 return false; 21 26 }; 22 27 23 $scope.logout = function () {24 authService.logout({}, function () {28 $scope.logout = function () { 29 authService.logout({}, function () { 25 30 $window.location.hash = ""; 26 31 $window.location.reload(); 27 32 }); 28 33 }; 34 35 $scope.hideMenu = function () { 36 $(".navbar-collapse").collapse('hide'); 37 }; 29 38 }] 30 39 );
Note: See TracChangeset
for help on using the changeset viewer.