-
Notifications
You must be signed in to change notification settings - Fork 0
Image Upload
CREATE TABLE IF NOT EXISTS usuario(
id BIGINT DEFAULT nextval('seq_usuario'),
nombre VARCHAR(255) NOT NULL,
imagen BLOB,
imagen_content_type VARCHAR(255),
constraint pk_usuario primary key (id)
);
Los archivos que implementan el CRUD para la tabla anterior son:
new file: src/main/java/mx/infotec/dads/rsr/domain/Usuario.java
new file: src/main/java/mx/infotec/dads/rsr/repository/UsuarioRepository.java
new file: src/main/java/mx/infotec/dads/rsr/service/UsuarioService.java
new file: src/main/java/mx/infotec/dads/rsr/service/impl/UsuarioServiceImpl.java
new file: src/main/java/mx/infotec/dads/rsr/web/rest/UsuarioResource.java
new file: src/main/webapp/app/entities/usuario/usuario-delete-dialog.controller.js
new file: src/main/webapp/app/entities/usuario/usuario-delete-dialog.html
new file: src/main/webapp/app/entities/usuario/usuario-detail.controller.js
new file: src/main/webapp/app/entities/usuario/usuario-detail.html
new file: src/main/webapp/app/entities/usuario/usuario-dialog.controller.js
new file: src/main/webapp/app/entities/usuario/usuario-dialog.html
new file: src/main/webapp/app/entities/usuario/usuario.controller.js
new file: src/main/webapp/app/entities/usuario/usuario.search.service.js
new file: src/main/webapp/app/entities/usuario/usuario.service.js
new file: src/main/webapp/app/entities/usuario/usuario.state.js
new file: src/main/webapp/app/entities/usuario/usuarios.html
new file: src/main/webapp/i18n/en/usuario.json
new file: src/main/webapp/i18n/es/usuario.json
A continuación se muestra el detalle de cada uno
archivo src/main/java/mx/infotec/dads/rsr/domain/Usuario.java
/*
*
* The MIT License (MIT)
* Copyright (c) 2017 KUKULKAN
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package mx.infotec.dads.rsr.domain;
import java.lang.Long;
import javax.persistence.*;
import javax.validation.constraints.*;
import java.io.Serializable;
/**
* The Usuario
*
* @author KUKULKAN
*
*/
@Entity
@Table(name = "USUARIO")
public class Usuario implements Serializable {
private static final long serialVersionUID = 1L;
/**
* Este campo fue generado automaticamente por KUKULKAN
* Este campo corresponde a la llave primaria id
*
* @kukulkanGenerated 2017-10-19T16:48:30Z
*/
@Id
@SequenceGenerator(name = "SEQ_USUARIO", sequenceName = "SEQ_USUARIO", allocationSize=100)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_USUARIO")
@Column(name = "id", unique = true, nullable = false)
private Long id;
/**
* Este campo fue generado automaticamente por KUKULKAN
* Este campo corresponde a la tabla USUARIO
*
* @kukulkanGenerated 2017-10-19T16:48:30Z
*/
@Column(name = "IMAGEN")
@Basic(fetch = FetchType.LAZY)
@Lob
private byte[] imagen;
/**
* Este campo fue generado automaticamente por KUKULKAN
* Este campo corresponde a la tabla USUARIO
*
* @kukulkanGenerated 2017-10-19T16:48:30Z
*/
@Column(name = "IMAGEN_CONTENT_TYPE")
private String imagenContentType;
/**
* Este campo fue generado automaticamente por KUKULKAN
* Este campo corresponde a la tabla USUARIO
*
* @kukulkanGenerated 2017-10-19T16:48:30Z
*/
@NotNull
@Column(name = "NOMBRE", nullable = false)
private String nombre;
/**
* Este constructor fue generado automáticamente por KUKULKAN
*
*/
public Usuario() {
}
/**
* Este método fue generado automaticamente por KUKULKAN
* Este método GETTER fue generado para la llave primaria USUARIO.id
*
* @return el valor de id
*
* @kukulkanGenerated 2017-10-19T16:48:30Z
*/
public Long getId() {
return id;
}
/**
* Este método fue generado automaticamente por KUKULKAN
* Este método SETTER fue generado para la llave primaria. USUARIO.id
*
* @return el valor de area_conocimiento.id
*
* @kukulkanGenerated 2017-10-19T16:48:30Z
*/
public void setId(Long id) {
this.id = id;
}
/**
* Este método fue generado automaticamente por KUKULKAN
* Este método GETTER fue generado para la propiedad USUARIO.IMAGEN
*
* @return el valor de imagen
*
* @kukulkanGenerated 2017-10-19T16:48:30Z
*/
public byte[] getImagen() {
return imagen;
}
/**
* Este método fue generado automaticamente por KUKULKAN
* Este método SETTER fue generado para la propiedad. USUARIO.imagen
*
* @return el valor de Imagen
*
* @kukulkanGenerated 2017-10-19T16:48:30Z
*/
public void setImagen(byte[] imagen) {
this.imagen = imagen;
}
/**
* Este método fue generado automaticamente por KUKULKAN
* Este método GETTER fue generado para la propiedad USUARIO.IMAGEN_CONTENT_TYPE
*
* @return el valor de imagenContentType
*
* @kukulkanGenerated 2017-10-19T16:48:30Z
*/
public String getImagenContentType() {
return imagenContentType;
}
/**
* Este método fue generado automaticamente por KUKULKAN
* Este método SETTER fue generado para la propiedad. USUARIO.imagenContentType
*
* @return el valor de ImagenContentType
*
* @kukulkanGenerated 2017-10-19T16:48:30Z
*/
public void setImagenContentType(String imagenContentType) {
this.imagenContentType = imagenContentType;
}
/**
* Este método fue generado automaticamente por KUKULKAN
* Este método GETTER fue generado para la propiedad USUARIO.NOMBRE
*
* @return el valor de nombre
*
* @kukulkanGenerated 2017-10-19T16:48:30Z
*/
public String getNombre() {
return nombre;
}
/**
* Este método fue generado automaticamente por KUKULKAN
* Este método SETTER fue generado para la propiedad. USUARIO.nombre
*
* @return el valor de Nombre
*
* @kukulkanGenerated 2017-10-19T16:48:30Z
*/
public void setNombre(String nombre) {
this.nombre = nombre;
}
/**
* Este método fue generado automaticamente por KUKULKAN
*
* @return el valor de representado por la entidad Usuario
*
* @kukulkanGenerated 2017-10-19T16:48:30Z
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", imagen=").append(imagen);
sb.append(", imagenContentType=").append(imagenContentType);
sb.append(", nombre=").append(nombre);
sb.append("]");
return sb.toString();
}
}
archivo src/main/java/mx/infotec/dads/rsr/repository/UsuarioRepository.java
/*
*
* The MIT License (MIT)
* Copyright (c) 2017 KUKULKAN
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package mx.infotec.dads.rsr.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import mx.infotec.dads.rsr.domain.Usuario;
/**
* UsuarioRepository
*
* @author KUKULKAN
* @kukulkanGenerated 2017-10-19T16:48:30Z
*/
public interface UsuarioRepository extends JpaRepository<Usuario, Long> {
}
archivo src/main/java/mx/infotec/dads/rsr/service/UsuarioService.java
/*
*
* The MIT License (MIT)
* Copyright (c) 2017 KUKULKAN
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package mx.infotec.dads.rsr.service;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import mx.infotec.dads.rsr.domain.Usuario;
/**
* UsuarioService
*
* @author KUKULKAN
* @kukulkanGenerated 2017-10-19T16:48:30Z
*/
public interface UsuarioService {
/**
* regresa una lista con todos los elementos Usuario
*
* @return Page<Usuario>
*/
Page<Usuario> findAll(Pageable pageable);
/**
* Consulta un Usuario por su llave primaria
*
* @param id
* @return Usuario
*/
Usuario findById(Long id);
/**
* Guarda o actualiza un Usuario
*
* @param usuario
* @return boolean
*/
Usuario save(Usuario usuario);
/**
* Regresa true o false si existe un Usuario almacenado
*
* @param id
* @return boolean
*/
boolean exists(Long id);
/**
* Borrar un Usuario por su llave primaria
*
* @param id
*/
void delete(Long id);
/**
* Borrar todos los elementos Usuario almacenados
*
* @param id
*/
void deleteAll();
/**
* Buscar Usuario con el correspondiente al query.
*
* @param query El query de la busqueda
*
* @param pageable la información de paginación
* @return Page de todas las entidades
*/
Page<Usuario> search(String query, Pageable pageable);
}
archivo src/main/java/mx/infotec/dads/rsr/service/impl/UsuarioServiceImpl.java
/*
*
* The MIT License (MIT)
* Copyright (c) 2017 KUKULKAN
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package mx.infotec.dads.rsr.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import mx.infotec.dads.rsr.domain.Usuario;
import mx.infotec.dads.rsr.repository.UsuarioRepository;
import mx.infotec.dads.rsr.service.UsuarioService;
/**
* UsuarioServiceImpl
*
* @author KUKULKAN
* @kukulkanGenerated 2017-10-19T16:48:30Z
*/
@Service
@Transactional
public class UsuarioServiceImpl implements UsuarioService {
private final Logger log = LoggerFactory.getLogger(UsuarioServiceImpl.class);
@Autowired
private UsuarioRepository repository;
@Override
@Transactional(readOnly = true)
public Page<Usuario> findAll(Pageable pageable) {
log.debug("Request to get all Usuario");
return repository.findAll(pageable);
}
@Override
@Transactional(readOnly = true)
public Usuario findById(Long id) {
log.debug("Request to get Usuario : {}", id);
return repository.findOne(id);
}
@Override
public Usuario save(Usuario usuario) {
return repository.save(usuario);
}
@Override
public boolean exists(Long id) {
return repository.exists(id);
}
@Override
public void delete(Long id) {
log.debug("Request to delete Usuario : {}", id);
repository.delete(id);
}
@Override
public void deleteAll() {
log.debug("Request to delete All Usuario");
repository.deleteAll();
}
@Override
@Transactional(readOnly = true)
public Page<Usuario> search(String query, Pageable pageable) {
log.debug("Request to search for a page of Usuario ");
return repository.findAll(pageable);
}
}
archivo src/main/java/mx/infotec/dads/rsr/web/rest/UsuarioResource.java
/*
*
* The MIT License (MIT)
* Copyright (c) 2017 KUKULKAN
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package mx.infotec.dads.rsr.web.rest;
import java.util.List;
import java.util.Optional;
import com.codahale.metrics.annotation.Timed;
import io.swagger.annotations.ApiParam;
import io.github.jhipster.web.util.ResponseUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
import java.net.URI;
import java.net.URISyntaxException;
import mx.infotec.dads.rsr.web.rest.util.HeaderUtil;
import mx.infotec.dads.rsr.web.rest.util.PaginationUtil;
import mx.infotec.dads.rsr.domain.Usuario;
import mx.infotec.dads.rsr.service.UsuarioService;
/**
*
* @author KUKULKAN
* @kukulkanGenerated 2017-10-19T16:48:30Z
*/
@RestController
@RequestMapping("/api")
public class UsuarioResource {
private static final Logger log = LoggerFactory.getLogger(UsuarioResource.class);
private static final String ENTITY_NAME = "usuario";
@Autowired
private UsuarioService service;
/**
* GET /usuarios : recupera todos los usuarios.
*
* @param pageable información de paginación
* @return El objeto ResponseEntity con estado de 200 (OK) y la lista de usuarios en el cuerpo del mensaje
*/
@GetMapping("/usuarios")
@Timed
public ResponseEntity<List<Usuario>> getAllUsuario(@ApiParam Pageable pageable) {
log.debug("REST request to get a page of Usuario");
Page<Usuario> page = service.findAll(pageable);
HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(page, "/api/usuarios");
return new ResponseEntity<>(page.getContent(), headers, HttpStatus.OK);
}
/**
* GET /usuarios/:id : recupera por "id" de Usuario.
*
* @param id el id del Usuario que se desea recuperar
* @return El objeto ResponseEntity con el estado de 200 (OK) y dentro del cuerpo del mensaje el Usuario, o con estado de 404 (Not Found)
*/
@GetMapping("/usuarios/{id}")
@Timed
public ResponseEntity<Usuario> getUsuario(@PathVariable Long id) {
log.debug("REST request to get Usuario : {}", id);
Usuario usuario = service.findById(id);
return ResponseUtil.wrapOrNotFound(Optional.ofNullable(usuario));
}
/**
* POST /usuarios : Create a new usuario.
*
* @param usuario el usuario que se desea crear
* @return El objeto ResponseEntity con estado 201 (Created) y en el cuerpo un nuevo usuario, o con estado 400 (Bad Request) si el usuario ya tiene un ID
* @throws URISyntaxException Si la sintaxis de la URI no es correcta
*/
@PostMapping("/usuarios")
@Timed
public ResponseEntity<Usuario> createUsuario(@Valid @RequestBody Usuario usuario) throws URISyntaxException {
log.debug("REST request to save Usuario : {}", usuario);
if (usuario.getId() != null) {
return ResponseEntity.badRequest().headers(HeaderUtil.createFailureAlert(ENTITY_NAME, "idexists", "A new usuario cannot already have an ID")).body(null);
}
Usuario result = service.save(usuario);
return ResponseEntity.created(new URI("/api/usuarios/" + result.getId()))
.headers(HeaderUtil.createEntityCreationAlert(ENTITY_NAME, result.getId().toString()))
.body(result);
}
/**
* PUT /usuarios : Actualiza un Usuario existente.
*
* @param usuario el usuario que se desea actualizar
* @return el objeto ResponseEntity con estado de 200 (OK) y en el cuerpo de la respuesta el Usuario actualizado,
* o con estatus de 400 (Bad Request) si el usuario no es valido,
* o con estatus de 500 (Internal Server Error) si el usuario no se puede actualizar
* @throws URISyntaxException si la sintaxis de la URI no es correcta
*/
@PutMapping("/usuarios")
@Timed
public ResponseEntity<Usuario> updateUsuario(@Valid @RequestBody Usuario usuario) throws URISyntaxException {
log.debug("REST request to update Usuario : {}", usuario);
if (usuario.getId() == null) {
return createUsuario(usuario);
}
Usuario result = service.save(usuario);
return ResponseEntity.ok()
.headers(HeaderUtil.createEntityUpdateAlert(ENTITY_NAME, usuario.getId().toString()))
.body(result);
}
/**
* DELETE /usuarios/:id : borrar el Usuario con "id".
*
* @param id el id del Usuario que se desea borrar
* @return el objeto ResponseEntity con estatus 200 (OK)
*/
@DeleteMapping("/usuarios/{id}")
@Timed
public ResponseEntity<Void> deleteUsuario(@PathVariable Long id) {
log.debug("REST request to delete Usuario : {}", id);
service.delete(id);
return ResponseEntity.ok().headers(HeaderUtil.createEntityDeletionAlert(ENTITY_NAME, id.toString())).build();
}
/**
* SEARCH /_search/usuarios?query=:query : buscar por el usuario correspondiente
* to the query.
*
* @param query el query para el usuario que se desea buscar
* @param pageable información de la paginación
* @return el resultado de la busqueda
*/
@GetMapping("/_search/usuarios")
@Timed
public ResponseEntity<List<Usuario>> searchUsuario(@RequestParam String query, @ApiParam Pageable pageable) {
log.debug("REST request to search for a page of Usuario for query {}", query);
Page<Usuario> page = service.search(query, pageable);
HttpHeaders headers = PaginationUtil.generateSearchPaginationHttpHeaders(query, page, "/api/_search/usuarios");
return new ResponseEntity<>(page.getContent(), headers, HttpStatus.OK);
}
}
archivo src/main/webapp/app/entities/usuario/usuario-delete-dialog.controller.js
(function() {
'use strict';
angular
.module('kukulkantestApp')
.controller('UsuarioDeleteController',UsuarioDeleteController);
UsuarioDeleteController.$inject = ['$uibModalInstance', 'entity', 'Usuario'];
function UsuarioDeleteController($uibModalInstance, entity, Usuario) {
var vm = this;
vm.usuario = entity;
vm.clear = clear;
vm.confirmDelete = confirmDelete;
function clear () {
$uibModalInstance.dismiss('cancel');
}
function confirmDelete (id) {
Usuario.delete({id: id},
function () {
$uibModalInstance.close(true);
});
}
}
})();
archivo src/main/webapp/app/entities/usuario/usuario-delete-dialog.html
<form name="deleteForm" ng-submit="vm.confirmDelete(vm.usuario.id)">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"
ng-click="vm.clear()">×</button>
<h4 class="modal-title" data-translate="entity.delete.title">Confirm delete operation</h4>
</div>
<div class="modal-body">
<jhi-alert-error></jhi-alert-error>
<p data-translate="kukulkantestApp.usuario.delete.question" translate-values="{id: '{{vm.usuario.id}}'}">Are you sure you want to delete this Usuario?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal" ng-click="vm.clear()">
<span class="glyphicon glyphicon-ban-circle"></span> <span data-translate="entity.action.cancel">Cancel</span>
</button>
<button type="submit" ng-disabled="deleteForm.$invalid" class="btn btn-danger">
<span class="glyphicon glyphicon-remove-circle"></span> <span data-translate="entity.action.delete">Delete</span>
</button>
</div>
</form>
archivo src/main/webapp/app/entities/usuario/usuario-detail.controller.js
(function() {
'use strict';
angular
.module('kukulkantestApp')
.controller('UsuarioDetailController', UsuarioDetailController);
UsuarioDetailController.$inject = ['$scope', '$rootScope', '$stateParams', 'previousState', 'DataUtils', 'entity', 'Usuario'];
function UsuarioDetailController($scope, $rootScope, $stateParams, previousState, DataUtils, entity, Usuario) {
var vm = this;
vm.usuario= entity;
vm.previousState = previousState.name;
vm.byteSize = DataUtils.byteSize;
vm.openFile = DataUtils.openFile;
var unsubscribe = $rootScope.$on('kukulkantestApp:usuarioUpdate', function(event, result) {
vm.usuario= result;
});
$scope.$on('$destroy', unsubscribe);
}
})();
archivo src/main/webapp/app/entities/usuario/usuario-detail.html
<div>
<h2><span data-translate="kukulkantestApp.usuario.detail.title">Usuario</span> {{vm.usuario.id}}</h2>
<hr>
<jhi-alert-error></jhi-alert-error>
<dl class="dl-horizontal jh-entity-details">
<dt><span data-translate="kukulkantestApp.usuario.id">id</span></dt>
<dd>
<span>{{vm.usuario.id}}</span>
<dd>
<dt><span data-translate="kukulkantestApp.usuario.imagen">imagen</span></dt>
<dd>
<div ng-if="vm.usuario.imagen">
<a ng-click="vm.openFile(vm.usuario.imagenContentType, vm.usuario.imagen)" data-translate="entity.action.open">open</a>
{{vm.usuario.imagenContentType}}, {{vm.byteSize(vm.usuario.imagen)}}
</div>
<dd>
<dt><span data-translate="kukulkantestApp.usuario.nombre">nombre</span></dt>
<dd>
<span>{{vm.usuario.nombre}}</span>
<dd>
</dl>
<button type="submit"
ui-sref="{{ vm.previousState }}"
class="btn btn-info">
<span class="glyphicon glyphicon-arrow-left"></span> <span data-translate="entity.action.back"> Back</span>
</button>
<button type="button" ui-sref="usuario-detail.edit({id:vm.usuario.id})" class="btn btn-primary">
<span class="glyphicon glyphicon-pencil"></span>
<span class="hidden-sm-down" data-translate="entity.action.edit"> Edit</span>
</button>
</div>
archivo src/main/webapp/app/entities/usuario/usuario-dialog.controller.js
(function() {
'use strict';
angular
.module('kukulkantestApp')
.controller('UsuarioDialogController', UsuarioDialogController);
UsuarioDialogController.$inject = ['$timeout', '$scope', '$stateParams', '$uibModalInstance', 'DataUtils', 'entity', 'Usuario'];
function UsuarioDialogController ($timeout, $scope, $stateParams, $uibModalInstance, DataUtils, entity, Usuario) {
var vm = this;
vm.usuario = entity;
vm.clear = clear;
vm.byteSize = DataUtils.byteSize;
vm.openFile = DataUtils.openFile;
vm.save = save;
$timeout(function (){
angular.element('.form-group:eq(1)>input').focus();
});
function clear () {
$uibModalInstance.dismiss('cancel');
}
function save () {
vm.isSaving = true;
if (vm.usuario.id !== null) {
Usuario.update(vm.usuario, onSaveSuccess, onSaveError);
} else {
Usuario.save(vm.usuario, onSaveSuccess, onSaveError);
}
}
function onSaveSuccess (result) {
$scope.$emit('kukulkantestApp:usuarioUpdate', result);
$uibModalInstance.close(result);
vm.isSaving = false;
}
function onSaveError () {
vm.isSaving = false;
}
vm.setImagen = function ($file, usuario) {
if ($file) {
DataUtils.toBase64($file, function(base64Data) {
$scope.$apply(function() {
usuario.imagen = base64Data;
usuario.imagenContentType = $file.type;
});
});
}
};
}
})();
archivo src/main/webapp/app/entities/usuario/usuario-dialog.html
<form name="editForm" role="form" novalidate ng-submit="vm.save()" show-validation>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"
ng-click="vm.clear()">×</button>
<h4 class="modal-title" id="myUsuarioLabel" data-translate="kukulkantestApp.usuario.home.createOrEditLabel">Create or edit a Usuario</h4>
</div>
<div class="modal-body">
<jhi-alert-error></jhi-alert-error>
<div class="form-group" ng-show="vm.usuario.id">
<label for="id" data-translate="global.field.id">id</label>
<input type="text" class="form-control" id="id" name="id"
ng-model="vm.usuario.id" readonly />
</div>
<div class="form-group" ngf-drop ngf-change="vm.setImagen($file, vm.usuario)">
<label class="control-label" data-translate="kukulkantestApp.usuario.imagen"
for="field_imagen">imagen</label>
<div>
<div ng-if="vm.usuario.imagen" class="help-block clearfix">
<a class="pull-left"
ng-click="vm.openFile(vm.usuario.imagenContentType, vm.usuario.imagen)"
data-translate="entity.action.open">open</a>
<br>
<span class="pull-left">{{vm.usuario.imagenContentType}}, {{vm.byteSize(vm.usuario.imagen)}}
</span>
<button type="button"
ng-click="vm.usuario.imagen=null;vm.usuario.imagenContentType=null;"
class="btn btn-default btn-xs pull-right">
<span class="glyphicon glyphicon-remove"></span>
</button>
</div>
<button type="button" ngf-select class="btn btn-default btn-block"
ngf-change="vm.setImagen($file, vm.usuario)" data-translate="entity.action.addblob">
Add blob
</button>
</div>
<input type="hidden" class="form-control" name="imagen" id="field_imagen"
ng-model="vm.usuario.imagen" />
<input type="hidden" class="form-control" name="imagenContentType"
id="field_imagenContentType" ng-model="vm.usuario.imagenContentType" />
</div>
<div class="form-group">
<label class="control-label" data-translate="kukulkantestApp.usuario.nombre"
for="field_nombre">nombre</label>
<input type="text" class="form-control" name="nombre" id="field_nombre"
ng-model="vm.usuario.nombre" />
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal" ng-click="vm.clear()">
<span class="glyphicon glyphicon-ban-circle"></span> <span data-translate="entity.action.cancel">Cancel</span>
</button>
<button type="submit" ng-disabled="editForm.$invalid || vm.isSaving" class="btn btn-primary">
<span class="glyphicon glyphicon-save"></span> <span data-translate="entity.action.save">Save</span>
</button>
</div>
</form>
archivo src/main/webapp/app/entities/usuario/usuario.controller.js
(function() {
'use strict';
angular
.module('kukulkantestApp')
.controller('UsuarioController', UsuarioController);
UsuarioController.$inject = ['$state', 'DataUtils', 'Usuario', 'UsuarioSearch', 'ParseLinks', 'AlertService', 'paginationConstants', 'pagingParams'];
function UsuarioController($state, DataUtils, Usuario, UsuarioSearch, ParseLinks, AlertService, paginationConstants, pagingParams) {
var vm = this;
vm.loadPage = loadPage;
vm.predicate = pagingParams.predicate;
vm.reverse = pagingParams.ascending;
vm.transition = transition;
vm.itemsPerPage = paginationConstants.itemsPerPage;
vm.clear = clear;
vm.search = search;
vm.loadAll = loadAll;
vm.searchQuery = pagingParams.search;
vm.currentSearch = pagingParams.search;
vm.openFile = DataUtils.openFile;
vm.byteSize = DataUtils.byteSize;
loadAll();
function loadAll () {
if (pagingParams.search) {
UsuarioSearch.query({
query: pagingParams.search,
page: pagingParams.page - 1,
size: vm.itemsPerPage,
sort: sort()
}, onSuccess, onError);
} else {
Usuario.query({
page: pagingParams.page - 1,
size: vm.itemsPerPage,
sort: sort()
}, onSuccess, onError);
}
function sort() {
var result = [vm.predicate + ',' + (vm.reverse ? 'asc' : 'desc')];
if (vm.predicate !== 'id') {
result.push('id');
}
return result;
}
function onSuccess(data, headers) {
vm.links = ParseLinks.parse(headers('link'));
vm.totalItems = headers('X-Total-Count');
vm.queryCount = vm.totalItems;
vm.usuarios = data;
vm.page = pagingParams.page;
}
function onError(error) {
AlertService.error(error.data.message);
}
}
function loadPage(page) {
vm.page = page;
vm.transition();
}
function transition() {
$state.transitionTo($state.$current, {
page: vm.page,
sort: vm.predicate + ',' + (vm.reverse ? 'asc' : 'desc'),
search: vm.currentSearch
});
}
function search(searchQuery) {
if (!searchQuery){
return vm.clear();
}
vm.links = null;
vm.page = 1;
vm.predicate = '_score';
vm.reverse = false;
vm.currentSearch = searchQuery;
vm.transition();
}
function clear() {
vm.links = null;
vm.page = 1;
vm.predicate = 'id';
vm.reverse = true;
vm.currentSearch = null;
vm.transition();
}
}
})();
archivo src/main/webapp/app/entities/usuario/usuario.search.service.js
(function() {
'use strict';
angular
.module('kukulkantestApp')
.factory('UsuarioSearch', UsuarioSearch);
UsuarioSearch.$inject = ['$resource'];
function UsuarioSearch($resource) {
var resourceUrl = 'api/_search/usuarios/:id';
return $resource(resourceUrl, {}, {
'query': { method: 'GET', isArray: true}
});
}
})();
archivo src/main/webapp/app/entities/usuario/usuario.service.js
(function() {
'use strict';
angular
.module('kukulkantestApp')
.factory('Usuario', Usuario);
Usuario.$inject = ['$resource'];
function Usuario ($resource) {
var resourceUrl = 'api/usuarios/:id';
return $resource(resourceUrl, {}, {
'query': { method: 'GET', isArray: true},
'get': {
method: 'GET',
transformResponse: function (data) {
if (data) {
data = angular.fromJson(data);
}
return data;
}
},
'update': { method:'PUT' }<% } %>
});
}
})();
archivo src/main/webapp/app/entities/usuario/usuario.state.js
(function() {
'use strict';
angular
.module('kukulkantestApp')
.config(stateConfig);
stateConfig.$inject = ['$stateProvider'];
function stateConfig($stateProvider) {
$stateProvider
.state('usuario', {
parent: 'entity',
url: '/usuarios?page&sort&search',
data: {
authorities: ['ROLE_USER'],
pageTitle: 'kukulkantestApp.usuario.home.title'
},
views: {
'content@': {
templateUrl: 'app/entities/usuario/usuarios.html',
controller: 'UsuarioController',
controllerAs: 'vm'
}
},
params: {
page: {
value: '1',
squash: true
},
sort: {
value: 'id,asc',
squash: true
},
search: null
},
resolve: {
pagingParams: ['$stateParams', 'PaginationUtil', function ($stateParams, PaginationUtil) {
return {
page: PaginationUtil.parsePage($stateParams.page),
sort: $stateParams.sort,
predicate: PaginationUtil.parsePredicate($stateParams.sort),
ascending: PaginationUtil.parseAscending($stateParams.sort),
search: $stateParams.search
};
}],
translatePartialLoader: ['$translate', '$translatePartialLoader', function ($translate, $translatePartialLoader) {
$translatePartialLoader.addPart('usuario');
$translatePartialLoader.addPart('global');
return $translate.refresh();
}]
}
})
.state('usuario-detail', {
parent: 'usuario',
url: '/usuarios/{id}',
data: {
authorities: ['ROLE_USER'],
pageTitle: 'kukulkantestApp.usuario.detail.title'
},
views: {
'content@': {
templateUrl: 'app/entities/usuario/usuario-detail.html',
controller: 'UsuarioDetailController',
controllerAs: 'vm'
}
},
resolve: {
translatePartialLoader: ['$translate', '$translatePartialLoader', function ($translate, $translatePartialLoader) {
$translatePartialLoader.addPart('usuario');
return $translate.refresh();
}],
entity: ['$stateParams', 'Usuario', function($stateParams, Usuario) {
return Usuario.get({id : $stateParams.id}).$promise;
}],
previousState: ["$state", function ($state) {
var currentStateData = {
name: $state.current.name || 'usuario',
params: $state.params,
url: $state.href($state.current.name, $state.params)
};
return currentStateData;
}]
}
})
.state('usuario-detail.edit', {
parent: 'usuario-detail',
url: '/detail/edit',
data: {
authorities: ['ROLE_USER']
},
onEnter: ['$stateParams', '$state', '$uibModal', function($stateParams, $state, $uibModal) {
$uibModal.open({
templateUrl: 'app/entities/usuario/usuario-dialog.html',
controller: 'UsuarioDialogController',
controllerAs: 'vm',
backdrop: 'static',
size: 'lg',
resolve: {
entity: ['Usuario', function(Usuario) {
return Usuario.get({id : $stateParams.id}).$promise;
}]
}
}).result.then(function() {
$state.go('^', {}, { reload: false });
}, function() {
$state.go('^');
});
}]
})
.state('usuario.new', {
parent: 'usuario',
url: '/new',
data: {
authorities: ['ROLE_USER']
},
onEnter: ['$stateParams', '$state', '$uibModal', function($stateParams, $state, $uibModal) {
$uibModal.open({
templateUrl: 'app/entities/usuario/usuario-dialog.html',
controller: 'UsuarioDialogController',
controllerAs: 'vm',
backdrop: 'static',
size: 'lg',
resolve: {
entity: function () {
return {
id: null,
imagen: null,
imagenContentType: null,
nombre: null
};
}
}
}).result.then(function() {
$state.go('usuario', null, { reload: 'usuario' });
}, function() {
$state.go('usuario');
});
}]
})
.state('usuario.edit', {
parent: 'usuario',
url: '/{id}/edit',
data: {
authorities: ['ROLE_USER']
},
onEnter: ['$stateParams', '$state', '$uibModal', function($stateParams, $state, $uibModal) {
$uibModal.open({
templateUrl: 'app/entities/usuario/usuario-dialog.html',
controller: 'UsuarioDialogController',
controllerAs: 'vm',
backdrop: 'static',
size: 'lg',
resolve: {
entity: ['Usuario', function(Usuario) {
return Usuario.get({id : $stateParams.id}).$promise;
}]
}
}).result.then(function() {
$state.go('usuario', null, { reload: 'usuario' });
}, function() {
$state.go('^');
});
}]
})
.state('usuario.delete', {
parent: 'usuario',
url: '/{id}/delete',
data: {
authorities: ['ROLE_USER']
},
onEnter: ['$stateParams', '$state', '$uibModal', function($stateParams, $state, $uibModal) {
$uibModal.open({
templateUrl: 'app/entities/usuario/usuario-delete-dialog.html',
controller: 'UsuarioDeleteController',
controllerAs: 'vm',
size: 'md',
resolve: {
entity: ['Usuario', function(Usuario) {
return Usuario.get({id : $stateParams.id}).$promise;
}]
}
}).result.then(function() {
$state.go('usuario', null, { reload: 'usuario' });
}, function() {
$state.go('^');
});
}]
});
}
})();
archivo src/main/webapp/app/entities/usuario/usuarios.html
<div>
<h2 data-translate="kukulkantestApp.usuario.home.title">usuarios</h2>
<jhi-alert></jhi-alert>
<div class="container-fluid">
<div class="row">
<div class="col-xs-4 no-padding-left">
<button class="btn btn-primary" ui-sref="usuario.new" >
<span class="glyphicon glyphicon-plus"></span>
<span class="hidden-xs-down" data-translate="kukulkantestApp.usuario.home.createLabel">
Create new Usuario
</span>
</button>
</div>
<div class="col-xs-8 no-padding-right">
<form name="searchForm" class="form-inline">
<div class="input-group pull-right" >
<input type="text" class="form-control" ng-model="vm.searchQuery" id="searchQuery" placeholder="{{ 'kukulkantestApp.usuario.home.search' | translate }}">
<span class="input-group-btn width-min" >
<button class="btn btn-info" ng-click="vm.search(vm.searchQuery)">
<span class="glyphicon glyphicon-search"></span>
</button>
</span>
<span class="input-group-btn width-min" ng-if="vm.currentSearch">
<button class="btn btn-info" ng-click="vm.clear()">
<span class="glyphicon glyphicon-trash"></span>
</button>
</span>
</div>
</form>
</div>
</div>
</div>
<br/>
<div class="table-responsive">
<table class="jh-table table table-striped">
<thead>
<tr jh-sort="vm.predicate" ascending="vm.reverse" callback="vm.transition()">
<th jh-sort-by="id"><span data-translate="global.field.id">ID</span> <span class="glyphicon glyphicon-sort"></span></th>
<th jh-sort-by="imagen"><span data-translate="kukulkantestApp.usuario.imagen">imagen</span> <span class="glyphicon glyphicon-sort"></span></th>
<th jh-sort-by="nombre"><span data-translate="kukulkantestApp.usuario.nombre">nombre</span> <span class="glyphicon glyphicon-sort"></span></th>
<th></th>
</tr>
</thead>
<tbody ng-repeat="usuario in vm.usuarios track by usuario.id">
<td><a ui-sref="usuario-detail({id:usuario.id})">{{usuario.id}}</a></td>
<td>
<a ng-if="usuario.imagen" ng-click="vm.openFile(usuario.imagenContentType, usuario.imagen)" data-translate="entity.action.open">open</a>
<span ng-if="usuario.imagen">{{usuario.imagenContentType}}, {{vm.byteSize(usuario.imagen)}}</span>
</td>
<td>{{usuario.nombre}}</td>
<td class="text-right">
<div class="btn-group flex-btn-group-container">
<button type="submit"
ui-sref="usuario-detail({id:usuario.id})"
class="btn btn-info btn-sm">
<span class="glyphicon glyphicon-eye-open"></span>
<span class="hidden-sm-down" data-translate="entity.action.view"></span>
</button>
<button type="submit"
ui-sref="usuario.edit({id:usuario.id})"
class="btn btn-primary btn-sm">
<span class="glyphicon glyphicon-pencil"></span>
<span class="hidden-sm-down" data-translate="entity.action.edit"></span>
</button>
<button type="submit"
ui-sref="usuario.delete({id:usuario.id})"
class="btn btn-danger btn-sm">
<span class="glyphicon glyphicon-remove-circle"></span>
<span class="hidden-sm-down" data-translate="entity.action.delete"></span>
</button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="text-center">
<jhi-item-count page="vm.page" total="vm.queryCount" items-per-page="vm.itemsPerPage"></jhi-item-count>
<uib-pagination class="pagination-sm" total-items="vm.totalItems" items-per-page="vm.itemsPerPage" ng-model="vm.page" ng-change="vm.transition()"></uib-pagination>
</div>
</div>
archivo src/main/webapp/i18n/en/usuario.json
{
"kukulkantestApp": {
"usuario" : {
"home": {
"title": "usuarios",
"createLabel": "Create a new Usuario",
"createOrEditLabel": "Create or edit a Usuario"
},
"created": "A new Usuario is created with identifier {{ param }}",
"updated": "A Usuario is updated with identifier {{ param }}",
"deleted": "A Usuario is deleted with identifier {{ param }}",
"delete": {
"question": "Are you sure you want to delete Usuario {{ id }}?"
},
"detail": {
"title": "Usuario"
},
"imagen": "Imagen",
"imagenContentType": "ImagenContentType",
"nombre": "Nombre"
}
}
}
archivo src/main/webapp/i18n/es/usuario.json
{
"kukulkantestApp": {
"usuario" : {
"home": {
"title": "usuarios",
"createLabel": "Crear nuevo Usuario",
"createOrEditLabel": "Crear o editar Usuario",
"search": "Buscar Usuario"
},
"created": "Un nuevo Usuario ha sido creado con el identificador {{ param }}",
"updated": "Un Usuario ha sido actualizado con el identificador {{ param }}",
"deleted": "Un Usuario ha sido eliminado con el identificador {{ param }}",
"delete": {
"question": "¿Seguro que quiere eliminar Usuario {{ id }}?"
},
"detail": {
"title": "Usuario"
},
"imagen": "Imagen",
"imagenContentType": "ImagenContentType",
"nombre": "Nombre"
}
}
}