Last active
January 24, 2020 13:25
-
-
Save Polsaker/518f030743db99d0721c51a73e865616 to your computer and use it in GitHub Desktop.
Alpha 3000
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name Alpha3000 | |
// @namespace http://polsaker.com/ | |
// @version 0.1 | |
// @description try to take over the world! | |
// @author Polsaker | |
// @match https://drive.alpha2000.com.ar/Main | |
// @match https://drive.alpha2000.com.ar/Documento/Index | |
// @grant none | |
// @require http://code.jquery.com/jquery.js | |
// @downloadURL https://gist.github.com/Polsaker/518f030743db99d0721c51a73e865616/raw/eba792c50678c335a78b88a057522b1623d1e221/alpha3000.js | |
// ==/UserScript== | |
(function() { | |
'use strict'; | |
if(document.location.href != 'https://drive.alpha2000.com.ar/Main'){ | |
document.location = 'https://drive.alpha2000.com.ar/Main'; | |
} | |
// Set up materialize | |
$('head style').remove(); | |
$('head').append('<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">'); | |
$('head').append('<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">'); | |
$('head').append('<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>'); | |
$('head title').text('Alpha 3000'); | |
$('body').css('font-size', '16px'); | |
document.body.innerHTML = `<nav class="light-blue lighten-1" role="navigation"> | |
<div class="nav-wrapper container"><a id="logo-container" href="#" class="brand-logo">Alpha 3000</a> | |
<ul class="right hide-on-med-and-down"> | |
<!--<li><a href="#">Navbar Link</a></li>--> | |
</ul> | |
<ul id="nav-mobile" class="sidenav"> | |
<!--<li><a href="#">Navbar Link</a></li>--> | |
</ul> | |
<!--<a href="#" data-target="nav-mobile" class="sidenav-trigger"><i class="material-icons">menu</i></a>--> | |
</div> | |
</nav> | |
<div id="container" class="container" style="padding-top: 2em;max-width: inherit"> | |
</div> | |
`; | |
$('#container').append(`<div class="center-align"><div class="preloader-wrapper big active valign-wrapper"> | |
<div class="spinner-layer spinner-blue-only"> | |
<div class="circle-clipper left"> | |
<div class="circle"></div> | |
</div><div class="gap-patch"> | |
<div class="circle"></div> | |
</div><div class="circle-clipper right"> | |
<div class="circle"></div> | |
</div> | |
</div> | |
</div></div>`); | |
function imgloader(){ | |
return `<div class="center-align"><div class="preloader-wrapper big active valign-wrapper"> | |
<div class="spinner-layer spinner-red-only"> | |
<div class="circle-clipper left"> | |
<div class="circle"></div> | |
</div><div class="gap-patch"> | |
<div class="circle"></div> | |
</div><div class="circle-clipper right"> | |
<div class="circle"></div> | |
</div> | |
</div> | |
</div></div>`; | |
} | |
$.post = function(url, data, success, complete, async, dt){ | |
if(async== undefined)async=false; | |
return $.ajax({ | |
type: 'POST', | |
url: url, | |
async:async, | |
data:data, | |
success: success, | |
contentType: dt | |
}).complete(complete) | |
} | |
var documentos = {}; | |
$.post('/Carpeta/OrdenarDocumentosPorPeriodos', null, null, function (respObj) { | |
// Obtener carpeta raiz... | |
$.post('/Carpeta/ObtenerCarpetas', {CarpetaID: ''}, function(data){ | |
for(let anio of data){ | |
// Obtener los meses\ | |
$.post('/Carpeta/ObtenerCarpetas', {CarpetaID: anio.ID}, function(data){ | |
for(let mes of data){ | |
if(mes.CantidadDocumentosPorCarpeta > 0){ | |
$.post('/Documento/ObtenerDocumentos', {CarpetaID: mes.ID}, function(data){ | |
for(let documento of data.DocumentosView){ | |
let mesNombre = documento.Campos.find((k) => k.Campo.Nombre == "Mes").Valor; | |
documento.mesNombre = mesNombre; | |
documento.mes = mes; | |
documento.mes.Nombre = mesNombre; | |
documento.anio = anio; | |
if(documento.RutaArchivoFirmado){ | |
documento.RutaArchivo = documento.RutaArchivoFirmado; | |
} | |
$.post('/Documento/ConsultaEstados', JSON.stringify({DocumentosID:[documento.ID]}), function(status){ | |
for(let k of status){ | |
if(k.OrdenFirma == 2){ | |
documento.estado = k; | |
} | |
} | |
}, null, null, 'application/json'); | |
documentos[documento.ID] = documento; | |
} | |
}); | |
} | |
} | |
}); | |
} | |
}) | |
$('#container').html(` | |
<style>.collection-item.nofirmado:not(.active){background:#eee !important;}</style> | |
<div class="row"> | |
<div class="col s12 m3"> | |
<div class="collection" id="archivos" style="height: 50%;overflow-y: scroll;white-space: nowrap;font-size: 14px;text-transform: uppercase;"></div> | |
</div> | |
<div class="col s12 m9"> | |
<div id="accionesArchivo"></div> | |
<div id="visorImagen"></div> | |
</div> | |
</div>`); | |
for(let d of Object.keys(documentos).reverse()){ | |
let doc = documentos[d]; | |
let firmado = doc.estado.EstadoFirmaID !== null; | |
$('#archivos').append('<a href="#" data-firmado="' + ((doc.RutaArchivoFirmado) ? '1' : '0') + '" data-rutaarchivo="' + doc.RutaArchivo +'" data-id="' + doc.ID + '" class="archivo collection-item ' + ((firmado) ? '' : 'nofirmado') + '">' + doc.TipoDocumento.Nombre + ' ' + doc.mes.Nombre + ' ' + doc.anio.Nombre + '</a>'); | |
} | |
$('.archivo').click(function(e){ | |
e.preventDefault(); | |
if($(e.currentTarget).hasClass('active')) return false; | |
let rutaArchivo = $(e.currentTarget).data('rutaarchivo'); | |
let id = $(e.currentTarget).data('id'); | |
let firmado = documentos[id].estado.EstadoFirmaID !== null; | |
console.log(documentos[id]); | |
let filename = $(e.currentTarget).text().replace(/\s/g, '-') + '.jpg'; | |
console.log(filename); | |
// Cargar y mostrar recibo | |
$('#visorImagen').html(imgloader()); | |
let cargando = true; | |
$('#accionesArchivo').empty(); | |
$('a.active').removeClass('active'); | |
$('a[data-id="' + id + '"]').addClass('active'); | |
$.post('/WebUtilsArchivoPDF/ObtenerCantidadPaginas', {RutaArchivo: rutaArchivo}, function(data){ | |
for(let pagina = 1; pagina <= data; pagina++){ | |
$.post('/WebUtilsArchivoPDF/ObtenerPaginaArchivo', {RutaArchivo: rutaArchivo, Pagina: pagina}, function(data){ | |
if(cargando){ | |
$('#visorImagen').empty(); | |
cargando = false; | |
if(firmado){ | |
$('#accionesArchivo').html('<a class="btn-flat disabled">Archivo ya firmado</a>'); | |
}else{ | |
$('#accionesArchivo').html(`<a id="firmaConforme" class="waves-effect waves-light btn green">Firmar conforme</a> | |
<a id="firmaNoConforme" class="waves-effect waves-light btn red">Firmar no conforme</a>`); | |
$('#firmaConforme').click(function(){ | |
$.post('/Documento/Firmar', {UsuarioID: documentos[id].estado.UsuarioID, DocumentoID: id, Conforme: true, ObservacionesFirma: ''}, null, function(){ | |
alert('Documento firmado... supongo'); | |
}); | |
}); | |
$('#firmaNoConforme').click(function(){ | |
$.post('/Documento/Firmar', {UsuarioID: documentos[id].estado.UsuarioID, DocumentoID: id, Conforme: false, ObservacionesFirma: ''}, null, function(){ | |
alert('Documento firmado... supongo'); | |
}); | |
}); | |
} | |
$('#accionesArchivo').append('<a id="descarga" class="waves-effect waves-light btn right">Descargar</a>'); | |
$('#descarga').click(function(){ | |
var img = document.images[0]; | |
// atob to base64_decode the data-URI | |
var image_data = atob(img.src.split(',')[1]); | |
// Use typed arrays to convert the binary data to a Blob | |
var arraybuffer = new ArrayBuffer(image_data.length); | |
var view = new Uint8Array(arraybuffer); | |
for (var i=0; i<image_data.length; i++) { | |
view[i] = image_data.charCodeAt(i) & 0xff; | |
} | |
var blob = new Blob([arraybuffer], {type: 'application/octet-stream'}); | |
// Use the URL object to create a temporary URL | |
var url = (window.webkitURL || window.URL).createObjectURL(blob); | |
var a = $("<a style='display: none;'/>"); | |
a.attr("href", url); | |
a.attr("download", filename); | |
$("body").append(a); | |
a[0].click(); | |
window.URL.revokeObjectURL(url); | |
a.remove(); | |
}); | |
} | |
$('#visorImagen').append('<img style="max-width: 100%" src="data:image/jpeg;base64,' + data + '"/>'); | |
}, null, true); | |
} | |
}, null, true); | |
}) | |
$($('#archivos a').first()).click() | |
}, true) | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment