Skip to content

Instantly share code, notes, and snippets.

@thiagovsk
Created November 16, 2016 18:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thiagovsk/7946dab989231ce4349e922290f58742 to your computer and use it in GitHub Desktop.
Save thiagovsk/7946dab989231ce4349e922290f58742 to your computer and use it in GitHub Desktop.
<form name="form" ng-submit="vm.submitForm(vm.customer)" class="form-horizontal" novalidate>
<div class="panel panel-default">
<div class="panel-header">
<h2 class="panel-heading">
<span ng-if="!vm.customer.id">Adição de Cliente</span>
<span ng-if="vm.customer.id">Edição de Cliente</span>
</h2>
</div>
<div class="panel-body">
<fieldset>
<div class="form-group" show-errors>
<label for="fullname" class="col-sm-2 control-label">Nome completo</label>
<div class="col-sm-10">
<input id="fullname" name="fullname" type="text" class="form-control"
ng-model="vm.customer.fullname">
</div>
</div>
</fieldset>
<fieldset>
<div class="form-group" show-errors>
<label for="cpf" class="col-sm-2 control-label">CPF</label>
<div class="col-sm-10">
<input id="cpf" name="cpf" type="text" class="form-control"
ng-model="vm.customer.cpf" ui-br-cpf-mask>
<p class="help-block" ng-if="form.cpf.$error.cpf">
Esse CPF não é válido
</p>
</div>
</div>
</fieldset>
<fieldset>
<div class="form-group" show-errors>
<label for="email" class="col-sm-2 control-label">E-mail</label>
<div class="col-sm-10">
<input id="email" name="email" type="text" class="form-control"
ng-model="vm.customer.email">
</div>
</div>
</fieldset>
<fieldset>
<div class="form-group" show-errors>
<label for="phone" class="col-sm-2 control-label">Telefone</label>
<div class="col-sm-10">
<input id="phone" name="phone" type="text" class="form-control"
ng-model="vm.customer.phone" ui-br-phone-number>
<p class="help-block" ng-if="form.phone.$error.brPhoneNumber">
Esse telefone não é válido
</p>
</div>
</div>
</fieldset>
<fieldset>
<div class="form-group" show-errors>
<label for="birth_date" class="col-sm-2 control-label">Data de Nascimento</label>
<div class="col-sm-10">
<input id="birth_date" name="birth_date" type="text" class="form-control" datepicker-popup="dd/MM/yyyy" show-button-bar="false"
placeholder="__/__/____" ng-model="vm.customer.birth_date" ng-model-options="{ debounce: 600 }" is-open="vm.birth_dateOpened"
ng-click="vm.birth_dateOpened = true">
</div>
</div>
</fieldset>
<fieldset>
<div class="form-group" show-errors>
<label for="phone" class="col-sm-2 control-label">Observações</label>
<div class="col-sm-10">
<div class="panel">
<div class="panel-body">
<textarea id="notes" name="notes" rows="10" class="form-control block-note" ng-model="vm.customer.notes"></textarea>
</div>
</div>
</div>
</div>
</fieldset>
<fieldset>
<div class="form-group" show-errors>
<label for="email" class="col-sm-2 control-label">Rua</label>
<div class="col-sm-10">
<input id="email" name="email" type="text" class="form-control"
ng-model="vm.customer.addresses_attributes[0].street">
</div>
</div>
</fieldset>
<fieldset>
<div class="form-group" show-errors>
<label for="email" class="col-sm-2 control-label">Número da Rua</label>
<div class="col-sm-10">
<input id="email" name="email" type="text" class="form-control"
ng-model="vm.customer.addresses_attributes[0].street_number">
</div>
</div>
</fieldset>
<fieldset>
<div class="form-group" show-errors>
<label for="email" class="col-sm-2 control-label">Bairro</label>
<div class="col-sm-10">
<input id="email" name="email" type="text" class="form-control"
ng-model="vm.customer.addresses_attributes[0].neighborhood">
</div>
</div>
</fieldset>
<fieldset>
<div class="form-group" show-errors>
<label for="email" class="col-sm-2 control-label">Cidade</label>
<div class="col-sm-10">
<input id="email" name="email" type="text" class="form-control"
ng-model="vm.customer.addresses_attributes[0].city">
</div>
</div>
</fieldset>
<fieldset>
<div class="form-group" show-errors>
<label for="email" class="col-sm-2 control-label">Estado</label>
<div class="col-sm-10">
<input id="email" name="email" type="text" class="form-control"
ng-model="vm.customer.addresses_attributes[0].state">
</div>
</div>
</fieldset>
</div>
<div class="panel-footer">
<button type="submit" class="btn btn-success">Salvar Cliente</button>
</div>
</div>
</form>
angular.module('pdvend')
.controller('CustomersController', CustomersController);
CustomersController.$inject = ['Customers', 'SweetAlert', 'news'];
function CustomersController(Customers, SweetAlert, news) {
var vm = this;
vm.customers = {};
// vm.customers.addresses_attributes = [];
vm.customers.addresses_attributes = [{"street": "abc"}];
vm.delete = deleteRecord;
activate();
/////////////////////////////////////////////////////////
function activate() {
vm.customers = Customers.query();
news('#export-csv', 'Agora você pode exportar uma lista com todos os clientes de sua loja e abrir no Excel (em formato CSV).');
}
function deleteRecord(record) {
SweetAlert.swal({
title: "Tem certeza?",
text: "Esse cliente será removido do banco de dados!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Sim, tenho certeza!",
cancelButtonText: "Não, cancele!",
closeOnConfirm: false,
closeOnCancel: true
}, function(isConfirm){
if (isConfirm) {
Customers.remove({id: record.id}).$promise.then(function() {
vm.customers = Customers.query();
vm.customers.$promise.then(function() {
SweetAlert.swal("Removido!", "O cliente foi removido.", "success");
});
});
}
});
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment