Ignore:
Timestamp:
09/21/15 16:28:38 (7 years ago)
Author:
ascheibe
Message:

#2388 merged r12878, r12879, r12883, r12885, r12913, r12914, r12925, r12932, r12961 into stable

Location:
stable
Files:
1 deleted
15 edited
2 copied

Legend:

Unmodified
Added
Removed
  • stable

  • stable/HeuristicLab.Services.WebApp/3.3

    • Property svn:ignore
      •  

        old new  
        11Bin
         2HeuristicLab.Services.WebApp-3.3.csproj.user
  • stable/HeuristicLab.Services.WebApp/3.3/Configs/BundleConfig.cs

    r12685 r12962  
    5959        // bootstrap
    6060        "~/WebApp/libs/bootstrap/js/bootstrap.min.js",
    61         // crypto js
     61        // cryptojs
    6262        "~/WebApp/libs/cryptojs/aes.js",
    6363        // angular js
     
    7777        "~/WebApp/libs/angularjs/loading-bar/loading-bar.js",
    7878        "~/WebApp/libs/angularjs/ocLazyLoad/ocLazyLoad.min.js",
     79        "~/WebApp/libs/angularjs/fittext/ng-FitText.js",
    7980        // smoothScroll
    8081        "~/WebApp/libs/smoothScroll/smoothScroll.js"
     
    105106      PluginManager pluginManager = PluginManager.Instance;
    106107      foreach (var plugin in pluginManager.Plugins) {
    107         if (File.Exists(string.Format(@"{0}\{1}\{1}.js", PluginManager.PluginsDirectory, plugin.Name))) {
     108        var path = Path.Combine(PluginManager.PluginsDirectory, plugin.Name, string.Concat(plugin.Name, ".js"));
     109        if (File.Exists(path)) {
    108110          jsFiles.Add(string.Format("WebApp/plugins/{0}/{0}.js", plugin.Name));
    109111        }
  • stable/HeuristicLab.Services.WebApp/3.3/Controllers/AppController.cs

    r12563 r12962  
    2020#endregion
    2121
     22using System.Web;
    2223using System.Web.Mvc;
    2324
     
    3031        return RedirectPermanent(Request.Url + "/");
    3132      }
     33      Response.Cache.SetCacheability(HttpCacheability.NoCache);
    3234      return View("~/WebApp/shared/layout/layout.cshtml");
    3335    }
     
    3840
    3941    public ActionResult LoadSharedView(string directory, string view, string dateTime) {
    40       // dateTime is optional to avoid browser caching
     42      Response.Cache.SetCacheability(HttpCacheability.NoCache);
     43      // dateTime is optional to definitly avoid browser caching
    4144      return View(string.Format("~/WebApp/shared/{0}/{1}", directory, view));
    4245    }
    4346
    4447    public ActionResult LoadPluginView(string plugin, string view, string dateTime) {
    45       // dateTime is optional to avoid browser caching
     48      Response.Cache.SetCacheability(HttpCacheability.NoCache);
     49      // dateTime is optional to definitly avoid browser caching
    4650      return View(string.Format("~/WebApp/plugins/{0}/{1}", plugin, view));
    4751    }
  • stable/HeuristicLab.Services.WebApp/3.3/HeuristicLab.Services.WebApp-3.3.csproj

    r12563 r12962  
    1313    <AppDesignerFolder>Properties</AppDesignerFolder>
    1414    <RootNamespace>HeuristicLab.Services.WebApp</RootNamespace>
    15     <AssemblyName>HeuristicLab.Services.WebApp</AssemblyName>
     15    <AssemblyName>HeuristicLab.Services.WebApp-3.3</AssemblyName>
    1616    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
    1717    <MvcBuildViews>false</MvcBuildViews>
     
    118118    <Reference Include="System.Net.Http.WebRequest">
    119119    </Reference>
    120     <Reference Include="WebGrease, Version=1.6.5135.21930, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
    121       <SpecificVersion>False</SpecificVersion>
     120    <Reference Include="WebGrease">
    122121      <HintPath>..\..\packages\WebGrease.1.6.0\lib\WebGrease.dll</HintPath>
    123122    </Reference>
     
    146145    <Content Include="WebApp\libs\angularjs\angular-tablesort\angular-tablesort.js" />
    147146    <Content Include="WebApp\libs\angularjs\angular-tablesort\tablesort.css" />
     147    <Content Include="WebApp\libs\angularjs\fittext\ng-FitText.js" />
     148    <Content Include="WebApp\libs\cryptojs\aes.js" />
    148149    <Content Include="WebApp\main.js" />
    149150    <Content Include="WebApp\helper.js" />
     
    172173    <Content Include="WebApp\plugins\about\about.js" />
    173174    <Content Include="WebApp\plugins\about\aboutCtrl.js" />
    174     <Content Include="WebApp\plugins\login\login.css" />
    175     <Content Include="WebApp\plugins\login\login.js" />
    176     <Content Include="WebApp\plugins\login\loginCtrl.js" />
    177     <Content Include="WebApp\plugins\plugins\pluginsExceptionCtrl.js" />
    178     <Content Include="WebApp\plugins\plugins\plugins.js" />
    179     <Content Include="WebApp\plugins\plugins\pluginsCtrl.js" />
     175    <Content Include="WebApp\plugins\login\login.css">
     176      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     177    </Content>
     178    <Content Include="WebApp\plugins\login\login.js">
     179      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     180    </Content>
     181    <Content Include="WebApp\plugins\login\loginCtrl.js">
     182      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     183    </Content>
     184    <Content Include="WebApp\plugins\plugins\pluginsExceptionCtrl.js">
     185      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     186    </Content>
     187    <Content Include="WebApp\plugins\plugins\plugins.js">
     188      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     189    </Content>
     190    <Content Include="WebApp\plugins\plugins\pluginsCtrl.js">
     191      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     192    </Content>
    180193    <Content Include="WebApp\plugins\plugins\pluginsService.js" />
    181194    <Content Include="WebApp\shared\directives\flot.js" />
     
    208221    <Content Include="HeuristicLab.snk" />
    209222    <Content Include="Properties\AssemblyInfo.cs.frame" />
    210     <Content Include="Web.config" />
     223    <Content Include="Web.config">
     224      <SubType>Designer</SubType>
     225    </Content>
    211226    <Content Include="Web.Debug.config">
    212227      <DependentUpon>Web.config</DependentUpon>
     
    219234    <Content Include="WebApp\libs\bootstrap\fonts\glyphicons-halflings-regular.woff" />
    220235    <Content Include="WebApp\libs\bootstrap\fonts\glyphicons-halflings-regular.woff2" />
     236    <Content Include="WebApp\shared\directives\scrollToTop.js" />
    221237    <Content Include="WebApp\shared\filter\filters.js" />
    222238    <Content Include="WebApp\shared\images\HeuristicLab-Logo.png" />
     
    249265  </ItemGroup>
    250266  <ItemGroup>
     267    <None Include="Properties\PublishProfiles\WebApp.pubxml" />
    251268    <Content Include="WebApp\plugins\about\about.cshtml" />
    252269  </ItemGroup>
  • stable/HeuristicLab.Services.WebApp/3.3/Plugin.cs

    r12563 r12962  
    7777        if (!assemblies.Any())
    7878          return;
     79
    7980        var assemblyPath = assemblies.First();
    8081        AssemblyName = Path.GetFileName(assemblyPath);
  • stable/HeuristicLab.Services.WebApp/3.3/PluginManager.cs

    r12563 r12962  
    4343
    4444    public static string PluginsDirectory {
    45       get { return string.Format(@"{0}WebApp\plugins", HttpRuntime.AppDomainAppPath); }
     45      get {
     46        return Path.Combine(HttpRuntime.AppDomainAppPath, "WebApp", "plugins");
     47      }
    4648    }
    4749
     
    6062    private void OnFilesChanged(object sender, FileSystemEventArgs args) {
    6163      string path = args.FullPath.Remove(0, PluginsDirectory.Length + 1);
    62       var pathParts = path.Split(Path.PathSeparator);
     64      var pathParts = path.Split(Path.DirectorySeparatorChar);
    6365      string pluginName = pathParts[0];
    64       if (pathParts.Length == 1) {
     66      if (pathParts.Length <= 2) {
    6567        switch (args.ChangeType) {
    6668          case WatcherChangeTypes.Created:
     
    7577            RenamedEventArgs renamedArgs = (RenamedEventArgs)args;
    7678            string oldPath = renamedArgs.OldFullPath.Remove(0, PluginsDirectory.Length + 1);
    77             var oldPathParts = oldPath.Split(Path.PathSeparator);
     79            var oldPathParts = oldPath.Split(Path.DirectorySeparatorChar);
    7880            string oldPluginName = oldPathParts[0];
    7981            plugins.Remove(oldPluginName);
     
    9496      Plugin plugin = LookupPlugin(name);
    9597      if (plugin == null) {
    96         string directory = string.Format(@"{0}\{1}", PluginsDirectory, name);
     98        string directory = Path.Combine(PluginsDirectory, name);
    9799        if (Directory.Exists(directory)) {
    98100          plugin = new Plugin(name, directory, Configuration);
  • stable/HeuristicLab.Services.WebApp/3.3/WebApp/app.css

    r12563 r12962  
    352352}
    353353
    354 [ng-click],
    355 [data-ng-click],
    356 [x-ng-click] {
    357     cursor: pointer;
    358 }
    359354
    360355.navbar-default .navbar-brand {
     
    419414.default-view-container {
    420415  padding: 30px;
     416  min-height: 300px;
     417}
     418
     419.default-view-header {
     420  padding: 30px;
     421  background: #F5F5F5;
     422  border-bottom: 1px solid #D3D3D3;
    421423}
    422424
     
    434436  text-decoration: none;
    435437}
     438
     439/*remove button gradient*/
     440.btn {
     441  background-image: none;
     442  filter: none;
     443  -webkit-box-shadow: none !important;
     444     -moz-box-shadow: none !important;
     445       -o-box-shadow: none !important;
     446          box-shadow: none !important;
     447}
     448
     449.btn-default {
     450  background-image: none;
     451  filter: none;
     452  -webkit-box-shadow: none !important;
     453     -moz-box-shadow: none !important;
     454       -o-box-shadow: none !important;
     455          box-shadow: none !important;
     456}
     457
     458.btn .btn-default {
     459  background-image: none;
     460  filter: none;
     461  -webkit-box-shadow: none !important;
     462     -moz-box-shadow: none !important;
     463       -o-box-shadow: none !important;
     464          box-shadow: none !important;
     465}
     466
     467.btn-default.active, .btn-default:active{
     468  border-color: #adadad;
     469}
     470
     471
     472
     473.modal-dialog-center {
     474    margin: 0;
     475    position: absolute;
     476    top: 50%;
     477    left: 50%;
     478}
     479
     480.modal-header {
     481  background: #fafafa;
     482}
     483
     484.modal-body {
     485    overflow-y: auto;
     486}
     487.modal-footer {
     488    margin-top: 0;
     489}
     490
     491@media (max-width: 767px) {
     492  .modal-dialog-center {
     493    width: 100%;
     494  }
     495}
     496
     497body.modal-open {
     498    overflow: visible;
     499}
     500
     501.table .progress {
     502margin-bottom: 0px;
     503}
     504
     505.default-filter-header {
     506  padding: 30px;
     507  background: #F5F5F5;
     508  border-top: 1px solid #D3D3D3;
     509  border-bottom: 1px solid #D3D3D3;
     510}
     511
     512.default-tab-filter-header {
     513  padding: 30px;
     514  background: #F5F5F5;
     515  border-bottom: 1px solid #D3D3D3;
     516}
     517
     518.cursor-pointer:hover {
     519  cursor: pointer
     520}
     521
     522.app-modal-window .modal-dialog {
     523  top: 15%;
     524  z-index: 1050;
     525}
     526
     527.pagination>li>a,
     528.pagination>li>span {
     529  border-color: #ccc;
     530}
     531
     532.pagination>.active>a,
     533.pagination>.active>a:focus,
     534.pagination>.active>span,
     535.pagination>.active>span:focus {
     536  color: black;
     537  background: #e0e0e0;
     538  border-color: #adadad;
     539}
     540
     541.pagination>.active>a:hover,
     542.pagination>.active>span:hover {
     543  color: black;
     544  border-color: #ccc;
     545  background: #eeeeee;
     546}
  • stable/HeuristicLab.Services.WebApp/3.3/WebApp/app.js

    r12428 r12962  
    22var appName = 'app';
    33var appPath = 'WebApp';
     4var defaultPageUpdateInterval = 60000;
    45
    56// route, plugin, menu, section and main app
  • stable/HeuristicLab.Services.WebApp/3.3/WebApp/helper.js

    r12685 r12962  
    77Number.prototype.zeropad = function (n) {
    88    return (new Array(n + 1).join("0") + this).slice(-n);
     9};
     10
     11Number.prototype.toHHMMSS = function() {
     12    d = this;
     13    d = Number(d);
     14    var years = Math.floor(d / 31536000);
     15    var days = Math.floor(d / 86400 % 365);
     16    var h = Math.floor(d / 3600 % 24);
     17    var m = Math.floor(d % 3600 / 60);
     18    var s = Math.floor(d % 3600 % 60);
     19    var timeStr = "";
     20    if (years > 0) {
     21        timeStr = years + "y ";
     22    }
     23    if (days > 0) {
     24        timeStr = timeStr + days + "d ";
     25    }
     26    return timeStr + h.zeropad(2) + ":" + m.zeropad(2) + ":" + s.zeropad(2);
    927};
    1028
     
    3351};
    3452
    35 
    3653var CSharpDateToString = function (datetime) {
    3754    var date = new Date(Date.parse(datetime));
  • stable/HeuristicLab.Services.WebApp/3.3/WebApp/plugins/about/about.cshtml

    r12685 r12962  
    2828                <div class="panel-body">
    2929                    <p><strong>Support</strong>: <a href="App/RedirectUrl?url=http://groups.google.com/group/heuristiclab">HeuristicLab Google Group</a></p>
    30                     <p><strong>Inquiries</strong>: ​<a ng-click="mailToSupport()">support(at)heuristiclab.com</a></p>
     30                    <p><strong>Inquiries</strong>: ​<a class="cursor-pointer" ng-click="mailToSupport()">support(at)heuristiclab.com</a></p>
    3131                    <p><strong>Heuristic and Evolutionary Algorithms Laboratory (HEAL)</strong>: <a href="App/RedirectUrl?url=http://heal.heuristiclab.com">​http://heal.heuristiclab.com</a></p>
    3232                    <p><strong>HeuristicLab development site</strong>: <a href="App/RedirectUrl?url=http://dev.heuristiclab.com">http://dev.heuristiclab.com</a></p>
     
    3636                        <span class="glyphicon glyphicon-phone-alt"></span> +43 50804 22030<br />
    3737                        <span class="glyphicon glyphicon-print"></span> +43 50804 21599<br />
    38                         <span class="glyphicon glyphicon-envelope"></span> <a ng-click="mailToStefanWagner()">stefan.wagner(at)heuristiclab.com</a><br />
     38                        <span class="glyphicon glyphicon-envelope"></span> <a class="cursor-pointer" ng-click="mailToStefanWagner()">stefan.wagner(at)heuristiclab.com</a><br />
    3939                    </p>
    4040                </div>
  • stable/HeuristicLab.Services.WebApp/3.3/WebApp/plugins/login/login.cshtml

    r12428 r12962  
    1414                            <div class="input-group">
    1515                                <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
    16                                 <input type="text" class="form-control" name="Username" placeholder="User"
     16                                <input type="text" class="form-control" name="Username" placeholder="Username"
    1717                                       ng-model="user.Username">
    1818                            </div>
  • stable/HeuristicLab.Services.WebApp/3.3/WebApp/plugins/plugins/plugins.cshtml

    r12563 r12962  
    2121                                <th>#</th>
    2222                                <th ts-criteria="Name">Name</th>
    23                                 <th ts-criteria ="AssemblyName">Assembly</th>
     23                                <th ts-criteria="AssemblyName">Assembly</th>
    2424                                <th ts-criteria="LastReload">Last reload</th>
    25                                 <th>Status</th>
     25                                <th class="text-center">Status</th>
    2626                                <th></th>
    2727                            </tr>
     
    3333                                <td>{{plugin.AssemblyName}}</td>
    3434                                <td>{{plugin.LastReload}}</td>
    35                                 <td>
     35                                <td class="text-center">
    3636                                    <span ng-hide="plugin.Exception" class="glyphicon glyphicon glyphicon-ok" style="color: green"></span>
    3737                                    <span ng-show="plugin.Exception" class="glyphicon glyphicon glyphicon-remove" style="color: darkred"
     
    3939                                </td>
    4040                                <td>
    41                                     <a ng-href="" data-ng-click="reloadPlugin(plugin.Name)">Reload</a>
     41                                    <a ng-href="" class="cursor-pointer" data-ng-click="reloadPlugin(plugin.Name)">Reload</a>
    4242                                </td>
    4343                            </tr>
  • stable/HeuristicLab.Services.WebApp/3.3/WebApp/shared/filter/filters.js

    r12546 r12962  
    1 (function () {
     1(function() {
    22    var module = appMainPlugin.getAngularModule();
    33    module.filter('kbToGB', function () {
  • stable/HeuristicLab.Services.WebApp/3.3/WebApp/shared/layout/layout.cshtml

    r12563 r12962  
    2424    <meta charset="utf-8" />
    2525    <meta name="viewport" content="width=device-width, initial-scale=1">
     26    <meta http-equiv="pragma" content="no-cache" />
    2627    <title>HeuristicLab Hive</title>
    2728    <link href="~/WebApp/HeuristicLab.ico" rel="shortcut icon" type="image/x-icon" />
    2829    @Styles.Render("~/Bundles/Vendors/css")
    2930    @Styles.Render("~/Bundles/WebApp/css")
    30     <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700">
     31    <link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Open+Sans:300,400,600,700">
    3132    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
    3233    <!--[if lt IE 9]>
     
    6364                <div class="navbar-content">
    6465                    <ul class="nav navbar-nav navbar-right">
    65                         @if (Request.IsAuthenticated)
    66                         {
     66                        @if (Request.IsAuthenticated) {
    6767                            <li>
    6868                                <span class="navbar-text">Hello @User.Identity.Name!</span>
    6969                            </li>
    7070                            <li>
    71                                 <a ng-href="" data-ng-click="logout()">Logout</a>
     71                                <a ng-href="#" data-ng-click="logout()">Logout</a>
    7272                            </li>
    73                         }
    74                         else
    75                         {
     73                        } else {
    7674                            <li>
    7775                                <a ng-href="#/login" data-ng-click="hideMenu()">Login</a>
     
    9795</div>
    9896<script type="text/javascript">
    99 $('.navbar-collapse').on('click', 'li a', function () {
    100     $('.navbar-collapse').collapse('hide');
    101 });
     97    $('.navbar-collapse').on('click', 'li a', function () {
     98        $('.navbar-collapse').collapse('hide');
     99    });
    102100</script>
    103101</body>
Note: See TracChangeset for help on using the changeset viewer.