parent
e6cbb89c10
commit
740ea07709
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,9 @@ |
||||
/*! |
||||
* Cropper v1.0.0 |
||||
* https://github.com/fengyuanchen/cropper |
||||
* |
||||
* Copyright (c) 2014-2015 Fengyuan Chen and contributors |
||||
* Released under the MIT license |
||||
* |
||||
* Date: 2015-10-10T02:10:06.999Z |
||||
*/.cropper-container{position:relative;overflow:hidden;font-size:0;line-height:0;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;direction:ltr!important;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.cropper-container img{display:block;width:100%;min-width:0!important;max-width:none!important;height:100%;min-height:0!important;max-height:none!important;image-orientation:0deg!important}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal{position:absolute;top:0;right:0;bottom:0;left:0}.cropper-drag-box{background-color:#fff;filter:alpha(opacity=0);opacity:0}.cropper-dashed,.cropper-modal{filter:alpha(opacity=50);opacity:.5}.cropper-modal{background-color:#000}.cropper-view-box{display:block;width:100%;height:100%;overflow:hidden;outline:#39f solid 1px;outline-color:rgba(51,153,255,.75)}.cropper-dashed{position:absolute;display:block;border:0 dashed #eee}.cropper-dashed.dashed-h{top:33.33333%;left:0;width:100%;height:33.33333%;border-top-width:1px;border-bottom-width:1px}.cropper-dashed.dashed-v{top:0;left:33.33333%;width:33.33333%;height:100%;border-right-width:1px;border-left-width:1px}.cropper-center{position:absolute;top:50%;left:50%;display:block;width:0;height:0;filter:alpha(opacity=75);opacity:.75}.cropper-center:after,.cropper-center:before{position:absolute;display:block;content:" ";background-color:#eee}.cropper-center:before{top:0;left:-3px;width:7px;height:1px}.cropper-center:after{top:-3px;left:0;width:1px;height:7px}.cropper-face,.cropper-line,.cropper-point{position:absolute;display:block;width:100%;height:100%;filter:alpha(opacity=10);opacity:.1}.cropper-face{top:0;left:0;background-color:#fff}.cropper-line,.cropper-point{background-color:#39f}.cropper-line.line-e{top:0;right:-3px;width:5px;cursor:e-resize}.cropper-line.line-n{top:-3px;left:0;height:5px;cursor:n-resize}.cropper-line.line-w{top:0;left:-3px;width:5px;cursor:w-resize}.cropper-line.line-s{bottom:-3px;left:0;height:5px;cursor:s-resize}.cropper-point{width:5px;height:5px;filter:alpha(opacity=75);opacity:.75}.cropper-point.point-e{top:50%;right:-3px;margin-top:-3px;cursor:e-resize}.cropper-point.point-n{top:-3px;left:50%;margin-left:-3px;cursor:n-resize}.cropper-point.point-w{top:50%;left:-3px;margin-top:-3px;cursor:w-resize}.cropper-point.point-s{bottom:-3px;left:50%;margin-left:-3px;cursor:s-resize}.cropper-point.point-ne{top:-3px;right:-3px;cursor:ne-resize}.cropper-point.point-nw{top:-3px;left:-3px;cursor:nw-resize}.cropper-point.point-sw{bottom:-3px;left:-3px;cursor:sw-resize}.cropper-point.point-se{right:-3px;bottom:-3px;width:20px;height:20px;cursor:se-resize;filter:alpha(opacity=100);opacity:1}.cropper-point.point-se:before{position:absolute;right:-50%;bottom:-50%;display:block;width:200%;height:200%;content:" ";background-color:#39f;filter:alpha(opacity=0);opacity:0}@media (min-width:768px){.cropper-point.point-se{width:15px;height:15px}}@media (min-width:992px){.cropper-point.point-se{width:10px;height:10px}}@media (min-width:1200px){.cropper-point.point-se{width:5px;height:5px;filter:alpha(opacity=75);opacity:.75}}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-invisible{filter:alpha(opacity=0);opacity:0}.cropper-hide{position:absolute;display:block;width:0;height:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed} |
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,881 @@ |
||||
<?php |
||||
/* For licensing terms, see /license.txt */ |
||||
|
||||
use Chamilo\CoreBundle\Entity\ExtraFieldSavedSearch; |
||||
use Chamilo\CoreBundle\Entity\User; |
||||
//use Chamilo\CoreBundle\Entity\ExtraField; |
||||
use ChamiloSession as Session; |
||||
|
||||
$cidReset = true; |
||||
|
||||
require_once __DIR__.'/../inc/global.inc.php'; |
||||
|
||||
if ('false' === api_get_setting('session.allow_search_diagnostic')) { |
||||
api_not_allowed(); |
||||
} |
||||
|
||||
api_block_anonymous_users(); |
||||
|
||||
$userId = api_get_user_id(); |
||||
$userInfo = api_get_user_info(); |
||||
|
||||
$em = Database::getManager(); |
||||
|
||||
$adminPermissions = true; |
||||
|
||||
/** @var ExtraFieldSavedSearch $saved */ |
||||
$search = [ |
||||
'user' => $userId, |
||||
]; |
||||
$extraFieldSavedSearchRepo = $em->getRepository(ExtraFieldSavedSearch::class); |
||||
$items = $extraFieldSavedSearchRepo->findBy($search); |
||||
|
||||
$extraFieldSession = new ExtraField('session'); |
||||
$extraFieldValueSession = new ExtraFieldValue('session'); |
||||
|
||||
$filter = false; |
||||
$extraFieldValue = new ExtraFieldValue('user'); |
||||
$wantStage = $extraFieldValue->get_values_by_handler_and_field_variable(api_get_user_id(), 'filiere_want_stage'); |
||||
|
||||
$diagnosisComplete = $extraFieldValue->get_values_by_handler_and_field_variable( |
||||
api_get_user_id(), |
||||
'diagnosis_completed' |
||||
); |
||||
$diagnosisComplete = false; |
||||
if ($diagnosisComplete && isset($diagnosisComplete['value']) && $diagnosisComplete['value'] == 1) { |
||||
if (!isset($_GET['result'])) { |
||||
header('Location:'.api_get_self().'?result=1'); |
||||
exit; |
||||
} |
||||
} |
||||
|
||||
$hide = true; |
||||
if ($wantStage !== false) { |
||||
$hide = $wantStage['value'] === 'yes'; |
||||
} |
||||
|
||||
$defaultValueStatus = 'extraFiliere.hide()'; |
||||
if ($hide === false) { |
||||
$defaultValueStatus = ''; |
||||
} |
||||
|
||||
$url = api_get_path(WEB_AJAX_PATH).'extra_field.ajax.php?a=order&user_id='.$userId; |
||||
|
||||
// Use current user language |
||||
$langInfo = api_get_language_from_iso($userInfo['language']); |
||||
$targetLanguage = $langInfo->getEnglishName(); |
||||
$theme = 'theme_fr'; |
||||
switch ($targetLanguage) { |
||||
case 'italian': |
||||
$theme = 'theme_it'; |
||||
break; |
||||
case 'polish': |
||||
$theme = 'theme_pl'; |
||||
break; |
||||
case 'spanish': |
||||
$theme = 'theme_es'; |
||||
break; |
||||
case 'french2': |
||||
case 'french': |
||||
$theme = 'theme_fr'; |
||||
break; |
||||
case 'german2': |
||||
case 'german': |
||||
$theme = 'theme_de'; |
||||
break; |
||||
} |
||||
|
||||
$htmlHeadXtra[] = ' |
||||
<style> |
||||
input[type="checkbox"], input[type="radio"] { |
||||
appearance: auto !important; |
||||
font-size: 14px; |
||||
margin-left: 0px !important; |
||||
height: auto !important; |
||||
width: auto !important; |
||||
} |
||||
form label, input { |
||||
font-size: 15px !important; |
||||
font-weight: normal !important; |
||||
} |
||||
.btn { |
||||
padding: 0px 12px !important; |
||||
} |
||||
</style> |
||||
<link href="bootstrap/bootstrap.min.css" rel="stylesheet" media="screen" type="text/css" /> |
||||
<script src="bootstrap/bootstrap.min.js"></script> |
||||
<link href="select2/select2.min.css" rel="stylesheet" media="screen" type="text/css" /> |
||||
<script src="select2/select2.min.js"></script> |
||||
'; |
||||
|
||||
$htmlHeadXtra[] = '<script> |
||||
$(function() { |
||||
var themeDefault = "extra_'.$theme.'"; |
||||
var extraFiliere = $("input[name=\'extra_filiere[extra_filiere]\']").parent().parent().parent(); |
||||
'.$defaultValueStatus.' |
||||
|
||||
$("input[name=\'extra_filiere_want_stage[extra_filiere_want_stage]\']").change(function() { |
||||
if ($(this).val() == "no") { |
||||
extraFiliere.show(); |
||||
} else { |
||||
extraFiliere.hide(); |
||||
} |
||||
}); |
||||
|
||||
$("#extra_theme").parent().append( |
||||
$("<a>", { |
||||
"class": "btn ajax btn-default", |
||||
"href": "'.$url.'&field_variable=extra_theme", |
||||
"text": "'.get_lang('Order').'" |
||||
}) |
||||
); |
||||
|
||||
$("#extra_theme_fr").parent().append( |
||||
$("<a>", { |
||||
"class": "btn ajax btn-default", |
||||
"href": "'.$url.'&field_variable=extra_theme_fr", |
||||
"text": "'.get_lang('Order').'" |
||||
}) |
||||
); |
||||
|
||||
$("#extra_theme_de").parent().append( |
||||
$("<a>", { |
||||
"class": "btn ajax btn-default", |
||||
"href": "'.$url.'&field_variable=extra_theme_de", |
||||
"text": "'.get_lang('Order').'" |
||||
}) |
||||
); |
||||
|
||||
$("#extra_theme_it").parent().append( |
||||
$("<a>", { |
||||
"class": "btn ajax btn-default", |
||||
"href": "'.$url.'&field_variable=extra_theme_it", |
||||
"text": "'.get_lang('Order').'" |
||||
}) |
||||
); |
||||
|
||||
$("#extra_theme_es").parent().append( |
||||
$("<a>", { |
||||
"class": "btn ajax btn-default", |
||||
"href": "'.$url.'&field_variable=extra_theme_es", |
||||
"text": "'.get_lang('Order').'" |
||||
}) |
||||
); |
||||
|
||||
$("#extra_theme_pl").parent().append( |
||||
$("<a>", { |
||||
"class": "btn ajax btn-default", |
||||
"href": "'.$url.'&field_variable=extra_theme_pl", |
||||
"text": "'.get_lang('Order').'" |
||||
}) |
||||
); |
||||
|
||||
|
||||
$("#extra_domaine_0, #extra_domaine_1, #extra_domaine_2").on("change", function() { |
||||
var domainList = []; |
||||
$("#extra_domaine_0 option:selected").each(function() { |
||||
domainList.push($(this).val()); |
||||
}); |
||||
$("#extra_domaine_1 option:selected").each(function() { |
||||
domainList.push($(this).val()); |
||||
}); |
||||
$("#extra_domaine_2 option:selected").each(function() { |
||||
domainList.push($(this).val()); |
||||
}); |
||||
|
||||
var domainListToString = JSON.stringify(domainList); |
||||
|
||||
$.ajax({ |
||||
contentType: "application/x-www-form-urlencoded", |
||||
type: "GET", |
||||
url: "'.api_get_path(WEB_AJAX_PATH).'extra_field.ajax.php?a=search_options_from_tags&type=session&from=extra_domaine&search="+themeDefault+"&options="+domainListToString, |
||||
success: function(data) { |
||||
var selectToString = ""; |
||||
selectToString += "<option></option>"; |
||||
jQuery.each(JSON.parse(data), function(i, item) { |
||||
selectToString += "<optgroup label=\'"+item.text+"\'>"; |
||||
// Add empty value |
||||
jQuery.each(item.children, function(j, data) { |
||||
if (data.text != "") { |
||||
selectToString += "<option value=\'"+data.text+"\'> " +data.text+"</option>" |
||||
} |
||||
}); |
||||
selectToString += "</optgroup>"; |
||||
}); |
||||
|
||||
for (i = 0; i <= 5; i++) { |
||||
var themeId = "#"+themeDefault+"_"+i; |
||||
var beforeValue = $(themeId).find(":selected").val(); |
||||
$(themeId).find("option").remove().end(); |
||||
$(themeId).empty(); |
||||
$(themeId).html(selectToString); |
||||
$(themeId).val(beforeValue); |
||||
$(themeId).selectpicker("refresh"); |
||||
} |
||||
} |
||||
}); |
||||
}); |
||||
}); |
||||
</script>'; |
||||
|
||||
$result = SessionManager::getGridColumns('simple'); |
||||
$columns = $result['columns']; |
||||
$column_model = $result['column_model']; |
||||
|
||||
$defaults = []; |
||||
$tagsData = []; |
||||
|
||||
if (!empty($items)) { |
||||
/** @var ExtraFieldSavedSearch $item */ |
||||
foreach ($items as $item) { |
||||
$variable = 'extra_'.$item->getField()->getVariable(); |
||||
|
||||
if ($item->getField()->getFieldType() == Extrafield::FIELD_TYPE_TAG) { |
||||
$tagsData[$variable] = $item->getValue(); |
||||
} |
||||
$defaults[$variable] = $item->getValue(); |
||||
} |
||||
} |
||||
|
||||
$extraField = new ExtraField('user'); |
||||
$userForm = new FormValidator('user_form'); |
||||
$jqueryExtra = ''; |
||||
|
||||
|
||||
$htmlHeadXtra[] = '<script> |
||||
|
||||
$(function() { |
||||
|
||||
$("#user_form select").select2(); |
||||
|
||||
var blocks = [ |
||||
"#collapseOne", |
||||
"#collapseTwo", |
||||
"#collapseThree", |
||||
"#collapseFour", |
||||
"#collapseFive", |
||||
"#collapseSix", |
||||
"#collapseSeven", |
||||
"#collapseEight" |
||||
]; |
||||
|
||||
$.each(blocks, function( index, value ) { |
||||
if (window.location.hash == value) { |
||||
return true; |
||||
} |
||||
$(value).collapse("hide"); |
||||
}); |
||||
|
||||
|
||||
$("#filiere").on("click", function() { |
||||
$("#filiere_panel").toggle(); |
||||
return false; |
||||
}); |
||||
|
||||
$("#dispo").on("click", function() { |
||||
$("#dispo_panel").toggle(); |
||||
return false; |
||||
}); |
||||
|
||||
$("#dispo_pendant").on("click", function() { |
||||
$("#dispo_pendant_panel").toggle(); |
||||
return false; |
||||
}); |
||||
|
||||
$("#niveau").on("click", function() { |
||||
$("#niveau_panel").toggle(); |
||||
return false; |
||||
}); |
||||
|
||||
$("#methode").on("click", function() { |
||||
$("#methode_panel").toggle(); |
||||
return false; |
||||
}); |
||||
|
||||
$("#enviroment").on("click", function() { |
||||
$("#enviroment_panel").toggle(); |
||||
return false; |
||||
}); |
||||
|
||||
$("#themes").on("click", function() { |
||||
$("#themes_panel").toggle(); |
||||
return false; |
||||
}); |
||||
|
||||
$("#objectifs").on("click", function() { |
||||
$("#objectifs_panel").toggle(); |
||||
return false; |
||||
}); |
||||
}); |
||||
</script>'; |
||||
|
||||
$userForm->addHtml('<div class="panel-group" id="search_extrafield" role="tablist" aria-multiselectable="true">'); |
||||
$userForm->addHtml('<div class="panel panel-default">'); |
||||
$userForm->addHtml('<div class="panel-heading"><a role="button" data-toggle="collapse" data-parent="#search_extrafield" href="#collapseZero" aria-expanded="true" aria-controls="collapseZero">'. |
||||
get_lang('Diagnostic Form').'</a></div>'); |
||||
$userForm->addHtml('<div id="collapseZero" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingZero">'); |
||||
$userForm->addHtml('<div class="panel-body"><p class="text-info">'); |
||||
$userForm->addHtml(get_lang('Diagnostic Introduction')); |
||||
$userForm->addHtml('</p></div></div></div></div>'); |
||||
|
||||
$userForm->addHtml('<div class="panel-group" id="search_extrafield" role="tablist" aria-multiselectable="true">'); |
||||
$userForm->addHtml('<div class="panel panel-default">'); |
||||
$userForm->addHtml('<div class="panel-heading"><a role="button" data-toggle="collapse" data-parent="#search_extrafield" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">'.get_lang('Filiere').'</a></div>'); |
||||
$userForm->addHtml('<div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">'); |
||||
$userForm->addHtml('<div class="panel-body"><p class="text-info">'.get_lang('Filiere Explanation').'</p>'); |
||||
|
||||
$fieldsToShow = [ |
||||
'statusocial', |
||||
'filiere_user', |
||||
'filiereprecision', |
||||
'filiere_want_stage', |
||||
]; |
||||
|
||||
$extra = $extraField->addElements( |
||||
$userForm, |
||||
api_get_user_id(), |
||||
[], |
||||
$filter, |
||||
true, |
||||
$fieldsToShow, |
||||
$fieldsToShow, |
||||
[], |
||||
false, |
||||
$adminPermissions |
||||
); |
||||
|
||||
$jqueryExtra .= $extra['jquery_ready_content']; |
||||
|
||||
$fieldsToShow = [ |
||||
'filiere', |
||||
]; |
||||
|
||||
$extra = $extraFieldSession->addElements( |
||||
$userForm, |
||||
api_get_user_id(), |
||||
[], |
||||
$filter, |
||||
true, |
||||
$fieldsToShow, |
||||
$fieldsToShow, |
||||
[], |
||||
false, |
||||
$adminPermissions |
||||
); |
||||
|
||||
$jqueryExtra .= $extra['jquery_ready_content']; |
||||
|
||||
$userForm->addButtonSave(get_lang('Save'), 'submit_partial[collapseOne]'); |
||||
|
||||
$userForm->addHtml('</div></div></div>'); |
||||
|
||||
|
||||
$userForm->addHtml('<div class="panel panel-default">'); |
||||
$userForm->addHtml( |
||||
'<div class="panel-heading"><a role="button" data-toggle="collapse" data-parent="#search_extrafield" href="#collapseTwo" aria-expanded="true" aria-controls="collapseTwo">'. |
||||
get_lang('Disponibilite Avant').'</a></div>' |
||||
); |
||||
$userForm->addHtml('<div id="collapseTwo" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingTwo">'); |
||||
$userForm->addHtml('<div class="panel-body"><p class="text-info">'.get_lang('Disponibilite Avant Explanation').'</p>'); |
||||
|
||||
$extra = $extraFieldSession->addElements( |
||||
$userForm, |
||||
'', |
||||
[], |
||||
$filter, |
||||
true, |
||||
['access_start_date', 'access_end_date'], |
||||
[], |
||||
[], |
||||
false, |
||||
$adminPermissions |
||||
); |
||||
|
||||
$userForm->addRule( |
||||
['extra_access_start_date', 'extra_access_end_date'], |
||||
get_lang('StartDateMustBeBeforeTheEndDate'), |
||||
'compare_datetime_text', |
||||
'< allow_empty' |
||||
); |
||||
|
||||
$jqueryExtra .= $extra['jquery_ready_content']; |
||||
|
||||
$elements = $userForm->getElements(); |
||||
$variables = ['access_start_date', 'access_end_date']; |
||||
foreach ($elements as $element) { |
||||
$element->setAttribute('extra_label_class', 'red_underline'); |
||||
} |
||||
|
||||
$fieldsToShow = [ |
||||
'heures_disponibilite_par_semaine', |
||||
'moment_de_disponibilite', |
||||
]; |
||||
|
||||
$extra = $extraField->addElements( |
||||
$userForm, |
||||
api_get_user_id(), |
||||
[], |
||||
$filter, |
||||
true, |
||||
$fieldsToShow, |
||||
$fieldsToShow, |
||||
[], |
||||
false, |
||||
$adminPermissions |
||||
); |
||||
|
||||
$userForm->addButtonSave(get_lang('Save'), 'submit_partial[collapseTwo]'); |
||||
|
||||
$jqueryExtra .= $extra['jquery_ready_content']; |
||||
|
||||
$userForm->addHtml('</div></div></div>'); |
||||
|
||||
$userForm->addHtml('<div class="panel panel-default">'); |
||||
$userForm->addHtml('<div class="panel-heading"><a role="button" data-toggle="collapse" data-parent="#search_extrafield" href="#collapseThree" aria-expanded="true" aria-controls="collapseThree">'.get_lang('Disponibilite Pendant Mon Stage').'</a></div>'); |
||||
$userForm->addHtml('<div id="collapseThree" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingThree">'); |
||||
$userForm->addHtml('<div class="panel-body"><p class="text-info">'.get_lang('Disponibilite Pendant Mon Stage Explanation').'</p>'); |
||||
|
||||
$fieldsToShow = [ |
||||
'datedebutstage', |
||||
'datefinstage', |
||||
'je_ne_connais_pas_encore_mes_dates_de_stage', |
||||
'deja_sur_place', |
||||
'poursuiteapprentissagestage', |
||||
'heures_disponibilite_par_semaine_stage', |
||||
]; |
||||
|
||||
$extra = $extraField->addElements( |
||||
$userForm, |
||||
api_get_user_id(), |
||||
[], |
||||
$filter, |
||||
true, |
||||
$fieldsToShow, |
||||
$fieldsToShow, |
||||
[], |
||||
false, |
||||
$adminPermissions |
||||
); |
||||
|
||||
$userForm->addRule( |
||||
['extra_datedebutstage', 'extra_datefinstage'], |
||||
get_lang('StartDateMustBeBeforeTheEndDate'), |
||||
'compare_datetime_text', |
||||
'< allow_empty' |
||||
); |
||||
|
||||
$jqueryExtra .= $extra['jquery_ready_content']; |
||||
|
||||
$userForm->addButtonSave(get_lang('Save'), 'submit_partial[collapseThree]'); |
||||
$userForm->addHtml('</div></div></div>'); |
||||
|
||||
$userForm->addHtml('<div class="panel panel-default">'); |
||||
$userForm->addHtml('<div class="panel-heading"><a role="button" data-toggle="collapse" data-parent="#search_extrafield" href="#collapseFour" aria-expanded="true" aria-controls="collapseFour">'.get_lang('Themes Objectifs').'</a></div>'); |
||||
$userForm->addHtml('<div id="collapseFour" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingFour">'); |
||||
$userForm->addHtml('<div class="panel-body"><p class="text-info">'.get_lang('Themes Objectifs Explanation').'</p>'); |
||||
|
||||
$introductionTextList = [ |
||||
'domaine' => get_lang('Domaine Introduction'), |
||||
$theme => get_lang('Theme Field Introduction'), |
||||
]; |
||||
|
||||
$fieldsToShow = [ |
||||
'domaine', |
||||
$theme, |
||||
]; |
||||
|
||||
$extra = $extraFieldSession->addElements( |
||||
$userForm, |
||||
api_get_user_id(), |
||||
[], |
||||
$filter, |
||||
false, //tag as select |
||||
$fieldsToShow, |
||||
$fieldsToShow, |
||||
$defaults, |
||||
true, |
||||
$adminPermissions, |
||||
['domaine' => 3, $theme => 5], // $separateExtraMultipleSelect |
||||
[ |
||||
'domaine' => [ |
||||
get_lang('Domaine').' 1', |
||||
get_lang('Domaine').' 2', |
||||
get_lang('Domaine').' 3', |
||||
], |
||||
$theme => [ |
||||
get_lang('ThemeField').' 1', |
||||
get_lang('ThemeField').' 2', |
||||
get_lang('ThemeField').' 3', |
||||
get_lang('ThemeField').' 4', |
||||
get_lang('ThemeField').' 5', |
||||
], |
||||
], |
||||
true, //$addEmptyOptionSelects |
||||
$introductionTextList |
||||
); |
||||
|
||||
$jqueryExtra .= $extra['jquery_ready_content']; |
||||
|
||||
$userForm->addButtonSave(get_lang('Save'), 'submit_partial[collapseFour]'); |
||||
$userForm->addHtml('</div></div></div>'); |
||||
|
||||
$userForm->addHtml('<div class="panel panel-default">'); |
||||
$userForm->addHtml('<div class="panel-heading"><a role="button" data-toggle="collapse" data-parent="#search_extrafield" href="#collapseFive" aria-expanded="true" aria-controls="collapseFive">'.get_lang('Niveau Langue').'</a></div>'); |
||||
$userForm->addHtml('<div id="collapseFive" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingFive">'); |
||||
$userForm->addHtml('<div class="panel-body"><p class="text-info">'.get_lang('Niveau Langue Explanation').'</p>'); |
||||
|
||||
$fieldsToShow = [ |
||||
//'competenceniveau' |
||||
'ecouter', |
||||
'lire', |
||||
'participer_a_une_conversation', |
||||
's_exprimer_oralement_en_continu', |
||||
'ecrire', |
||||
]; |
||||
|
||||
$extra = $extraFieldSession->addElements( |
||||
$userForm, |
||||
api_get_user_id(), |
||||
[], |
||||
$filter, |
||||
true, |
||||
$fieldsToShow, |
||||
$fieldsToShow, |
||||
$defaults, |
||||
false, //$orderDependingDefaults = false, |
||||
$adminPermissions |
||||
); |
||||
|
||||
$jqueryExtra .= $extra['jquery_ready_content']; |
||||
|
||||
$userForm->addButtonSave(get_lang('Save'), 'submit_partial[collapseFive]'); |
||||
$userForm->addHtml('</div></div></div>'); |
||||
|
||||
$userForm->addHtml('<div class="panel panel-default">'); |
||||
$userForm->addHtml('<div class="panel-heading"><a role="button" data-toggle="collapse" data-parent="#search_extrafield" href="#collapseSix" aria-expanded="true" aria-controls="collapseSix">'.get_lang('Objectifs Apprentissage').'</a></div>'); |
||||
$userForm->addHtml('<div id="collapseSix" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingSix">'); |
||||
$userForm->addHtml('<div class="panel-body"><p class="text-info">'.get_lang('Objectifs Apprentissage Explanation').'</p>'); |
||||
|
||||
$fieldsToShow = [ |
||||
'objectif_apprentissage', |
||||
]; |
||||
|
||||
$extra = $extraField->addElements( |
||||
$userForm, |
||||
api_get_user_id(), |
||||
[], |
||||
$filter, |
||||
false, |
||||
$fieldsToShow, |
||||
$fieldsToShow, |
||||
[], |
||||
false, |
||||
$adminPermissions |
||||
); |
||||
|
||||
$jqueryExtra .= $extra['jquery_ready_content']; |
||||
|
||||
$userForm->addButtonSave(get_lang('Save'), 'submit_partial[collapseSix]'); |
||||
$userForm->addHtml('</div></div></div>'); |
||||
|
||||
$userForm->addHtml('<div class="panel panel-default">'); |
||||
$userForm->addHtml('<div class="panel-heading"><a role="button" data-toggle="collapse" data-parent="#search_extrafield" href="#collapseSeven" aria-expanded="true" aria-controls="collapseSeven">'.get_lang('Methode Travail').'</a></div>'); |
||||
$userForm->addHtml('<div id="collapseSeven" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingSeven">'); |
||||
$userForm->addHtml('<div class="panel-body"><p class="text-info">'.get_lang('Methode Travail Explanation').'</p>'); |
||||
|
||||
$fieldsToShow = [ |
||||
'methode_de_travaille', |
||||
'accompagnement', |
||||
]; |
||||
|
||||
$extra = $extraField->addElements( |
||||
$userForm, |
||||
api_get_user_id(), |
||||
[], |
||||
$filter, |
||||
true, |
||||
$fieldsToShow, |
||||
$fieldsToShow, |
||||
[], |
||||
false, |
||||
$adminPermissions |
||||
); |
||||
|
||||
$jqueryExtra .= $extra['jquery_ready_content']; |
||||
|
||||
$userForm->addButtonSave(get_lang('Save'), 'submit_partial[collapseSeven]'); |
||||
$userForm->addHtml('</div></div></div>'); |
||||
|
||||
// Enviroment |
||||
$userForm->addHtml('<div class="panel panel-default">'); |
||||
$userForm->addHtml( |
||||
'<div class="panel-heading"> |
||||
<a role="button" data-toggle="collapse" data-parent="#search_extrafield" href="#collapseEight" aria-expanded="true" aria-controls="collapseEight">'. |
||||
get_lang('Mon Environnement De Travail').'</a></div>'); |
||||
$userForm->addHtml('<div id="collapseEight" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingEight">'); |
||||
$userForm->addHtml('<div class="panel-body"><p class="text-info">'.get_lang('Mon Environnement De Travail').'</p>'); |
||||
|
||||
$fieldsToShow = [ |
||||
'outil_de_travail_ordinateur', |
||||
'outil_de_travail_ordinateur_so', |
||||
'outil_de_travail_tablette', |
||||
'outil_de_travail_tablette_so', |
||||
'outil_de_travail_smartphone', |
||||
'outil_de_travail_smartphone_so', |
||||
]; |
||||
|
||||
$userForm->addLabel(null, get_lang('Mon Environnement De Travail Explanation Intro1')); |
||||
|
||||
$extra = $extraField->addElements( |
||||
$userForm, |
||||
api_get_user_id(), |
||||
[], |
||||
$filter, |
||||
true, |
||||
$fieldsToShow, |
||||
$fieldsToShow, |
||||
[], |
||||
false, |
||||
$adminPermissions |
||||
); |
||||
|
||||
$userForm->addLabel(null, get_lang('Mon Environnement De Travail Explanation Intro2')); |
||||
|
||||
$jqueryExtra .= $extra['jquery_ready_content']; |
||||
|
||||
$fieldsToShow = [ |
||||
'browser_platforme', |
||||
'browser_platforme_autre', |
||||
'browser_platforme_version', |
||||
]; |
||||
|
||||
$extra = $extraField->addElements( |
||||
$userForm, |
||||
api_get_user_id(), |
||||
[], |
||||
$filter, |
||||
true, |
||||
$fieldsToShow, |
||||
$fieldsToShow, |
||||
[], |
||||
false, |
||||
$adminPermissions |
||||
); |
||||
|
||||
$jqueryExtra .= $extra['jquery_ready_content']; |
||||
|
||||
$userForm->addHtml('<p class="text-info">'.get_lang('Mon Environnement De Travail Renvoi FAQ').'</p>'); |
||||
|
||||
$userForm->addButtonSave(get_lang('Save'), 'submit_partial[collapseEight]'); |
||||
$userForm->addHtml('</div></div></div>'); |
||||
$userForm->addHtml('</div>'); |
||||
|
||||
//$userForm->addHtml('</div>'); |
||||
|
||||
|
||||
$htmlHeadXtra[] = '<script> |
||||
$(function () { |
||||
'.$jqueryExtra.' |
||||
}); |
||||
</script>'; |
||||
|
||||
$userForm->addButtonSave(get_lang('Send')); |
||||
|
||||
|
||||
$userForm->setDefaults($defaults); |
||||
|
||||
$domaine1 = $userForm->getElementByName('extra_domaine[0]'); |
||||
$domaine2 = $userForm->getElementByName('extra_domaine[1]'); |
||||
$domaine3 = $userForm->getElementByName('extra_domaine[2]'); |
||||
|
||||
$domainList = array_merge( |
||||
is_object($domaine1) ? $domaine1->getValue() : [], |
||||
is_object($domaine3) ? $domaine3->getValue() : [], |
||||
is_object($domaine2) ? $domaine2->getValue() : [] |
||||
); |
||||
|
||||
$themeList = []; |
||||
|
||||
$resultOptions = $extraFieldSession->searchOptionsFromTags( |
||||
'extra_domaine', |
||||
'extra_'.$theme, |
||||
$domainList |
||||
); |
||||
|
||||
if ($resultOptions) { |
||||
$resultOptions = array_column($resultOptions, 'tag', 'id'); |
||||
$resultOptions = array_filter($resultOptions); |
||||
|
||||
for ($i = 0; $i < 5; $i++) { |
||||
$themeElement = $userForm->getElementByName('extra_'.$theme.'['.$i.']'); |
||||
foreach ($resultOptions as $key => $value) { |
||||
$themeElement->addOption($value, $value); |
||||
} |
||||
} |
||||
} |
||||
|
||||
if ($userForm->validate()) { |
||||
// Saving to user extra fields |
||||
$extraFieldValue = new ExtraFieldValue('user'); |
||||
$userData = $userForm->getSubmitValues(); |
||||
|
||||
$isPartial = false; |
||||
$block = ''; |
||||
if (isset($userData['submit_partial'])) { |
||||
$block = key($userData['submit_partial']); |
||||
$isPartial = true; |
||||
} |
||||
|
||||
if ($isPartial === false) { |
||||
$userData['extra_diagnosis_completed'] = 1; |
||||
} |
||||
|
||||
$extraFieldValue->saveFieldValues( |
||||
$userData, |
||||
true, |
||||
false, |
||||
[], |
||||
['legal_accept'], |
||||
true |
||||
); |
||||
|
||||
// Saving to extra_field_saved_search |
||||
|
||||
$user = $em->getRepository(User::class)->find($userId); |
||||
|
||||
$sessionFields = [ |
||||
'extra_access_start_date', |
||||
'extra_access_end_date', |
||||
'extra_filiere', |
||||
'extra_domaine', |
||||
'extra_domaine[0]', |
||||
'extra_domaine[1]', |
||||
'extra_domaine[3]', |
||||
'extra_temps_de_travail', |
||||
//'extra_competenceniveau', |
||||
'extra_'.$theme, |
||||
'extra_'.$theme.'[0]', |
||||
'extra_'.$theme.'[1]', |
||||
'extra_'.$theme.'[2]', |
||||
'extra_'.$theme.'[3]', |
||||
'extra_'.$theme.'[4]', |
||||
'extra_ecouter', |
||||
'extra_lire', |
||||
'extra_participer_a_une_conversation', |
||||
'extra_s_exprimer_oralement_en_continu', |
||||
'extra_ecrire', |
||||
]; |
||||
|
||||
foreach ($userData as $key => $value) { |
||||
$found = strpos($key, '__persist__'); |
||||
if ($found === false) { |
||||
continue; |
||||
} |
||||
} |
||||
|
||||
if (isset($userData['extra_filiere_want_stage']) && |
||||
isset($userData['extra_filiere_want_stage']['extra_filiere_want_stage']) |
||||
) { |
||||
$wantStage = $userData['extra_filiere_want_stage']['extra_filiere_want_stage']; |
||||
|
||||
if ($wantStage === 'yes') { |
||||
if (isset($userData['extra_filiere_user'])) { |
||||
$userData['extra_filiere'] = []; |
||||
$userData['extra_filiere']['extra_filiere'] = $userData['extra_filiere_user']['extra_filiere_user']; |
||||
} |
||||
} |
||||
} |
||||
|
||||
// save in ExtraFieldSavedSearch. |
||||
$extraFieldRepo = $em->getRepository(\Chamilo\CoreBundle\Entity\ExtraField::class); |
||||
|
||||
foreach ($userData as $key => $value) { |
||||
if (substr($key, 0, 6) != 'extra_' && substr($key, 0, 7) != '_extra_') { |
||||
continue; |
||||
} |
||||
|
||||
if (!in_array($key, $sessionFields)) { |
||||
continue; |
||||
} |
||||
|
||||
$field_variable = substr($key, 6); |
||||
$extraFieldInfo = $extraFieldValueSession |
||||
->getExtraField() |
||||
->get_handler_field_info_by_field_variable($field_variable) |
||||
; |
||||
|
||||
if (!$extraFieldInfo) { |
||||
continue; |
||||
} |
||||
|
||||
$extraFieldObj = $extraFieldRepo->find($extraFieldInfo['id']); |
||||
$search = [ |
||||
'field' => $extraFieldObj, |
||||
'user' => $user, |
||||
]; |
||||
|
||||
/** @var ExtraFieldSavedSearch $saved */ |
||||
$saved = $extraFieldSavedSearchRepo->findOneBy($search); |
||||
if ($saved) { |
||||
$saved |
||||
->setField($extraFieldObj) |
||||
->setUser($user) |
||||
->setValue($value) |
||||
; |
||||
$em->merge($saved); |
||||
} else { |
||||
$saved = new ExtraFieldSavedSearch(); |
||||
$saved |
||||
->setField($extraFieldObj) |
||||
->setUser($user) |
||||
->setValue($value); |
||||
$em->persist($saved); |
||||
} |
||||
$em->flush(); |
||||
} |
||||
|
||||
$superiorUserList = UserManager::getStudentBossList($userInfo['user_id']); |
||||
|
||||
if ($superiorUserList && $isPartial == false) { |
||||
$url = api_get_path(WEB_PATH).'load_search.php?user_id='.$userInfo['user_id']; |
||||
$urlContact = api_get_path(WEB_CODE_PATH).'messages/inbox.php?f=social'; |
||||
$subject = sprintf(get_lang('Diagnosis From User %s'), $userInfo['complete_name']); |
||||
$message = sprintf(get_lang('Diagnosis From User %s lang %s with link %s Contact at %s'), $userInfo['complete_name'], $userInfo['language'], $url, $urlContact); |
||||
foreach ($superiorUserList as $bossData) { |
||||
$bossId = $bossData['boss_id']; |
||||
MessageManager::send_message_simple( |
||||
$bossId, |
||||
$subject, |
||||
$message |
||||
); |
||||
} |
||||
} |
||||
|
||||
if ($isPartial) { |
||||
header('Location:'.api_get_self().'#'.$block); |
||||
} else { |
||||
header('Location:'.api_get_self().'?result=1'); |
||||
} |
||||
exit; |
||||
} |
||||
|
||||
$userFormToString = $userForm->returnForm(); |
||||
|
||||
$result = isset($_GET['result']) ? true : false; |
||||
$tpl = new Template(get_lang('Diagnosis')); |
||||
$tpl->assign('grid', ''); |
||||
$tpl->assign('grid_js', ''); |
||||
$tpl->assign('form_search', ''); |
||||
$tpl->assign('form', ''); |
||||
if ($result === false) { |
||||
$tpl->assign('form', $userFormToString); |
||||
} else { |
||||
Display::addFlash(Display::return_message(get_lang('Your session search diagnosis is saved'))); |
||||
} |
||||
|
||||
$content = $tpl->fetch($tpl->get_template('search/search_extra_field.tpl')); |
||||
$tpl->assign('content', $content); |
||||
$tpl->display_one_col_template(); |
||||
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,14 @@ |
||||
{% autoescape false %} |
||||
{{ form_search }} |
||||
|
||||
{{ form }} |
||||
|
||||
<script> |
||||
$(function() { |
||||
{{ grid_js }} |
||||
}); |
||||
</script> |
||||
|
||||
{{ grid }} |
||||
|
||||
{% endautoescape %} |
Loading…
Reference in new issue