mirror of
https://github.com/cheveguerra/Colaborando.git
synced 2026-08-19 00:46:37 +00:00
Commit inicial
This commit is contained in:
@@ -0,0 +1,173 @@
|
||||
// Función para obtener el valor de un parámetro de la URL
|
||||
function getUrlParameterXX(name) {
|
||||
name = name.replace(/[[]/, '\\[').replace(/[\]]/, '\\]')
|
||||
const regex = new RegExp('[\\?&]' + name + '=([^&#]*)'),
|
||||
results = regex.exec(location.search)
|
||||
return results === null
|
||||
? ''
|
||||
: decodeURIComponent(results[1].replace(/\+/g, ' '))
|
||||
}
|
||||
|
||||
function getUrlParameter(name) {
|
||||
name = name.replace(/[[]/, '\\[').replace(/[\]]/, '\\]')
|
||||
const regex = new RegExp('[\\?&]' + name + '=([^&#]*)', 'i'),
|
||||
results = regex.exec(location.search)
|
||||
return results === null
|
||||
? ''
|
||||
: decodeURIComponent(results[1].replace(/\+/g, ' '))
|
||||
}
|
||||
|
||||
// Función para cargar datos desde el servidor
|
||||
function cargarDatosDesdeServidor() {
|
||||
// Si es "Nueva sesión", no cargar datos desde el servidor
|
||||
console.log('NS: ', getUrlParameter('NS'))
|
||||
if (getUrlParameter('NS') == '') {
|
||||
console.log('Cargando datos desde el servidor...')
|
||||
let nombreArchivo = getUrlParameter('nombre')
|
||||
if (nombreArchivo == '') {
|
||||
nombreArchivo = getUrlParameter('n')
|
||||
}
|
||||
console.log('nombreArchivo:', nombreArchivo)
|
||||
let url = 'manejoDeSesiones.php'
|
||||
if (nombreArchivo != '') {
|
||||
url += '?nombre=' + encodeURIComponent(nombreArchivo)
|
||||
}
|
||||
fetch(url)
|
||||
.then((response) => response.json())
|
||||
.then((data) => {
|
||||
datosCarga = data
|
||||
console.log('DATA: ', data)
|
||||
console.log('eeeeee')
|
||||
console.log(
|
||||
'TAMAÑO DATOS: ',
|
||||
data.data.size,
|
||||
data.status,
|
||||
data.data.arregloGeneral,
|
||||
typeof data.data.arregloGeneral
|
||||
)
|
||||
|
||||
if (
|
||||
typeof data.data.arregloGeneral !== undefined &&
|
||||
data.status === 'success'
|
||||
) {
|
||||
console.log('Datos cargados exitosamente desde el servidor')
|
||||
arregloGeneral = data.data.arregloGeneral
|
||||
// --- INICIO DEL PARCHE para ganancias por trimestre ---
|
||||
if (typeof arregloGeneral.trimestre1 === 'undefined') {
|
||||
arregloGeneral.trimestre1 = 0
|
||||
}
|
||||
if (typeof arregloGeneral.trimestre2 === 'undefined') {
|
||||
arregloGeneral.trimestre2 = 0
|
||||
}
|
||||
if (typeof arregloGeneral.trimestre3 === 'undefined') {
|
||||
arregloGeneral.trimestre3 = 0
|
||||
}
|
||||
if (typeof arregloGeneral.trimestre4 === 'undefined') {
|
||||
arregloGeneral.trimestre4 = 0
|
||||
}
|
||||
// --- FIN DEL PARCHE ---
|
||||
arreglosCapacitaciones = data.data.arreglosCapacitaciones
|
||||
arreglosActivos = data.data.arreglosActivos
|
||||
arreglosDeptos = data.data.arreglosDeptos
|
||||
proyectos = data.data.proyectos
|
||||
// Si el estado guardado contiene el ID del proyecto grande, lo cargamos.
|
||||
if (data.data.arregloGeneral.hasOwnProperty('proyectoGdeActual')) {
|
||||
proyectoGdeActual = data.data.arregloGeneral.proyectoGdeActual
|
||||
} else {
|
||||
proyectoGdeActual = '' // Limpiamos por si no viene en el archivo de guardado.
|
||||
}
|
||||
console.log(arregloGeneral)
|
||||
console.log(arreglosDeptos)
|
||||
|
||||
continuamos()
|
||||
} else if (
|
||||
data.status === 'error' &&
|
||||
data.data.message === 'File not found'
|
||||
) {
|
||||
console.log(
|
||||
'El archivo de sesión no existe. Usando arreglos predefinidos.'
|
||||
)
|
||||
continuamos()
|
||||
// Usar los arreglos definidos en colaborando_arreglos.js
|
||||
guardarDatosEnServidor() // Guardar los arreglos predefinidos
|
||||
} else {
|
||||
console.error('Error cargando los datos:', data.data.message)
|
||||
console.error('Data:', data)
|
||||
}
|
||||
})
|
||||
.catch(
|
||||
(error) =>
|
||||
function () {
|
||||
console.log('Error:', error)
|
||||
}
|
||||
)
|
||||
} else if (getUrlParameter('NS') == '1') {
|
||||
// Usar los arreglos definidos en colaborando_arreglos.js
|
||||
continuamos() //Creamos la nueva sesion
|
||||
guardarDatosEnServidor().then(() => {
|
||||
let url = new URL(window.location.href)
|
||||
url.searchParams.delete('NS') // Quitamos el parametro NS de el URL
|
||||
url.searchParams.delete('ns')
|
||||
console.log('REFRESCANDO SIN ')
|
||||
window.location.href = url.toString() // Refrescamos la pagina SIN el "NS"
|
||||
})
|
||||
} else {
|
||||
console.log(
|
||||
'No se cargan datos desde el servidor porque es una nueva sesión'
|
||||
)
|
||||
// Usar los arreglos definidos en colaborando_arreglos.js
|
||||
continuamos()
|
||||
}
|
||||
}
|
||||
|
||||
// Función para guardar datos en el servidor
|
||||
function guardarDatosEnServidor() {
|
||||
// Añadimos el ID del proyecto grande actual para que se guarde en la sesión.
|
||||
arregloGeneral.proyectoGdeActual = proyectoGdeActual
|
||||
|
||||
const datos = {
|
||||
arregloGeneral,
|
||||
arreglosCapacitaciones,
|
||||
arreglosActivos,
|
||||
arreglosDeptos,
|
||||
proyectos,
|
||||
}
|
||||
|
||||
console.log('Guardando datos en el servidor...')
|
||||
// console.log('TAMAÑO DATOS: ', datos.size)
|
||||
|
||||
let nombreArchivo = getUrlParameter('nombre')
|
||||
if (nombreArchivo == '') {
|
||||
nombreArchivo = getUrlParameter('n')
|
||||
}
|
||||
let url = 'manejoDeSesiones.php'
|
||||
if (nombreArchivo != '') {
|
||||
url += '?nombre=' + encodeURIComponent(nombreArchivo)
|
||||
}
|
||||
|
||||
return fetch(url, {
|
||||
method: 'POST',
|
||||
keepalive: true, // Asegura que la petición termine aunque se cierre la página
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({ data: datos }),
|
||||
})
|
||||
.then((response) => response.json())
|
||||
.then((data) => {
|
||||
if (data.status === 'success') {
|
||||
console.log('Datos guardados exitosamente')
|
||||
} else {
|
||||
console.error('Error guardando los datos:', data.message)
|
||||
}
|
||||
})
|
||||
.catch((error) => console.error('Error:', error))
|
||||
}
|
||||
|
||||
// Cargar datos al iniciar la página
|
||||
document.addEventListener('DOMContentLoaded', cargarDatosDesdeServidor)
|
||||
|
||||
// Guardar datos al cerrar la página
|
||||
window.addEventListener('beforeunload', function () {
|
||||
guardarDatosEnServidor()
|
||||
})
|
||||
Reference in New Issue
Block a user