Update bootstrap to 4.0-beta
This commit is contained in:
parent
978f260c64
commit
73080d7d0d
23 changed files with 608 additions and 641 deletions
7
admin/static/css/bootstrap.min.css
vendored
7
admin/static/css/bootstrap.min.css
vendored
File diff suppressed because one or more lines are too long
11
admin/static/css/slate.min.css
vendored
11
admin/static/css/slate.min.css
vendored
File diff suppressed because one or more lines are too long
|
|
@ -8,55 +8,52 @@
|
|||
<script src="/js/d3.v3.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="navbar navbar-inverse navbar-static-top">
|
||||
<div class="container">
|
||||
<nav class="navbar sticky-top navbar-expand-lg navbar-light bg-light" style="margin-bottom: 5px;">
|
||||
<a class="navbar-brand" href="/">
|
||||
<img alt="FIC" src="/img/fic.png" style="height: 30px">
|
||||
</a>
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#adminMenu" aria-controls="adminMenu" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
|
||||
<div class="navbar-header">
|
||||
<a class="navbar-brand" href="/">
|
||||
<img alt="FIC" src="/img/fic.png" style="height: 100%">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<ul class="nav navbar-nav">
|
||||
<li><a href="/teams">Équipes</a></li>
|
||||
<li><a href="/themes">Thèmes</a></li>
|
||||
<li><a href="/exercices">Exercices</a></li>
|
||||
<li><a href="/public">Public</a></li>
|
||||
<li><a href="/events">Événements</a></li>
|
||||
<li><a href="/settings">Paramètres</a></li>
|
||||
<div class="collapse navbar-collapse" id="adminMenu">
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li class="nav-item"><a class="nav-link" href="/teams">Équipes</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="/themes">Thèmes</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="/exercices">Exercices</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="/public">Public</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="/events">Événements</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="/settings">Paramètres</a></li>
|
||||
</ul>
|
||||
|
||||
<p id="clock" class="navbar-text navbar-right" ng-controller="CountdownController">
|
||||
<span ng-show="startIn > 0">
|
||||
Démarrage dans :
|
||||
<span>{{ startIn }}</span>"
|
||||
<span class="point">|</span>
|
||||
</span>
|
||||
<span id="hours">{{ time.hours | time }}</span>
|
||||
<span class="point">:</span>
|
||||
<span id="min">{{ time.minutes | time }}</span>
|
||||
<span class="point">:</span>
|
||||
<span id="sec">{{ time.seconds | time }}</span>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<span id="clock" class="navbar-text" ng-controller="CountdownController" ng-cloak>
|
||||
<span ng-show="startIn > 0">
|
||||
Démarrage dans :
|
||||
<span>{{ startIn }}</span>"
|
||||
<span class="point">|</span>
|
||||
</span>
|
||||
<span id="hours">{{ time.hours | time }}</span>
|
||||
<span class="point">:</span>
|
||||
<span id="min">{{ time.minutes | time }}</span>
|
||||
<span class="point">:</span>
|
||||
<span id="sec">{{ time.seconds | time }}</span>
|
||||
</span>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row" ng-controller="DIWEBoxController">
|
||||
<div ng-repeat="box in boxes" class="alert alert-dismissible alert-{{ box.kind }}" ng-cloak>
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<strong ng-if="box.title">{{ box.title }}</strong> {{ box.msg }}
|
||||
<button class="btn btn-sm btn-success" ng-if="box.yes || box.no" ng-click="box.yes()">Yes</button>
|
||||
<button class="btn btn-sm btn-danger" ng-if="box.yes || box.no" ng-click="box.no()">No</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12" ng-view></div>
|
||||
<div class="container" ng-controller="DIWEBoxController">
|
||||
<div ng-repeat="box in boxes" class="alert alert-dismissible alert-{{ box.kind }}" ng-cloak>
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<strong ng-if="box.title">{{ box.title }}</strong> {{ box.msg }}
|
||||
<button class="btn btn-sm btn-success" ng-if="box.yes || box.no" ng-click="box.yes()">Yes</button>
|
||||
<button class="btn btn-sm btn-danger" ng-if="box.yes || box.no" ng-click="box.no()">No</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container" ng-view></div>
|
||||
|
||||
<script src="/js/jquery.min.js"></script>
|
||||
<script src="/js/popper.min.js"></script>
|
||||
<script src="/js/bootstrap.min.js"></script>
|
||||
<script src="/js/angular.min.js"></script>
|
||||
<script src="/js/angular-resource.min.js"></script>
|
||||
|
|
|
|||
1
admin/static/js/popper.min.js
vendored
Symbolic link
1
admin/static/js/popper.min.js
vendored
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
../../../frontend/static/js/popper.min.js
|
||||
|
|
@ -1,8 +1,9 @@
|
|||
<div class="well well-lg">
|
||||
<h3>Interface d'administration du challenge</h3>
|
||||
<p>
|
||||
<div class="jumbotron text-light bg-primary">
|
||||
<h1 class="display-4">Interface d'administration du challenge</h1>
|
||||
<p class="lead">
|
||||
Sélectionnez une action dans le menu ci-dessus.
|
||||
</p>
|
||||
<hr class="my-4">
|
||||
<p ng-controller="VersionController">
|
||||
Version de l'API : {{ v.version }}
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -1,121 +1,114 @@
|
|||
<h2>Paramètres<a ng-click="regenerate()" class="pull-right btn btn-info" role="button"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span> Regénérer les fichiers statiques</a></h2>
|
||||
<div class="jumbotron text-light bg-primary">
|
||||
<h2>Paramètres<button ng-click="regenerate()" class="float-right btn btn-info" type="button"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span> Regénérer les fichiers statiques</a></h2>
|
||||
<hr>
|
||||
|
||||
<form ng-submit="saveSettings()" class="form-horizontal well">
|
||||
<form ng-submit="saveSettings()">
|
||||
|
||||
<input type="hidden" class="form-control" id="lastRegeneration" ng-model="config.generation">
|
||||
<input type="hidden" class="form-control form-control-sm" id="lastRegeneration" ng-model="config.generation">
|
||||
|
||||
<div class="form-group">
|
||||
<label for="challengeName" class="col-sm-2 control-label">Nom du challenge</label>
|
||||
<div class="form-group row">
|
||||
<label for="challengeName" class="col-sm-2 col-form-label col-form-label-sm">Nom du challenge</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="challengeName" ng-model="config.title">
|
||||
<input type="text" class="form-control form-control-sm" id="challengeName" ng-model="config.title">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="challengeAuthors" class="col-sm-2 control-label">Auteurs du challenge</label>
|
||||
<div class="form-group row">
|
||||
<label for="challengeAuthors" class="col-sm-2 col-form-label col-form-label-sm">Auteurs du challenge</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="challengeAuthors" ng-model="config.authors">
|
||||
<input type="text" class="form-control form-control-sm" id="challengeAuthors" ng-model="config.authors">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="startTime" class="col-sm-2 control-label">Début du challenge</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="text" class="form-control" id="startTime" ng-model="config.start">
|
||||
</div>
|
||||
<div class="col-sm-2 text-right">
|
||||
<a ng-click="launchChallenge()" class="btn btn-warning" role="button"><span class="glyphicon glyphicon-play" aria-hidden="true"></span> Lancer le challenge</a>
|
||||
<div class="form-group row">
|
||||
<label for="startTime" class="col-sm-2 col-form-label col-form-label-sm">Début du challenge</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control form-control-sm" id="startTime" ng-model="config.start">
|
||||
<span class="input-group-btn">
|
||||
<button ng-click="launchChallenge()" class="btn btn-sm btn-secondary" type="button"><span class="glyphicon glyphicon-play" aria-hidden="true"></span> Lancer le challenge</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="endTime" class="col-sm-2 control-label">Fin du challenge</label>
|
||||
<div class="form-group row">
|
||||
<label for="endTime" class="col-sm-2 col-form-label col-form-label-sm">Fin du challenge</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="text" class="form-control" id="endTime" ng-model="config.end">
|
||||
<input type="text" class="form-control form-control-sm" id="endTime" ng-model="config.end">
|
||||
</div>
|
||||
<div class="col-sm-1 text-right">
|
||||
<label for="duration" class="control-label">Durée</label>
|
||||
<label for="duration" class="col-form-label col-form-label-sm">Durée</label>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" id="duration" ng-model="duration" integer>
|
||||
<div class="input-group-addon">min</div>
|
||||
<div class="input-group input-group-sm">
|
||||
<input type="text" class="form-control form-control-sm" id="duration" ng-model="duration" integer>
|
||||
<span class="input-group-addon">min</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="firstBlood" class="col-sm-2 control-label">Bonus premier sang</label>
|
||||
<div class="form-group row">
|
||||
<label for="firstBlood" class="col-sm-2 col-form-label col-form-label-sm">Bonus premier sang</label>
|
||||
<div class="col-sm-1">
|
||||
<input type="text" class="form-control" id="firstBlood" ng-model="config.firstBlood" float>
|
||||
<input type="text" class="form-control form-control-sm" id="firstBlood" ng-model="config.firstBlood" float>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="submissionCostBase" class="col-sm-2 control-label">Coût de base d'une soumission</label>
|
||||
<div class="form-group row">
|
||||
<label for="submissionCostBase" class="col-sm-2 col-form-label col-form-label-sm">Coût de base d'une soumission</label>
|
||||
<div class="col-sm-1">
|
||||
<input type="text" class="form-control" id="submissionCostBase" ng-model="config.submissionCostBase" float>
|
||||
<input type="text" class="form-control form-control-sm" id="submissionCostBase" ng-model="config.submissionCostBase" float>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" ng-model="config.allowRegistration"> Activer les inscriptions
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<fieldset class="form-group">
|
||||
<div class="row">
|
||||
<legend class="col-form-legend col-sm-2">Options</legend>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" ng-model="config.denyNameChange"> Interdire les changements de nom d'équipe
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-check">
|
||||
<label class="form-check-label">
|
||||
<input class="form-check-input" type="checkbox" ng-model="config.allowRegistration"> Activer les inscriptions
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" ng-model="config.enableResolutionRoute"> Activer la route montrant les solutions
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<label class="form-check-label">
|
||||
<input class="form-check-input" type="checkbox" ng-model="config.denyNameChange"> Interdire les changements de nom d'équipe
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" ng-model="config.partialValidation"> Activer la validation partielle des challenges
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<label class="form-check-label">
|
||||
<input class="form-check-input" type="checkbox" ng-model="config.enableResolutionRoute"> Activer la route montrant les solutions
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check">
|
||||
<label class="form-check-label">
|
||||
<input class="form-check-input" type="checkbox" ng-model="config.partialValidation"> Activer la validation partielle des challenges
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check">
|
||||
<label class="form-check-label">
|
||||
<input class="form-check-input" type="checkbox" ng-model="config.enableExerciceDepend"> Activer les dépendances des exercices
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" ng-model="config.enableExerciceDepend"> Activer les dépendances des exercices
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<hr>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">Synchronisation</label>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm">Synchronisation</label>
|
||||
<div class="col-sm-10">{{ configro.sync }}</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -123,16 +116,16 @@
|
|||
<button type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-save" aria-hidden="true"></span> Propager ces paramètres</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="well">
|
||||
<div class="col-sm-4 center">
|
||||
<a ng-click="reset('challenges')" class="btn btn-warning" role="button"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span> Effacer les challenges et les thèmes</a>
|
||||
</div>
|
||||
<div class="col-sm-4 center">
|
||||
<a ng-click="reset('teams');" class="btn btn-warning" role="button"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span> Effacer les équipes</a>
|
||||
</div>
|
||||
<div class="col-sm-4 center">
|
||||
<a ng-click="reset('game');" class="btn btn-warning" role="button"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span> Effacer la partie (tentatives, indices, ...)</a>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
|
||||
<div class="card-deck">
|
||||
<div class="card">
|
||||
<button ng-click="reset('challenges')" class="btn btn-secondary" type="button"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span> Effacer les challenges et les thèmes</button>
|
||||
</div>
|
||||
<div class="card">
|
||||
<button ng-click="reset('teams');" class="btn btn-secondary" type="button"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span> Effacer les équipes</button>
|
||||
</div>
|
||||
<div class="card">
|
||||
<button ng-click="reset('game');" class="btn btn-secondary" type="button"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span> Effacer la partie (tentatives, indices, ...)</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Reference in a new issue