This commit is contained in:
JORGE LUIS CAUDILLO ESPARZA
2020-08-31 13:33:33 -07:00
parent fb28bfdd96
commit 51fbb931cb
4 changed files with 365 additions and 262 deletions

View File

@@ -31,9 +31,10 @@
padding-left: 10px; padding-left: 10px;
line-height: 25px; line-height: 25px;
} }
.gantt-samples-banner_controls_bar.controls_bar,.gantt_scale_line .gantt_scale_cell,.gantt_grid_scale .gantt_grid_head_cell ,.gantt_grid_scale .gantt_grid_head_cell a,.gantt_grid_scale .gantt_grid_head_cell a:hover {
background-color:#95a5a6 !important; .gantt-samples-banner_controls_bar.controls_bar, .gantt_scale_line .gantt_scale_cell, .gantt_grid_scale .gantt_grid_head_cell, .gantt_grid_scale .gantt_grid_head_cell a, .gantt_grid_scale .gantt_grid_head_cell a:hover {
color:#FFF !important; background-color: #95a5a6 !important;
color: #FFF !important;
} }
</style> </style>
<%--<link href="/Metronic/assets/global/plugins/GantJS/jsgantt.css" rel="stylesheet" type="text/css" />--%> <%--<link href="/Metronic/assets/global/plugins/GantJS/jsgantt.css" rel="stylesheet" type="text/css" />--%>
@@ -62,146 +63,146 @@
<ContentTemplate> <ContentTemplate>
<div class="gantt-samples-banner_controls_bar controls_bar"> <div class="gantt-samples-banner_controls_bar controls_bar">
<strong>Formato: &nbsp; </strong> <strong>Formato: &nbsp; </strong>
<label> <label>
<input name="scales" onclick="zoom_tasks(this)" type="radio" value="week"> <input name="scales" onclick="zoom_tasks(this)" type="radio" value="week">
<span>Horas</span></label> <span>Horas</span></label>
<label> <label>
<input name="scales" onclick="zoom_tasks(this)" type="radio" value="trplweek" checked="true"> <input name="scales" onclick="zoom_tasks(this)" type="radio" value="trplweek" checked="true">
<span>Día</span></label> <span>Día</span></label>
<label> <label>
<input name="scales" onclick="zoom_tasks(this)" type="radio" value="year"> <input name="scales" onclick="zoom_tasks(this)" type="radio" value="year">
<span>Mes</span></label> <span>Mes</span></label>
<label> <label>
<input name="scales" onclick="zoom_tasks(this)" type="radio" value="yearyear"> <input name="scales" onclick="zoom_tasks(this)" type="radio" value="yearyear">
<span>año</span></label> <span>año</span></label>
<div id="filter_hours" style="display: none;"> <div id="filter_hours" style="display: none;">
<span>&nbsp; &nbsp; | &nbsp; &nbsp; </span> <span>&nbsp; &nbsp; | &nbsp; &nbsp; </span>
<strong>Mostrar: &nbsp; </strong> <strong>Mostrar: &nbsp; </strong>
<label> <label>
<input name="scales_filter" onclick="set_scale_units(this)" type="radio" value="full_day"> <input name="scales_filter" onclick="set_scale_units(this)" type="radio" value="full_day">
<span>Dia Completo</span> <span>Dia Completo</span>
</label> </label>
<label> <label>
<input name="scales_filter" onclick="set_scale_units(this)" type="radio" value="work_hours"> <input name="scales_filter" onclick="set_scale_units(this)" type="radio" value="work_hours">
<span>Horario de Oficina</span> <span>Horario de Oficina</span>
</label> </label>
</div> </div>
<div id="filter_days" style=""> <div id="filter_days" style="">
<span>&nbsp; &nbsp; | &nbsp; &nbsp; </span> <span>&nbsp; &nbsp; | &nbsp; &nbsp; </span>
<strong>Mostrar: &nbsp; </strong> <strong>Mostrar: &nbsp; </strong>
<label> <label>
<input name="scales_filter" onclick="set_scale_units(this)" type="radio" value="full_week"> <input name="scales_filter" onclick="set_scale_units(this)" type="radio" value="full_week">
<span>Semana completa</span> <span>Semana completa</span>
</label> </label>
<label> <label>
<input name="scales_filter" onclick="set_scale_units(this)" type="radio" value="work_week"> <input name="scales_filter" onclick="set_scale_units(this)" type="radio" value="work_week">
<span>Dias de Trabajo</span> <span>Dias de Trabajo</span>
</label> </label>
</div> </div>
</div> </div>
<div id="gantt_here" style='width: 100%; height: 100vh;'></div> <div id="gantt_here" style='width: 100%; height: 100vh;'></div>
<div id='<%= iddivAgregarProyecto %>' class="modal ADS fade" role="dialog"> <div id='<%= iddivAgregarProyecto %>' class="modal ADS fade" role="dialog">
<div class="modal-dialog"> <div class="modal-dialog">
<asp:UpdatePanel ID="UpModalProyecto" class="modal-content " tabindex="-1" runat="server" UpdateMode="Conditional"> <asp:UpdatePanel ID="UpModalProyecto" class="modal-content " tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate> <ContentTemplate>
<div class="modal-header"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span> </button> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span> </button>
<h4 class="modal-title" style="text-align: left"> <h4 class="modal-title" style="text-align: left">
<asp:Literal ID="LtlTituloNewProyecto" runat="server">Proyecto</asp:Literal></h4> <asp:Literal ID="LtlTituloNewProyecto" runat="server">Proyecto</asp:Literal></h4>
</div>
<div class="modal-body">
<asp:Panel runat="server" ID="portletTarea" class="portlet light smmallpadding bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Nuevo</span>
</div>
<div class="tools">
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div>
</div> </div>
<div class="portlet-body rowpadding"> <div class="modal-body">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtAsunto" runat="server" CssClass="form-control" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVAsunto" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtAsunto" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Asunto''</b> es necesario, por favor ingréselo." ValidationGroup="GrpTarea"></asp:RequiredFieldValidator>
<asp:Label runat="server" Text="Asunto:" AssociatedControlID="TxtAsunto"></asp:Label>
</div>
<div class="form-group form-md-line-input">
<asp:TextBox ID="TxtDescripcion" runat="server" CssClass="form-control" CausesValidation="true" TextMode="MultiLine" Rows="2"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvDescripcion" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtDescripcion" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Descripción''</b> es necesario, por favor ingréselo." ValidationGroup="GrpTarea"></asp:RequiredFieldValidator>
<asp:Label runat="server" Text="Descripción" AssociatedControlID="TxtDescripcion"></asp:Label>
</div>
<div class="form-group form-md-line-input"> <asp:Panel runat="server" ID="portletTarea" class="portlet light smmallpadding bordered">
<asp:DropDownList ID="DdlPara" runat="server" CssClass="form-control select2me input-sm" DataValueField="CveUsuario" DataTextField="Nombre" Width="100%"> <div class="portlet-title">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem> <div class="caption font-green">
</asp:DropDownList> <i class="icon-pin font-green"></i>
<asp:Label runat="server" AssociatedControlID="DdlPara">Para:</asp:Label> <span class="caption-subject bold uppercase">Nuevo</span>
</div> </div>
<div class="row"> <div class="tools">
<div class="col-sm-6"> <a href="javascript:;" class="collapse" data-original-title="" title=""></a>
<div class="input-group form-group form-md-line-input date date-picker " data-date-format="dd/mm/yyyy hh:mm" style="display: inline-block;">
<asp:TextBox ID="txtFechaI" runat="server" autocomplete="false" CssClass="form-control ADDateTimePicker" CausesValidation="true" MaxLength="18" Width="132px "></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVtxtFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Inicio''</b> es necesario, por favor seleccione uno." ValidationGroup="GrpTarea"></asp:RequiredFieldValidator>
<asp:Label AssociatedControlID="txtFechaI" runat="server" Text="Fecha Inicio"></asp:Label>
<%--<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="txtFechaI" Mask="99/99/9999 99:99" MaskType="DateTime" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>--%>
<ajax:ValidatorCalloutExtender ID="VcoFechaI" runat="server" HighlightCssClass="vco" TargetControlID="RFVtxtFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
</div> </div>
</div> </div>
<div class="col-sm-6"> <div class="portlet-body rowpadding">
<div class="input-group form-group form-md-line-input date date-picker " data-date-format="dd/mm/yyyy hh:mm" style="display: inline-block;"> <div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="txtFechaF" runat="server" autocomplete="false" CssClass="form-control ADDateTimePicker" CausesValidation="true" MaxLength="18" Width="132px " placeholder=""></asp:TextBox> <asp:TextBox ID="TxtAsunto" runat="server" CssClass="form-control" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVtxtFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Fin''</b> es necesario, por favor seleccione uno." ValidationGroup="GrpTarea"></asp:RequiredFieldValidator> <asp:RequiredFieldValidator ID="RFVAsunto" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtAsunto" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Asunto''</b> es necesario, por favor ingréselo." ValidationGroup="GrpTarea"></asp:RequiredFieldValidator>
<asp:Label AssociatedControlID="txtFechaF" runat="server" Text="Fecha Fin"></asp:Label> <asp:Label runat="server" Text="Asunto:" AssociatedControlID="TxtAsunto"></asp:Label>
<%--<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="txtFechaI" Mask="99/99/9999 99:99" MaskType="DateTime" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>--%>
<ajax:ValidatorCalloutExtender ID="VcoFechaF" runat="server" HighlightCssClass="vco" TargetControlID="RFVtxtFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
</div> </div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group form-md-line-input"> <div class="form-group form-md-line-input">
<asp:DropDownList ID="DdlPrioridad" runat="server" CssClass="form-control select2me input-sm" Width="100%"> <asp:TextBox ID="TxtDescripcion" runat="server" CssClass="form-control" CausesValidation="true" TextMode="MultiLine" Rows="2"></asp:TextBox>
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem> <asp:RequiredFieldValidator ID="RfvDescripcion" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtDescripcion" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Descripción''</b> es necesario, por favor ingréselo." ValidationGroup="GrpTarea"></asp:RequiredFieldValidator>
<asp:ListItem Text="Baja" Value="1" class="itembaja"></asp:ListItem> <asp:Label runat="server" Text="Descripción" AssociatedControlID="TxtDescripcion"></asp:Label>
<asp:ListItem Text="Media" Value="2" class="itemmedia"></asp:ListItem>
<asp:ListItem Text="Alta" Value="3" class="itemalta"></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVPrioridad" runat="server" ControlToValidate="DdlPrioridad" Display="None" ErrorMessage="El campo <b>''Prioridad''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpTarea"></asp:RequiredFieldValidator>
<asp:Label runat="server" AssociatedControlID="DdlPrioridad">Prioridad:</asp:Label>
<ajax:ValidatorCalloutExtender ID="VCOPrio" runat="server" TargetControlID="RFVPrioridad" HighlightCssClass="vco" Width="300px"></ajax:ValidatorCalloutExtender>
</div> </div>
</div>
<div class="col-sm-6">
<div class="form-group form-md-line-input"> <div class="form-group form-md-line-input">
<asp:DropDownList ID="DdlTema" runat="server" CssClass="form-control select2me input-sm" DataValueField="CveRevision" DataTextField="Revision" Width="100%"> <asp:DropDownList ID="DdlPara" runat="server" CssClass="form-control select2me input-sm" DataValueField="CveUsuario" DataTextField="Nombre" Width="100%">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem> <asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList> </asp:DropDownList>
<asp:Label runat="server" AssociatedControlID="DdlTema">Tema:</asp:Label> <asp:Label runat="server" AssociatedControlID="DdlPara">Para:</asp:Label>
</div>
<div class="row">
<div class="col-sm-6">
<div class="input-group form-group form-md-line-input date date-picker " data-date-format="dd/mm/yyyy hh:mm" style="display: inline-block;">
<asp:TextBox ID="txtFechaI" runat="server" autocomplete="false" CssClass="form-control ADDateTimePicker" CausesValidation="true" MaxLength="18" Width="132px "></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVtxtFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Inicio''</b> es necesario, por favor seleccione uno." ValidationGroup="GrpTarea"></asp:RequiredFieldValidator>
<asp:Label AssociatedControlID="txtFechaI" runat="server" Text="Fecha Inicio"></asp:Label>
<%--<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="txtFechaI" Mask="99/99/9999 99:99" MaskType="DateTime" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>--%>
<ajax:ValidatorCalloutExtender ID="VcoFechaI" runat="server" HighlightCssClass="vco" TargetControlID="RFVtxtFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="col-sm-6">
<div class="input-group form-group form-md-line-input date date-picker " data-date-format="dd/mm/yyyy hh:mm" style="display: inline-block;">
<asp:TextBox ID="txtFechaF" runat="server" autocomplete="false" CssClass="form-control ADDateTimePicker" CausesValidation="true" MaxLength="18" Width="132px " placeholder=""></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVtxtFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Fin''</b> es necesario, por favor seleccione uno." ValidationGroup="GrpTarea"></asp:RequiredFieldValidator>
<asp:Label AssociatedControlID="txtFechaF" runat="server" Text="Fecha Fin"></asp:Label>
<%--<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="txtFechaI" Mask="99/99/9999 99:99" MaskType="DateTime" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>--%>
<ajax:ValidatorCalloutExtender ID="VcoFechaF" runat="server" HighlightCssClass="vco" TargetControlID="RFVtxtFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group form-md-line-input">
<asp:DropDownList ID="DdlPrioridad" runat="server" CssClass="form-control select2me input-sm" Width="100%">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
<asp:ListItem Text="Baja" Value="1" class="itembaja"></asp:ListItem>
<asp:ListItem Text="Media" Value="2" class="itemmedia"></asp:ListItem>
<asp:ListItem Text="Alta" Value="3" class="itemalta"></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVPrioridad" runat="server" ControlToValidate="DdlPrioridad" Display="None" ErrorMessage="El campo <b>''Prioridad''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpTarea"></asp:RequiredFieldValidator>
<asp:Label runat="server" AssociatedControlID="DdlPrioridad">Prioridad:</asp:Label>
<ajax:ValidatorCalloutExtender ID="VCOPrio" runat="server" TargetControlID="RFVPrioridad" HighlightCssClass="vco" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="col-sm-6">
<div class="form-group form-md-line-input">
<asp:DropDownList ID="DdlTema" runat="server" CssClass="form-control select2me input-sm" DataValueField="CveRevision" DataTextField="Revision" Width="100%">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
<asp:Label runat="server" AssociatedControlID="DdlTema">Tema:</asp:Label>
</div>
</div>
</div> </div>
</div> </div>
</div> </asp:Panel>
<asp:TextBox ID="txtCveEvento" CssClass="hidden txtCveEvento" runat="server"></asp:TextBox>
<asp:Button ID="BtnopenmodalClickGant" OnClick="BtnopenmodalClickGant_Click" CssClass="hidden BtnopenmodalClickGant" UseSubmitBehavior="false" runat="server" Text="Button" />
</div> </div>
</asp:Panel> <div class="modal-footer">
<asp:TextBox ID="txtCveEvento" CssClass="hidden txtCveEvento" runat="server"></asp:TextBox> <asp:LinkButton ID="btnguardarProyecto" OnClick="btnguardarProyecto_Click" CssClass="btn btn-primary" runat="server">Guardar</asp:LinkButton>
<asp:Button ID="BtnopenmodalClickGant" OnClick="BtnopenmodalClickGant_Click" CssClass="hidden BtnopenmodalClickGant" UseSubmitBehavior="false" runat="server" Text="Button" /> <button data-dismiss="modal" class="btn btn-danger">Cancelar</button>
</div> </div>
<div class="modal-footer"> </ContentTemplate>
<asp:LinkButton ID="btnguardarProyecto" OnClick="btnguardarProyecto_Click" CssClass="btn btn-primary" runat="server">Guardar</asp:LinkButton> </asp:UpdatePanel>
<button data-dismiss="modal" class="btn btn-danger">Cancelar</button> </div>
</div> </div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</ContentTemplate> </ContentTemplate>
</asp:UpdatePanel> </asp:UpdatePanel>
<script src="/Metronic/assets/global/plugins/dhtmlxgantt/dhtmlxgantt.js"></script> <script src="/Metronic/assets/global/plugins/dhtmlxgantt/dhtmlxgantt.js"></script>
@@ -216,135 +217,136 @@
$('.txtCveEvento').val(CveEvento); $('.txtCveEvento').val(CveEvento);
$('.BtnopenmodalClickGant').click(); $('.BtnopenmodalClickGant').click();
} }
function zoom_tasks(node) { function zoom_tasks(node) {
switch (node.value) { switch (node.value) {
case "week": case "week":
gantt.config.scale_unit = "day"; gantt.config.scale_unit = "day";
gantt.config.date_scale = "%d %M"; gantt.config.date_scale = "%d %M";
gantt.config.scale_height = 60; gantt.config.scale_height = 60;
gantt.config.min_column_width = 30; gantt.config.min_column_width = 30;
gantt.config.subscales = [ gantt.config.subscales = [
{ unit: "hour", step: 1, date: "%H" } { unit: "hour", step: 1, date: "%H" }
]; ];
show_scale_options("hour"); show_scale_options("hour");
break; break;
case "trplweek": case "trplweek":
gantt.config.min_column_width = 70; gantt.config.min_column_width = 70;
gantt.config.scale_unit = "day"; gantt.config.scale_unit = "day";
gantt.config.date_scale = "%d %M"; gantt.config.date_scale = "%d %M";
gantt.config.subscales = []; gantt.config.subscales = [];
gantt.config.scale_height = 35; gantt.config.scale_height = 35;
show_scale_options("day"); show_scale_options("day");
break; break;
case "month": case "month":
gantt.config.min_column_width = 70; gantt.config.min_column_width = 70;
gantt.config.scale_unit = "week"; gantt.config.scale_unit = "week";
gantt.config.date_scale = "Week #%W"; gantt.config.date_scale = "Week #%W";
gantt.config.subscales = [ gantt.config.subscales = [
{ unit: "day", step: 1, date: "%D" } { unit: "day", step: 1, date: "%D" }
]; ];
show_scale_options(); show_scale_options();
gantt.config.scale_height = 60; gantt.config.scale_height = 60;
break; break;
case "year": case "year":
gantt.config.min_column_width = 70; gantt.config.min_column_width = 70;
gantt.config.scale_unit = "month"; gantt.config.scale_unit = "month";
gantt.config.date_scale = "%M"; gantt.config.date_scale = "%M";
gantt.config.scale_height = 60; gantt.config.scale_height = 60;
show_scale_options(); show_scale_options();
gantt.config.subscales = [ gantt.config.subscales = [
{ unit: "week", step: 1, date: "#%W" } { unit: "week", step: 1, date: "#%W" }
]; ];
break; break;
case "yearyear": case "yearyear":
gantt.config.min_column_width = 70; gantt.config.min_column_width = 70;
gantt.config.scale_unit = "month"; gantt.config.scale_unit = "month";
gantt.config.date_scale = "%y %M"; gantt.config.date_scale = "%y %M";
gantt.config.scale_height = 60; gantt.config.scale_height = 60;
show_scale_options(); show_scale_options();
gantt.config.subscales = [ gantt.config.subscales = [
{ unit: "month", step: 1, date: "#%M" } { unit: "month", step: 1, date: "#%M" }
]; ];
break; break;
}
set_scale_units();
gantt.render();
} }
function show_scale_options(mode) { set_scale_units();
var hourConf = document.getElementById("filter_hours"), gantt.render();
dayConf = document.getElementById("filter_days"); }
if (mode == 'day') { function show_scale_options(mode) {
hourConf.style.display = "none"; var hourConf = document.getElementById("filter_hours"),
dayConf.style.display = ""; dayConf = document.getElementById("filter_days");
dayConf.getElementsByTagName("input")[0].checked = true; if (mode == 'day') {
} else if (mode == "hour") { hourConf.style.display = "none";
hourConf.style.display = ""; dayConf.style.display = "";
dayConf.style.display = "none"; dayConf.getElementsByTagName("input")[0].checked = true;
hourConf.getElementsByTagName("input")[0].checked = true; } else if (mode == "hour") {
} else { hourConf.style.display = "";
hourConf.style.display = "none"; dayConf.style.display = "none";
dayConf.style.display = "none"; hourConf.getElementsByTagName("input")[0].checked = true;
} } else {
hourConf.style.display = "none";
dayConf.style.display = "none";
} }
function set_scale_units(mode) { }
if (mode && mode.getAttribute) { function set_scale_units(mode) {
mode = mode.getAttribute("value"); if (mode && mode.getAttribute) {
} mode = mode.getAttribute("value");
switch (mode) {
case "work_hours":
gantt.config.subscales = [
{ unit: "hour", step: 1, date: "%H" }
];
gantt.ignore_time = function (date) {
if (date.getHours() < 9 || date.getHours() > 16) {
return true;
} else {
return false;
}
};
break;
case "full_day":
gantt.config.subscales = [
{ unit: "hour", step: 3, date: "%H" }
];
gantt.ignore_time = null;
break;
case "work_week":
gantt.ignore_time = function (date) {
if (date.getDay() == 0 || date.getDay() == 6) {
return true;
} else {
return false;
}
};
break;
default:
gantt.ignore_time = null;
break;
}
gantt.render();
} }
switch (mode) {
case "work_hours":
gantt.config.subscales = [
{ unit: "hour", step: 1, date: "%H" }
];
gantt.ignore_time = function (date) {
if (date.getHours() < 9 || date.getHours() > 16) {
return true;
} else {
return false;
}
};
break;
case "full_day":
gantt.config.subscales = [
{ unit: "hour", step: 3, date: "%H" }
];
gantt.ignore_time = null;
break;
case "work_week":
gantt.ignore_time = function (date) {
if (date.getDay() == 0 || date.getDay() == 6) {
return true;
} else {
return false;
}
};
break;
default:
gantt.ignore_time = null;
break;
}
gantt.render();
}
var datosGant = []; var datosGant = [];
function loadGant() { function loadGant() {
gantt.config.date_format = "%Y-%m-%d %H:%i"; gantt.config.date_format = "%Y-%m-%d %H:%i";
gantt.config.order_branch = true;
gantt.i18n.setLocale("es"); gantt.i18n.setLocale("es");
gantt.init("gantt_here"); gantt.init("gantt_here");
gantt.config.columns = [ gantt.config.columns = [
{ name: "text", label: "Proyecto ", width: "*", min_width: 350, tree: true, resize: true, template: function (obj) { return "<a href=\"/OI/TareaDetalle.aspx?CveEvento="+obj.id+"\" target=\"_Blank\">" + obj.text + " </a>" } }, { name: "text", label: "Proyecto ", width: "*", min_width: 350, tree: true, resize: true, template: function (obj) { return "<a href=\"/OI/TareaDetalle.aspx?CveEvento=" + obj.id + "\" target=\"_Blank\">" + obj.text + " </a>" } },
{ name: "start_date", label: "Inicio", min_width: 90, align: "center" }, { name: "start_date", label: "Inicio", min_width: 90, align: "center" },
{ name: "end_date", label: "Fin", min_width: 90, align: "center" }, { name: "end_date", label: "Fin", min_width: 90, align: "center" },
{ name: "progress", label: "Avance", align: "center", template: function (obj) { return "" + (obj.progress * 100).toFixed(2) + " %" } }, { name: "progress", label: "Avance", align: "center", template: function (obj) { return "" + (obj.progress * 100).toFixed(2) + " %" } },
{ name: "duration", label: "Duración", align: "center" }, { name: "duration", label: "Duración", align: "center" },
{ name: "new", label: "<a onclick=\"NuevoEvento("+ RCveEvento +");\" target=\"_Blank\"><i class='fa fa-plus'></i></a>", align: "center",template: function (obj) { return "<a onclick=\"NuevoEvento("+obj.id+");\" target=\"_Blank\"><i class='fa fa-plus'></i> </a>" } } { name: "new", label: "<a onclick=\"NuevoEvento(" + RCveEvento + ");\" target=\"_Blank\"><i class='fa fa-plus'></i></a>", align: "center", template: function (obj) { return "<a onclick=\"NuevoEvento(" + obj.id + ");\" target=\"_Blank\"><i class='fa fa-plus'></i> </a>" } }
/*{name:"staff", label:"Holder(s)", template:function(obj){return obj.holder+"("+obj.progress+")"} },*/ /*{name:"staff", label:"Holder(s)", template:function(obj){return obj.holder+"("+obj.progress+")"} },*/
//{ name: "add", label: "" } //{ name: "add", label: "" }
]; ];
gantt.parse({ gantt.parse({
data:datosGant data: datosGant
//data: [ //data: [
// { id: 1, text: "Apertura de Sucursal", start_date: null, duration: null, parent: 0, progress: 0, open: true }, // { id: 1, text: "Apertura de Sucursal", start_date: null, duration: null, parent: 0, progress: 0, open: true },
// { id: 2, text: "Direccion: evaluación de mercado", start_date: "2020/04/29 00:00", end_date: "2020/05/02 00:00",/*duration: 3,*/ parent: 1, progress: 0.25 }, // { id: 2, text: "Direccion: evaluación de mercado", start_date: "2020/04/29 00:00", end_date: "2020/05/02 00:00",/*duration: 3,*/ parent: 1, progress: 0.25 },
@@ -369,14 +371,30 @@
//] //]
/*, /*,
links:[ links:[
{id:1, source:2, target:3, type:"0"}, {id:1, source:2, target:3, type:"0"},
{id:2, source:3, target:4, type:"0"}, {id:2, source:3, target:4, type:"0"},
{id:3, source:5, target:6, type:"0"} {id:3, source:5, target:6, type:"0"}
]*/ ]*/
}); });
} }
gantt.attachEvent("onBeforeTaskMove", function (id, parent, tindex) {
console.log(tindex)
var task = gantt.getTask(id);
if (task.parent != parent)
return false;
return true;
});
gantt.attachEvent("onRowDragEnd", function (id, target,tindex) {
console.log(tindex)
debugger;
drag_id = null;
gantt.render();
});
loadGant(); loadGant();
</script> </script>
<%--<script> <%--<script>

View File

@@ -5,17 +5,17 @@
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server"> <asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style> <style>
.sortableList h4 { .sortableList h4 {
background-color: #EEE; background-color: #ccc;
margin: 0px; margin: 0px;
padding-top: 10px; padding-top: 10px;
padding-bottom: 10px; padding-bottom: 10px;
text-align: center; text-align: center;
font-weight: 500; font-weight: 600;
} }
.sortableList { .sortableList {
border: 1px solid #eee; border: 1px solid #eee;
width: 250px; width: 258px;
margin-right: 10px; margin-right: 10px;
} }
@@ -31,7 +31,9 @@
min-height: 20px; min-height: 20px;
width: 250px; width: 250px;
padding: 5px 0 0 0; padding: 5px 0 0 0;
margin: 0; background-color: #eee;
border: dotted #ccc;
margin: 4px;
} }
.sortableList ul li { .sortableList ul li {
@@ -45,17 +47,22 @@
padding: 7px 35px 7px 5px; padding: 7px 35px 7px 5px;
} }
ul.ListSorter > li { ul.ListSorter > li {
background-color: #fff; background-color: #fff;
float: left; float: left;
} }
.sortableList ul li .btn.edit { .sortableList ul li .btn.edit {
padding: 2px 4px; padding: 2px 4px;
position: absolute; position: absolute;
right: 5px; right: 5px;
top: 4px; top: 4px;
} }
.bootomadd {
padding: 4px;
padding-bottom: 8px;
}
</style> </style>
</asp:Content> </asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server"> <asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
@@ -99,7 +106,7 @@
</ItemTemplate> </ItemTemplate>
</asp:Repeater> </asp:Repeater>
</ul> </ul>
<div class="text-center"> <div class="text-center bootomadd">
<%# String.Format("<a class=\"btn btn-default\" onclick=\"OpenModalNewTareaUserControl(1,-1,{{CveTableroLista:{0}}});\"> <i class=\"fa fa-plus\"'></i> </a>",Eval("CveTableroLista")) %> <%# String.Format("<a class=\"btn btn-default\" onclick=\"OpenModalNewTareaUserControl(1,-1,{{CveTableroLista:{0}}});\"> <i class=\"fa fa-plus\"'></i> </a>",Eval("CveTableroLista")) %>
</div> </div>
@@ -170,15 +177,42 @@
<asp:UpdatePanel runat="server" ID="Uppositionevento" UpdateMode="Conditional"> <asp:UpdatePanel runat="server" ID="Uppositionevento" UpdateMode="Conditional">
<ContentTemplate> <ContentTemplate>
<asp:Button ID="BtnUpPosition" OnClick="BtnUpPosition_Click" runat="server" Text="Agregar" CssClass="btn btn-primary hidden BtnUpPosition" UseSubmitBehavior="false" ValidationGroup="VGMTablzxczxc" /> <asp:Button ID="BtnUpPosition" OnClick="BtnUpPosition_Click" runat="server" Text="Agregar" CssClass="btn btn-primary hidden BtnUpPosition" UseSubmitBehavior="false" ValidationGroup="VGMTablzxczxc" />
<asp:TextBox ID="Txtcvetablerolista" CssClass=" hidden Txtcvetablerolista" runat="server"></asp:TextBox><asp:TextBox ID="txtCveEvento" CssClass="txtCveEvento hidden" runat="server"></asp:TextBox> <asp:TextBox ID="TxtCveOrdeList" CssClass=" hidden TxtCveOrdeList" runat="server"></asp:TextBox>
<asp:Button ID="BtnOrderList" runat="server" OnClick="BtnOrderList_Click" CssClass="btn btn-primary hidden BtnOrderList" UseSubmitBehavior="false" ValidationGroup="VGMTablzxczxzc" />
<asp:TextBox ID="Txtcvetablerolista" CssClass=" hidden Txtcvetablerolista" runat="server"></asp:TextBox>
<asp:TextBox ID="txtCveEvento" CssClass="txtCveEvento hidden" runat="server"></asp:TextBox>
</ContentTemplate> </ContentTemplate>
</asp:UpdatePanel> </asp:UpdatePanel>
</asp:Content> </asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server"> <asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
<script> <script>
let CurrentorderList = ''
function GetOrderList() {
let OrdeList = '';
let separator = '';
let Orden = 1;
$('.ListSorter > li').each(function () {
OrdeList = OrdeList + separator + Orden + ':' + $(this).data('cvetablerolista');
separator = ',';
Orden = Orden + 1;
});
return OrdeList;
}
function GetOrderListEvento(ulelement) {
let OrdeList = '';
let separator = '';
let Orden = 1;
ulelement.find(' li').each(function () {
OrdeList = OrdeList + separator + Orden + ':' + $(this).data('cveevento');
separator = ',';
Orden = Orden + 1;
});
return OrdeList;
}
function ADSReady() { function ADSReady() {
CurrentorderList = GetOrderList();
var cvetablerolistaold = 0; var cvetablerolistaold = 0;
var cvetablerolistanew = 0; var cvetablerolistanew = 0;
@@ -190,7 +224,16 @@
setTimeout(function () { setTimeout(function () {
cvetablerolistanew = $(event.srcElement).data('cvetablerolista'); cvetablerolistanew = $(event.srcElement).data('cvetablerolista');
//let cveevento = $(event.srcElement).data('cveevento'); //let cveevento = $(event.srcElement).data('cveevento');
//$('.Txtcvetablerolista').val(cvetablerolistanew);
setTimeout(function () {
let OrdeList = GetOrderList();
$('.TxtCveOrdeList').val(OrdeList);
console.log(OrdeList);
if (CurrentorderList != OrdeList) {
$('.BtnOrderList').click();
}
CurrentorderList = OrdeList;
}, 20);
//$('.txtCveEvento').val(cveevento); //$('.txtCveEvento').val(cveevento);
//$('.BtnUpPosition').click(); //$('.BtnUpPosition').click();
}, 20); }, 20);
@@ -202,8 +245,11 @@
start: function (event, ui) { cvetablerolistaold = $(event.srcElement).closest('ul').data('cvetablerolista'); }, start: function (event, ui) { cvetablerolistaold = $(event.srcElement).closest('ul').data('cvetablerolista'); },
stop: function (event, ui) { stop: function (event, ui) {
setTimeout(function () { setTimeout(function () {
cvetablerolistanew = $(event.srcElement).closest('ul').data('cvetablerolista'); let ulelement = $(event.srcElement).closest('ul');
cvetablerolistanew = ulelement.data('cvetablerolista');
let cveevento = $(event.srcElement).data('cveevento'); let cveevento = $(event.srcElement).data('cveevento');
let OrdeList = GetOrderListEvento(ulelement);
$('.TxtCveOrdeList').val(OrdeList);
$('.Txtcvetablerolista').val(cvetablerolistanew); $('.Txtcvetablerolista').val(cvetablerolistanew);
$('.txtCveEvento').val(cveevento); $('.txtCveEvento').val(cveevento);
$('.BtnUpPosition').click(); $('.BtnUpPosition').click();

View File

@@ -164,9 +164,42 @@ public partial class OI_TableroDetalle : ClsPaginas
protected void BtnUpPosition_Click(object sender, EventArgs e) protected void BtnUpPosition_Click(object sender, EventArgs e)
{ {
bool continuar = false;
using (ClsOIEventos eveobj = new ClsOIEventos()) using (ClsOIEventos eveobj = new ClsOIEventos())
{ {
eveobj.UpEventoLista(Txtcvetablerolista.Text.ToEntero(), txtCveEvento.Text.ToEntero()); eveobj.IniciaTransacSQL();
continuar =eveobj.UpEventoLista(Txtcvetablerolista.Text.ToEntero(), txtCveEvento.Text.ToEntero());
if (continuar)
{
List<string> orderlist = TxtCveOrdeList.Text.Split(',').ToList<string>();
continuar = eveobj.OrdenaTareas(orderlist, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario);
}
if (continuar)
{
eveobj.Commit();
}
else
{
eveobj.RollBack();
}
}
}
protected void BtnOrderList_Click(object sender, EventArgs e)
{
List<string> orderlist = TxtCveOrdeList.Text.Split(',').ToList<string>();
using (ClsOIEventos eveobj = new ClsOIEventos())
{
eveobj.IniciaTransacSQL();
if(eveobj.OrdenaListas(orderlist,UsuarioActual.CveEmpresa,UsuarioActual.CveUsuario))
{
eveobj.Commit();
}
else
{
eveobj.RollBack();
}
} }
} }
} }

View File

@@ -94,6 +94,12 @@