Skip to content

Commit

Permalink
OO#159_adding new state in Arbeitsangebote
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmpp committed May 21, 2024
1 parent 3316f10 commit dc50562
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 21 deletions.
1 change: 1 addition & 0 deletions app/scripts/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@ angular
INVORBEREITUNG: gettext('InVorbereitung'),
BEREIT: gettext('Bereit'),
ABGESAGT: gettext('Abgesagt'),
BEENDET: gettext('Beendet'),
ARCHIVIERT: gettext('Archiviert')
})

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,11 @@ angular.module('openolitor-admin')
};

$scope.aaAbschliessen = function() {
$scope.arbeitsangebot.status = ARBEITSEINSATZSTATUS.BEENDET;
$scope.save();
};

$scope.aaArchiviert = function() {
$scope.arbeitsangebot.status = ARBEITSEINSATZSTATUS.ARCHIVIERT;
$scope.save();
};
Expand Down
50 changes: 29 additions & 21 deletions app/scripts/arbeitsangebote/detail/arbeitsangebotedetail.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@ <h3>
<button ng-if="arbeitsangebot.status === 'Bereit'" type="button" role="button" ng-click="aaZurueckziehen()" class="btn btn-warning"><span class="fa fa-pause"></span> <span translate>Zurückziehen</span></button>
<button ng-if="arbeitsangebot.status === 'Bereit'" type="button" role="button" ng-click="aaAbsagen()" class="btn btn-info"><span class="fa fa-ban"></span> <span translate>Absagen</i></span></button>
<button ng-if="arbeitsangebot.status === 'Bereit'" type="button" role="button" ng-click="aaAbschliessen()" class="btn btn-danger"><span class="fa fa-stop"></span> <span translate>Abschliessen <i class="fa fa-info-circle" aria-hidden="true" uib-tooltip-template="'abschliessenTooltip.html'"></i></span></button>
<oo-save-button model="arbeitsangebot" form="arbeitsangebotForm" entity="Arbeitsangebot" on-save="save" on-cancel="backToList" on-created="created">{{fullName() || 'Arbeitsangebot'|translate}}</oo-save-button>
<oo-delete-button ng-if="!arbeitsangebot.anzahlTeilnehmer || arbeitsangebot.anzahlTeilnehmer == 0" model="arbeitsangebot" entity="Arbeitsangebot" on-delete="delete" on-deleted="backToList"></oo-delete-button>
<button ng-if="arbeitsangebot.status === 'Beendet'" type="button" role="button" ng-click="aaArchiviert()" class="btn btn-danger"><span class="fa fa-stop"></span> <span translate>Archiviert<i class="fa fa-info-circle" aria-hidden="true" uib-tooltip-template="'archiviertTooltip.html'"></i></span></button>

<oo-save-button ng-show="arbeitsangebot.status !== 'Archiviert'" model="arbeitsangebot" form="arbeitsangebotForm" entity="Arbeitsangebot" on-save="save" on-cancel="backToList" on-created="created">{{fullName() || 'Arbeitsangebot'|translate}}</oo-save-button>
<oo-delete-button ng-show="arbeitsangebot.status !== 'Archiviert'" ng-if="!arbeitsangebot.anzahlTeilnehmer || arbeitsangebot.anzahlTeilnehmer == 0" model="arbeitsangebot" entity="Arbeitsangebot" on-delete="delete" on-deleted="backToList"></oo-delete-button>
</div>
</div>
</h3>
Expand All @@ -45,23 +47,23 @@ <h3 class="panel-title"><span class="navbar-brand" translate>Basisdaten</span></
<label for="titel" translate>Titel</label>
</div>
<div class="col-md-8">
<input type="text" class="form-control" name="titel" ng-model="arbeitsangebot.titel" placeholder="{{'Aktivität, Kurzbeschrieb, ...'|translate}}" maxlength="200" auto-focus required>
<input type="text" ng-disabled="arbeitsangebot.status === 'Archiviert' " class="form-control" name="titel" ng-model="arbeitsangebot.titel" placeholder="{{'Aktivität, Kurzbeschrieb, ...'|translate}}" maxlength="200" auto-focus required>
</div>
</div>
<div class="row form-group">
<div class="col-md-4">
<label for="bezeichnung" translate>Bezeichnung</label>
</div>
<div class="col-md-8">
<textarea class="form-control" name="bezeichnung" ng-model="arbeitsangebot.bezeichnung" placeholder="{{'Genauerer Beschrieb'|translate}}..." maxlength="200"></textarea>
<textarea class="form-control" ng-disabled="arbeitsangebot.status === 'Archiviert' " name="bezeichnung" ng-model="arbeitsangebot.bezeichnung" placeholder="{{'Genauerer Beschrieb'|translate}}..." maxlength="200"></textarea>
</div>
</div>
<div class="row form-group">
<div class="col-md-4">
<label for="ort" translate>Ort</label>
</div>
<div class="col-md-8">
<textarea class="form-control" name="ort" ng-model="arbeitsangebot.ort" placeholder="{{'Angaben zum Ort, zur Anfahrt, etc.'|translate}}..." maxlength="500"></textarea>
<textarea class="form-control" ng-disabled="arbeitsangebot.status === 'Archiviert' " name="ort" ng-model="arbeitsangebot.ort" placeholder="{{'Angaben zum Ort, zur Anfahrt, etc.'|translate}}..." maxlength="500"></textarea>
</div>
</div>
<div class="row form-group">
Expand All @@ -83,9 +85,9 @@ <h3 class="panel-title" translate>Zeitpunkt</h3>
</div>
<div class="col-md-4">
<p class="input-group">
<input type="text" class="form-control input-date" datetime-picker="dd.MM.yyyy HH:mm" ng-model="arbeitsangebot.zeitVon" is-open="open.start" enable-time="true" timepicker-options="tpOptionsVon" max-date="arbeitsangebot.zeitBis" required />
<span class="input-group-btn">
<button type="button" class="btn btn-default" ng-click="openCalendar($event, 'start')"><i class="fa fa-calendar"></i></button>
<input type="text" ng-disabled="arbeitsangebot.status === 'Archiviert'" class="form-control input-date" datetime-picker="dd.MM.yyyy HH:mm" ng-model="arbeitsangebot.zeitVon" is-open="open.start" enable-time="true" timepicker-options="tpOptionsVon" max-date="arbeitsangebot.zeitBis" required />
<span class="input-group-btn"
<button type="button" ng-disabled="arbeitsangebot.status === 'Archiviert'" class="btn btn-default" ng-click="openCalendar($event, 'start')"><i class="fa fa-calendar"></i></button>
</span>
</p>
</div>
Expand All @@ -96,20 +98,20 @@ <h3 class="panel-title" translate>Zeitpunkt</h3>
</div>
<div class="col-md-4">
<p class="input-group">
<input type="text" class="form-control input-date" datetime-picker="dd.MM.yyyy HH:mm" ng-model="arbeitsangebot.zeitBis" is-open="open.ende" enable-time="true" timepicker-options="tpOptionsBis" min-date="arbeitsangebot.zeitVon" required />
<input type="text" ng-disabled="arbeitsangebot.status === 'Archiviert'" class="form-control input-date" datetime-picker="dd.MM.yyyy HH:mm" ng-model="arbeitsangebot.zeitBis" is-open="open.ende" enable-time="true" timepicker-options="tpOptionsBis" min-date="arbeitsangebot.zeitVon" required />
<span class="input-group-btn">
<button type="button" class="btn btn-default" ng-click="openCalendar($event, 'ende')"><i class="fa fa-calendar"></i></button>
<button type="button" ng-disabled="arbeitsangebot.status === 'Archiviert'" class="btn btn-default" ng-click="openCalendar($event, 'ende')"><i class="fa fa-calendar"></i></button>
</span>
</p>
</div>
<div class="col-md-2">
<p class="input-group">
<span class="input-group-btn">
<button ng-disabled="!arbeitsangebot.zeitVon" type="button" role="button" ng-click="modifBis(modifDelta)" class="btn btn-default"><span class="glyphicon glyphicon-plus"></span> <span translate></span></button>
<button ng-disabled="arbeitsangebot.status === 'Archiviert' || !arbeitsangebot.zeitVon" type="button" role="button" ng-click="modifBis(modifDelta)" class="btn btn-default"><span class="glyphicon glyphicon-plus"></span> <span translate></span></button>
</span>
<input type="number" class="form-control" ng-model="modifDelta" step="1" min="0"></input>
<input type="number" ng-disabled="arbeitsangebot.status === 'Archiviert'" class="form-control" ng-model="modifDelta" step="1" min="0"></input>
<span class="input-group-btn">
<button ng-disabled="!arbeitsangebot.zeitVon || arbeitsangebot.zeitVon >= arbeitsangebot.zeitBis" type="button" role="button" ng-click="modifBis(-modifDelta)" class="btn btn-default"><span class="glyphicon glyphicon-minus"></span> <span translate></span></button>
<button ng-disabled="arbeitsangebot.status === 'Archiviert' || !arbeitsangebot.zeitVon || arbeitsangebot.zeitVon >= arbeitsangebot.zeitBis" type="button" role="button" ng-click="modifBis(-modifDelta)" class="btn btn-default"><span class="glyphicon glyphicon-minus"></span> <span translate></span></button>
</span>
</p>
</div>
Expand All @@ -120,7 +122,7 @@ <h3 class="panel-title" translate>Zeitpunkt</h3>
</div>
<div class="col-md-3">
<div class="input-group">
<input type="number" class="form-control" name="einsatzzeit" ng-model="arbeitsangebot.einsatzZeit" step="0.01" placeholder="{{'Zeit in Stunden'|translate}}">
<input type="number" ng-disabled="arbeitsangebot.status === 'Archiviert'" class="form-control" name="einsatzzeit" ng-model="arbeitsangebot.einsatzZeit" step="0.01" placeholder="{{'Zeit in Stunden'|translate}}">
<div class="input-group-addon">{{projekt.einsatzEinheit | translate}}</div>
</div>
</div>
Expand All @@ -130,7 +132,7 @@ <h3 class="panel-title" translate>Zeitpunkt</h3>
<label for="aktionen" translate>Aktionen</label>
</div>
<div class="col-md-8">
<button ng-if="!arbeitsangebotForm.$invalid" type="button" role="button" ng-click="aaMultiplizieren()" class="btn btn-default"><span class="glyphicon glyphicon-plus"></span> <span translate>Multiplizieren</span></button>
<button ng-if="!arbeitsangebotForm.$invalid" ng-disabled="arbeitsangebot.status === 'Archiviert'" type="button" role="button" ng-click="aaMultiplizieren()" class="btn btn-default"><span class="glyphicon glyphicon-plus"></span> <span translate>Multiplizieren</span></button>
</div>
</div>
</div>
Expand All @@ -143,16 +145,22 @@ <h3 class="panel-title" translate>Anzahl Personen</h3>
<label for="anzahlPersonen" translate>Benötigte Anzahl Personen</label>
</div>
<div class="col-md-3">
<input type="number" min="0" step="1" class="form-control" name="anzahlPersonen" ng-model="arbeitsangebot.anzahlPersonen" placeholder="{{'Anzahl'|translate}}">
<input type="number" ng-disabled="arbeitsangebot.status === 'Archiviert'" min="0" step="1" class="form-control" name="anzahlPersonen" ng-model="arbeitsangebot.anzahlPersonen" placeholder="{{'Anzahl'|translate}}">
</div>
</div>
<div class="row form-group">
<div class="col-md-4">
<label for="mehrPersonenOk" translate>Zusätzliche Personen möglich</label>
</div>
<div class="col-md-4">
<div class="col-md-4" ng-show ="arbeitsangebot.status !== 'Archiviert'" >
<input bs-switch ng-model="arbeitsangebot.mehrPersonenOk" type="checkbox" switch-size="medium" switch-animate="true" switch-on-text="{{'Ja'|translate}}" switch-off-text="{{'Nein'|translate}}" switch-on-color="success" switch-off-color="danger" switch-radio-off="false" ng-true-value="true" ng-false-value="false">
</div>
<div class="col-md-4" ng-show ="arbeitsangebot.status === 'Archiviert' && arbeitsangebot.mehrPersonenOk" >
{{'Ja'|translate}}
</div>
<div class="col-md-4" ng-show ="arbeitsangebot.status === 'Archiviert' && !arbeitsangebot.mehrPersonenOk" >
{{'Nein'|translate}}
</div>
</div>
</div>
</div>
Expand All @@ -166,7 +174,7 @@ <h3>
<div class="col-md-6">
<span translate>Eingeschriebene Personen</span> ({{sumPersonen()}})
</div>
<div class="col-md-6" ng-if="arbeitsangebot.status === 'InVorbereitung' || arbeitsangebot.status === 'Bereit'">
<div class="col-md-6" ng-if="arbeitsangebot.status === 'InVorbereitung' || arbeitsangebot.status === 'Bereit' || arbeitsangebot.status === 'Beendet' ">
<div class="btn-group pull-right" role="group">
<oo-actions-button model="arbeitsangebot" actions="einsatzActions"></oo-actions-button>
</div>
Expand All @@ -177,12 +185,12 @@ <h3>
<div class="row">
<div class="col-md-12">
<script type="text/ng-template" id="headerCheckbox.html">
<input type="checkbox" ng-model="checkboxes.checked" ng-class="checkboxes.css" value="" ignore-dirty />
<input type="checkbox" ng-show="arbeitsangebot.status !== 'Archiviert'" ng-model="checkboxes.checked" ng-class="checkboxes.css" value="" ignore-dirty />
</script>
<table ng-table="tableParams" class="table table-striped" template-pagination="scripts/common/ngtable/oo-ngtable-paginationTemplate.html">
<tr ng-repeat="arbeitseinsatz in $data | filter: search.query.$">
<td header="'headerCheckbox.html'">
<input type="checkbox" ng-model="checkboxes.items[arbeitseinsatz.id]" ignore-dirty/>
<input ng-show="arbeitsangebot.status !== 'Archiviert'" type="checkbox" ng-model="checkboxes.items[arbeitseinsatz.id]" ignore-dirty/>
</td>
<td data-title="'Person'|translate" sortable="'titel'">
{{arbeitseinsatz.personName}}</a>
Expand All @@ -200,7 +208,7 @@ <h3>
{{arbeitseinsatz.bemerkungen}}
</td>
<td>
<oo-delete-button model="arbeitseinsatz" entity="Arbeitseinsatz" on-delete="deleteArbeitseinsatz" condensed="true" confirm="true"></oo-delete-button>
<oo-delete-button ng-show="arbeitsangebot.status !== 'Archiviert'" model="arbeitseinsatz" entity="Arbeitseinsatz" on-delete="deleteArbeitseinsatz" condensed="true" confirm="true"></oo-delete-button>
</td>
</tr>
</table>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ angular
'FilterQueryUtil',
'lodash',
'EmailUtil',
'ARBEITSEINSATZSTATUS',
'msgBus',
function(
$q,
Expand All @@ -47,6 +48,7 @@ angular
FilterQueryUtil,
lodash,
EmailUtil,
ARBEITSEINSATZSTATUS,
msgBus
) {
$rootScope.viewId = 'L-Aban';
Expand All @@ -55,6 +57,7 @@ angular
$scope.loading = false;
$scope.model = {};
$scope.showCreateEMailDialog = false;
$scope.showArchived = false;

//watch for set of Arbeitskategorien
$scope.kategorienL = [];
Expand Down Expand Up @@ -294,6 +297,12 @@ angular
q: $scope.search.queryQuery
},
function() {
if (!$scope.showArchived){
$scope.entries = lodash.filter($scope.entries, function(o) {return o.status !== ARBEITSEINSATZSTATUS.ARCHIVIERT})
$scope.tableParams.reload();
} else {
search();
}
$scope.tableParams.reload();
$scope.loading = false;
}
Expand All @@ -302,6 +311,11 @@ angular

search();

$scope.$watch('showArchived', function() {
search();
});


$scope.$watch(
'search.query',
function() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
<div class="panel-heading clearfix">
<h3 class="panel-title"><span class="navbar-brand" translate>Arbeitsangebote</span>
<form class="navbar-form pull-right" role="search">
<span translate>Archiviert anzeigen</span>
<input bs-switch ng-model="showArchived" type="checkbox" switch-size="medium" switch-animate="true" switch-on-text="{{'Ja'|translate}}" switch-off-text="{{'Nein'|translate}}" switch-on-color="success" switch-off-color="warning" switch-radio-off="false" ng-true-value="true" ng-false-value="false">
<div class="form-group">
<oo-overviewfilter-geschaeftsjahre
selected-funct="selectGeschaeftsjahr"
Expand Down Expand Up @@ -53,6 +55,7 @@ <h3 class="panel-title"><span class="navbar-brand" translate>Arbeitsangebote</s
<i ng-if="arbeitsangebot.status === 'InVorbereitung'" ng-attr-title="{{'In Vorbereitung'|translate}}" class="fa fa-clock-o"></i>
<i ng-if="arbeitsangebot.status === 'Bereit'" ng-attr-title="{{'Bereit'|translate}}" class="fa fa-calendar-plus-o"></i>
<i ng-if="arbeitsangebot.status === 'Abgesagt'" ng-attr-title="{{'Abgesagt'|translate}}" class="fa fa-times-circle-o"></i>
<i ng-if="arbeitsangebot.status === 'Beendet'" ng-attr-title="{{'Beendet'|translate}}" class="fa fa-check-circle-o"></i>
<i ng-if="arbeitsangebot.status === 'Archiviert'" ng-attr-title="{{'Archiviert'|translate}}" class="fa fa-archive"></i>
</td>
</tr>
Expand Down

0 comments on commit dc50562

Please sign in to comment.