File: /home/artinside/www/lhh/themes/admin/widgets/users/user.php
<?php $v->layout("_admin"); ?>
<section class="wrapper">
<!-- page start-->
<?php if (!$user): ?>
<div class="row">
<div class="col-12 text-center my-4 text-sm-center">
<h3> Cadastro de Usuário</h3>
<p>Cadastro de Usuários e Admins</p>
</div>
<div class="col-lg-2">
<section class="card">
<header class="card-header infinity-bg white-text text-center">
Avatar
</header>
<img class="radius img-open" style="width: 100%;" src="<?= image($user->photo, 400); ?>" id="image-preview"/>
</section>
</div>
<div class="col-lg-10">
<section class="card">
<header class="card-header infinity-bg white-text">
Cadastrar Clientes/Usuários
</header>
<div class="card-body">
<form class="form-horizontal tasi-form" method="post" action="<?= url("/admin/users/user"); ?>">
<input type="hidden" name="action" value="create"/>
<div class="form-group row" hidden>
<label class="col-sm-2 col-sm-2 control-label">Avatar</label>
<div class="col-sm-10">
<input type="file" name="photo" placeholder="Uma imagem de capa" class="form-control" id="j_img_preview"/>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-sm-2 control-label">Documento*</label>
<div class="col-sm-4 input-group">
<input type="text" name="document" placeholder="CPF ou CNPJ" class="form-control mask-document" data-url="<?= url("/admin/users/type"); ?>" required/>
<div class="input-group-append">
<span class="input-group-text" id="basic-addon2"><i class="fal fa-check"></i> </span>
</div>
</div>
<label class="col-sm-2 col-sm-2 control-label">Tipo*</label>
<div class="col-sm-4">
<input type="text" name="type" placeholder="individual / corporation" class="form-control user_type" value="" readonly/>
</div>
</div>
<div class="j_type">
</div>
</form>
</div>
</section>
</div>
</div>
<?php elseif($user->type == "individual") : ?>
<div class="row">
<div class="col-12 text-center my-4 text-sm-center">
<h3> <?= $user->fullName(); ?></h3>
<p>Cadastro de Clientes e Admins</p>
</div>
<div class="col-lg-2">
<section class="card">
<header class="card-header infinity-bg white-text">
Avatar
</header>
<img class="img-open" style="width: 100%; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px " src="<?= image($user->photo, 400); ?>" id="image-preview"/>
</section>
</div>
<div class="col-lg-10">
<section class="card">
<header class="card-header infinity-bg white-text">
Editar Usuário
</header>
<div class="card-body">
<form class="form-horizontal tasi-form" method="post" action="<?= url("/admin/users/user/{$user->id}"); ?>">
<input type="hidden" name="action" value="update"/>
<div class="form-group row" hidden>
<label class="col-sm-2 col-sm-2 control-label">Avatar</label>
<div class="col-sm-10">
<input type="file" name="photo" placeholder="Uma imagem de capa" class="form-control" id="j_img_preview"/>
</div>
</div>
<div class="form-group row">
<input type="hidden" name="datebirth" value="<?= $user->datebirth ?>" />
<label class="col-sm-2 col-sm-2 control-label">Documento*</label>
<div class="col-sm-4">
<input type="text" name="document" placeholder="CPF do usuário" class="form-control mask-cnpj" value="<?= $user->document; ?>" readonly/>
</div>
<label class="col-sm-2 col-sm-2 control-label">Tipo*</label>
<div class="col-sm-4">
<input type="text" name="type" placeholder="Tipo de usuário" class="form-control" value="<?= $user->type ?>" readonly/>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-sm-2 control-label">Nome*</label>
<div class="col-sm-4">
<input type="text" name="first_name" placeholder="Primeiro nome" class="form-control" value="<?= $user->first_name; ?>" required/>
</div>
<label class="col-sm-2 col-sm-2 control-label">Sobrenome*</label>
<div class="col-sm-4">
<input type="text" name="last_name" placeholder="Sobrenome" class="form-control" value="<?= $user->last_name; ?>" required/>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-sm-2 control-label">Nascimento*</label>
<div class="col-sm-4">
<input type="text" name="datebirth" placeholder="dd/mm/yyyy" class="form-control mask-date" value="<?= date_fmt($user->datebirth, "d/m/Y"); ?>" required/>
</div>
<label class="col-sm-2 col-sm-2 control-label">RG</label>
<div class="col-sm-4">
<input type="text" name="document2" placeholder="RG do usuário" class="form-control" value="<?= $user->document2; ?>" />
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-sm-2 control-label">Telefone*</label>
<div class="col-sm-4">
<input type="text" name="phone" placeholder="Telefone" class="form-control mask-phone" value="<?= $user->phone; ?>" required/>
</div>
<label class="col-sm-2 col-sm-2 control-label">Celular</label>
<div class="col-sm-4">
<input type="text" name="celular" placeholder="Celular" class="form-control mask-celular" value="<?= $user->celular; ?>"/>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-sm-2 control-label">Email*</label>
<div class="col-sm-4">
<input type="text" name="email" placeholder="seu melhor email" class="form-control" value="<?= $user->email; ?>" required/>
</div>
<label class="col-sm-2 col-sm-2 control-label">Senha*</label>
<div class="col-sm-4">
<input type="password" name="password" placeholder="Senha" class="form-control"/>
<span class="help-block">Senha mínima de 8 caracteres.</span>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-sm-2 control-label">Genêro</label>
<div class="col-sm-2">
<select name="genre" class="form-control">
<?php
$genre = $user->genre;
$select = function ($value) use ($genre) {
return ($genre == $value ? "selected" : "");
};
?>
<option <?= $select("male"); ?> value="male">Masculino</option>
<option <?= $select("female"); ?> value="female">Feminino</option>
<option <?= $select("other"); ?> value="other">Outros</option>
</select>
</div>
<label class="col-sm-2 col-sm-2 control-label">Level*</label>
<div class="col-sm-2">
<select name="level" class="form-control" required>
<?php
$level = $user->level;
$select = function ($value) use ($level) {
return ($level == $value ? "selected" : "");
};
?>
<option <?= $select(1); ?> value="1">Usuário</option>
<option <?= $select(2); ?> value="2">Parceiro</option>
<option <?= $select(5); ?> value="5">Admin</option>
</select>
</div>
<label class="col-sm-2 col-sm-2 control-label">Status*</label>
<div class="col-sm-2">
<select name="status" class="form-control" required>
<?php
$status = $user->status;
$select = function ($value) use ($status) {
return ($status == $value ? "selected" : "");
};
?>
<option <?= $select("registered"); ?> value="registered">Registrado</option>
<option <?= $select("confirmed"); ?> value="confirmed">Confirmado</option>
</select>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-sm-2 control-label">Sobre*</label>
<div class="col-sm-10">
<textarea class="form-control" name="about"><?= $user->about; ?></textarea>
</div>
</div>
<button class="btn btn-primary" type="submit">Enviar</button>
<a class="btn btn-danger" href="<?= url("/admin/users/home"); ?>">Cancelar</a>
</form>
</div>
</section>
</div>
</div>
<?php else : ?>
<div class="row">
<div class="col-12 text-center my-4 text-sm-center">
<h3> <?= $user->first_name; ?></h3>
<p>Cadastro de Clientes e Admins</p>
</div>
<div class="col-lg-2">
<section class="card">
<header class="card-header infinity-bg white-text">
Avatar
</header>
<img class="img-open" style="width: 100%; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px " src="<?= image($user->photo, 400); ?>" id="image-preview"/>
</section>
</div>
<div class="col-lg-10">
<section class="card">
<header class="card-header infinity-bg white-text">
Editar Usuário
</header>
<div class="card-body">
<form class="form-horizontal tasi-form" method="post" action="<?= url("/admin/users/user/{$user->id}"); ?>">
<input type="hidden" name="action" value="update"/>
<div class="form-group row" hidden>
<label class="col-sm-2 col-sm-2 control-label">Avatar</label>
<div class="col-sm-10">
<input type="file" name="photo" placeholder="Uma imagem de capa" class="form-control" id="j_img_preview"/>
</div>
</div>
<div class="form-group row">
<input type="hidden" name="datebirth" value="<?= $user->datebirth ?>" />
<label class="col-sm-2 col-sm-2 control-label">Documento*</label>
<div class="col-sm-4">
<input type="text" name="document" placeholder="CPF do usuário" class="form-control mask-cnpj" value="<?= $user->document; ?>" readonly/>
</div>
<label class="col-sm-2 col-sm-2 control-label">Tipo*</label>
<div class="col-sm-4">
<input type="text" name="type" placeholder="Tipo de usuário" class="form-control" value="<?= $user->type ?>" readonly/>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-sm-2 control-label">Razão Social*</label>
<div class="col-sm-4">
<input type="text" name="first_name" placeholder="Razão Social" class="form-control" value="<?= $user->first_name; ?>" required/>
</div>
<label class="col-sm-2 col-sm-2 control-label">Contato*</label>
<div class="col-sm-4">
<input type="text" name="last_name" placeholder="Contato" class="form-control" value="<?= $user->last_name; ?>" required/>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-sm-2 control-label">Telefone*</label>
<div class="col-sm-4">
<input type="text" name="phone" placeholder="Telefone" class="form-control mask-phone" value="<?= $user->phone; ?>" required/>
</div>
<label class="col-sm-2 col-sm-2 control-label">Celular</label>
<div class="col-sm-4">
<input type="text" name="celular" placeholder="Celular" class="form-control mask-celular" value="<?= $user->celular; ?>"/>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-sm-2 control-label">Email*</label>
<div class="col-sm-4">
<input type="text" name="email" placeholder="seu melhor email" class="form-control" value="<?= $user->email; ?>" required/>
</div>
<label class="col-sm-2 col-sm-2 control-label">Senha*</label>
<div class="col-sm-4">
<input type="password" name="password" placeholder="Senha" class="form-control"/>
<span class="help-block">Senha mínima de 8 caracteres.</span>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-sm-2 control-label">Level*</label>
<div class="col-sm-4">
<select name="level" class="form-control" required>
<?php
$level = $user->level;
$select = function ($value) use ($level) {
return ($level == $value ? "selected" : "");
};
?>
<option <?= $select(1); ?> value="1">Usuário</option>
<option <?= $select(2); ?> value="2">Parceiro</option>
<option <?= $select(5); ?> value="5">Admin</option>
</select>
</div>
<label class="col-sm-2 col-sm-2 control-label">Status*</label>
<div class="col-sm-4">
<select name="status" class="form-control" required>
<?php
$status = $user->status;
$select = function ($value) use ($status) {
return ($status == $value ? "selected" : "");
};
?>
<option <?= $select("registered"); ?> value="registered">Registrado</option>
<option <?= $select("confirmed"); ?> value="confirmed">Confirmado</option>
</select>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-sm-2 control-label">Sobre*</label>
<div class="col-sm-10">
<textarea class="form-control" name="about"><?= $user->about; ?></textarea>
</div>
</div>
<button class="btn btn-primary" type="submit">Enviar</button>
<a class="btn btn-danger" href="<?= url("/admin/users/home"); ?>">Cancelar</a>
</form>
</div>
</section>
</div>
</div>
<?php endif; ?>
<!-- page end-->
</section>
<?php $v->start("scripts")?>
<script src="<?= url("admin-assets/js/toucheffects.js")?>"></script>
<script src="<?= url("admin-assets/js/modernizr.custom.js")?>"></script>
<script src="<?= url("admin-assets/js/form-component.js")?>"></script>
<script>
// AJAX RESPONSE
var ajaxResponseBaseTime = 3;
var ajaxResponseRequestError = "<div class='message error icon-warning'>Desculpe mas não foi possível processar sua requisição...</div>";
function ajaxMessage(message, time) {
var ajaxMessage = $(message);
ajaxMessage.append("<div class='message_time'></div>");
ajaxMessage.find(".message_time").animate({"width": "100%"}, time * 1000, function () {
$(this).parents(".message").fadeOut(200);
});
$(".ajax_response").append(ajaxMessage);
ajaxMessage.effect("bounce");
}
// AJAX RESPONSE MONITOR
$(".ajax_response .message").each(function (e, m) {
ajaxMessage(m, ajaxResponseBaseTime += 1);
});
// AJAX MESSAGE CLOSE ON CLICK
$(".ajax_response").on("click", ".message", function (e) {
e.preventDefault();
$(this).effect("bounce").fadeOut(1);
});
var options = {
onKeyPress: function (cpf, ev, el, op) {
var masks = ['000.000.000-000', '00.000.000/0000-00'];
$('.mask-document').mask((cpf.length > 14) ? masks[1] : masks[0], op);
}
}
$('.mask-document').length > 11 ? $('.mask-document').mask('00.000.000/0000-00', options) : $('.mask-document').mask('000.000.000-00#', options);
$('.mask-cnpj').mask('00.000.000/0000-00');
$(".mask-document").blur(function(e){
e.preventDefault();
var urlData = $(this).data("url");
var document = $(this).val();
$.ajax({
url: urlData,
type: "POST",
data: {document: document},
dataType: "json",
success: function (response) {
if(response.result == 1){
$(".user_type").val("individual");
$(".j_type").html("");
$(".j_type").html(response.html);
}
if(response.result == 2){
$(".user_type").val("corporation");
$(".j_type").html("");
$(".j_type").html(response.html);
}
if(response.result == 3){
$(".user_type").val("");
$(".j_type").html("");
ajaxMessage(response.message, 5);
}
}
});
});
$('body').on('focus', 'input[data-mask="date"]', function(){
$(this).mask("00/00/0000");
});
$('body').on('focus', 'input[data-mask="phone"]', function(){
$(this).mask('(00) 0000-00009');
$(this).blur(function (event) {
if ($(this).val().length == 15) { // Celular com 9 dígitos + 2 dígitos DDD e 4 da máscara
$(this).mask('(00) 00000-0009');
} else {
$(this).mask('(00) 0000-00009');
}
});
});
</script>
<?php $v->end(); ?>