This commit is contained in:
jnunez 2018-06-28 17:44:24 +00:00
parent 4ba3f45a54
commit f3130d1f89
31 changed files with 1007 additions and 19 deletions

View file

@ -57,7 +57,7 @@ namespace AYA.SlnSinort.Mantenimientos.Controllers
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
//ViewBag.ReturnUrl = returnUrl;
return View();
}

View file

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<!--
Para obtener más información acerca de cómo configurar una aplicación ASP.NET, consulte
http://go.microsoft.com/fwlink/?LinkId=301880
@ -11,21 +11,41 @@
<section name="messaging" type="DotNetOpenAuth.Configuration.MessagingElement, DotNetOpenAuth.Core" requirePermission="false" allowLocation="true" />
<section name="reporting" type="DotNetOpenAuth.Configuration.ReportingElement, DotNetOpenAuth.Core" requirePermission="false" allowLocation="true" />
<section name="openid" type="DotNetOpenAuth.Configuration.OpenIdElement, DotNetOpenAuth.OpenId" requirePermission="false" allowLocation="true" /><section name="oauth" type="DotNetOpenAuth.Configuration.OAuthElement, DotNetOpenAuth.OAuth" requirePermission="false" allowLocation="true" /></sectionGroup></configSections>
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-AYA.SlnSinort.Mantenimientos-20180604035839.mdf;Initial Catalog=aspnet-AYA.SlnSinort.Mantenimientos-20180604035839;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
<!--<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\aspnet-AYA.SlnSinort.Mantenimientos-20180604035839.mdf;Initial Catalog=aspnet-AYA.SlnSinort.Mantenimientos-20180604035839;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
</connectionStrings>-->
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
<system.web>
<authentication mode="None" />
<!--<authentication mode="None" />-->
<authentication mode="Windows" />
<authorization>
<deny users="?" />
<allow users="*"/>
</authorization>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<httpRuntime targetFramework="4.5" maxQueryStringLength = "12288" maxUrlLength="12288"/>
</system.web>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxQueryString="12288"/>
<!-- Replace * with any number, which is required -->
</requestFiltering>
</security>
<modules>
<remove name="FormsAuthentication" />
</modules>

View file

@ -29,7 +29,11 @@ namespace AYA.SlnSinort.WCF
[OperationContract]
ProyectoNormativoJSON GuardarComentarioProyectoNormativo(ProyectoNormativoJSON model);
//[OperationContract]
//ProyectoNormativoJSON EliminarConvocatoriaProyectoNormativo(ProyectoNormativoJSON model);
[OperationContract]
AdjuntosJSON RemoverAdjunto(AdjuntosJSON model);
}
}

View file

@ -9,6 +9,7 @@ using System.Collections.Generic;
using System.Data;
using System.DirectoryServices;
using System.DirectoryServices.ActiveDirectory;
using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
@ -223,5 +224,38 @@ namespace AYA.SlnSinort.WCF
return respuesta;
}
#endregion
#region Adjuntos
public AdjuntosJSON RemoverAdjunto(AdjuntosJSON model)
{
string Serverpath = HttpContext.Current.Server.MapPath("DocumentosSINORT");
Serverpath += "\\" + model.Carpeta;
try
{
string file;
string fileDirectory = Serverpath;
file = model.Nombre.Replace(" ", "_");
fileDirectory = fileDirectory + "\\" + file;
if (File.Exists(fileDirectory))
{
File.Delete(fileDirectory);
}
}
catch (Exception ex)
{
log.Error(ex);
model.CodigoRespuesta = EnumTipoCodigoRespuesta.ERROR;
}
return model;
}
#endregion
}
}

View file

@ -196,6 +196,9 @@
<Compile Include="Controllers\HomeController.cs" />
<Compile Include="Controllers\ManageController.cs" />
<Compile Include="Controllers\PropuestaNormativaController.cs" />
<Compile Include="FileUploadHandler\FileUploadHandler.ashx.cs">
<DependentUpon>FileUploadHandler.ashx</DependentUpon>
</Compile>
<Compile Include="Global.asax.cs">
<DependentUpon>Global.asax</DependentUpon>
</Compile>
@ -7592,6 +7595,7 @@
<Content Include="fonts\fontawesome-webfont.eot" />
<Content Include="fonts\FontAwesome.otf" />
<Content Include="Content\DataTables-1.10.0\css\dataTables.jqueryui.scss" />
<Content Include="FileUploadHandler\FileUploadHandler.ashx" />
<None Include="Properties\PublishProfiles\AYA.SlnSinort.pubxml" />
<None Include="Scripts\jquery-3.3.1.intellisense.js" />
<Content Include="Scripts\jquery-3.3.1.js" />
@ -7688,14 +7692,18 @@
<Content Include="Sinort-Scripts\SubCategoriaContenido.js" />
<Content Include="Sinort-Scripts\SubCategoriaGrupoTematico.js" />
<Content Include="Sinort-Scripts\Usuario.js" />
<Content Include="Web.config" />
<Content Include="Web.config">
<SubType>Designer</SubType>
</Content>
<Content Include="Web.Debug.config">
<DependentUpon>Web.config</DependentUpon>
</Content>
<Content Include="Web.Release.config">
<DependentUpon>Web.config</DependentUpon>
</Content>
<Content Include="Views\Web.config" />
<Content Include="Views\Web.config">
<SubType>Designer</SubType>
</Content>
<Content Include="Views\_ViewStart.cshtml" />
<Content Include="Views\Shared\Error.cshtml" />
<Content Include="Views\Shared\_Layout.cshtml" />
@ -7724,6 +7732,18 @@
<Content Include="Views\Catalogos\Usuario.cshtml" />
<Content Include="Views\Catalogos\Contenido.cshtml" />
<Content Include="Views\Catalogos\SubCategoriaContenido.cshtml" />
<Content Include="Views\Account\ConfirmEmail.cshtml" />
<Content Include="Views\Account\ExternalLoginConfirmation.cshtml" />
<Content Include="Views\Account\ExternalLoginFailure.cshtml" />
<Content Include="Views\Account\ForgotPassword.cshtml" />
<Content Include="Views\Account\ForgotPasswordConfirmation.cshtml" />
<Content Include="Views\Account\Login.cshtml" />
<Content Include="Views\Account\Register.cshtml" />
<Content Include="Views\Account\ResetPassword.cshtml" />
<Content Include="Views\Account\ResetPasswordConfirmation.cshtml" />
<Content Include="Views\Account\SendCode.cshtml" />
<Content Include="Views\Account\VerifyCode.cshtml" />
<Content Include="Views\Account\_ExternalLoginsListPartial.cshtml" />
<Content Include="Views\Catalogos\GrupoTematico.cshtml" />
<Content Include="Views\Catalogos\SubCategoriaGrupoTematico.cshtml" />
</ItemGroup>

View file

@ -22,7 +22,11 @@ namespace AYA.SlnSinort
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include("~/Scripts/bootstrap.min.js"));
bundles.Add(new ScriptBundle("~/bundles/moment").Include("~/Scripts/moment.js").Include("~/Scripts/moment-with-langs.js"));
bundles.Add(new ScriptBundle("~/bundles/toastr").Include("~/Scripts/toastr.js"));
bundles.Add(new ScriptBundle("~/bundles/jquery-dataTables").Include("~/Scripts/DataTables-1.10.0/jquery.dataTables.min.js"));
bundles.Add(new ScriptBundle("~/bundles/jquery-dataTables").Include("~/Scripts/DataTables-1.10.0/jquery.dataTables.js"));
bundles.Add(new ScriptBundle("~/bundles/jquery-fileupload")
.Include("~/Scripts/jQuery.FileUpload/jquery.fileupload.js")
.Include("~/Scripts/jQuery.FileUpload/jquery.fileupload-process.js")
.Include("~/Scripts/jQuery.FileUpload/jquery.fileupload-validate.js"));
bundles.Add(new ScriptBundle("~/bundles/timepicki").Include("~/Scripts/timepicki.js"));
bundles.Add(new StyleBundle("~/Content/css")
@ -45,7 +49,8 @@ namespace AYA.SlnSinort
bundles.Add(new StyleBundle("~/Content/sinort-css")
.Include("~/Content/themes/base/jquery.ui.css")
.Include("~/Content/toastr.css")
.Include("~/Content/DataTables-1.10.0/css/jquery.dataTables.css"));
.Include("~/Content/DataTables-1.10.0/css/jquery.dataTables.css")
.Include("~/Content/jQuery.FileUpload/css/jquery.fileupload.css"));
bundles.Add(new ScriptBundle("~/Script-Global")
.Include("~/Sinort-Scripts/ROTn.js")

View file

@ -21,10 +21,12 @@ namespace AYA.SlnSinort.Controllers
//parametros.GetValueKeyRegedit("SinortWCF", false);
var SinortCatalogosWCF = "http://localhost/AYA.SlnSinort.WCF/SinortCatalogos.svc";
//parametros.GetValueKeyRegedit("SinortCatalogosWCF",false);
var Adjuntos = "http://localhost/AYA.SlnSinort/FileUploadHandler";
ViewBag.SinortWCF = SinortWCF;
ViewBag.SinortCatalogosWCF = SinortCatalogosWCF;
ViewBag.AtesaUser = User.Identity.GetUserName();
ViewBag.AdjuntosDoc = Adjuntos;
}
}
}

View file

@ -0,0 +1 @@
<%@ WebHandler Language="C#" CodeBehind="FileUploadHandler.ashx.cs" Class="webAgenciaVirtual.FileUploadHandler" %>

View file

@ -0,0 +1,104 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;
using System.IO;
using System.Web.Script.Serialization;
namespace webAgenciaVirtual
{
/// <summary>
/// Descripción breve de FileUploadHandler
/// </summary>
public class FileUploadHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
try
{
if (context.Request.QueryString["carpeta"] != null)
{
string pathrefer = context.Request.UrlReferrer.ToString();
string Serverpath = HttpContext.Current.Server.MapPath("DocumentosSINORT");
Serverpath += "\\" + context.Request.QueryString["carpeta"].ToString();
var postedFile = context.Request.Files[0];
string ext = Path.GetExtension(postedFile.FileName);
//if (ext == ".pdf" || ext == ".PDF")
//{
string file;
//For IE to get file name
if (HttpContext.Current.Request.Browser.Browser.ToUpper() == "IE")
{
string[] files = postedFile.FileName.Split(new char[] { '\\' });
file = files[files.Length - 1].Replace(" ","_");
}
else
{
file = postedFile.FileName.Replace(" ", "_");
}
if (!Directory.Exists(Serverpath))
Directory.CreateDirectory(Serverpath);
string fileDirectory = Serverpath;
if (context.Request.QueryString["fileName"] != null)
{
file = context.Request.QueryString["fileName"].Replace(" ", "_");
if (File.Exists(fileDirectory + "\\" + file))
{
File.Delete(fileDirectory + "\\" + file);
}
}
//string ext = Path.GetExtension(fileDirectory + "\\" + file);
//file = Guid.NewGuid() + ext;
fileDirectory = Serverpath + "\\" + file;
postedFile.SaveAs(fileDirectory);
context.Response.AddHeader("Vary", "Accept");
try
{
if (context.Request["HTTP_ACCEPT"].Contains("application/json"))
context.Response.ContentType = "application/json";
else
context.Response.ContentType = "text/plain";
}
catch
{
context.Response.ContentType = "text/plain";
}
//context.Response.Write("Success");
context.Response.ContentType = "text/plain";
context.Response.Write(file);
return;
//}
//else
//{
// context.Response.Write("errorEXT");
// return;
//}
}
}
catch (Exception exp)
{
context.Response.Write(exp.Message);
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}

View file

@ -1,5 +1,6 @@
var CatalogosWCF = $("#hiddenSinortCatalogosWCF").val();
var SinortWCF = $("#hiddenSinortWCF").val();
var AdjuntosDoc = $("#hiddenAdjuntos").val();
var server = window.location.protocol + "//" + window.location.hostname + "/" + (window.location.pathname.split('/')[1]) + "/";
var string_empty = "";
var Atesa = {};

View file

@ -1,10 +1,11 @@
var SelectedCatalog = '';
var model = {};
var Nombre;
jQuery(document).ready(function () {
getDataModel();
});
this.getDataModel = function () {
@ -74,6 +75,14 @@ this.getDataModel = function () {
$("#txtFechaInicio").datepicker();
$("#txtFechaFinalizacion").datepicker();
$("#txtFechaMaximaConfirmarParticipacion").datepicker();
$("#btnAdjuntar").unbind("click");
$('#btnAdjuntar').click(function () {
AbrirAdjuntos();
});
}
this.CargarEmisor = function (filtro) {
@ -377,4 +386,278 @@ this.EnviarCorreo = function () {
AjaxPostData(uri, model, false, false, null, null, null);
ENDREQUEST();
}
}
this.AbrirAdjuntos = function () {
$('#modalAdjuntos').modal('show');
}
//$(function () {
// 'use strict';
// // Change this to the location of your server-side upload handler:
// var url = '',
// uploadButton = $('<button/>')
// .addClass('btn btn-primary')
// .prop('disabled', true)
// .text('Pocesando...')
// .on('click', function () {
// var $this = $(this),
// data = $this.data();
// $this
// .off('click')
// .text('Cancelar')
// .on('click', function () {
// $this.remove();
// data.abort();
// });
// data.submit().always(function () {
// $this.remove();
// });
// });
// $('#fileupload').fileupload({
// url: url,
// dataType: 'POST',
// autoUpload: false,
// maxFileSize: 999000,
// disableImageResize: /Android(?!.*Chrome)|Opera/
// .test(window.navigator.userAgent),
// previewMaxWidth: 100,
// previewMaxHeight: 100,
// previewCrop: true
// }).on('fileuploadadd', function (e, data) {
// var tableAdjuntos = $('#tableAdjuntos').DataTable();
// data.context = $('<div/>').appendTo('#files');
// $.each(data.files, function (index, file) {
// tableAdjuntos.row.add(
// [file.name],
// data)
// .draw();
// var node = $('<p/>')
// .append($('<span/>').text(file.name));
// if (!index) {
// node
// .append('<br>')
// .append(uploadButton.clone(true).data(data));
// }
// node.appendTo(data.context);
// });
// }).on('fileuploadprocessalways', function (e, data) {
// var index = data.index,
// file = data.files[index],
// node = $(data.context.children()[index]);
// if (file.preview) {
// node
// .prepend('<br>')
// .prepend(file.preview);
// }
// if (file.error) {
// node
// .append('<br>')
// .append($('<span class="text-danger"/>').text(file.error));
// }
// if (index + 1 === data.files.length) {
// data.context.find('button')
// .text('Agregar')
// .prop('disabled', !!data.files.error);
// }
// }).on('fileuploadprogress', function (e, data) {
// var progress = parseInt(data.loaded / data.total * 100, 10);
// $('#progress .progress-bar').css(
// 'width',
// progress + '%'
// );
// }).on('fileuploaddone', function (e, data) {
// }).on('fileuploadfail', function (e, data) {
// $.each(data.files, function (index) {
// var error = $('<span class="text-danger"/>').text('Error al subir el archivo.');
// $(data.context.children()[index])
// .append('<br>')
// .append(error);
// $('#progress .progress-bar').css(
// 'width','0%');
// ENDREQUEST();
// });
// });
// .on('fileuploaddone', function (e, data) {
// $.each(data.result.files, function (index, file) {
// if (file.url) {
// var link = $('<a>')
// .attr('target', '_blank')
// .prop('href', file.url);
// $(data.context.children()[index])
// .wrap(link);
// } else if (file.error) {
// var error = $('<span class="text-danger"/>').text(file.error);
// $(data.context.children()[index])
// .append('<br>')
// .append(error);
// }
// });
//}).on('fileuploadfail', function (e, data) {
// $.each(data.files, function (index) {
// var error = $('<span class="text-danger"/>').text('Error al subir el archivo.');
// $(data.context.children()[index])
// .append('<br>')
// .append(error);
// alert(data.files.name);
// ENDREQUEST();
// });
//}).prop('disabled', !$.support.fileInput)
// .parent().addClass($.support.fileInput ? undefined : 'disabled');
//});
//$('#tableAdjuntos').on('click', 'button', function () {
// if (!confirm("¿Desea remover el documento?")) return;
// var data = $('#tableAdjuntos').DataTable().row($(this).parents('tr')).data();
// model = {
// Nombre: data[0],
// Carpeta: 1,
// }
// var uri = SinortWCF + '/api/RemoverAdjunto';
// AjaxPostData(uri, model, false, false, null, null, null);
// var tableAdjuntos = $('#tableAdjuntos').DataTable();
// tableAdjuntos.row($(this).parents('tr')).remove().draw();
//});
this.AbrirDocumento = function (value) {
EsRespuesta = true;
Nombre = value;
var a = '';
alert('prueba');
}
$(function () {
$('#fileupload').fileupload({
url: AdjuntosDoc + '/FileUploadHandler.ashx?carpeta=1',
type: 'POST',
add: function (e, data) {
data.submit();
},
progress: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#progress .progress-bar').css(
'width',
progress + '%'
);
var tableAdjuntos = $('#tableAdjuntos').DataTable();
$.each(data.files, function (index, file) {
var optionVer = $("#ucbtnVerAdjuntos").html();
optionVer = replaceAll("[$Nombre]", file.name, optionVer);
var optionRemover = $("#ucbtnRemoverAdjuntos").html();
tableAdjuntos.row.add(
[file.name,
optionVer,
optionRemover])
.draw();
//var node = $('<p/>')
// .append($('<span/>').text(file.name));
//if (!index) {
// node
// .append('<br>')
// .append(uploadButton.clone(true).data(data));
//}
//node.appendTo(data.context);
});
},
success: function (response, status) {
$('#progress .progress-bar').css(
'width','0%');
ENDREQUEST();
if (response != '') {
}
},
error: function (error) {
if (error.status = "200") {
$('#progress .progress-bar').css(
'width', '0%');
ENDREQUEST();
//console.log('success', response);
if (error.responseText != '') {
}
}
}
});
});

View file

@ -0,0 +1,10 @@
@{
ViewBag.Title = "Confirmar correo electrónico";
}
<h2>@ViewBag.Title.</h2>
<div>
<p>
Gracias por confirmar su correo electrónico. @Html.ActionLink("Haga clic aquí para iniciar sesión", "Iniciar sesión", "Cuenta", routeValues: null, htmlAttributes: new { id = "loginLink" })
</p>
</div>

View file

@ -0,0 +1,36 @@
@model AYA.SlnSinort.Mantenimientos.Models.ExternalLoginConfirmationViewModel
@{
ViewBag.Title = "Registrarse";
}
<h2>@ViewBag.Title.</h2>
<h3>Asocie su cuenta @ViewBag.LoginProvider.</h3>
@using (Html.BeginForm("ExternalLoginConfirmation", "Account", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
@Html.AntiForgeryToken()
<h4>Formulario de asociación</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<p class="text-info">
Se autenticó correctamente con <strong>@ViewBag.LoginProvider</strong>.
Introduzca un nombre de usuario para este sitio y haga clic en el botón Registrar para finalizar
el inicio de sesión.
</p>
<div class="form-group">
@Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.Email, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.Email, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" class="btn btn-default" value="Registrarse" />
</div>
</div>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

View file

@ -0,0 +1,8 @@
@{
ViewBag.Title = "Error de inicio de sesión";
}
<hgroup>
<h2>@ViewBag.Title.</h2>
<h3 class="text-danger">El inicio de sesión con el servicio no se ha llevado a cabo correctamente.</h3>
</hgroup>

View file

@ -0,0 +1,29 @@
@model AYA.SlnSinort.Mantenimientos.Models.ForgotPasswordViewModel
@{
ViewBag.Title = "¿Olvidó la contraseña?";
}
<h2>@ViewBag.Title.</h2>
@using (Html.BeginForm("ForgotPassword", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
@Html.AntiForgeryToken()
<h4>Especifique su correo electrónico.</h4>
<hr />
@Html.ValidationSummary("", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.Email, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" class="btn btn-default" value="Vínculo de correo electrónico" />
</div>
</div>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

View file

@ -0,0 +1,13 @@
@{
ViewBag.Title = "Confirmación de contraseña olvidada";
}
<hgroup class="title">
<h1>@ViewBag.Title.</h1>
</hgroup>
<div>
<p>
Compruebe el correo electrónico para restablecer la contraseña.
</p>
</div>

View file

@ -0,0 +1,63 @@
@using AYA.SlnSinort.Models
@model LoginViewModel
@{
ViewBag.Title = "Iniciar sesión";
}
<h2>@ViewBag.Title.</h2>
<div class="row">
<div class="col-md-8">
<section id="loginForm">
@using (Html.BeginForm("Login", "Account", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
@Html.AntiForgeryToken()
<h4>Use una cuenta local para iniciar sesión.</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.Email, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.Email, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.PasswordFor(m => m.Password, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.Password, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<div class="checkbox">
@Html.CheckBoxFor(m => m.RememberMe)
@Html.LabelFor(m => m.RememberMe)
</div>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Iniciar sesión" class="btn btn-default" />
</div>
</div>
<p>
@Html.ActionLink("Registrar como nuevo usuario", "Register")
</p>
@* Habilite esta opción después de habilitar la confirmación de la cuenta para la función de restablecimiento de contraseña
<p>
@Html.ActionLink("¿Ha olvidado su contraseña?", "ForgotPassword")
</p>*@
}
</section>
</div>
<div class="col-md-4">
<section id="socialLoginForm">
@Html.Partial("_ExternalLoginsListPartial", new ExternalLoginListViewModel { ReturnUrl = ViewBag.ReturnUrl })
</section>
</div>
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

View file

@ -0,0 +1,41 @@
@model AYA.SlnSinort.Mantenimientos.Models.RegisterViewModel
@{
ViewBag.Title = "Registrarse";
}
<h2>@ViewBag.Title.</h2>
@using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
@Html.AntiForgeryToken()
<h4>Cree una cuenta nueva.</h4>
<hr />
@Html.ValidationSummary("", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.Email, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.PasswordFor(m => m.Password, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" class="btn btn-default" value="Registrarse" />
</div>
</div>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

View file

@ -0,0 +1,42 @@
@model AYA.SlnSinort.Mantenimientos.Models.ResetPasswordViewModel
@{
ViewBag.Title = "Restablecer contraseña";
}
<h2>@ViewBag.Title.</h2>
@using (Html.BeginForm("ResetPassword", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
@Html.AntiForgeryToken()
<h4>Restablezca la contraseña.</h4>
<hr />
@Html.ValidationSummary("", new { @class = "text-danger" })
@Html.HiddenFor(model => model.Code)
<div class="form-group">
@Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.Email, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.PasswordFor(m => m.Password, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" class="btn btn-default" value="Restablecer" />
</div>
</div>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

View file

@ -0,0 +1,12 @@
@{
ViewBag.Title = "Confirmación de restablecimiento de contraseña";
}
<hgroup class="title">
<h1>@ViewBag.Title.</h1>
</hgroup>
<div>
<p>
Se restableció la contraseña. @Html.ActionLink("Haga clic aquí para iniciar sesión", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" })
</p>
</div>

View file

@ -0,0 +1,24 @@
@model AYA.SlnSinort.Mantenimientos.Models.SendCodeViewModel
@{
ViewBag.Title = "Enviar";
}
<h2>@ViewBag.Title.</h2>
@using (Html.BeginForm("SendCode", "Account", new { ReturnUrl = Model.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" })) {
@Html.AntiForgeryToken()
@Html.Hidden("rememberMe", @Model.RememberMe)
<h4>Enviar código de verificación</h4>
<hr />
<div class="row">
<div class="col-md-8">
Seleccione el proveedor de autenticación en dos fases:
@Html.DropDownListFor(model => model.SelectedProvider, Model.Providers)
<input type="submit" value="Enviar" class="btn btn-default" />
</div>
</div>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

View file

@ -0,0 +1,38 @@
@model AYA.SlnSinort.Mantenimientos.Models.VerifyCodeViewModel
@{
ViewBag.Title = "Verificar";
}
<h2>@ViewBag.Title.</h2>
@using (Html.BeginForm("VerifyCode", "Account", new { ReturnUrl = Model.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" })) {
@Html.AntiForgeryToken()
@Html.Hidden("provider", @Model.Provider)
@Html.Hidden("rememberMe", @Model.RememberMe)
<h4>Introducir código de verificación</h4>
<hr />
@Html.ValidationSummary("", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(m => m.Code, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.Code, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<div class="checkbox">
@Html.CheckBoxFor(m => m.RememberBrowser)
@Html.LabelFor(m => m.RememberBrowser)
</div>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" class="btn btn-default" value="Enviar" />
</div>
</div>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

View file

@ -0,0 +1,28 @@
@model AYA.SlnSinort.Models.ExternalLoginListViewModel
@using Microsoft.Owin.Security
<h4>Use otro servicio para iniciar sesión.</h4>
<hr />
@{
var loginProviders = Context.GetOwinContext().Authentication.GetExternalAuthenticationTypes();
if (loginProviders.Count() == 0) {
<div>
<p>
No hay servicios de autenticación externos configurados. Consulte <a href="http://go.microsoft.com/fwlink/?LinkId=403804">este artículo</a>
para obtener más información acerca de la configuración de esta aplicación ASP.NET para admitir el inicio de sesión mediante servicios externos.
</p>
</div>
}
else {
using (Html.BeginForm("ExternalLogin", "Account", new { ReturnUrl = Model.ReturnUrl })) {
@Html.AntiForgeryToken()
<div id="socialLoginList">
<p>
@foreach (AuthenticationDescription p in loginProviders) {
<button type="submit" class="btn btn-default" id="@p.AuthenticationType" name="provider" value="@p.AuthenticationType" title="Inicie sesión con su cuenta @p.Caption">@p.AuthenticationType</button>
}
</p>
</div>
}
}
}

View file

@ -57,7 +57,7 @@
@*Descripción*@
<div class="form-group">
<label class="col-sm-4 control-label ControlsForms">Descripción</label>
<div class="col-sm-8">

View file

@ -6,10 +6,11 @@
<body>
<div >
<section class="content-header"></section>
@*<section class="content-header"></section>
<section class="content container-fluid"></section>
<section class="content container-fluid"></section>*@
</div>
</body>

View file

@ -127,7 +127,9 @@
<button type="button" id="btnGuardar" class="btn btn-success btn-medium" data-dismiss="modal">
<i class="fa fa-floppy-o"></i>&nbsp;Guardar
</button>
<button type="button" id="btnAdjuntar" class="btn btn-success btn-medium" data-dismiss="modal">
<i class="fa fa-floppy-o"></i>&nbsp;Adjuntar
</button>
</div>
</div>
@ -321,6 +323,119 @@
<i class="fa fa-remove"></i>&nbsp;&nbsp;Remover
</button>
</div>
@*---------------------Adjuntos---------------------------------------------------------*@
<div class="modal fade" id="modalAdjuntos" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" style="display: none;">
<div class="modal-dialog modal-lg" style="width:40%;">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title">Catálogo Emisor</h4>
</div>
<div class="modal-body">
<br />
<div class="row">
<div class="col-md-12">
<span class="btn btn-success fileinput-button">
<i class="fa fa-plus"></i>
<span>Agregar...</span>
<input type="file" id="fileupload" name="file" />
</span>
<br>
<br>
<div id="progress" class="progress">
<div class="progress-bar progress-bar-success"></div>
</div>
<table id="tableAdjuntos" class="table table-striped">
<thead>
<tr>
<th class="col-sm-2">Nombre</th>
<th></th>
<th></th>
</tr>
</thead>
</table>
<div id="ucbtnVerAdjuntos" style=" display:none;">
<button type="button" id="btnVerAdjuntos" class="btn btn-default btn-xs" onclick="AbrirDocumento([$value])">
<i class=" fa fa-search">
</i>&nbsp;&nbsp;Ver
</button>
</div>
<div id="ucbtnRemoverAdjuntos" style=" display:none;">
<button type="button" id="btnRemoverAdjuntos" class="btn btn-default btn-xs">
<i class="fa fa-remove"></i>&nbsp;&nbsp;Remover
</button>
</div>
@*<div id="progressbar" style="width:100px;display:none;">
<div>
Subiendo
</div>
</div>*@
@*<span class="btn btn-success fileinput-button">
<i class="fa fa-plus"></i>
<span>Agregar...</span>
<!-- The file input field used as target for the file upload widget -->
<input id="fileupload" type="file" name="files[]" multiple>
</span>
<br>
<br>
<!-- The global progress bar -->
<div id="progress" class="progress">
<div class="progress-bar progress-bar-success"></div>
</div>
<!-- The container for the uploaded files -->
<div id="files" class="files"></div>
<div class="col-md-12">
<table id="tableAdjuntos" class="table table-striped">
<thead>
<tr>
<th class="col-sm-2">Nombre</th>
<th class="col-sm-4">Archivo</th>
<th></th>
</tr>
</thead>
</table>
</div>*@
</div>
</div>
</div>
</div>
</div>
</div>
}
@section scripts{

View file

@ -40,6 +40,7 @@
@Scripts.Render("~/bundles/toastr")
@Scripts.Render("~/bundles/jquery-dataTables")
@Scripts.Render("~/bundles/bootstrap-switch")
@Scripts.Render("~/bundles/jquery-fileupload")
@* Seccion futuros scripts *@
<style>
@ -392,6 +393,7 @@
<input type="hidden" id="hiddenHref" value="@string.Concat(Url.Action("View", "Controller", null), ViewBag.QueryEncripted)">
<input type="hidden" id="hiddenMenuCreado" value="" />
<input type="hidden" id="hiddenUsuario" value="@ViewBag.AtesaUser" />
<input type="hidden" id="hiddenAdjuntos" value="@ViewBag.AdjuntosDoc" />
</body>

View file

@ -1,6 +1,9 @@
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
@ -34,6 +37,10 @@
</system.webServer>
<system.web>
<compilation>
<assemblies>
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

View file

@ -17,6 +17,11 @@
<connectionStrings>
<add name="SinortContex" connectionString="data source=192.168.1.37;initial catalog=SinortAyA;persist security info=True;user id=sinort;password=sinort2018;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
</connectionStrings>
<!--<connectionStrings>
<add name="ADConn" connectionString="LDAP://localhost" />
</connectionStrings>-->
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
@ -28,6 +33,30 @@
<add key="MaxCountFileLoad" value="3" />
</appSettings>
<system.web>
<!--<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
<membership defaultProvider="ADMembership" >
<providers>
<clear />
<add
name="ADMembership"
type="System.Web.Security.ActiveDirectoryMembershipProvider,
System.Web,
Version=2.0.0.0,
Culture=neutral,
PublicToken=b03f5f7f11d50a3a"
connectionStringName="ADConn"
connectionUsername="domain/user"
connectionPassword="pwd" />
</providers>
</membership>-->
<authentication mode="None" />
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
@ -36,6 +65,12 @@
<modules>
<remove name="FormsAuthentication" />
</modules>
<staticContent>
<remove fileExtension=".woff" />
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
<remove fileExtension=".woff2" />
<mimeMap fileExtension=".woff2" mimeType="font/woff2" />
</staticContent>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />

View file

@ -22,5 +22,14 @@ namespace AYA.SlnSinortModel.Entidades
public List<ProyectoNormativo> ProyectosNormativos { get; set; }
public List<Convocatoria> ListaConvocatoria { get; set; }
}
public class AdjuntosJSON : BaseJson
{
public string Nombre { get; set; }
public string Carpeta { get; set; }
}
}

View file

@ -8,6 +8,7 @@ namespace AYA.SlnSinortModel.Sinort
public partial class SinortContex : Contex
{
public virtual DbSet<Aplicacion> Aplicacion { get; set; }
public virtual DbSet<Categoria> Categoria { get; set; }