/home/edulekha/crm.edulekha.com/application/views/admin/staff/profile.php
<?php defined('BASEPATH') or exit('No direct script access allowed'); ?>
<?php init_head(); ?>
<div id="wrapper">
<div class="content">
<div class="tw-max-w-4xl tw-mx-auto">
<h4 class="tw-mt-0 tw-font-bold tw-text-lg tw-text-neutral-700">
<?= e($title); ?>
</h4>
<?= form_open_multipart($this->uri->uri_string(), ['id' => 'staff_profile_table', 'autocomplete' => 'off']); ?>
<div class="panel_s">
<div class="panel-body">
<?php if ($current_user->profile_image == null) { ?>
<div class="form-group">
<label for="profile_image"
class="profile-image"><?= _l('staff_edit_profile_image'); ?></label>
<input type="file" name="profile_image" class="form-control" id="profile_image">
</div>
<?php } ?>
<?php if ($current_user->profile_image != null) { ?>
<div class="form-group">
<div class="row">
<div class="col-md-9">
<?= staff_profile_image($current_user->staffid, ['img', 'img-responsive', 'staff-profile-image-thumb'], 'thumb'); ?>
</div>
<div class="col-md-3 text-right">
<a
href="<?= admin_url('staff/remove_staff_profile_image'); ?>"><i
class="fa fa-remove"></i></a>
</div>
</div>
</div>
<?php } ?>
<div class="form-group">
<label for="firstname"
class="control-label"><?= _l('staff_add_edit_firstname'); ?></label>
<input type="text" class="form-control" name="firstname"
value="<?= isset($member) ? e($member->firstname) : ''; ?>">
</div>
<div class="form-group">
<label for="lastname"
class="control-label"><?= _l('staff_add_edit_lastname'); ?></label>
<input type="text" class="form-control" name="lastname"
value="<?= isset($member) ? e($member->lastname) : ''; ?>">
</div>
<div class="form-group">
<label for="email"
class="control-label"><?= _l('staff_add_edit_email'); ?></label>
<input type="email"
<?php if (staff_can('edit', 'staff')) { ?>
name="email"
<?php } else { ?> disabled="true"
<?php } ?> class="form-control"
value="<?= e($member->email); ?>"
id="email">
</div>
<?php $value = (isset($member) ? $member->phonenumber : ''); ?>
<?= render_input('phonenumber', 'staff_add_edit_phonenumber', $value); ?>
<?php if (! is_language_disabled()) { ?>
<div class="form-group select-placeholder">
<label for="default_language"
class="control-label"><?= _l('localization_default_language'); ?></label>
<select name="default_language" data-live-search="true" id="default_language"
class="form-control selectpicker"
data-none-selected-text="<?= _l('dropdown_non_selected_tex'); ?>">
<option value="">
<?= _l('system_default_string'); ?>
</option>
<?php foreach ($this->app->get_available_languages() as $availableLanguage) {
$selected = '';
if (isset($member)) {
if ($member->default_language == $availableLanguage) {
$selected = 'selected';
}
} ?>
<option
value="<?= e($availableLanguage); ?>"
<?= e($selected); ?>>
<?= e(ucfirst($availableLanguage)); ?>
</option>
<?php
} ?>
</select>
</div>
<?php } ?>
<div class="form-group select-placeholder">
<label
for="direction"><?= _l('document_direction'); ?></label>
<select class="selectpicker"
data-none-selected-text="<?= _l('system_default_string'); ?>"
data-width="100%" name="direction" id="direction">
<option value="" <?= isset($member) && empty($member->direction) ? ' selected' : '' ?>>
</option>
<option value="ltr" <?= isset($member) && $member->direction == 'ltr' ? ' selected' : '' ?>>
LTR
</option>
<option value="rtl" <?= isset($member) && $member->direction == 'rtl' ? ' selected' : '' ?>>
RTL
</option>
</select>
</div>
<div class="form-group">
<label for="facebook" class="control-label"><i class="fa-brands fa-facebook-f"></i>
<?= _l('staff_add_edit_facebook'); ?></label>
<input type="text" class="form-control" name="facebook"
value="<?= isset($member) ? e($member->facebook) : ''; ?>">
</div>
<div class="form-group">
<label for="linkedin" class="control-label"><i class="fa-brands fa-linkedin-in"></i>
<?= _l('staff_add_edit_linkedin'); ?></label>
<input type="text" class="form-control" name="linkedin"
value="<?= isset($member) ? e($member->linkedin) : ''; ?>">
</div>
<div class="form-group">
<label for="skype" class="control-label"><i class="fa-brands fa-skype"></i>
<?= _l('staff_add_edit_skype'); ?></label>
<input type="text" class="form-control" name="skype"
value="<?= isset($member) ? e($member->skype) : ''; ?>">
</div>
<i class="fa-regular fa-circle-question" data-toggle="tooltip"
data-title="<?= _l('staff_email_signature_help'); ?>"></i>
<?php $value = (isset($member) ? $member->email_signature : ''); ?>
<?= render_textarea('email_signature', 'settings_email_signature', $value, ['data-entities-encode' => 'true']); ?>
<?php if (count($staff_departments) > 0) { ?>
<div class="form-group">
<label
for="departments"><?= _l('staff_edit_profile_your_departments'); ?></label>
<div class="clearfix"></div>
<?php foreach ($departments as $department) { ?>
<?php foreach ($staff_departments as $staff_department) { ?>
<?php if ($staff_department['departmentid'] == $department['departmentid']) { ?>
<div class="label label-primary">
<?= e($staff_department['name']); ?>
</div>
<?php } ?>
<?php } ?>
<?php } ?>
</div>
<?php } ?>
</div>
<div class="panel-footer text-right">
<button type="submit" class="btn btn-primary">
<?= _l('submit'); ?>
</button>
</div>
</div>
<?= form_close(); ?>
<h4 class="tw-mt-0 tw-font-bold tw-text-lg tw-text-neutral-700">
<?= _l('staff_edit_profile_change_your_password'); ?>
</h4>
<?= form_open('admin/staff/change_password_profile', ['id' => 'staff_password_change_form']); ?>
<div class="panel_s">
<div class="panel-body">
<div class="form-group">
<label for="oldpassword"
class="control-label"><?= _l('staff_edit_profile_change_old_password'); ?></label>
<input type="password" class="form-control" name="oldpassword" id="oldpassword">
</div>
<div class="form-group">
<label for="newpassword"
class="control-label"><?= _l('staff_edit_profile_change_new_password'); ?></label>
<input type="password" class="form-control" id="newpassword" name="newpassword">
</div>
<div class="form-group">
<label for="newpasswordr"
class="control-label"><?= _l('staff_edit_profile_change_repeat_new_password'); ?></label>
<input type="password" class="form-control" id="newpasswordr" name="newpasswordr">
</div>
</div>
<div class="panel-footer">
<div class="tw-flex tw-justify-between">
<span>
<?php if ($member->last_password_change != null) { ?>
<?= _l('staff_add_edit_password_last_changed'); ?>:
<span class="text-has-action" data-toggle="tooltip"
data-title="<?= e(_dt($member->last_password_change)); ?>">
<?= e(time_ago($member->last_password_change)); ?>
</span>
<?php } ?>
</span>
<button type="submit"
class="btn btn-primary"><?= _l('submit'); ?></button>
</div>
</div>
</div>
<?= form_close(); ?>
<h4 class="tw-font-semibold tw-text-lg tw-text-neutral-700 mtop30">
<?= _l('staff_two_factor_authentication'); ?>
</h4>
<?= form_open('admin/staff/update_two_factor', ['id' => 'two_factor_auth_form']); ?>
<div class="panel_s">
<div class="panel-body">
<div class="radio radio-primary">
<input type="radio" id="two_factor_auth_disabled" name="two_factor_auth" value="off"
class="custom-control-input"
<?= ($current_user->two_factor_auth_enabled == 0) ? 'checked' : '' ?>>
<label class="custom-control-label"
for="two_factor_auth_disabled"><?= _l('two_factor_authentication_disabed'); ?></label>
</div>
<?php if (is_email_template_active('two-factor-authentication')) { ?>
<div class="radio radio-primary">
<input type="radio" id="two_factor_auth_enabled" name="two_factor_auth" value="email"
class="custom-control-input"
<?= ($current_user->two_factor_auth_enabled == 1) ? 'checked' : '' ?>>
<label for="two_factor_auth_enabled">
<i class="fa-regular fa-circle-question" data-placement="right" data-toggle="tooltip"
data-title="<?= _l('two_factor_authentication_info'); ?>"></i>
<?= _l('enable_two_factor_authentication'); ?>
</label>
</div>
<?php } ?>
<div class="radio radio-primary">
<input type="radio" id="google_two_factor_auth_enabled" name="two_factor_auth" value="google"
class="custom-control-input"
<?= ($current_user->two_factor_auth_enabled == 2) ? 'checked' : '' ?>>
<label class="custom-control-label"
for="google_two_factor_auth_enabled"><?= _l('enable_google_two_factor_authentication'); ?></label>
</div>
<?php if (! extension_loaded('imagick')) { ?>
<div id="imagick_error" class="alert alert-danger mtop15" style="display: none;">
<i class="fa fa-exclamation-triangle"></i>
<strong>Error:</strong> The PHP imagick extension is required for Google Two-Factor
Authentication but is not installed on this server. Please contact your system administrator to
install the imagick extension.
</div>
<?php } ?>
<div id="qr_image" class="mtop30 card">
</div>
</div>
<div class="panel-footer text-right">
<button id="submit_2fa" type="submit" class="btn btn-primary">
<?= _l('submit'); ?>
</button>
</div>
</div>
<?= form_close(); ?>
</div>
</div>
<?php init_tail(); ?>
<script>
$(function() {
var qr_loaded = 0;
var is_g2fa_enabled =
"<?= $current_user->two_factor_auth_enabled ?>";
var
imagick_available = <?= extension_loaded('imagick') ? 'true' : 'false' ?> ;
$('input[type=radio][name="two_factor_auth"]').change(function() {
if (this.value == 'google') {
if (!imagick_available) {
$('#imagick_error').show();
$('#submit_2fa').prop("disabled", true);
$('#qr_image').hide();
return;
}
$('#imagick_error').hide();
if (is_g2fa_enabled == 2) {
$('#submit_2fa').prop("disabled", false);
return;
}
if (qr_loaded == 0) {
$('#qr_image').load(admin_url + 'authentication/get_qr', {}, function(response,
status) {
qr_loaded = 1;
$('#qr_image').show();
});
} else {
$('#qr_image').show();
}
$('#submit_2fa').prop("disabled", true);
} else {
$('#imagick_error').hide();
$('#qr_image').hide();
$('#submit_2fa').prop("disabled", false);
}
});
// Check initial state
var selectedValue = $('input[name="two_factor_auth"]:checked').val();
if (selectedValue === 'google' && !imagick_available) {
$('#imagick_error').show();
}
// Prevent form submission if Google 2FA is selected but imagick is not available
$('#two_factor_auth_form').on('submit', function(e) {
var selectedValue = $('input[name="two_factor_auth"]:checked').val();
if (selectedValue === 'google' && !imagick_available) {
e.preventDefault();
$('#imagick_error').show();
return false;
}
});
appValidateForm($('#staff_profile_table'), {
firstname: 'required',
lastname: 'required',
email: 'required'
});
appValidateForm($('#staff_password_change_form'), {
oldpassword: 'required',
newpassword: 'required',
newpasswordr: {
equalTo: "#newpassword"
}
});
appValidateForm($('#two_factor_auth_form'), {
two_factor_auth: 'required'
});
});
</script>
</body>
</html>