admin: Check all theme/exercice attribute are in sync with repo
This commit is contained in:
parent
5e262b75a3
commit
74f388a2b9
18 changed files with 818 additions and 142 deletions
|
@ -10,11 +10,27 @@
|
|||
<div class="ml-auto d-flex flex-row-reverse text-nowrap">
|
||||
<a href="exercices/{{exercice.id}}/resolution" ng-disabled="!exercice.videoURI" class="ml-2 btn btn-sm btn-info"><span class="glyphicon glyphicon-facetime-video" aria-hidden="true"></span> Vidéo</a>
|
||||
<a href="exercices/{{exercice.id}}/flags" class="ml-2 btn btn-sm btn-success"><span class="glyphicon glyphicon-flag" aria-hidden="true"></span> Flags</a>
|
||||
<button type="button" ng-click="syncExo()" ng-class="{'disabled': inSync}" class="ml-2 btn btn-sm btn-light"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span> Synchroniser</button>
|
||||
<div class="btn-group ml-2" role="group">
|
||||
<button type="button" ng-click="syncExo()" ng-class="{'disabled': inSync}" class="btn btn-sm btn-light"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span> Synchroniser</button>
|
||||
<button type="button" ng-click="checkExoSync()" ng-class="{'disabled': inSync}" class="btn btn-sm btn-light" title="Exporter l'exercice actuel"><span class="glyphicon glyphicon-thumbs-up" aria-hidden="true"></span></button>
|
||||
</div>
|
||||
<a href="{{exercice.forge_link}}" target="_blank" class="ml-2 btn btn-sm btn-dark" ng-if="exercice.forge_link"><span class="glyphicon glyphicon-folder-open" aria-hidden="true"></span> Voir sur la forge</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-if="diff">
|
||||
<h3>Différences par rapport au dépôt</h3>
|
||||
<div ng-repeat="diffline in diff" class="row">
|
||||
<a ng-href="{{ diffline.link }}" class="col-2 d-flex justify-content-end align-items-center text-monospace" title="{{ diffline.field }}">{{ diffline.field }}</a>
|
||||
<div class="col">
|
||||
<div class="text-danger"><span class="text-monospace">-</span>{{ diffline.be }}</div>
|
||||
<div class="text-success"><span class="text-monospace">+</span>{{ diffline.af }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr ng-if="diff" class="my-3">
|
||||
|
||||
<div class="row mb-5">
|
||||
|
||||
<form class="col-md-8" ng-submit="saveExercice()">
|
||||
|
|
|
@ -120,3 +120,41 @@
|
|||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card mb-5" ng-controller="ThemesListController">
|
||||
<div class="card-header">
|
||||
<button type="button" class="btn btn-primary float-right mx-1" ng-click="diffWithRepo()" title="Calculer les différences avec le dépôt">
|
||||
<span class="glyphicon glyphicon-refresh" aria-hidden="true"></span>
|
||||
</button>
|
||||
<h3 class="mb-0">
|
||||
Différences avec le dépôts
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body" ng-if="!diff">
|
||||
<div class="alert alert-info">Lancez la génération du rapport pour lister les différences.</div>
|
||||
</div>
|
||||
<div ng-repeat="(th, lines) in diff" class="card-body" ng-if="diff">
|
||||
<div class="d-flex">
|
||||
<h3>
|
||||
{{ th }}
|
||||
</h3>
|
||||
<div class="d-inline-block" ng-repeat="theme in themes" ng-if="theme.name == th">
|
||||
<a href="themes/{{ theme.id }}" class="btn btn-link" title="Voir le thème">
|
||||
<span class="glyphicon glyphicon-hand-right" aria-hidden="true"></span>
|
||||
</a>
|
||||
<button class="btn btn-light" title="Resynchroniser uniquement ce thème" ng-click="deepSync(theme)" ng-if="settings.wip || !timeProgression || displayDangerousActions">
|
||||
<span class="glyphicon glyphicon-hdd" aria-hidden="true"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<ul>
|
||||
<li ng-repeat="diffline in lines" class="row">
|
||||
<a ng-href="{{ diffline.link }}" class="col-2 d-flex align-items-center text-truncate text-monospace" title="{{ diffline.field }}">{{ diffline.field }}</a>
|
||||
<div class="col">
|
||||
<div class="text-danger"><span class="text-monospace">-</span>{{ diffline.be }}</div>
|
||||
<div class="text-success"><span class="text-monospace">+</span>{{ diffline.af }}</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -7,6 +7,19 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-if="diff">
|
||||
<h3>Différences par rapport au dépôt</h3>
|
||||
<div ng-repeat="diffline in diff" class="row">
|
||||
<a ng-href="{{ diffline.link }}" class="col-3 d-flex align-items-center text-truncate text-monospace" title="{{ diffline.field }}">{{ diffline.field }}</a>
|
||||
<div class="col">
|
||||
<div class="text-danger"><span class="text-monospace">-</span>{{ diffline.be }}</div>
|
||||
<div class="text-success"><span class="text-monospace">+</span>{{ diffline.af }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr ng-if="diff" class="my-3">
|
||||
|
||||
<div class="row">
|
||||
<form ng-submit="saveTheme()" class="col-4" ng-if="!(theme.id === 0 && theme.path)">
|
||||
<div ng-class="{'form-group': field != 'locked', 'form-check': field == 'locked'}" ng-repeat="field in fields">
|
||||
|
@ -29,7 +42,10 @@
|
|||
<h3>
|
||||
Exercices ({{ exercices.length }})
|
||||
<button type="button" ng-click="show('new')" class="float-right btn btn-sm btn-primary ml-2"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Ajouter un exercice</button>
|
||||
<button type="button" ng-click="syncExo()" ng-class="{'disabled': inSync}" class="float-right btn btn-sm btn-light ml-2"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span> Synchroniser</button>
|
||||
<div class="float-right btn-group ml-2" role="group">
|
||||
<button type="button" ng-click="syncExo()" ng-class="{'disabled': inSync}" class="btn btn-sm btn-light ml-2"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span> Synchroniser</button>
|
||||
<button type="button" ng-click="checkExoSync()" ng-class="{'disabled': inSync}" class="btn btn-sm btn-light" title="Exporter l'exercice actuel"><span class="glyphicon glyphicon-thumbs-up" aria-hidden="true"></span></button>
|
||||
</div>
|
||||
</h3>
|
||||
|
||||
<p><input type="search" class="form-control form-control-sm" placeholder="Search" ng-model="query" autofocus></p>
|
||||
|
|
Reference in a new issue