Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
Asistencia
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Billy Larru
Asistencia
Commits
54e3598f
Commit
54e3598f
authored
Sep 11, 2018
by
Billy Larru
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[ADD programacion de seminario]
parent
99e79605
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
481 additions
and
2 deletions
+481
-2
general.js
src/main/webapp/js/general.js
+3
-0
programacion_seminario.js
src/main/webapp/js/pages/programacion_seminario.js
+364
-0
registroSeminario.jspf
...ntesporhoras/programacionSeminario/registroSeminario.jspf
+48
-0
programacionSeminario.jsp
src/main/webapp/vistas/programacionSeminario.jsp
+66
-2
No files found.
src/main/webapp/js/general.js
View file @
54e3598f
...
...
@@ -37,6 +37,9 @@ const URI_ADMINISTRATIVOS_TOLERANCIA_INDIVIDUAL = "toleranciasIndividuales";
const
URI_ADMINISTRATIVOS_ESTADO_TOLERANCIA_INDIVIDUAL
=
"estadoTolerancias"
;
const
URI_ADMINISTRATIVOS_VACACIONES_INDIVIDUAL
=
"vacacionesAdministrativasIndividuales"
;
const
URI_CARGOS
=
"cargoLaboral"
;
const
URI_DOCENTES_PROGRAMACION_SEMINARIO
=
"programacionSeminario"
;
const
URI_DOCENTES_TIPO_SEMINARIO
=
"tipoSeminario"
;
const
URI_DOCENTES_GRUPO_ACADEMICO
=
"grupoAcademico"
;
//</editor-fold>
...
...
src/main/webapp/js/pages/programacion_seminario.js
0 → 100644
View file @
54e3598f
function
getColumns
()
{
let
columns
=
[
{
title
:
`N°`
,
data
:
`id`
,
className
:
'text-center'
},
{
title
:
`APELLIDOS Y NOMBRES`
,
data
:
null
,
render
:
(
data
)
=>
{
let
nombresCompletos
;
let
nombres
=
data
.
trabajador_nombres
;
let
apellidos
=
data
.
trabajador_apellidos
;
nombresCompletos
=
`
${
apellidos
}
${
nombres
}
`
;
return
nombresCompletos
;
}
},
{
title
:
`TIPO`
,
data
:
`tiposeminario_descripcion`
,
className
:
'text-center'
},
{
title
:
`GRUPO ACAD.`
.
split
(
" "
).
join
(
"<br>"
),
data
:
`grupoacademico_descripcion`
,
className
:
'text-center'
},
{
title
:
`FECHA`
,
data
:
`fecha_seminario`
,
className
:
'text-center'
},
{
title
:
`HORA INICIO`
,
data
:
`hora_inicio`
,
className
:
'text-center'
},
{
title
:
`HORA FIN`
,
data
:
`hora_fin`
,
className
:
'text-center'
},
{
title
:
`OBSERVACIÓN`
,
data
:
`observacion`
,
className
:
'text-center'
},
{
title
:
`ESTADO`
,
data
:
`estado`
,
className
:
'text-center'
,
render
:
(
data
)
=>
{
let
label
=
""
;
let
text
=
""
;
switch
(
data
)
{
case
0
:
label
=
"label bg-purple"
;
text
=
"PENDIENTE"
;
break
;
case
1
:
label
=
"label label-success"
;
text
=
"ACEPTADO"
;
break
;
case
2
:
label
=
"label label-danger"
;
text
=
"RECHAZADO"
;
break
;
}
return
`<span class="
${
label
}
">
${
text
}
</span>`
;
}
},
{
title
:
`ACCIONES`
,
data
:
null
,
className
:
'text-center'
,
render
:
(
data
)
=>
{
let
acciones
=
""
;
let
verdetalle
=
""
;
let
editar
=
""
;
let
eliminar
=
""
;
let
aceptar
=
""
;
let
rechazar
=
""
;
if
(
data
.
estado
===
1
)
{
eliminar
=
`<span style="cursor: pointer"><i class="eliminar fa fa-power-off text-danger-700"></i> </span>`
;
}
else
{
eliminar
=
`<span style="cursor: pointer"><i class="eliminar fa fa-power-off text-success-700"></i> </span>`
;
}
aceptar
=
`<span style="cursor: pointer"><i class="aceptar icon-checkmark4 text-success-700"></i> </span>`
;
rechazar
=
`<span style="cursor: pointer"><i class="rechazar icon-cross2 text-danger-700"></i> </span>`
;
verdetalle
=
`<span style="cursor: pointer"><i class="verdetalle icon-three-bars text-primary-700"></i> </span>`
;
editar
=
`<span style="cursor: pointer"><i class="editar icon-pencil text-slate-800"></i> </span>`
;
acciones
=
aceptar
+
rechazar
+
verdetalle
+
editar
+
eliminar
;
return
acciones
;
}
},
];
return
columns
;
}
const
listarPersonal
=
(
selectorName
)
=>
{
initSelect2
(
selectorName
,
baseURLRest
+
URI_TRABAJADORES
,
{
title
:
"nombresapellidos"
,
subtitle
:
"documentoidentidad"
});
};
const
listarSedes
=
(
selectorName
)
=>
{
ajaxWebService
.
get
(
URI_SEDES
).
then
((
result
)
=>
{
let
sedes
=
result
.
data
;
sedes
=
_
.
orderBy
(
sedes
,
s
=>
s
.
descripcion
);
let
html
=
`<option value="">[TODOS]</option>`
;
sedes
.
forEach
(
sede
=>
html
+=
`<option value="
${
sede
.
codigo
}
">
${
sede
.
descripcion
}
</option>`
);
$
(
`
${
selectorName
}
`
).
html
(
html
);
$
(
selectorName
).
select2
();
});
};
const
mostrarModalAprobarSeminario
=
(
data
)
=>
{
let
{
id
,
estado
}
=
data
;
let
titulo
=
""
;
let
textoConfirmacion
=
""
let
tituloOperacion
=
""
;
if
(
estado
==
0
)
{
titulo
=
'Está seguro de aprobar el seminario?'
;
textoConfirmacion
=
'Sí, aprobar!'
;
tituloOperacion
=
'¡Aprobado exitosamente!'
;
estado
=
1
;
}
swal
({
title
:
titulo
,
text
:
""
,
type
:
'warning'
,
showCancelButton
:
true
,
confirmButtonColor
:
'#3085d6'
,
cancelButtonColor
:
'#d33'
,
confirmButtonText
:
textoConfirmacion
}).
then
((
result
)
=>
{
if
(
result
.
value
)
{
ajaxWebService
.
patch
(
`
${
URI_DOCENTES_PROGRAMACION_SEMINARIO
}
/
${
id
}
`
,
{
estado
}).
then
((
response
)
=>
{
if
(
response
.
status
)
{
swal
({
type
:
'success'
,
title
:
tituloOperacion
,
showConfirmButton
:
false
,
timer
:
1500
});
listarSeminariosProgramados
();
}
});
}
});
};
const
mostrarModalRechazarSeminario
=
(
data
)
=>
{
let
{
id
,
estado
}
=
data
;
let
titulo
=
""
;
let
textoConfirmacion
=
""
let
tituloOperacion
=
""
;
if
(
estado
==
0
)
{
titulo
=
'Está seguro de desaaprobar el seminario?'
;
textoConfirmacion
=
'Sí, desaprobar!'
;
tituloOperacion
=
'¡Desaprobado exitosamente!'
;
estado
=
2
;
}
swal
({
title
:
titulo
,
text
:
""
,
type
:
'warning'
,
showCancelButton
:
true
,
confirmButtonColor
:
'#3085d6'
,
cancelButtonColor
:
'#d33'
,
confirmButtonText
:
textoConfirmacion
}).
then
((
result
)
=>
{
if
(
result
.
value
)
{
ajaxWebService
.
patch
(
`
${
URI_DOCENTES_PROGRAMACION_SEMINARIO
}
/
${
id
}
`
,
{
estado
}).
then
((
response
)
=>
{
if
(
response
.
status
)
{
swal
({
type
:
'success'
,
title
:
tituloOperacion
,
showConfirmButton
:
false
,
timer
:
1500
});
listarSeminariosProgramados
();
}
});
}
});
};
function
listarSeminariosProgramados
(
objParams
=
{}){
ajaxWebService
.
get
(
URI_DOCENTES_PROGRAMACION_SEMINARIO
,
objParams
).
then
((
response
)
=>
{
let
columns
=
getColumns
();
let
wrapsNameDatatable
=
`divDatatable`
;
let
classNameForDatatable
=
`display table table-bordered`
;
makeDatatable
(
wrapsNameDatatable
,
{
data
:
response
.
data
,
columns
,
},
classNameForDatatable
,
).
then
((
nodes
)
=>
{
nodes
.
container
.
off
()
.
on
(
"click"
,
".verdetalle"
,
function
()
{
let
data
=
nodes
.
datatable
.
DataTable
().
row
(
$
(
this
).
parents
(
"tr"
)).
data
();
mostrarModalVerDetalleTolerancia
(
data
);
})
.
on
(
"click"
,
".editar"
,
function
()
{
let
data
=
nodes
.
datatable
.
DataTable
().
row
(
$
(
this
).
parents
(
"tr"
)).
data
();
mostrarModalEditarTolerancia
(
data
);
})
.
on
(
"click"
,
".eliminar"
,
function
()
{
let
data
=
nodes
.
datatable
.
DataTable
().
row
(
$
(
this
).
parents
(
"tr"
)).
data
();
mostrarModalEliminarTolerancia
(
data
);
})
.
on
(
"click"
,
".aceptar"
,
function
()
{
let
data
=
nodes
.
datatable
.
DataTable
().
row
(
$
(
this
).
parents
(
"tr"
)).
data
();
mostrarModalAprobarSeminario
(
data
);
})
.
on
(
"click"
,
".rechazar"
,
function
()
{
let
data
=
nodes
.
datatable
.
DataTable
().
row
(
$
(
this
).
parents
(
"tr"
)).
data
();
mostrarModalRechazarSeminario
(
data
);
});
});
});
}
const
aplicarFiltro
=
()
=>
{
};
const
listarTipoSeminario
=
(
nodeIdentifier
)
=>
{
ajaxWebService
.
get
(
URI_DOCENTES_TIPO_SEMINARIO
).
then
((
response
)
=>
{
let
tiposSeminario
=
response
.
data
;
tiposSeminario
=
_
.
orderBy
(
tiposSeminario
,
s
=>
s
.
descripcion
);
let
html
=
`<option value="">[SELECCIONE]</option>`
;
html
+=
tiposSeminario
.
map
(
tipoSeminario
=>
`<option value="
${
tipoSeminario
.
id
}
">
${
tipoSeminario
.
descripcion
}
</option>`
);
$
(
nodeIdentifier
).
html
(
html
);
});
};
const
listarGrupoAcademico
=
(
nodeIdentifier
)
=>
{
ajaxWebService
.
get
(
URI_DOCENTES_GRUPO_ACADEMICO
).
then
((
response
)
=>
{
let
gruposacademicos
=
response
.
data
;
gruposacademicos
=
_
.
orderBy
(
gruposacademicos
,
grupoAcademico
=>
grupoAcademico
.
descripcion
);
let
html
=
`<option value="">[SELECCIONE]</option>`
;
html
+=
gruposacademicos
.
map
(
grupoAcademico
=>
`<option value="
${
grupoAcademico
.
id
}
">
${
grupoAcademico
.
descripcion
}
</option>`
);
$
(
nodeIdentifier
).
html
(
html
);
});
};
const
inicializarInputsModalNuevoSeminario
=
()
=>
{
listarPersonal
(
"#cboDocentes"
);
listarTipoSeminario
(
"#cboTipoSeminario"
);
listarGrupoAcademico
(
"#cboGrupoAcademico"
);
initDatePicker
(
"#dpFechaSeminario"
);
};
const
registrarSeminario
=
()
=>
{
let
trabajador
=
$
(
"#cboDocentes"
).
select2
(
'data'
)[
0
];
let
trabajador_id
=
trabajador
.
id
;
let
trabajador_apellidos
=
trabajador
.
apellidos
;
let
trabajador_nombres
=
trabajador
.
nombres
;
let
trabajador_documentoidentidad
=
""
;
let
tiposeminario_id
=
$
(
"#cboTipoSeminario"
).
val
();
let
tiposeminario_descripcion
=
$
(
"#cboTipoSeminario option:selected"
).
text
();
let
grupoacademico_id
=
$
(
"#cboGrupoAcademico"
).
val
();
let
grupoacademico_descripcion
=
$
(
"#cboGrupoAcademico option:selected"
).
text
();
let
fecha_seminario
=
$
(
"#dpFechaSeminario"
).
val
();
let
hora_inicio
=
$
(
"#txtHoraInicio"
).
val
();
let
hora_fin
=
$
(
"#txtHoraFin"
).
val
();
let
observacion
=
$
(
"#txtObservacion"
).
val
();
let
params
=
{
trabajador_id
,
trabajador_apellidos
,
trabajador_nombres
,
trabajador_documentoidentidad
,
tiposeminario_id
,
tiposeminario_descripcion
,
grupoacademico_id
,
grupoacademico_descripcion
,
fecha_seminario
,
hora_inicio
,
hora_fin
,
observacion
,
estado
:
0
};
ajaxWebService
.
post
(
URI_DOCENTES_PROGRAMACION_SEMINARIO
,
params
)
.
then
((
response
)
=>
{
if
(
response
.
status
)
{
swal
({
type
:
'success'
,
title
:
'¡Seminario registrado exitosamente!'
,
showConfirmButton
:
false
,
timer
:
1500
});
listarSeminariosProgramados
();
}
else
{
swal
({
type
:
'success'
,
title
:
'¡No ha sido posible registrar el seminario!'
,
showConfirmButton
:
false
,
timer
:
1500
})
}
});
};
const
mostrarModalNuevoSeminario
=
()
=>
{
ajaxModal
.
get
(
"docentesporhoras/programacionSeminario/registroSeminario.jspf"
).
then
((
response
)
=>
{
swal
({
title
:
'<strong>Registro de seminario</strong>'
,
html
:
response
.
data
,
showCloseButton
:
true
,
showCancelButton
:
true
,
focusConfirm
:
false
,
confirmButtonText
:
'<i class="icon-checkmark2"></i> Registrar seminario'
,
confirmButtonAriaLabel
:
'Registrar seminario'
,
cancelButtonText
:
'<i class="icon-cross3"></i>Cancelar'
,
cancelButtonAriaLabel
:
'Thumbs down'
,
width
:
'30%'
,
customClass
:
'swal2-overflow'
,
onOpen
:
()
=>
{
inicializarInputsModalNuevoSeminario
();
}
}).
then
((
result
)
=>
{
if
(
result
.
value
)
{
registrarSeminario
();
}
});
});
};
$
(
document
).
ready
(
function
()
{
$
(
"#btnNuevoSeminario"
).
click
(
mostrarModalNuevoSeminario
);
$
(
"#btnMostrarTodo"
).
click
(
listarSeminariosProgramados
);
$
(
"#btnAplicarFiltro"
).
click
(
aplicarFiltro
);
listarPersonal
(
"#cboDocenteFiltro"
);
listarSedes
(
"#cboSedesFiltro"
);
initDatePicker
(
"#dpFechaInicioFiltro"
,
"#dpFechaFinFiltro"
);
});
\ No newline at end of file
src/main/webapp/vistas/modals/docentesporhoras/programacionSeminario/registroSeminario.jspf
0 → 100644
View file @
54e3598f
<form id="frm" onsubmit="return false;" autocomplete="off">
<div class="row">
<div class="form-group col-md-8">
<label>Docente</label>
<select id="cboDocentes" class="select-search form-control"></select>
</div>
<div class="form-group col-md-4">
<label>Tipo de seminario</label>
<select id="cboTipoSeminario" class="select-search form-control"></select>
</div>
</div>
<div class="row">
<div class="form-group col-md-4">
<label>Fecha Seminario</label>
<div class="input-group">
<span class="input-group-addon"><i class="icon-calendar"></i></span>
<input type="text" class="form-control" id="dpFechaSeminario">
</div>
</div>
<div class="form-group col-md-4">
<label>Hora inicio</label>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-clock-o"></i></span>
<input type="time" class="form-control" id="txtHoraInicio">
</div>
</div>
<div class="form-group col-md-4">
<label>Hora fin</label>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-clock-o"></i></span>
<input type="time" class="form-control" id="txtHoraFin">
</div>
</div>
</div>
<div class="row">
<div class="form-group col-md-4">
<label>Grupo academico</label>
<select id="cboGrupoAcademico" class="select-search form-control"></select>
</div>
<div class="form-group col-md-8">
<label>Observacion</label>
<textarea name="txtObservacion" id="txtObservacion" cols="30" rows="4" class="form-control"></textarea>
</div>
</div>
</form>
\ No newline at end of file
src/main/webapp/vistas/programacionSeminario.jsp
View file @
54e3598f
...
...
@@ -6,18 +6,82 @@
<
%@
include
file=
"templates/header.jsp"
%
>
<!--template-core-->
<!--css de la pagina-->
<link
href=
"../css/lib/sweetalert2.min.css"
rel=
"stylesheet"
type=
"text/css"
/>
<!--css-->
</head>
<body>
<
%@
include
file=
"templates/header-body.jsp"
%
>
<!-- content -->
<div
class=
"col-md-6 col-md-offset-3"
>
<div
class=
"panel panel-primary"
>
<div
class=
"panel-heading"
>
<h5
class=
"panel-title"
>
Busqueda
</h5>
</div>
<div
class=
"panel-body"
>
<div
class=
"row"
>
<div
class=
"col-md-6 form-group"
>
<label>
Docente
</label>
<select
class=
"select-search form-control"
id=
"cboDocenteFiltro"
>
</select>
</div>
<div
class=
"col-md-6 form-group"
>
<label>
Sede
</label>
<select
id=
"cboSedesFiltro"
class=
"select-search form-control"
>
</select>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-md-6 form-group"
>
<label>
Fecha Inicio
</label>
<div
class=
"input-group"
>
<span
class=
"input-group-addon"
><i
class=
"icon-calendar"
></i></span>
<input
type=
"text"
class=
"form-control"
name=
"dpFechaInicioFiltro"
id=
"dpFechaInicioFiltro"
>
</div>
</div>
<div
class=
"col-md-6 form-group"
>
<label>
Fecha Fin
</label>
<div
class=
"input-group"
>
<span
class=
"input-group-addon"
><i
class=
"icon-calendar"
></i></span>
<input
type=
"text"
class=
"form-control"
name=
"dpFechaFinFiltro"
id=
"dpFechaFinFiltro"
>
</div>
</div>
</div>
</div>
<div
class=
"panel-footer"
>
<div
class=
"text-center"
>
<button
class=
"btn btn-primary"
id=
"btnAplicarFiltro"
><i
class=
"icon-eye4"
></i>
Aplicar filtro
</button>
<button
class=
"btn btn-primary"
id=
"btnMostrarTodo"
><i
class=
"icon-eye4"
></i>
Mostrar Todo
</button>
</div>
</div>
</div>
</div>
<div
class=
"col-md-12"
>
<div
class=
"panel panel-primary card-3"
style=
"margin-top: 30px"
>
<div
class=
"panel-heading"
style=
"padding: 8px 15px"
>
<h6
class=
"panel-title"
style=
"font-size: 15px; font-family: inherit"
>
LISTADO DE SEMINARIOS PROGRAMADOS
</h6>
<div
class=
"heading-elements"
>
<button
type=
"button"
id=
"btnNuevoSeminario"
class=
"btn bg-slate border-slate-600 btn-xs"
><i
class=
"glyphicon glyphicon-plus"
></i>
Nuevo seminario
</button>
</div>
</div>
<div
id=
"divDatatable"
>
</div>
</div>
</div>
<!-- / content -->
<
%@
include
file=
"templates/footer-body.jsp"
%
>
<!--js de la pagina-->
<script
src=
"../plantilla/assets/js/core/libraries/jquery_ui/widgets.min.js"
type=
"text/javascript"
></script>
<script
src=
"../plantilla/assets/js/plugins/ui/moment/moment.min.js"
type=
"text/javascript"
></script>
<script
src=
"../plantilla/assets/js/plugins/pickers/datepicker.js"
type=
"text/javascript"
></script>
<script
src=
"../js/lib/bootstrap-select.min.js"
type=
"text/javascript"
></script>
<script
src=
"../plantilla/assets/js/plugins/forms/selects/select2.min.js"
></script>
<script
src=
"../js/lib/lodash.js"
type=
"text/javascript"
></script>
<script
src=
"../js/pages/programacion_seminario.js"
type=
"text/javascript"
></script>
<!--js-->
</body>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment