Browse Source

GER->ENG; better error messages, README update

master
anxietypb 8 years ago
parent
commit
fde94f3d82
  1. 1
      .gitignore
  2. 9
      README.md
  3. 4
      api/index.php
  4. 2
      app/index/controllers/IndexCtrl.js
  5. 87
      composer.lock
  6. 28
      partials/index.html
  7. 4
      partials/navbar.html

1
.gitignore

@ -7,3 +7,4 @@ tmp
.idea .idea
.sass-cache .sass-cache
/vendor/ /vendor/
api/*.sqlite3

9
README.md

@ -1 +1,10 @@
# virl-scheduler # virl-scheduler
Setup instructions
* make sure bower, composer and npm are available on command line
* run **npm update** in virl-scheduler root directory (only if you want to test in devmodes, apache is enough otherwise)
* run **bower update** in virl-scheduler root directory, afterwards verify **bower_components** directory was created
* run **composer update** in virl-scheduler root directory, afterwards verify **vendor** directory was created
* configure apache to use **virl-scheduler** and **index.html** as webroot (make sure rewrite engine is on and .htaccess files are parsed by apache)
Change hostname for **VIRLRestangular factory** in **app/topologyManager.js** to your VIRL-API-Hostname or IP-Address.

4
api/index.php

@ -59,7 +59,7 @@ $app->delete('/plannedsims/{id}', function (Request $request, Response $response
$array = array($id); $array = array($id);
$query->execute($array); $query->execute($array);
return $response->withJson(array("statusText"=>"Simulation mit id ".$id." erfolgreich gelöscht."));
return $response->withJson(array("statusText"=>"Successfully deleted simulation with id ".$id."."));
}); });
@ -100,6 +100,6 @@ $app->post('/plannedsims/new', function (Request $request, Response $response) {
$sth = $this->db->prepare('INSERT INTO simulations (timestamp, topo_xml,sessionname,token,username,repeat_interval,repeat_count) VALUES (?, ?, ?,?,?,?,0);'); $sth = $this->db->prepare('INSERT INTO simulations (timestamp, topo_xml,sessionname,token,username,repeat_interval,repeat_count) VALUES (?, ?, ?,?,?,?,0);');
$sth->execute([intval($timestamp),$XML,$sessionName,$token,$username,$repeat]); $sth->execute([intval($timestamp),$XML,$sessionName,$token,$username,$repeat]);
return $response->withJson(array("statusText"=>"Simulation erfolgreich hinzugefügt."));
return $response->withJson(array("statusText"=>"Successfully added simulation startup."));
}); });
$app->run(); $app->run();

2
app/index/controllers/IndexCtrl.js

@ -54,7 +54,7 @@ angular.module('topologyManager').controller('IndexCtrl', function($scope,VIRLRe
}, function(response) { }, function(response) {
console.log(response); console.log(response);
$scope.addAlert(response.statusText,"danger");
$scope.addAlert(response.data.statusText,"danger");
}); });
}; };

87
composer.lock

@ -4,23 +4,26 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"hash": "6f5d3d05d70b58db9144bb1ca70c8698",
"hash": "0b9550b2cfb4a7517c773cd732b9ecf2",
"content-hash": "3b0766dbcef4dfb1a4a2012fef8611d8", "content-hash": "3b0766dbcef4dfb1a4a2012fef8611d8",
"packages": [ "packages": [
{ {
"name": "container-interop/container-interop", "name": "container-interop/container-interop",
"version": "1.1.0",
"version": "1.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/container-interop/container-interop.git", "url": "https://github.com/container-interop/container-interop.git",
"reference": "fc08354828f8fd3245f77a66b9e23a6bca48297e"
"reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/container-interop/container-interop/zipball/fc08354828f8fd3245f77a66b9e23a6bca48297e",
"reference": "fc08354828f8fd3245f77a66b9e23a6bca48297e",
"url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8",
"reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8",
"shasum": "" "shasum": ""
}, },
"require": {
"psr/container": "^1.0"
},
"type": "library", "type": "library",
"autoload": { "autoload": {
"psr-4": { "psr-4": {
@ -32,20 +35,21 @@
"MIT" "MIT"
], ],
"description": "Promoting the interoperability of container objects (DIC, SL, etc.)", "description": "Promoting the interoperability of container objects (DIC, SL, etc.)",
"time": "2014-12-30 15:22:37"
"homepage": "https://github.com/container-interop/container-interop",
"time": "2017-02-14 19:40:03"
}, },
{ {
"name": "nikic/fast-route", "name": "nikic/fast-route",
"version": "v1.0.1",
"version": "v1.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nikic/FastRoute.git", "url": "https://github.com/nikic/FastRoute.git",
"reference": "8ea928195fa9b907f0d6e48312d323c1a13cc2af"
"reference": "b5f95749071c82a8e0f58586987627054400cdf6"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nikic/FastRoute/zipball/8ea928195fa9b907f0d6e48312d323c1a13cc2af",
"reference": "8ea928195fa9b907f0d6e48312d323c1a13cc2af",
"url": "https://api.github.com/repos/nikic/FastRoute/zipball/b5f95749071c82a8e0f58586987627054400cdf6",
"reference": "b5f95749071c82a8e0f58586987627054400cdf6",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -75,7 +79,7 @@
"router", "router",
"routing" "routing"
], ],
"time": "2016-06-12 19:08:51"
"time": "2017-01-19 11:35:12"
}, },
{ {
"name": "pimple/pimple", "name": "pimple/pimple",
@ -123,6 +127,55 @@
], ],
"time": "2015-09-11 15:10:35" "time": "2015-09-11 15:10:35"
}, },
{
"name": "psr/container",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/container.git",
"reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
"reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Container\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common Container Interface (PHP FIG PSR-11)",
"homepage": "https://github.com/php-fig/container",
"keywords": [
"PSR-11",
"container",
"container-interface",
"container-interop",
"psr"
],
"time": "2017-02-14 16:28:37"
},
{ {
"name": "psr/http-message", "name": "psr/http-message",
"version": "1.0.1", "version": "1.0.1",
@ -175,16 +228,16 @@
}, },
{ {
"name": "slim/slim", "name": "slim/slim",
"version": "3.5.0",
"version": "3.7.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/slimphp/Slim.git", "url": "https://github.com/slimphp/Slim.git",
"reference": "184352bc1913d7ba552ab4131d62f4730ddb0893"
"reference": "4254e40d81559e35cdf856bcbaca5f3af468b7ef"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/slimphp/Slim/zipball/184352bc1913d7ba552ab4131d62f4730ddb0893",
"reference": "184352bc1913d7ba552ab4131d62f4730ddb0893",
"url": "https://api.github.com/repos/slimphp/Slim/zipball/4254e40d81559e35cdf856bcbaca5f3af468b7ef",
"reference": "4254e40d81559e35cdf856bcbaca5f3af468b7ef",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -234,14 +287,14 @@
} }
], ],
"description": "Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs", "description": "Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs",
"homepage": "http://slimframework.com",
"homepage": "https://slimframework.com",
"keywords": [ "keywords": [
"api", "api",
"framework", "framework",
"micro", "micro",
"router" "router"
], ],
"time": "2016-07-26 15:12:13"
"time": "2016-12-20 20:30:47"
} }
], ],
"packages-dev": [], "packages-dev": [],

28
partials/index.html

@ -3,23 +3,23 @@
<div class="col-md-4"> <div class="col-md-4">
<div class="well"> <div class="well">
<fieldset> <fieldset>
<legend>Neue Topologie starten</legend>
<legend>Schedule a new topology</legend>
<div class="form-group"> <div class="form-group">
<label for="inputSession" class="col-md-2 control-label">Session Name</label> <label for="inputSession" class="col-md-2 control-label">Session Name</label>
<div class="col-md-10"> <div class="col-md-10">
<input type="text" ng-model="topology.sessionName" class="form-control" id="inputSession" placeholder="Sessionname">
<input type="text" ng-model="topology.sessionName" class="form-control" id="inputSession" placeholder="Session Name" required>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="inputXML" class="col-md-2 control-label">Topologie-XML</label>
<label for="inputXML" class="col-md-2 control-label">Topology-XML</label>
<div class="col-md-10"> <div class="col-md-10">
<textarea rows="10" id="inputXML" style="width:100%;" ng-model="topology.filecontent" style="max-height:200px;overflow:scroll;"></textarea> <textarea rows="10" id="inputXML" style="width:100%;" ng-model="topology.filecontent" style="max-height:200px;overflow:scroll;"></textarea>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="startDate" class="col-md-2 control-label">Topologie-Startzeitpunkt</label>
<label for="startDate" class="col-md-2 control-label">Topology startup date</label>
<div class="col-md-10"> <div class="col-md-10">
<input type="text" class="form-control" uib-datepicker-popup="dd.MM.yyyy" ng-model="topology.datetime" is-open="popup1.opened" datepicker-options="dateOptions" ng-required="true" close-text="Close" readonly/> <input type="text" class="form-control" uib-datepicker-popup="dd.MM.yyyy" ng-model="topology.datetime" is-open="popup1.opened" datepicker-options="dateOptions" ng-required="true" close-text="Close" readonly/>
@ -29,7 +29,7 @@
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="startDate" class="col-md-2 control-label">Topologie-Startzeitpunkt</label>
<label for="startDate" class="col-md-2 control-label">Topology startup time</label>
<div class="col-md-10"> <div class="col-md-10">
@ -38,17 +38,17 @@
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="repeat" class="col-md-2 control-label">Wiederholen</label>
<label for="repeat" class="col-md-2 control-label">Repeat interval</label>
<div class="col-md-10"> <div class="col-md-10">
<div class="btn-group btn-group-justified btn-group-raised"> <div class="btn-group btn-group-justified btn-group-raised">
<label class="btn btn-raised" ng-model="topology.repeat" uib-btn-radio="'none'">Einmalig</label>
<label class="btn btn-raised" ng-model="topology.repeat" uib-btn-radio="'daily'">Täglich</label>
<label class="btn btn-raised" ng-model="topology.repeat" uib-btn-radio="'weekly'">Wöchentlich</label>
<label class="btn btn-raised" ng-model="topology.repeat" uib-btn-radio="'none'">Once</label>
<label class="btn btn-raised" ng-model="topology.repeat" uib-btn-radio="'daily'">Daily</label>
<label class="btn btn-raised" ng-model="topology.repeat" uib-btn-radio="'weekly'">Weekly</label>
</div> </div>
</div> </div>
</div> </div>
<button class="btn btn-primary btn-raised btn-block" ng-click="send()">Planen</button>
<button class="btn btn-primary btn-raised btn-block" ng-click="send()">Schedule</button>
</fieldset> </fieldset>
@ -59,7 +59,7 @@
<div class="col-md-4"> <div class="col-md-4">
<div class="well"> <div class="well">
<legend>geplante Simulationen</legend>
<legend>scheduled simulations</legend>
<div class="list-group "> <div class="list-group ">
<div class="list-group-item" ng-repeat-start="sim in plannedSims"> <div class="list-group-item" ng-repeat-start="sim in plannedSims">
<div class="row-action-primary"> <div class="row-action-primary">
@ -72,8 +72,8 @@
<h4 class="list-group-item-heading">{{sim.sessionname}}</h4> <h4 class="list-group-item-heading">{{sim.sessionname}}</h4>
<p class="list-group-item-text">Status: {{sim.status}}</p> <p class="list-group-item-text">Status: {{sim.status}}</p>
<p class="list-group-item-text">Benutzer: {{sim.username}}</p>
<p class="list-group-item-text" ng-if="sim.status == 'repeating'">Nächste Ausführung: {{sim.timestamp*1000 + sim.repeat_interval*1000 * sim.repeat_count | date:'EEEE, dd.MM.yyyy HH:mm'}}</p>
<p class="list-group-item-text">User: {{sim.username}}</p>
<p class="list-group-item-text" ng-if="sim.status == 'repeating'">Next startup: {{sim.timestamp*1000 + sim.repeat_interval*1000 * sim.repeat_count | date:'EEEE, dd.MM.yyyy HH:mm'}}</p>
<button class="btn btn-danger" ng-click="removePlannedSim(sim.id)">Delete</button> <button class="btn btn-danger" ng-click="removePlannedSim(sim.id)">Delete</button>
</div> </div>
</div> </div>
@ -85,7 +85,7 @@
<div class="col-md-4"> <div class="col-md-4">
<div class="well"> <div class="well">
<legend>laufende Simulationen für {{credentials.username}}</legend>
<legend>running simulations for user: {{credentials.username}}</legend>
<div class="list-group"> <div class="list-group">
<div class="list-group-item" ng-repeat-start="(key,value) in runningSims"> <div class="list-group-item" ng-repeat-start="(key,value) in runningSims">
<div class="row-action-primary"> <div class="row-action-primary">

4
partials/navbar.html

@ -12,8 +12,8 @@
<form class="navbar-form navbar-left"> <form class="navbar-form navbar-left">
<div class="form-group is-empty"> <div class="form-group is-empty">
<input type="text" ng-change="generateToken()" ng-model="credentials.username" class="form-control col-md-8" placeholder="Benutzername">
<input type="password" ng-change="generateToken()" ng-model="credentials.password" class="form-control col-md-8" placeholder="Passwort">
<input type="text" ng-change="generateToken()" ng-model="credentials.username" class="form-control col-md-8" placeholder="Username">
<input type="password" ng-change="generateToken()" ng-model="credentials.password" class="form-control col-md-8" placeholder="Password">
<button class="btn btn-info btn-xs" ng-click="verifyCredentials()">Verify</button> <button class="btn btn-info btn-xs" ng-click="verifyCredentials()">Verify</button>
</div> </div>
</form> </form>

Loading…
Cancel
Save