Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions ajax/innslag_edit.controller.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,16 @@

use UKMNorge\Geografi\Fylker;
use UKMNorge\Arrangement\Arrangement;
use UKMNorge\Allergener\Allergener;


// SETUP SENSITIVT-REQUESTER
$requester = new UKMNorge\Sensitivt\Requester(
'wordpress',
wp_get_current_user()->ID,
get_option('pl_id')
);
UKMNorge\Sensitivt\Sensitivt::setRequester( $requester );

$arrangement = new Arrangement(get_option('pl_id'));

Expand All @@ -17,6 +27,14 @@
$JSON->person = data_person( $person );
$JSON->erfaring = $innslag->getBeskrivelse();
$JSON->innslag->kommune_id = $innslag->getKommune()->getId();

$allergi = $person->getSensitivt( $requester )->getIntoleranse();
$JSON->person->intoleranse = UKMVideresending::getIntoleransePersonData( $person, $allergi );
$JSON->person->intoleranse_liste = $JSON->person->intoleranse->intoleranse_liste ? $JSON->person->intoleranse->intoleranse_liste : null;
$JSON->person->intoleranse_human = $allergi->getListeHuman();

$JSON->allergener_standard = Allergener::getStandard();
$JSON->allergener_kulturelle = Allergener::getKulturelle();

if( $innslag->getType()->harFunksjoner() ) {
if( null == $JSON->person->valgte_funksjoner ) {
Expand Down
19 changes: 19 additions & 0 deletions ajax/innslag_overview.controller.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
<?php

use UKMNorge\Allergener\Allergener;

// SETUP SENSITIVT-REQUESTER
$requester = new UKMNorge\Sensitivt\Requester(
'wordpress',
wp_get_current_user()->ID,
get_option('pl_id')
);
UKMNorge\Sensitivt\Sensitivt::setRequester( $requester );


// HVIS INNSLAGET KAN VÆRE GRUPPE
if ($innslag->getType()->erGruppe()) {
$JSON->twigJS = 'overview';
Expand All @@ -17,7 +28,15 @@
$tmp = data_person($person);
$tmp->rolle = $person->getRolle();
$tmp->slettbar = !$person->erPameldtAndre($monstring->getId());

$allergi = $person->getSensitivt( $requester )->getIntoleranse();
$tmp->intoleranse = UKMVideresending::getIntoleransePersonData( $person, $allergi );
$tmp->intoleranse_liste = $tmp->intoleranse->intoleranse_liste ? $tmp->intoleranse->intoleranse_liste : null;
$tmp->intoleranse_human = $allergi->getListeHuman();
$JSON->innslag->personer[] = $tmp;
$JSON->allergener_standard = Allergener::getStandard();
$JSON->allergener_kulturelle = Allergener::getKulturelle();
$JSON->intoleranse_tekst = $allergi->getTekst();
$snittalder += (($tmp->alder_tall == '25+') ? 0 : $tmp->alder_tall);
}
$JSON->innslag->snittalder = round($snittalder / ($innslag->getPersoner()->getAntall() > 0 ? $innslag->getPersoner()->getAntall() : 1), 1);
Expand Down
142 changes: 142 additions & 0 deletions javascript/tilrettelegging_deltakere.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
var allergener_kulturelle = '{"vegan":{"id":"vegan","navn":"Vegan","beskrivelse":"","kategori":"kulturell"},"vegetarianer":{"id":"vegetarianer","navn":"Vegetar","beskrivelse":"","kategori":"kulturell"},"halal":{"id":"halal","navn":"Halal","beskrivelse":"","kategori":"kulturell"},"kosher":{"id":"kosher","navn":"Kosher","beskrivelse":"","kategori":"kulturell"},"storfe":{"id":"storfe","navn":"Storfe","beskrivelse":"","kategori":"kulturell"}}';
var allergener_standard = '{"gluten":{"id":"gluten","navn":"Gluten","beskrivelse":"Hvete, rug, bygg, havre, spelt, korasanhvete o.l","kategori":"standard"},"melk":{"id":"melk","navn":"Melk","beskrivelse":"Melk finner du i smør, ost, fløte, iskrem, desserter, melkepulver, yoghurt, bakverk, supper og sauser o.l.","kategori":"standard"},"laktose":{"id":"laktose","navn":"Laktose","beskrivelse":"Laktose, melkesukker, er et karbohydrat og en sukkerart som finnes i melk.","kategori":"standard"},"skalldyr":{"id":"skalldyr","navn":"Skalldyr","beskrivelse":"Dette inkluderer krabbe, hummer, reker, krill, kreps og scampi o.l.","kategori":"standard"},"egg":{"id":"egg","navn":"Egg","beskrivelse":"Egg finner du ofte i kaker, majones, sufflé, pasta, paier, noen kjøttprodukter, sauser, desserter og matvarer som er penslet med egg.","kategori":"standard"},"fisk":{"id":"fisk","navn":"Fisk","beskrivelse":"Fisk finner du ofte i skalldyrog fiskeretter, leverpostei, salatdressinger, tapenade, buljong og i Worcestersaus.","kategori":"standard"},"peanotter":{"id":"peanotter","navn":"Peanøtter","beskrivelse":"Peanøtter finner du ofte i kjeks, kaker, desserter, sjokolader, iskrem, peanøttolje, peanøttsmør, asiatiske og orientalske retter.","kategori":"standard"},"notter":{"id":"notter","navn":"Nøtter","beskrivelse":"","kategori":"standard"},"soya":{"id":"soya","navn":"Soya","beskrivelse":"Soya finner du i tofu, miso, tempeh, soyasaus, soyadrikker og soyamel o.l.","kategori":"standard"},"selleri":{"id":"selleri","navn":"Selleri","beskrivelse":"Dette inkluderer stangselleri (stilkselleri), samt blader, frø og rot (knoll) av selleriplanten.","kategori":"standard"},"sennep":{"id":"sennep","navn":"Sennep","beskrivelse":"Dette inkluderer sennep, sennepspulver og sennepsfrø.","kategori":"standard"},"sesamfro":{"id":"sesamfro","navn":"Sesamfrø","beskrivelse":"Sesamfrø finner ofte du i brød, vegetarretter, godteri, knekkebrød, kjeks, hummus, sesamolje, sesammel og tahini (sesampasta).","kategori":"standard"},"svoveldioksid_og_sulfitter":{"id":"svoveldioksid_og_sulfitter","navn":"Svoveldioksid og sulfitter","beskrivelse":"Sulfitt brukes ofte til konservering av frukt og grønnsaker (inklusive tomat), og i noen kjøttprodukter, så vel som i brus, juice, vin og øl.","kategori":"standard"},"lupin":{"id":"lupin","navn":"Lupin","beskrivelse":"Dette inkluderer lupinfrø og lupinmel, og kan finnes i noen typer brød, bakervarer, mel, vegetarprodukter og pasta.","kategori":"standard"},"blotdyr":{"id":"blotdyr","navn":"Bløtdyr","beskrivelse":"Dette inkluderer muslinger, snegler, blekksprut, blåskjell, kamskjell, østers, hjerteskjell, kråkeboller, akkar, kalamari, sjøsnegler o.l.","kategori":"standard"},"lok":{"id":"lok","navn":"Løk","beskrivelse":"","kategori":"standard"}}';


jQuery(document).on('click', '.intoleranse_update', function(e) {
e.preventDefault();
jQuery(this).html('Lagrer...').addClass('btn-primary').removeClass('btn-success');
var person = jQuery(this).parents('li.person');

var allergener = [];
person.find('input[type="checkbox"]:checked').each(function() {
allergener.push(jQuery(this).val());
});

kjorAjaxKall(person, allergener, true);

});

function tittellosBeforeSubmit(e) {
var personId = jQuery(e.currentTarget).attr('person-id');

var person = jQuery('li.person.single#'+personId);

var allergener = [];
person.find('input[type="checkbox"]:checked').each(function() {
allergener.push(jQuery(this).val());
});

var empty = jQuery(person).parent().find('.har-valg .btn.selected').attr('funksjon') == 'nei';

kjorAjaxKall(person, allergener, false, empty);
};

function kjorAjaxKall(person, allergener, handleUpdate, empty) {
var data = {
action: 'UKMVideresending_ajax',
subaction: 'tilrettelegging',
id: person.attr('data-id'),
tekst: person.find('.intoleranse_tekst').val(),
liste: allergener
};

if(empty) {
data['liste'] = [];
data['tekst'] = '';
}

jQuery.post(
ajaxurl,
data,
function(response) {
if(handleUpdate == false) return;

if (response !== null && response !== undefined) {
try {
response = JSON.parse(response);
} catch (error) {
response = null;
}
}

/* HANDLING GJENNOMFØRT. HÅNDTER RESPONS */
if (response !== null && response.success) {
handleTilretteleggUpdate(response);
} else {
alert('Beklager, kunne ikke hente informasjon fra server');
}
}
);
}

function handleTilretteleggUpdate(response) {
var person = jQuery('li.person#' + response.data.id);

jQuery(person).find('.row.header-person').addClass("collapsed");
jQuery(person).find('.data.row.in').removeClass('in').addClass('collapse');

if (response.data.intoleranse_human.length == 0) {
person.slideUp(
function() {
jQuery(this).remove();
}
);

var intoleranseNySelect = jQuery(person).parent().parent().parent().find('.intoleranse_ny-select');
jQuery(intoleranseNySelect).find('option[value="' + response.data.id + '"]').attr('hidden', false);

} else {
person.find('.header-person .status').html(response.data.intoleranse_human);
}

var knapp = person.find('.intoleranse_update');
knapp.html('Lagret!').addClass('btn-success').removeClass('btn-primary');
setTimeout(
() => {
knapp.html('Lagre');
},
2200
);
}


jQuery(document).on('click', '#intoleranse_add', function(e) {
e.preventDefault();
var intoleranseSelect = jQuery(e.currentTarget).parent().find('.intoleranse_ny-select');

if(jQuery(intoleranseSelect).find('option:selected').attr('hidden') == 'hidden') {
return;
}

if (!jQuery(intoleranseSelect).val()) {
alert('Velg en person fra listen før du trykker "legg til"');
return false;
}
var data = {
person: {
id: jQuery(intoleranseSelect).val(),
navn: jQuery(intoleranseSelect).find('option:selected').html(),
mobil: jQuery(intoleranseSelect).find('option:selected').data('mobil'),
intoleranse_liste: [],
intoleranse_tekst: ''
},
allergener_kulturelle: JSON.parse(allergener_kulturelle),
allergener_standard: JSON.parse(allergener_standard),
};
var intoleranseUl = intoleranseSelect.parent().parent().parent().find('ul.intoleranser-ul');
jQuery(intoleranseUl).prepend(
twigJS_intoleranserpameldte.render(data)
);
jQuery(intoleranseSelect).find('option[value="' + data.person.id + '"]').attr('hidden', true).attr('selected', false);
});

jQuery(document).on('click', '.har-allergi-intoleranse .har-valg .btn', function(e) {
jQuery('.har-allergi-intoleranse .har-valg .btn').removeClass('selected btn-primary');
var el = jQuery(e.currentTarget);
el.addClass('selected btn-primary');

var ja = el.attr('funksjon') == 'ja';
jQuery(el).parents('.intoleranser-ul').find('li.person').addClass(ja ? '' : 'hide').removeClass(ja ? 'hide' : '');


});
85 changes: 84 additions & 1 deletion twig/js/form_tittellos.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -88,13 +88,96 @@
{% endif %}
</div>

<div class="col-xs-12 row" style="margin-top: 20px;">
<div class="col-xs-12 col-sm-6">
<div class="row">
<h4>Intoleranser og allergier</h3>
<div>
<ul class="intoleranser-ul">
<li class="har-allergi-intoleranse list-group-item">
<div class="beskrivelse">
<h5>Har allergi / intoleranse</h5>
</div>
<div class="har-valg">
<div class="btn btn-default btn-sm {{ person.intoleranse_liste == null and person.intoleranse_human|length < 1 ? '' : 'btn-primary selected' }}" funksjon="ja">Ja</div>
<div class="btn btn-default btn-sm {{ person.intoleranse_liste == null and person.intoleranse_human|length < 1 ? 'btn-primary selected' : '' }}" funksjon="nei">Nei</div>
</div>
</li>
{# TEMPLATE start #}
<li class="person clickable single {{ person.intoleranse_liste == null and person.intoleranse_human|length < 1 ? 'hide' : '' }} list-group-item" id="{{ person.id }}" data-id="{{ person.id }}">
<div class="row header-person">
<div class="col-xs-12">
<span class="type strong"></span>
<span class="navn">
{{ person.navn }}
<small class="text-muted"><span class="dashicons dashicons-smartphone" style="font-size:1.2em;padding-top:.4em;"></span>
<span class="UKMmobil UKMSMS" data-navn="{{person.navn}}" data-to="{{person.mobil}}">{{person.mobil}}</span>
</small>
</span>
</div>
</div>
<div id="personKontroll{{ innslag.id }}{{ person.id }}" class="data row in">
<div class="col-xs-4">
<div class="form-group">
<table class="intoleranser table-condensed table-striped" style="width:99%">
{% for allergen in allergener_kulturelle %}
<tr>
<td>
<label>
<input type="checkbox" name="allergen" value="{{ allergen.id }}" {% if allergen.id in person.intoleranse_liste %}checked{% endif %} />
{{ allergen.navn }}
</label>
</td>
</tr>
{% endfor %}
</table>
</div>
</div>
<div class="col-xs-8 col-md-4">
<div class="form-group">
<table class="intoleranser table-condensed table-striped" style="width:99%">
{% for allergen in allergener_standard %}
<tr>
<td>
<label>
<input type="checkbox" name="allergen" value="{{ allergen.id }}" {% if allergen.id in person.intoleranse_liste %}checked{% endif %} />
{{ allergen.navn }}
</label>
</td>
</tr>
{% endfor %}
</table>
</div>
</div>
<div class="col-xs-12">
<label>Tilleggsinformasjon</label>
<textarea class="form-control intoleranse_tekst" rows="3">{{ person.intoleranse.intoleranse_tekst }}</textarea>
</div>

</div>
</li>

{# TEMPLATE end #}
</ul>
</div>
</div>
</div>

<div class="col-xs-12 col-sm-6 arrangor-kommentarer">
<h4>Arrangør-kommentarer</h4>
<p>Kommentarer vil være tilgjengelig som eget valg når du henter ut rapporter, men publiseres ikke noe sted på ukm.no. Pass derfor på hva du noterer / hva du tar ut i rapporter.</p>
<textarea style="width: 100%; height: 100px;"></textarea>
<button style="float: right; margin-top: 15px;" type="button" class="btn btn-ukm btn-sm btn-success">Lagre kommentar</button>
</div>
</div>

<div class="clearfix"></div>
<p>&nbsp;</p>



<div class="clearfix"></div>
<button type="submit" class="action btn btn-success" data-action="save">Lagre</button>
<button onclick="tittellosBeforeSubmit(event)" class="action btn btn-success" person-id="{{ person.id }}" data-action="save">Lagre</button>
&nbsp; &nbsp; eller
<a href="#innslag_{{ innslag_id }}" class="innslagResetAndReloadBody" data-innslag-id="{{ innslag_id }}">avbryt</a>

Expand Down
4 changes: 2 additions & 2 deletions twig/js/intoleranse_deltaker.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
</div>
<div class="data row" style="display: none;">
<form class="leder_edit_form condensed">
<div class="col-xs-12 col-md-4">
<div class="col-xs-4">
<div class="form-group">
<table class="intoleranser table-condensed table-striped" style="width:99%">
{% for allergen in allergener_kulturelle %}
Expand All @@ -29,7 +29,7 @@
</table>
</div>
</div>
<div class="col-xs-12 col-md-4">
<div class="col-xs-8 col-md-4">
<div class="form-group">
<table class="intoleranser table-condensed table-striped" style="width:99%">
{% for allergen in allergener_standard %}
Expand Down
73 changes: 73 additions & 0 deletions twig/js/intoleranser_pameldte.html.twig
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
<li class="person clickable list-group-item" id="{{ person.id }}" data-id="{{ person.id }}">
<div class="row header-person" data-toggle="collapse" href="#personKontroll{{ person.id }}" role="button" aria-expanded="true" aria-controls="personKontroll{{ person.id }}">
<div class="col-xs-12">
<span class="type strong"></span>
<span class="navn">
{{ person.navn }}
<small class="text-muted"><span class="dashicons dashicons-smartphone" style="font-size:1.2em;padding-top:.4em;"></span>
<span class="UKMmobil UKMSMS" data-navn="{{person.navn}}" data-to="{{person.mobil}}">{{person.mobil}}</span>
</small>
</span>
<span class="status float-right pull-right small">{{ person.intoleranse_human }}</span>
</div>
</div>
<div id="personKontroll{{ person.id }}" class="data row in">
<form class="leder_edit_form condensed">
<div class="col-xs-4">
<div class="form-group">
<table class="intoleranser table-condensed table-striped" style="width:99%">
{% for allergen in allergener_kulturelle %}
<tr>
<td>
<label>
<input type="checkbox" name="allergen" value="{{ allergen.id }}" {% if allergen.id in person.intoleranse_liste %}checked{% endif %} />
{{ allergen.navn }}
</label>
</td>
</tr>
{% endfor %}
</table>
</div>
</div>
<div class="col-xs-8 col-md-4">
<div class="form-group">
<table class="intoleranser table-condensed table-striped" style="width:99%">
{% for allergen in allergener_standard %}
<tr>
<td>
<label>
<input type="checkbox" name="allergen" value="{{ allergen.id }}" {% if allergen.id in person.intoleranse_liste %}checked{% endif %} />
{{ allergen.navn }}
</label>
</td>
</tr>
{% endfor %}
</table>
</div>
</div>
<div class="col-xs-12">
<label>Tilleggsinformasjon</label>
<textarea class="form-control intoleranse_tekst" rows="3">{{ person.intoleranse.intoleranse_tekst }}</textarea>
</div>
<div class="col-xs-12">
<div class="float-right pull-right">
<button type="button" class="intoleranse_update btn btn-ukm btn-sm btn-success">Lagre</button>
</div>
<div class="clearfix"></div>
</div>
</form>
</div>
</li>

<style>
.intoleranse_ny-select {
min-width: 100px;
margin-bottom: 0;
margin-right: 10px;
width: 100% !important;
max-width: initial !important;
}
#intoleranse_add {
width: 100%;
}
</style>
Loading