cambio home page

This commit is contained in:
Samuele E. Locatelli
2021-01-08 09:07:33 +01:00
parent f39ffb4f99
commit c9d36e1e9d
23 changed files with 1272 additions and 848 deletions
-2
View File
@@ -2,13 +2,11 @@
<bundles version="1.0">
<styleBundle path="~/Content/css">
<include path="~/Content/Site.css" />
<!--<include path="~/Content/Style.css" />-->
<include path="~/Content/fonts.css" />
<include path="~/Content/font-awesome.css" />
</styleBundle>
<styleBundle path="~/Content/bootstrap">
<include path="~/Content/bootstrap.css" />
<!--<include path="~/Content/bootstrap-theme.css" />-->
</styleBundle>
</bundles>
+100 -14
View File
@@ -4,20 +4,6 @@ body {
padding-bottom: 20px;*/
font: 'Roboto', sans-serif;
}
.logo {
background-image: url(../images/logo_sw.png);
-khtml-opacity: 0.5;
-moz-opacity: 0.5;
-ms-filter: "alpha(opacity=50)";
filter: alpha(opacity=50);
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0.5);
opacity: 0.5;
width: 800px;
height: 300px;
margin: 50px auto 50px auto;
vertical-align: middle;
background-repeat: no-repeat;
}
/* Wrapping element */
/* Set some basic padding to keep content from hitting the edges */
.body-content {
@@ -36,6 +22,106 @@ body {
.textBig {
font-size: 1.5em;
}
/*------------------------------------------------------------------
[ Shortcuts / .shortcuts ]
*/
.shortcuts {
text-align: center;
}
.shortcuts .shortcut {
min-width: 9rem;
min-height: 5rem;
display: inline-block;
padding: 0.66666667rem 0;
margin: 0 2px 1em;
vertical-align: top;
text-decoration: none;
background: #F3F3F3;
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#eeeeee));
background-image: -webkit-linear-gradient(top, #ffffff, 0%, #eeeeee, 100%);
background-image: -moz-linear-gradient(top, #ffffff 0%, #eeeeee 100%);
background-image: linear-gradient(to bottom, #ffffff 0%, #eeeeee 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffeeeeee', GradientType=0);
border: 1px solid #ddd;
box-sizing: border-box;
border-radius: 0.5rem;
}
.shortcuts .shortcut-sm {
min-width: 4.5rem;
min-height: 3rem;
display: inline-block;
padding: 0.25rem 0;
margin: 0 2px 1em;
vertical-align: top;
text-decoration: none;
background: #F3F3F3;
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#eeeeee));
background-image: -webkit-linear-gradient(top, #ffffff, 0%, #eeeeee, 100%);
background-image: -moz-linear-gradient(top, #ffffff 0%, #eeeeee 100%);
background-image: linear-gradient(to bottom, #ffffff 0%, #eeeeee 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffeeeeee', GradientType=0);
border: 1px solid #ddd;
box-sizing: border-box;
border-radius: 0.5rem;
}
.shortcuts .shortcut .shortcut-icon {
width: 100%;
margin-top: 0;
margin-bottom: 0;
font-size: 2rem;
color: #333;
}
.shortcuts .shortcut-sm .shortcut-icon {
width: 100%;
margin-top: 0;
margin-bottom: 0;
font-size: 2rem;
color: #333;
}
.shortcuts .shortcut:hover {
background: #E8E8E8;
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fafafa), to(#e1e1e1));
background-image: -webkit-linear-gradient(top, #fafafa, 0%, #e1e1e1, 100%);
background-image: -moz-linear-gradient(top, #fafafa 0%, #e1e1e1 100%);
background-image: linear-gradient(to bottom, #fafafa 0%, #e1e1e1 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa', endColorstr='#ffe1e1e1', GradientType=0);
}
.shortcuts .shortcut-sm:hover {
background: #E8E8E8;
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fafafa), to(#e1e1e1));
background-image: -webkit-linear-gradient(top, #fafafa, 0%, #e1e1e1, 100%);
background-image: -moz-linear-gradient(top, #fafafa 0%, #e1e1e1 100%);
background-image: linear-gradient(to bottom, #fafafa 0%, #e1e1e1 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa', endColorstr='#ffe1e1e1', GradientType=0);
}
.shortcuts .shortcut:active {
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.shortcuts .shortcut-sm:active {
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.shortcuts .shortcut:hover .shortcut-icon {
color: #C93;
}
.shortcuts .shortcut-sm:hover .shortcut-icon {
color: #666;
}
.shortcuts .shortcut-label {
display: block;
margin-top: 0.75em;
font-weight: 400;
color: #666;
}
@media (max-width: 992px) {
.shortcuts .shortcut {
min-width: 8rem;
min-height: 4rem;
}
}
/* Set widths on the form inputs since otherwise they're 100% wide */
/*input,
select,
+115 -15
View File
@@ -5,21 +5,6 @@ body {
font: 'Roboto', sans-serif;
}
.logo {
background-image: url(../images/logo_sw.png);
-khtml-opacity: .50;
-moz-opacity: .50;
-ms-filter: "alpha(opacity=50)";
filter: alpha(opacity=50);
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0.5);
opacity: .50;
width: 800px;
height: 300px;
margin: 50px auto 50px auto;
vertical-align: middle;
background-repeat: no-repeat;
}
/* Wrapping element */
/* Set some basic padding to keep content from hitting the edges */
.body-content {
@@ -42,6 +27,121 @@ body {
font-size: 1.5em;
}
/*------------------------------------------------------------------
[ Shortcuts / .shortcuts ]
*/
@blSCut: 1rem;
.shortcuts {
text-align: center;
}
.shortcuts .shortcut {
min-width: @blSCut * 9;
min-height: @blSCut * 5;
display: inline-block;
padding: @blSCut*2/3 0;
margin: 0 2px 1em;
vertical-align: top;
text-decoration: none;
background: #F3F3F3;
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#eeeeee));
background-image: -webkit-linear-gradient(top, #ffffff, 0%, #eeeeee, 100%);
background-image: -moz-linear-gradient(top, #ffffff 0%, #eeeeee 100%);
background-image: linear-gradient(to bottom, #ffffff 0%, #eeeeee 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffeeeeee', GradientType=0);
border: 1px solid #ddd;
box-sizing: border-box;
border-radius: @blSCut/2;
}
.shortcuts .shortcut-sm {
min-width: @blSCut * 4.5;
min-height: @blSCut * 3;
display: inline-block;
padding: @blSCut/4 0;
margin: 0 2px 1em;
vertical-align: top;
text-decoration: none;
background: #F3F3F3;
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#eeeeee));
background-image: -webkit-linear-gradient(top, #ffffff, 0%, #eeeeee, 100%);
background-image: -moz-linear-gradient(top, #ffffff 0%, #eeeeee 100%);
background-image: linear-gradient(to bottom, #ffffff 0%, #eeeeee 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffeeeeee', GradientType=0);
border: 1px solid #ddd;
box-sizing: border-box;
border-radius: @blSCut/2;
}
.shortcuts .shortcut .shortcut-icon {
width: 100%;
margin-top: 0;
margin-bottom: 0;
font-size: @blSCut*2;
color: #333;
}
.shortcuts .shortcut-sm .shortcut-icon {
width: 100%;
margin-top: 0;
margin-bottom: 0;
font-size: @blSCut*2;
color: #333;
}
.shortcuts .shortcut:hover {
background: #E8E8E8;
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fafafa), to(#e1e1e1));
background-image: -webkit-linear-gradient(top, #fafafa, 0%, #e1e1e1, 100%);
background-image: -moz-linear-gradient(top, #fafafa 0%, #e1e1e1 100%);
background-image: linear-gradient(to bottom, #fafafa 0%, #e1e1e1 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa', endColorstr='#ffe1e1e1', GradientType=0);
}
.shortcuts .shortcut-sm:hover {
background: #E8E8E8;
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fafafa), to(#e1e1e1));
background-image: -webkit-linear-gradient(top, #fafafa, 0%, #e1e1e1, 100%);
background-image: -moz-linear-gradient(top, #fafafa 0%, #e1e1e1 100%);
background-image: linear-gradient(to bottom, #fafafa 0%, #e1e1e1 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa', endColorstr='#ffe1e1e1', GradientType=0);
}
.shortcuts .shortcut:active {
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.shortcuts .shortcut-sm:active {
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.shortcuts .shortcut:hover .shortcut-icon {
color: #C93;
}
.shortcuts .shortcut-sm:hover .shortcut-icon {
color: #666;
}
.shortcuts .shortcut-label {
display: block;
margin-top: .75em;
font-weight: 400;
color: #666;
}
@media (max-width: 992px) {
.shortcuts .shortcut {
min-width: @blSCut * 8;
min-height: @blSCut * 4;
}
}
/* Set widths on the form inputs since otherwise they're 100% wide */
/*input,
select,
+1 -1
View File
@@ -1 +1 @@
body{font:'Roboto',sans-serif;}.logo{background-image:url(../images/logo_sw.png);-khtml-opacity:.5;-moz-opacity:.5;-ms-filter:"alpha(opacity=50)";filter:alpha(opacity=50);filter:progid:DXImageTransform.Microsoft.Alpha(opacity=.5);opacity:.5;width:800px;height:300px;margin:50px auto 50px auto;vertical-align:middle;background-repeat:no-repeat;}.body-content{font:'Roboto',sans-serif;}.textCondens{font-family:'Roboto Condensed',sans-serif;}.textNormal{font-family:'Roboto',sans-serif;}.textBig{font-size:1.5em;}@media screen and (min-width:768px){.jumbotron{margin-top:20px;}.body-content{padding:0;}input,select,textarea{max-width:100%;}}.elTimbSmart{padding:.2em;font-size:1.1em;line-height:1.3em;}.ui-input-btn input{opacity:.5;}.GridPager a,.GridPager span{display:block;height:1.5em;min-width:1.1em;text-align:center;text-decoration:none;}.GridPager a{background-color:#f5f5f5;color:#969696;}.GridPager span{background-color:#a1dcf2;color:#000;font-weight:bold;}
body{font:'Roboto',sans-serif;}.body-content{font:'Roboto',sans-serif;}.textCondens{font-family:'Roboto Condensed',sans-serif;}.textNormal{font-family:'Roboto',sans-serif;}.textBig{font-size:1.5em;}.shortcuts{text-align:center;}.shortcuts .shortcut{min-width:9rem;min-height:5rem;display:inline-block;padding:.66666667rem 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:.5rem;}.shortcuts .shortcut-sm{min-width:4.5rem;min-height:3rem;display:inline-block;padding:.25rem 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:.5rem;}.shortcuts .shortcut .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut-sm .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut:hover{background:#e8e8e8;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fafafa),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#fafafa,0%,#e1e1e1,100%);background-image:-moz-linear-gradient(top,#fafafa 0%,#e1e1e1 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#e1e1e1 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa',endColorstr='#ffe1e1e1',GradientType=0);}.shortcuts .shortcut-sm:hover{background:#e8e8e8;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fafafa),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#fafafa,0%,#e1e1e1,100%);background-image:-moz-linear-gradient(top,#fafafa 0%,#e1e1e1 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#e1e1e1 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa',endColorstr='#ffe1e1e1',GradientType=0);}.shortcuts .shortcut:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut-sm:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut:hover .shortcut-icon{color:#c93;}.shortcuts .shortcut-sm:hover .shortcut-icon{color:#666;}.shortcuts .shortcut-label{display:block;margin-top:.75em;font-weight:400;color:#666;}@media(max-width:992px){.shortcuts .shortcut{min-width:8rem;min-height:4rem;}}@media screen and (min-width:768px){.jumbotron{margin-top:20px;}.body-content{padding:0;}input,select,textarea{max-width:100%;}}.elTimbSmart{padding:.2em;font-size:1.1em;line-height:1.3em;}.ui-input-btn input{opacity:.5;}.GridPager a,.GridPager span{display:block;height:1.5em;min-width:1.1em;text-align:center;text-decoration:none;}.GridPager a{background-color:#f5f5f5;color:#969696;}.GridPager span{background-color:#a1dcf2;color:#000;font-weight:bold;}
+6 -6
View File
@@ -16,12 +16,12 @@
}
.logo {
background-image: url(../images/logo_sw.png);
-khtml-opacity: .50;
-moz-opacity: .50;
-khtml-opacity: 0.5;
-moz-opacity: 0.5;
-ms-filter: "alpha(opacity=50)";
filter: alpha(opacity=50);
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0.5);
opacity: .50;
opacity: 0.5;
width: 800px;
height: 300px;
margin: 50px auto 50px auto;
@@ -30,12 +30,12 @@
}
.logo:hover {
background-image: url(../images/logo_sw.png);
-khtml-opacity: 1.0;
-moz-opacity: 1.0;
-khtml-opacity: 1;
-moz-opacity: 1;
-ms-filter: "alpha(opacity=100)";
filter: alpha(opacity=100);
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=1);
opacity: 1.0;
opacity: 1;
width: 800px;
height: 300px;
margin: 50px auto 50px auto;
+30 -36
View File
@@ -5,19 +5,19 @@
@import url('../Content/JQClock.css');
* {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}
*:before,
*:after {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}
.logo
{
*:before,
*:after {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}
.logo {
background-image: url(../images/logo_sw.png);
-khtml-opacity: .50;
-moz-opacity: .50;
@@ -28,11 +28,11 @@
width: 800px;
height: 300px;
margin: 50px auto 50px auto;
vertical-align:middle;
vertical-align: middle;
background-repeat: no-repeat;
}
.logo:hover
{
.logo:hover {
background-image: url(../images/logo_sw.png);
-khtml-opacity: 1.0;
-moz-opacity: 1.0;
@@ -43,12 +43,11 @@
width: 800px;
height: 300px;
margin: 50px auto 50px auto;
vertical-align:middle;
vertical-align: middle;
background-repeat: no-repeat;
}
.bodyMainCenter
{
.bodyMainCenter {
/* background-image: url(../images/logo_sw.png); -khtml-opacity: .50; -moz-opacity: .50; -ms-filter: "alpha(opacity=50)"; filter: alpha(opacity=50); filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0.5); opacity: .50; */
vertical-align: middle;
border-left: #0D0083 1px solid; /*border-top: #0D0083 1px solid;*/
@@ -59,28 +58,27 @@
background-attachment: scroll;
background-repeat: no-repeat;
}
.bodyCenter
{
.bodyCenter {
vertical-align: middle;
text-align: center;
height: 100%;
width: 100%;
}
.centerMenu
{
.centerMenu {
background-color: White;
text-align: center;
border-width: thin;
border-style: groove;
border-color: Blue;
}
A:hover
{
A:hover {
color: red;
}
.bodyMain
{
.bodyMain {
/* background-image: url(../images/logo_sw.png); -khtml-opacity: .50; -moz-opacity: .50; -ms-filter: "alpha(opacity=50)"; filter: alpha(opacity=50); filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0.5); opacity: .50; */
vertical-align: top;
border-left: #0D0083 1px solid; /*border-top: #0D0083 1px solid;*/
@@ -90,16 +88,15 @@ A:hover
background-attachment: scroll;
background-repeat: no-repeat;
}
.bodyMainEmpty
{
.bodyMainEmpty {
vertical-align: top;
border-left: maroon 1px solid;
height: 100%;
width: 100%;
}
.bodyMainWhite
{
.bodyMainWhite {
vertical-align: top;
border-left: maroon 1px solid;
height: 100%;
@@ -109,21 +106,18 @@ A:hover
background-repeat: no-repeat;
}
.bodyMainWhite a:hover
{
.bodyMainWhite a:hover {
color: white;
}
.bodyMainNoLogo
{
.bodyMainNoLogo {
vertical-align: top;
border-left: maroon 1px solid;
height: 100%;
width: 100%;
}
.bodyMainLogoPiccolo
{
.bodyMainLogoPiccolo {
background-image: url(../images/sfondoMedio.png);
background-position: 97% 210px;
vertical-align: top;
@@ -132,4 +126,4 @@ A:hover
width: 100%;
background-attachment: scroll;
background-repeat: no-repeat;
}
}
+8
View File
@@ -526,6 +526,7 @@
<Content Include="WebMasterPages\AjaxTitle.master" />
<Content Include="WebMasterPages\MasterAjax.master" />
<Content Include="WebUserControls\cmp_footer.ascx" />
<Content Include="WebUserControls\cmp_homeButtons.ascx" />
<Content Include="WebUserControls\cmp_menuTop.ascx" />
<Content Include="WebUserControls\cmp_periodoAnalisi.ascx" />
<Content Include="WebUserControls\cmp_toggle.ascx" />
@@ -889,6 +890,13 @@
<Compile Include="WebUserControls\cmp_footer.ascx.designer.cs">
<DependentUpon>cmp_footer.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_homeButtons.ascx.cs">
<DependentUpon>cmp_homeButtons.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="WebUserControls\cmp_homeButtons.ascx.designer.cs">
<DependentUpon>cmp_homeButtons.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_menuTop.ascx.cs">
<DependentUpon>cmp_menuTop.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
+2 -2
View File
@@ -63,7 +63,7 @@
</Scripts>
</asp:ScriptManager>
<uc1:cmp_menuTop runat="server" ID="cmp_menuTop" />
<div class="row my-5">
<div class="row mt-4 mb-5">
<div class="col-12">
</div>
</div>
@@ -92,4 +92,4 @@
<uc1:cmp_footer runat="server" ID="cmp_footer" />
</form>
</body>
</html>
</html>
@@ -0,0 +1,24 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="cmp_homeButtons.ascx.cs" Inherits="GPW_Admin.WebUserControls.cmp_homeButtons" %>
<div class="shortcuts">
<div class="row">
<div class="col-12">
<asp:Repeater ID="menu" runat="server" DataSourceID="XmlMenu">
<ItemTemplate>
<asp:Repeater ID="voci" runat="server" DataSource='<%# XPathSelect("voce") %>'>
<ItemTemplate>
<a href='<%# XPath("@url").ToString().Replace("~/","")%>' class="shortcut text-dark">
<i class='<%# XPath("@description") + " fa-2x" %>'></i>
<span class="shortcut-label"><%# XPath("@title")%></span>
</a>
</ItemTemplate>
</asp:Repeater>
</li>
</ItemTemplate>
<SeparatorTemplate>
</SeparatorTemplate>
</asp:Repeater>
<asp:XmlDataSource ID="XmlMenu" runat="server" EnableCaching="True" CacheDuration="5"></asp:XmlDataSource>
</div>
</div>
</div>
@@ -0,0 +1,53 @@
using SteamWare;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace GPW_Admin.WebUserControls
{
public partial class cmp_homeButtons : System.Web.UI.UserControl
{
#region Private Methods
/// <summary>
/// aggiornamento del menù
/// </summary>
private void updateTreeMenu()
{
try
{
if (string.IsNullOrEmpty(user_std.UtSn.mappaSito))
{
Response.Redirect("Default", true);
}
else
{
XmlMenu.Data = user_std.UtSn.mappaSito;
XmlMenu.XPath = "mainMenu/menu";
XmlMenu.DataBind();
}
}
catch
{
Response.Redirect("Default", true);
}
}
#endregion Private Methods
#region Protected Methods
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
updateTreeMenu();
}
}
#endregion Protected Methods
}
}
@@ -0,0 +1,35 @@
//------------------------------------------------------------------------------
// <generato automaticamente>
// Codice generato da uno strumento.
//
// Le modifiche a questo file possono causare un comportamento non corretto e verranno perse se
// il codice viene rigenerato.
// </generato automaticamente>
//------------------------------------------------------------------------------
namespace GPW_Admin.WebUserControls
{
public partial class cmp_homeButtons
{
/// <summary>
/// Controllo menu.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.Repeater menu;
/// <summary>
/// Controllo XmlMenu.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.XmlDataSource XmlMenu;
}
}
+6 -6
View File
@@ -34,14 +34,14 @@
</SeparatorTemplate>
</asp:Repeater>
<asp:XmlDataSource ID="XmlMenu" runat="server" EnableCaching="True" CacheDuration="5"></asp:XmlDataSource>
<%--<li class="nav-item">
<a class="nav-link text-light" href="ForceReload"><i class="fa fa-retweet shortcut-icon"></i> <%: traduci("ForceReload") %></a>
</li>--%>
<li class="nav-item">
<a class="nav-link text-light" href="About"><i class="fa fa-dot-circle-o" aria-hidden="true"></i><%: traduci ("About") %></a>
<a class="nav-link text-light" href="Reset"><i class="fa fa-retweet shortcut-icon"></i>&nbsp;<%: traduci("Reset") %></a>
</li>
<li class="nav-item">
<a class="nav-link text-light" href="Contact"><i class="fa fa-handshake-o" aria-hidden="true"></i><%: traduci ("Contacts") %></a>
<a class="nav-link text-light" href="About"><i class="fa fa-dot-circle-o" aria-hidden="true"></i>&nbsp;<%: traduci ("About") %></a>
</li>
<li class="nav-item">
<a class="nav-link text-light" href="Contact"><i class="fa fa-handshake-o" aria-hidden="true"></i>&nbsp;<%: traduci ("Contacts") %></a>
</li>
</ul>
<div runat="server" id="divSearch" class="form-inline my-2 my-lg-0">
@@ -49,4 +49,4 @@
<asp:LinkButton runat="server" ID="lbtSearch" class="btn btn-secondary my-2 my-sm-0" type="submit" OnClick="lbtSearch_Click"># <%: traduci ("Search") %> <i class="fa fa-search" aria-hidden="true"></i></asp:LinkButton>
</div>
</div>
</nav>
</nav>
+227 -224
View File
@@ -5,235 +5,238 @@
{ %>
<link href="~/css/Style.css" rel="stylesheet" type="text/css" />
<% } %>
<div class="row table-secondary mb-1">
<div class="col-2 input-group-text" runat="server" id="divReturn">
<asp:HyperLink runat="server" ID="hlReturnProj" NavigateUrl="~/progetti" CssClass="btn btn-block btn-outline-warning text-dark"><i class="fa fa-arrow-left" aria-hidden="true"></i> Progetti</asp:HyperLink>
<asp:HiddenField runat="server" ID="hfCardStyle" Value="default" />
<div runat="server" id="divCardMain" class="card border-dark">
<div runat="server" id="divCardHeader" class="card-header bg-dark">
<div class="row card-title mb-0">
<div class="col-2" runat="server" id="divReturn">
<asp:HyperLink runat="server" ID="hlReturnProj" NavigateUrl="~/progetti" CssClass="btn btn-block btn-warning"><i class="fa fa-arrow-left" aria-hidden="true"></i> Progetti</asp:HyperLink>
</div>
<div class="col-4">
<uc1:mod_filtro ID="filtroCli" runat="server" filterChekText="filtroCliente" comboWidth="150" changeCheckVisible="false"
isChecked="true" />
<asp:ObjectDataSource ID="odsClienti" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData"
TypeName="GPW_data.DS_UtilityTableAdapters.v_selClientiTableAdapter"></asp:ObjectDataSource>
</div>
<div class="col-6">
<uc1:mod_filtro ID="filtroPrj" runat="server" filterChekText="filtroProgetto" comboWidth="200" changeCheckEnabled="false"
changeCheckVisible="false" isChecked="true" />
<asp:ObjectDataSource ID="odsProj" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="getByConditio"
TypeName="GPW_data.DS_UtilityTableAdapters.v_selProgettiTableAdapter">
<SelectParameters>
<asp:ControlParameter ControlID="filtroCli" DefaultValue="0" PropertyName="valore" Name="conditio" Type="String" />
<asp:Parameter DefaultValue="false" Name="soloAttivi" Type="Boolean" />
</SelectParameters>
</asp:ObjectDataSource>
</div>
</div>
</div>
<div class="col-4 input-group-text">
<uc1:mod_filtro ID="filtroCli" runat="server" filterChekText="filtroCliente" comboWidth="150" changeCheckVisible="false"
isChecked="true" />
<asp:ObjectDataSource ID="odsClienti" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData"
TypeName="GPW_data.DS_UtilityTableAdapters.v_selClientiTableAdapter"></asp:ObjectDataSource>
</div>
<div class="col-4 input-group-text">
<uc1:mod_filtro ID="filtroPrj" runat="server" filterChekText="filtroProgetto" comboWidth="200" changeCheckEnabled="false"
changeCheckVisible="false" isChecked="true" />
<asp:ObjectDataSource ID="odsProj" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="getByConditio"
TypeName="GPW_data.DS_UtilityTableAdapters.v_selProgettiTableAdapter">
<SelectParameters>
<asp:ControlParameter ControlID="filtroCli" DefaultValue="0" PropertyName="valore" Name="conditio" Type="String" />
<asp:Parameter DefaultValue="false" Name="soloAttivi" Type="Boolean" />
</SelectParameters>
</asp:ObjectDataSource>
</div>
</div>
<div class="fontPiccolo">
<asp:GridView ID="grView" runat="server" AllowSorting="True" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="idxFase" DataSourceID="ods" CssClass="table table-sm table-striped" OnDataBound="grView_DataBound" OnSelectedIndexChanged="grView_SelectedIndexChanged">
<EditRowStyle CssClass="table-primary" />
<SelectedRowStyle CssClass="table-info" />
<HeaderStyle CssClass="default" />
<PagerStyle CssClass="active GridPager" />
<PagerSettings Mode="NumericFirstLast" />
<EmptyDataTemplate>
<asp:Button ID="btnNewEmpty" runat="server" OnClick="btnNewEmpty_Click" Text='<%# traduci("NewFase") %>' CssClass="btnNew"
ToolTip='<%# traduci("NewFaseExpl") %>' Visible='<%# isWritable() %>' />
</EmptyDataTemplate>
<Columns>
<asp:TemplateField ShowHeader="False" ItemStyle-HorizontalAlign="Center" ItemStyle-Wrap="false">
<HeaderTemplate>
<asp:LinkButton ID="lbtReset" runat="server" CssClass="btn btn-sm btn-info" ToolTip='<%# traduci("Reset") %>' CausesValidation="False" OnClick="btnReset_Click" Visible="true"><i class="fa fa-refresh" aria-hidden="true"></i></asp:LinkButton>
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton runat="server" ID="lbtSelect" CssClass="btn btn-sm btn-info" CausesValidation="False" CommandName="Select" ToolTip='<%# traduci("Select") %>'><i class="fa fa-search" aria-hidden="true"></i></asp:LinkButton>
<asp:LinkButton runat="server" ID="lbtEdit" CssClass="btn btn-sm btn-primary" CausesValidation="False" CommandName="Edit" ToolTip='<%# traduci("Edit") %>' Visible='<%# isWritable() %>'><i class="fa fa-edit" aria-hidden="true"></i></asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton runat="server" ID="lbtUpdate" CssClass="btn btn-sm btn-success" CausesValidation="False" CommandName="Update" ToolTip='<%# traduci("Update") %>'><i class="fa fa-check" aria-hidden="true"></i></asp:LinkButton>
<asp:LinkButton runat="server" ID="lbtCancel" CssClass="btn btn-sm btn-warning" CausesValidation="False" CommandName="Cancel" ToolTip='<%# traduci("Cancel") %>'><i class="fa fa-ban" aria-hidden="true"></i></asp:LinkButton>
</EditItemTemplate>
<FooterTemplate>
<asp:LinkButton runat="server" ID="lbtInsert" CssClass="btn btn-sm btn-success" CausesValidation="False" CommandName="Insert" ToolTip='<%# traduci("Insert") %>' OnClick="lblIns_click"><i class="fa fa-plus" aria-hidden="true"></i></asp:LinkButton>
<asp:LinkButton runat="server" ID="lbtCancel" CssClass="btn btn-sm btn-warning" CausesValidation="False" CommandName="Cancel" ToolTip='<%# traduci("Cancel") %>'><i class="fa fa-ban" aria-hidden="true"></i></asp:LinkButton>
</FooterTemplate>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Left" HeaderText="nomeFase" SortExpression="nomeFase">
<ItemTemplate>
<div class="divSx">
<asp:Image runat="server" ID="imgSpaz" Width='<%# widthByCod(Eval("codFase")) %>' ImageUrl="~/images/EmptyImg.png" />
</div>
<div class="divSx">
<div style="text-align: left; padding: 2px 3px 2px 3px;" class='<%# classByCod(Eval("codFase")) %>'>
<asp:Label ID="nomeFaseLabel" runat="server" Text='<%# Eval("nomeFase") %>' Font-Strikeout='<%# invBool(Eval("Attivo")) %>'
Font-Bold="true" />
<div class="card-body">
<asp:GridView ID="grView" runat="server" AllowSorting="True" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="idxFase" DataSourceID="ods" CssClass="table table-sm table-striped" OnDataBound="grView_DataBound" OnSelectedIndexChanged="grView_SelectedIndexChanged">
<EditRowStyle CssClass="table-primary" />
<SelectedRowStyle CssClass="table-info" />
<HeaderStyle CssClass="default" />
<PagerStyle CssClass="active GridPager" />
<PagerSettings Mode="NumericFirstLast" />
<EmptyDataTemplate>
<asp:Button ID="btnNewEmpty" runat="server" OnClick="btnNewEmpty_Click" Text='<%# traduci("NewFase") %>' CssClass="btnNew"
ToolTip='<%# traduci("NewFaseExpl") %>' Visible='<%# isWritable() %>' />
</EmptyDataTemplate>
<Columns>
<asp:TemplateField ShowHeader="False" ItemStyle-HorizontalAlign="Center" ItemStyle-Wrap="false">
<HeaderTemplate>
<asp:LinkButton ID="lbtReset" runat="server" CssClass="btn btn-sm btn-info" ToolTip='<%# traduci("Reset") %>' CausesValidation="False" OnClick="btnReset_Click" Visible="true"><i class="fa fa-refresh" aria-hidden="true"></i></asp:LinkButton>
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton runat="server" ID="lbtSelect" CssClass="btn btn-sm btn-info" CausesValidation="False" CommandName="Select" ToolTip='<%# traduci("Select") %>'><i class="fa fa-search" aria-hidden="true"></i></asp:LinkButton>
<asp:LinkButton runat="server" ID="lbtEdit" CssClass="btn btn-sm btn-primary" CausesValidation="False" CommandName="Edit" ToolTip='<%# traduci("Edit") %>' Visible='<%# isWritable() %>'><i class="fa fa-edit" aria-hidden="true"></i></asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton runat="server" ID="lbtUpdate" CssClass="btn btn-sm btn-success" CausesValidation="False" CommandName="Update" ToolTip='<%# traduci("Update") %>'><i class="fa fa-check" aria-hidden="true"></i></asp:LinkButton>
<asp:LinkButton runat="server" ID="lbtCancel" CssClass="btn btn-sm btn-warning" CausesValidation="False" CommandName="Cancel" ToolTip='<%# traduci("Cancel") %>'><i class="fa fa-ban" aria-hidden="true"></i></asp:LinkButton>
</EditItemTemplate>
<FooterTemplate>
<asp:LinkButton runat="server" ID="lbtInsert" CssClass="btn btn-sm btn-success" CausesValidation="False" CommandName="Insert" ToolTip='<%# traduci("Insert") %>' OnClick="lblIns_click"><i class="fa fa-plus" aria-hidden="true"></i></asp:LinkButton>
<asp:LinkButton runat="server" ID="lbtCancel" CssClass="btn btn-sm btn-warning" CausesValidation="False" CommandName="Cancel" ToolTip='<%# traduci("Cancel") %>'><i class="fa fa-ban" aria-hidden="true"></i></asp:LinkButton>
</FooterTemplate>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Left" HeaderText="nomeFase" SortExpression="nomeFase">
<ItemTemplate>
<div class="divSx">
<asp:Image runat="server" ID="imgSpaz" Width='<%# widthByCod(Eval("codFase")) %>' ImageUrl="~/images/EmptyImg.png" />
</div>
<%--<asp:Label ID="codFaseLabel" runat="server" Text='<%# Eval("codFase") %>' />--%>
<div class="fontPiccolo textGrigio" style="text-align: left; padding: 2px 3px 2px 3px;">
<asp:Label ID="descrizioneFaseLabel" runat="server" Text='<%# Eval("descrizioneFase") %>' />
<div class="divSx">
<div style="text-align: left; padding: 2px 3px 2px 3px;" class='<%# classByCod(Eval("codFase")) %>'>
<asp:Label ID="nomeFaseLabel" runat="server" Text='<%# Eval("nomeFase") %>' Font-Strikeout='<%# invBool(Eval("Attivo")) %>'
Font-Bold="true" />
</div>
<%--<asp:Label ID="codFaseLabel" runat="server" Text='<%# Eval("codFase") %>' />--%>
<div class="fontPiccolo textGrigio" style="text-align: left; padding: 2px 3px 2px 3px;">
<asp:Label ID="descrizioneFaseLabel" runat="server" Text='<%# Eval("descrizioneFase") %>' />
</div>
</div>
</div>
</ItemTemplate>
<EditItemTemplate>
<div class="divSx">
<asp:Image runat="server" ID="imgSpaz" Width='<%# widthByCod(Eval("codFase")) %>' ImageUrl="~/images/EmptyImg.png" />
</div>
<div class="divSx">
<asp:TextBox ID="txtnomeFase" runat="server" Text='<%# Bind("nomeFase") %>' Width="20em" />
&nbsp;
</ItemTemplate>
<EditItemTemplate>
<div class="divSx">
<asp:Image runat="server" ID="imgSpaz" Width='<%# widthByCod(Eval("codFase")) %>' ImageUrl="~/images/EmptyImg.png" />
</div>
<div class="divSx">
<asp:TextBox ID="txtnomeFase" runat="server" Text='<%# Bind("nomeFase") %>' Width="20em" />
&nbsp;
<asp:TextBox ID="txtdescrizioneFase" runat="server" Text='<%# Bind("descrizioneFase") %>' Width="20em" />
</div>
</EditItemTemplate>
<FooterTemplate>
<div class="divSx">
<asp:Image runat="server" ID="imgSpaz" Width='<%# widthByCod(Eval("codFase")) %>' ImageUrl="~/images/EmptyImg.png" />
</div>
<div class="divSx">
<asp:TextBox ID="txtnomeFase" runat="server" Text='<%# Bind("nomeFase") %>' Width="20em" />
&nbsp;
</div>
</EditItemTemplate>
<FooterTemplate>
<div class="divSx">
<asp:Image runat="server" ID="imgSpaz" Width='<%# widthByCod(Eval("codFase")) %>' ImageUrl="~/images/EmptyImg.png" />
</div>
<div class="divSx">
<asp:TextBox ID="txtnomeFase" runat="server" Text='<%# Bind("nomeFase") %>' Width="20em" />
&nbsp;
<asp:TextBox ID="txtdescrizioneFase" runat="server" Text='<%# Bind("descrizioneFase") %>' Width="20em" />
</div>
</FooterTemplate>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="timeTrack" SortExpression="enableTime">
<ItemTemplate>
<ajaxToolkit:ToggleButtonExtender ID="tglTime" runat="server" TargetControlID="chkenableTime" ImageWidth="22" ImageHeight="22"
CheckedImageAlternateText="Time track ATTIVO" UncheckedImageAlternateText="Time track NON attivo" UncheckedImageUrl="~/images/timeDis_m.png"
CheckedImageUrl="~/images/time_m.png" />
<asp:CheckBox ID="chkenableTime" runat="server" Checked='<%# Eval("enableTime") %>' Enabled="false" />
</ItemTemplate>
<EditItemTemplate>
<ajaxToolkit:ToggleButtonExtender ID="tglTime" runat="server" TargetControlID="chkenableTime" ImageWidth="22" ImageHeight="22"
CheckedImageAlternateText="Time track ATTIVO" UncheckedImageAlternateText="Time track NON attivo" UncheckedImageUrl="~/images/timeDis_m.png"
CheckedImageUrl="~/images/time_m.png" />
<asp:CheckBox ID="chkenableTime" runat="server" Checked='<%# Bind("enableTime") %>' Enabled="true" />
</EditItemTemplate>
<FooterTemplate>
<ajaxToolkit:ToggleButtonExtender ID="tglTime" runat="server" TargetControlID="chkenableTime" ImageWidth="22" ImageHeight="22"
CheckedImageAlternateText="Time track ATTIVO" UncheckedImageAlternateText="Time track NON attivo" UncheckedImageUrl="~/images/timeDis_m.png"
CheckedImageUrl="~/images/time_m.png" />
<asp:CheckBox ID="chkenableTime" runat="server" Checked='<%# Bind("enableTime") %>' Enabled="true" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="moneyTrack" SortExpression="enableMoney">
<ItemTemplate>
<ajaxToolkit:ToggleButtonExtender ID="tglMoney" runat="server" TargetControlID="chkenableMoney" ImageWidth="22" ImageHeight="22"
CheckedImageAlternateText="Money track ATTIVO" UncheckedImageAlternateText="Money track NON attivo" UncheckedImageUrl="~/images/moneyDis_m.png"
CheckedImageUrl="~/images/money_m.png" />
<asp:CheckBox ID="chkenableMoney" runat="server" Checked='<%# Eval("enableMoney") %>' Enabled="false" />
</ItemTemplate>
<EditItemTemplate>
<ajaxToolkit:ToggleButtonExtender ID="tglMoney" runat="server" TargetControlID="chkenableMoney" ImageWidth="22" ImageHeight="22"
CheckedImageAlternateText="Money track ATTIVO" UncheckedImageAlternateText="Money track NON attivo" UncheckedImageUrl="~/images/moneyDis_m.png"
CheckedImageUrl="~/images/money_m.png" />
<asp:CheckBox ID="chkenableMoney" runat="server" Checked='<%# Bind("enableMoney") %>' Enabled="true" />
</EditItemTemplate>
<FooterTemplate>
<ajaxToolkit:ToggleButtonExtender ID="tglMoney" runat="server" TargetControlID="chkenableMoney" ImageWidth="22" ImageHeight="22"
CheckedImageAlternateText="Money track ATTIVO" UncheckedImageAlternateText="Money track NON attivo" UncheckedImageUrl="~/images/moneyDis_m.png"
CheckedImageUrl="~/images/money_m.png" />
<asp:CheckBox ID="chkenableMoney" runat="server" Checked='<%# Bind("enableMoney") %>' Enabled="true" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="RealVsBudgetTime" SortExpression="budgetTime" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Panel runat="server" ID="pnlTime" CssClass='<%# colorByVal(Eval("totOre"),Eval("budgetTime"))%>' Style="font-size: 8pt; padding: .3em;"
Width="8em" Visible='<%# Bind("enableTime") %>'>
<asp:Label ID="lblRealTime" runat="server" Text='<%# Eval("totOre","{0:#,###.##}") %>' ToolTip='<%# traduci("OreErogate") %>' />
/
</div>
</FooterTemplate>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="timeTrack" SortExpression="enableTime">
<ItemTemplate>
<ajaxToolkit:ToggleButtonExtender ID="tglTime" runat="server" TargetControlID="chkenableTime" ImageWidth="22" ImageHeight="22"
CheckedImageAlternateText="Time track ATTIVO" UncheckedImageAlternateText="Time track NON attivo" UncheckedImageUrl="~/images/timeDis_m.png"
CheckedImageUrl="~/images/time_m.png" />
<asp:CheckBox ID="chkenableTime" runat="server" Checked='<%# Eval("enableTime") %>' Enabled="false" />
</ItemTemplate>
<EditItemTemplate>
<ajaxToolkit:ToggleButtonExtender ID="tglTime" runat="server" TargetControlID="chkenableTime" ImageWidth="22" ImageHeight="22"
CheckedImageAlternateText="Time track ATTIVO" UncheckedImageAlternateText="Time track NON attivo" UncheckedImageUrl="~/images/timeDis_m.png"
CheckedImageUrl="~/images/time_m.png" />
<asp:CheckBox ID="chkenableTime" runat="server" Checked='<%# Bind("enableTime") %>' Enabled="true" />
</EditItemTemplate>
<FooterTemplate>
<ajaxToolkit:ToggleButtonExtender ID="tglTime" runat="server" TargetControlID="chkenableTime" ImageWidth="22" ImageHeight="22"
CheckedImageAlternateText="Time track ATTIVO" UncheckedImageAlternateText="Time track NON attivo" UncheckedImageUrl="~/images/timeDis_m.png"
CheckedImageUrl="~/images/time_m.png" />
<asp:CheckBox ID="chkenableTime" runat="server" Checked='<%# Bind("enableTime") %>' Enabled="true" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="moneyTrack" SortExpression="enableMoney">
<ItemTemplate>
<ajaxToolkit:ToggleButtonExtender ID="tglMoney" runat="server" TargetControlID="chkenableMoney" ImageWidth="22" ImageHeight="22"
CheckedImageAlternateText="Money track ATTIVO" UncheckedImageAlternateText="Money track NON attivo" UncheckedImageUrl="~/images/moneyDis_m.png"
CheckedImageUrl="~/images/money_m.png" />
<asp:CheckBox ID="chkenableMoney" runat="server" Checked='<%# Eval("enableMoney") %>' Enabled="false" />
</ItemTemplate>
<EditItemTemplate>
<ajaxToolkit:ToggleButtonExtender ID="tglMoney" runat="server" TargetControlID="chkenableMoney" ImageWidth="22" ImageHeight="22"
CheckedImageAlternateText="Money track ATTIVO" UncheckedImageAlternateText="Money track NON attivo" UncheckedImageUrl="~/images/moneyDis_m.png"
CheckedImageUrl="~/images/money_m.png" />
<asp:CheckBox ID="chkenableMoney" runat="server" Checked='<%# Bind("enableMoney") %>' Enabled="true" />
</EditItemTemplate>
<FooterTemplate>
<ajaxToolkit:ToggleButtonExtender ID="tglMoney" runat="server" TargetControlID="chkenableMoney" ImageWidth="22" ImageHeight="22"
CheckedImageAlternateText="Money track ATTIVO" UncheckedImageAlternateText="Money track NON attivo" UncheckedImageUrl="~/images/moneyDis_m.png"
CheckedImageUrl="~/images/money_m.png" />
<asp:CheckBox ID="chkenableMoney" runat="server" Checked='<%# Bind("enableMoney") %>' Enabled="true" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="RealVsBudgetTime" SortExpression="budgetTime" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Panel runat="server" ID="pnlTime" CssClass='<%# colorByVal(Eval("totOre"),Eval("budgetTime"))%>' Style="font-size: 8pt; padding: .3em;"
Width="8em" Visible='<%# Bind("enableTime") %>'>
<asp:Label ID="lblRealTime" runat="server" Text='<%# Eval("totOre","{0:#,###.##}") %>' ToolTip='<%# traduci("OreErogate") %>' />
/
<asp:Label ID="lblbudgetTime" runat="server" Text='<%# Eval("budgetTime","{0:#,###.##}") %>' ToolTip='<%# traduci("OreBudget") %>' />
</div>
</asp:Panel>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtbudgetTime" runat="server" Text='<%# Bind("budgetTime") %>' Width="3em" />
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtbudgetTime" runat="server" Text='<%# Bind("budgetTime") %>' Width="3em" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Attivo" SortExpression="Attivo" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox ID="chkAttivo" runat="server" Checked='<%# Eval("Attivo") %>' Enabled="false" />
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="chkAttivo" runat="server" Checked='<%# Bind("Attivo") %>' Enabled="true" />
</EditItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:LinkButton runat="server" ID="lbtAddNewSub" CssClass="btn btn-sm btn-primary" OnClick="btnNew_Click" ToolTip='<%# traduci("AddNewSubFase") %>' Visible='<%# isAncestor(Eval("idxFaseAncest")) && chkLicOk %>' CommandArgument='<%# Eval("idxFase") %>'><i class="fa fa-plus" aria-hidden="true"></i> <%: traduci("AddNewSubFase") %></asp:LinkButton>
<%--<asp:ImageButton ID="imgAddNew" runat="server" CausesValidation="False" CommandName="Select" ImageUrl="~/images/new_m.png"
</div>
</asp:Panel>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtbudgetTime" runat="server" Text='<%# Bind("budgetTime") %>' Width="3em" />
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtbudgetTime" runat="server" Text='<%# Bind("budgetTime") %>' Width="3em" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Attivo" SortExpression="Attivo" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox ID="chkAttivo" runat="server" Checked='<%# Eval("Attivo") %>' Enabled="false" />
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="chkAttivo" runat="server" Checked='<%# Bind("Attivo") %>' Enabled="true" />
</EditItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:LinkButton runat="server" ID="lbtAddNewSub" CssClass="btn btn-sm btn-primary" OnClick="btnNew_Click" ToolTip='<%# traduci("AddNewSubFase") %>' Visible='<%# isAncestor(Eval("idxFaseAncest")) && chkLicOk %>' CommandArgument='<%# Eval("idxFase") %>'><i class="fa fa-plus" aria-hidden="true"></i> <%: traduci("AddNewSubFase") %></asp:LinkButton>
<%--<asp:ImageButton ID="imgAddNew" runat="server" CausesValidation="False" CommandName="Select" ImageUrl="~/images/new_m.png"
CommandArgument='<%# Eval("idxFase") %>' OnClick="btnNew_Click" ToolTip='<%# traduci("AddNewSubFase") %>' Visible='<%# isAncestor(Eval("idxFaseAncest")) %>' />--%>
</ItemTemplate>
<EditItemTemplate>
</EditItemTemplate>
<FooterTemplate>
</FooterTemplate>
<HeaderTemplate>
<asp:LinkButton runat="server" ID="lbtAddNew" CssClass="btn btn-sm btn-success" OnClick="btnNew_Click" ToolTip='<%# traduci("New") %>' Visible='<%# isWritable() && chkLicOk %>'><i class="fa fa-plus" aria-hidden="true"></i> <%# traduci("NewFaseExpl") %></asp:LinkButton>
</HeaderTemplate>
<ItemStyle HorizontalAlign="Center" />
<HeaderStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField ShowHeader="False" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:LinkButton runat="server" ID="lbtDelete" CssClass="btn btn-sm btn-danger" CausesValidation="False" CommandArgument='<%# Eval("idxFase") %>' CommandName="Delete" ToolTip='<%# traduci("Delete") %>' Visible='<%# delEnabled(Eval("idxFase")) %>'><i class="fa fa-trash" aria-hidden="true"></i></asp:LinkButton>
<asp:ConfirmButtonExtender ID="cbeDelete" runat="server" ConfirmText='<%# traduci("confermaDel")%>' TargetControlID="lbtDelete"></asp:ConfirmButtonExtender>
</ItemTemplate>
<EditItemTemplate>
</EditItemTemplate>
<FooterTemplate>
</FooterTemplate>
<HeaderTemplate>
</HeaderTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
<SortedAscendingCellStyle BackColor="#F8FAFA"></SortedAscendingCellStyle>
<SortedAscendingHeaderStyle BackColor="#246B61"></SortedAscendingHeaderStyle>
<SortedDescendingCellStyle BackColor="#D4DFE1"></SortedDescendingCellStyle>
<SortedDescendingHeaderStyle BackColor="#15524A"></SortedDescendingHeaderStyle>
</asp:GridView>
<asp:ObjectDataSource ID="ods" runat="server" OnInserting="recuperaFooter" OldValuesParameterFormatString="Original_{0}"
SelectMethod="getByIdxProgetto" TypeName="GPW_data.DS_ApplicazioneTableAdapters.AnagFasiTableAdapter" FilterExpression=" (nomeFase like '%{0}%') OR (descrizioneFase like '%{0}%') "
DeleteMethod="deleteQuery" InsertMethod="insertQuery" UpdateMethod="updateQuery" OnUpdating="ods_Updating">
<DeleteParameters>
<asp:Parameter Name="Original_idxFase" Type="Int32" />
</DeleteParameters>
<FilterParameters>
<asp:SessionParameter SessionField="valoreSearch" Type="String" />
</FilterParameters>
<InsertParameters>
<asp:ControlParameter ControlID="filtroPrj" DefaultValue="0" PropertyName="valoreInt" Name="idxProgetto" Type="Int32" />
<asp:SessionParameter SessionField="idxFaseAncest" Name="idxFaseAncest" Type="Int32" />
<asp:Parameter Name="nomeFase" Type="String" />
<asp:Parameter Name="descrizioneFase" Type="String" />
<asp:Parameter Name="enableTime" Type="Boolean" />
<asp:Parameter Name="enableMoney" Type="Boolean" />
<asp:Parameter Name="budgetTime" Type="Decimal" />
<asp:Parameter Name="budgetMoney" Type="Decimal" DefaultValue="0" />
<asp:Parameter Name="Attivo" Type="Boolean" DefaultValue="true" />
</InsertParameters>
<SelectParameters>
<asp:ControlParameter ControlID="filtroPrj" DefaultValue="0" PropertyName="valoreInt" Name="idxProgetto" Type="Int32" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="nomeFase" Type="String" />
<asp:Parameter Name="descrizioneFase" Type="String" />
<asp:Parameter Name="enableTime" Type="Boolean" />
<asp:Parameter Name="enableMoney" Type="Boolean" />
<asp:Parameter Name="Attivo" Type="Int32" />
<asp:Parameter Name="budgetTime" Type="Decimal" />
<asp:Parameter Name="budgetMoney" Type="Decimal" DefaultValue="0" />
<asp:Parameter Name="Original_idxFase" Type="Int32" />
</UpdateParameters>
</asp:ObjectDataSource>
<asp:Label ID="lblNumRec" runat="server" CssClass="txtMini" />
<asp:Panel runat="server" ID="pnlDetRA">
<asp:Label runat="server" ID="lblDet" Text="---" />
</asp:Panel>
</ItemTemplate>
<EditItemTemplate>
</EditItemTemplate>
<FooterTemplate>
</FooterTemplate>
<HeaderTemplate>
<asp:LinkButton runat="server" ID="lbtAddNew" CssClass="btn btn-sm btn-success" OnClick="btnNew_Click" ToolTip='<%# traduci("New") %>' Visible='<%# isWritable() && chkLicOk %>'><i class="fa fa-plus" aria-hidden="true"></i> <%# traduci("NewFaseExpl") %></asp:LinkButton>
</HeaderTemplate>
<ItemStyle HorizontalAlign="Center" />
<HeaderStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField ShowHeader="False" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:LinkButton runat="server" ID="lbtDelete" CssClass="btn btn-sm btn-danger" CausesValidation="False" CommandArgument='<%# Eval("idxFase") %>' CommandName="Delete" ToolTip='<%# traduci("Delete") %>' Visible='<%# delEnabled(Eval("idxFase")) %>'><i class="fa fa-trash" aria-hidden="true"></i></asp:LinkButton>
<asp:ConfirmButtonExtender ID="cbeDelete" runat="server" ConfirmText='<%# traduci("confermaDel")%>' TargetControlID="lbtDelete"></asp:ConfirmButtonExtender>
</ItemTemplate>
<EditItemTemplate>
</EditItemTemplate>
<FooterTemplate>
</FooterTemplate>
<HeaderTemplate>
</HeaderTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="ods" runat="server" OnInserting="recuperaFooter" OldValuesParameterFormatString="Original_{0}"
SelectMethod="getByIdxProgetto" TypeName="GPW_data.DS_ApplicazioneTableAdapters.AnagFasiTableAdapter" FilterExpression=" (nomeFase like '%{0}%') OR (descrizioneFase like '%{0}%') "
DeleteMethod="deleteQuery" InsertMethod="insertQuery" UpdateMethod="updateQuery" OnUpdating="ods_Updating">
<DeleteParameters>
<asp:Parameter Name="Original_idxFase" Type="Int32" />
</DeleteParameters>
<FilterParameters>
<asp:SessionParameter SessionField="valoreSearch" Type="String" />
</FilterParameters>
<InsertParameters>
<asp:ControlParameter ControlID="filtroPrj" DefaultValue="0" PropertyName="valoreInt" Name="idxProgetto" Type="Int32" />
<asp:SessionParameter SessionField="idxFaseAncest" Name="idxFaseAncest" Type="Int32" />
<asp:Parameter Name="nomeFase" Type="String" />
<asp:Parameter Name="descrizioneFase" Type="String" />
<asp:Parameter Name="enableTime" Type="Boolean" />
<asp:Parameter Name="enableMoney" Type="Boolean" />
<asp:Parameter Name="budgetTime" Type="Decimal" />
<asp:Parameter Name="budgetMoney" Type="Decimal" DefaultValue="0" />
<asp:Parameter Name="Attivo" Type="Boolean" DefaultValue="true" />
</InsertParameters>
<SelectParameters>
<asp:ControlParameter ControlID="filtroPrj" DefaultValue="0" PropertyName="valoreInt" Name="idxProgetto" Type="Int32" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="nomeFase" Type="String" />
<asp:Parameter Name="descrizioneFase" Type="String" />
<asp:Parameter Name="enableTime" Type="Boolean" />
<asp:Parameter Name="enableMoney" Type="Boolean" />
<asp:Parameter Name="Attivo" Type="Int32" />
<asp:Parameter Name="budgetTime" Type="Decimal" />
<asp:Parameter Name="budgetMoney" Type="Decimal" DefaultValue="0" />
<asp:Parameter Name="Original_idxFase" Type="Int32" />
</UpdateParameters>
</asp:ObjectDataSource>
<asp:Label ID="lblNumRec" runat="server" CssClass="txtMini" />
<asp:Panel runat="server" ID="pnlDetRA">
<asp:Label runat="server" ID="lblDet" Text="---" />
</asp:Panel>
</div>
</div>
+430 -373
View File
@@ -12,113 +12,17 @@ namespace GPW_Admin.WebUserControls
{
public partial class mod_adminFasi : System.Web.UI.UserControl
{
public bool showReturnProj
{
get
{
return divReturn.Visible;
}
set
{
divReturn.Visible = value;
}
}
#region area standard (non modificare)
#region gestione eventi
public event EventHandler eh_resetSelezione;
public event EventHandler eh_nuovoValore;
#endregion
/// <summary>
/// effettua traduzione del lemma
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
public string traduci(string lemma)
{
return user_std.UtSn.Traduci(lemma);
}
/// <summary>
/// aggiorno visualizzazione fasi!
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void filtroPrj_eh_selValore(object sender, EventArgs e)
{
salveFilterPrj();
}
/// <summary>
/// reset della selezione
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnReset_Click(object sender, EventArgs e)
{
resetSelezione();
}
/// <summary>
/// inserisce nuovo valore da footer
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lblIns_click(object sender, EventArgs e)
{
// click su inserimento, chiamo il metodo insert dell'ObjectDataSource
ods.Insert();
}
/// <summary>
/// annulla inserimento nuovo valore da footer
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lblCanc_click(object sender, EventArgs e)
{
// annullo inserimento: nascondo footer, bind controlli...
grView.FooterRow.Visible = false;
}
/// <summary>
/// traduce gli header delle colonne
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grView_DataBound(object sender, EventArgs e)
{
if (grView.Rows.Count > 0)
{
LinkButton lb;
// aggiorno gli headers
foreach (TableCell cella in grView.HeaderRow.Cells)
{
try
{
lb = (LinkButton)cella.Controls[0];
lb.Text = traduci(lb.Text);
}
catch
{ }
}
int totRecord = grView.Rows.Count + grView.PageSize * (grView.PageCount - 1);
lblNumRec.Text = string.Format("{0} records of ~ {1}", grView.Rows.Count, totRecord);
}
else
{
lblNumRec.Text = "";
}
}
#endregion
#region area CUSTOM (da modificare)
#region gestione eventi
#region Public Events
public event EventHandler eh_faseSel;
#endregion
public event EventHandler eh_nuovoValore;
public event EventHandler eh_resetSelezione;
#endregion Public Events
#region Protected Properties
/// <summary>
/// uid base
@@ -131,6 +35,72 @@ namespace GPW_Admin.WebUserControls
}
}
#endregion Protected Properties
#region Public Properties
/// <summary>
/// pagina corrente (URL finale)
/// </summary>
public string _paginaCorrente { get; set; }
public string CardStyle
{
get
{
return hfCardStyle.Value;
}
set
{
hfCardStyle.Value = value;
divCardMain.Attributes.Remove("class");
divCardHeader.Attributes.Remove("class");
divCardMain.Attributes.Add("class", $"card border-{value}");
divCardHeader.Attributes.Add("class", $"card-header bg-{value}");
}
}
/// <summary>
/// abilitazione/disabilitazione gestione cambio cliente
/// </summary>
public bool changeSelCliEnabled
{
get
{
return filtroCli.changeSelEnabled;
}
set
{
filtroCli.changeSelEnabled = value;
}
}
/// <summary>
/// controllo stato licenze!
/// </summary>
public bool chkLicOk
{
get
{
return (licenzeGPW.utentiAttivi < licenzeGPW.licenzeAttive);
}
}
/// <summary>
/// determina se sia visibile pnl dettaglio RA della fase selezionata
/// </summary>
public bool enableShowRA
{
get
{
return pnlDetRA.Visible;
}
set
{
pnlDetRA.Visible = value;
}
}
/// <summary>
/// idx del cliente selezionato
/// </summary>
@@ -145,20 +115,7 @@ namespace GPW_Admin.WebUserControls
memLayer.ML.setSessionVal(string.Format("idxCli_{0}", sessionUid), value);
}
}
/// <summary>
/// idx del progetto selezionato
/// </summary>
public int idxProgetto
{
get
{
return memLayer.ML.IntSessionObj(string.Format("idxProj_{0}", sessionUid));
}
set
{
memLayer.ML.setSessionVal(string.Format("idxProj_{0}", sessionUid), value);
}
}
/// <summary>
/// valore della fase selezionata
/// </summary>
@@ -179,10 +136,269 @@ namespace GPW_Admin.WebUserControls
return answ;
}
}
/// <summary>
/// pagina corrente (URL finale)
/// idx del progetto selezionato
/// </summary>
public string _paginaCorrente { get; set; }
public int idxProgetto
{
get
{
return memLayer.ML.IntSessionObj(string.Format("idxProj_{0}", sessionUid));
}
set
{
memLayer.ML.setSessionVal(string.Format("idxProj_{0}", sessionUid), value);
}
}
public bool showReturnProj
{
get
{
return divReturn.Visible;
}
set
{
divReturn.Visible = value;
}
}
#endregion Public Properties
#region Private Methods
/// <summary>
/// cambio sel cliente --> aggiorno progetti
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void filtroCli_eh_selValore(object sender, EventArgs e)
{
saveFilterCli();
salveFilterPrj();
}
/// <summary>
/// aggiorno visualizzazione fasi!
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void filtroPrj_eh_selValore(object sender, EventArgs e)
{
salveFilterPrj();
}
/// <summary>
/// salva filtro prj
/// </summary>
private void salveFilterPrj()
{
//memLayer.ML.setSessionVal("idxProgetto_sel", filtroPrj.valore);
idxProgetto = filtroPrj.valoreInt;
grView.DataBind();
}
/// <summary>
/// salva filtro cliente
/// </summary>
private void saveFilterCli()
{
// salvo filtro cliente
//memLayer.ML.setSessionVal("idxCli_sel", filtroCli.valore);
idxCliente = filtroCli.valoreInt;
filtroPrj.ods = odsProj;
filtroPrj.reselFirst();
}
/// <summary>
/// sistema visibilità area dettaglio RA
/// </summary>
private void setDetVisibility()
{
pnlDetRA.Visible = enableShowRA;
lblDet.Visible = (grView.SelectedIndex >= 0);
}
#endregion Private Methods
#region Protected Methods
/// <summary>
/// gestione evento richiesta nuovo valore (mostra footer, ...)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNew_Click(object sender, EventArgs e)
{
if (e != null && sender != null)
{
// controllo se c'è un argument x la fase...
string idxFaseAncest = "0";
try
{
idxFaseAncest = ((ImageButton)sender).CommandArgument;
}
catch
{ }
memLayer.ML.setSessionVal("idxFaseAncest", idxFaseAncest);
if (idxFaseAncest == "0")
{
// reset selezione...
resetSelezione();
}
// mostro il footer oppure la riga dei dettagli x nuovo...
if (grView.FooterRow != null)
{
grView.FooterRow.Visible = true;
}
// sollevo evento nuovo valore...
if (eh_nuovoValore != null)
{
eh_nuovoValore(this, new EventArgs());
}
}
}
/// <summary>
/// gestione evento richiesta nuovo valore QUANDO NON CI SIANO RECORDS!
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNewEmpty_Click(object sender, EventArgs e)
{
memLayer.ML.setSessionVal("idxFaseAncest", "0");
DataProxy.DP.taAF.insertQuery(idxProgetto, 0, "NuovaFase", "DescrizioneFase", false, false, 0, 0, true);
grView.DataBind();
// sollevo evento nuovo valore...
if (eh_nuovoValore != null)
{
eh_nuovoValore(this, new EventArgs());
}
}
/// <summary>
/// reset della selezione
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnReset_Click(object sender, EventArgs e)
{
resetSelezione();
}
/// <summary>
/// elenco colonne del datagrid
/// </summary>
/// <returns></returns>
protected DataColumnCollection colonneObj()
{
DataColumnCollection colonne = null;
using (DS_Applicazione.AnagFasiDataTable tabella = new DS_Applicazione.AnagFasiDataTable())
{
colonne = tabella.Columns;
}
return colonne;
}
/// <summary>
/// traduce gli header delle colonne
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grView_DataBound(object sender, EventArgs e)
{
if (grView.Rows.Count > 0)
{
LinkButton lb;
// aggiorno gli headers
foreach (TableCell cella in grView.HeaderRow.Cells)
{
try
{
lb = (LinkButton)cella.Controls[0];
lb.Text = traduci(lb.Text);
}
catch
{ }
}
int totRecord = grView.Rows.Count + grView.PageSize * (grView.PageCount - 1);
lblNumRec.Text = string.Format("{0} records of ~ {1}", grView.Rows.Count, totRecord);
}
else
{
lblNumRec.Text = "";
}
}
/// <summary>
/// indico cambio selezione valore...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grView_SelectedIndexChanged(object sender, EventArgs e)
{
setDetVisibility();
if (eh_faseSel != null)
{
eh_faseSel(this, new EventArgs());
}
}
/// <summary>
/// annulla inserimento nuovo valore da footer
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lblCanc_click(object sender, EventArgs e)
{
// annullo inserimento: nascondo footer, bind controlli...
grView.FooterRow.Visible = false;
}
/// <summary>
/// inserisce nuovo valore da footer
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lblIns_click(object sender, EventArgs e)
{
// click su inserimento, chiamo il metodo insert dell'ObjectDataSource
ods.Insert();
}
/// <summary>
/// check licenze in fase di update...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ods_Updating(object sender, ObjectDataSourceMethodEventArgs e)
{
if (!licenzeGPW.checkLicenze)
{
if (e != null)
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.EditIndex = -1;
grView.DataBind();
}
}
}
/// <summary>
/// salva in variabile pagina il nome della pagina corrente
/// </summary>
protected void PagCorrente()
{
Uri MyUrl = Request.Url;
string delimStr = "/";
char[] delimiter = delimStr.ToCharArray();
string[] finalUrl = MyUrl.LocalPath.ToString().Split(delimiter);
int n = finalUrl.Length;
_paginaCorrente = finalUrl[n - 1].ToString();
}
/// <summary>
/// caricamento
/// </summary>
@@ -203,56 +419,6 @@ namespace GPW_Admin.WebUserControls
grView.PageSize = utils.pageSize;
setDetVisibility();
}
/// <summary>
/// salva in variabile pagina il nome della pagina corrente
/// </summary>
protected void PagCorrente()
{
Uri MyUrl = Request.Url;
string delimStr = "/";
char[] delimiter = delimStr.ToCharArray();
string[] finalUrl = MyUrl.LocalPath.ToString().Split(delimiter);
int n = finalUrl.Length;
_paginaCorrente = finalUrl[n - 1].ToString();
}
/// <summary>
/// sistema visibilità area dettaglio RA
/// </summary>
private void setDetVisibility()
{
pnlDetRA.Visible = enableShowRA;
lblDet.Visible = (grView.SelectedIndex >= 0);
}
/// <summary>
/// salva filtro cliente
/// </summary>
private void saveFilterCli()
{
// salvo filtro cliente
//memLayer.ML.setSessionVal("idxCli_sel", filtroCli.valore);
idxCliente = filtroCli.valoreInt;
filtroPrj.ods = odsProj;
filtroPrj.reselFirst();
}
/// <summary>
/// salva filtro prj
/// </summary>
private void salveFilterPrj()
{
//memLayer.ML.setSessionVal("idxProgetto_sel", filtroPrj.valore);
idxProgetto = filtroPrj.valoreInt;
grView.DataBind();
}
/// <summary>
/// cambio sel cliente --> aggiorno progetti
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void filtroCli_eh_selValore(object sender, EventArgs e)
{
saveFilterCli();
salveFilterPrj();
}
/// <summary>
/// recupera i dati di un nuovo record contenuti nel footer di un gridView;
@@ -292,12 +458,15 @@ namespace GPW_Admin.WebUserControls
case "textBox":
e.InputParameters[nomeCol] = ((TextBox)grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol))).Text;
break;
case "dropDownList":
e.InputParameters[nomeCol] = ((DropDownList)grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol))).SelectedValue;
break;
case "checkBox":
e.InputParameters[nomeCol] = ((CheckBox)grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol))).Checked;
break;
default:
break;
}
@@ -316,96 +485,11 @@ namespace GPW_Admin.WebUserControls
}
}
}
/// <summary>
/// gestione evento richiesta nuovo valore (mostra footer, ...)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNew_Click(object sender, EventArgs e)
{
if (e != null && sender != null)
{
// controllo se c'è un argument x la fase...
string idxFaseAncest = "0";
try
{
idxFaseAncest = ((ImageButton)sender).CommandArgument;
}
catch
{ }
memLayer.ML.setSessionVal("idxFaseAncest", idxFaseAncest);
if (idxFaseAncest == "0")
{
// reset selezione...
resetSelezione();
}
// mostro il footer oppure la riga dei dettagli x nuovo...
if (grView.FooterRow != null)
{
grView.FooterRow.Visible = true;
}
// sollevo evento nuovo valore...
if (eh_nuovoValore != null)
{
eh_nuovoValore(this, new EventArgs());
}
}
}
/// <summary>
/// gestione evento richiesta nuovo valore QUANDO NON CI SIANO RECORDS!
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNewEmpty_Click(object sender, EventArgs e)
{
memLayer.ML.setSessionVal("idxFaseAncest", "0");
DataProxy.DP.taAF.insertQuery(idxProgetto, 0, "NuovaFase", "DescrizioneFase", false, false, 0, 0, true);
grView.DataBind();
// sollevo evento nuovo valore...
if (eh_nuovoValore != null)
{
eh_nuovoValore(this, new EventArgs());
}
}
/// <summary>
/// elenco colonne del datagrid
/// </summary>
/// <returns></returns>
protected DataColumnCollection colonneObj()
{
DataColumnCollection colonne = null;
using (DS_Applicazione.AnagFasiDataTable tabella = new DS_Applicazione.AnagFasiDataTable())
{
colonne = tabella.Columns;
}
return colonne;
}
/// <summary>
/// determina se sia eliminabile il record (=non usato)
/// </summary>
/// <param name="idxMaker"></param>
/// <returns></returns>
public bool delEnabled(object idxObj)
{
bool answ = isWritable();
// solo se ha diritti scrittura controllo
if (idxObj != null)
{
if (answ)
{
int trovati = 0;
int idxFase = 0;
_ = int.TryParse(idxObj.ToString(), out idxFase);
trovati = DataProxy.DP.taRA.getByFase(idxFase).Count;
// controllo se ci sono record correlati...
if (trovati > 0)
{
answ = false;
}
}
}
return answ;
}
#endregion Protected Methods
#region Public Methods
/// <summary>
/// calcola classe css dato codice fase
/// </summary>
@@ -436,89 +520,7 @@ namespace GPW_Admin.WebUserControls
}
return answ;
}
/// <summary>
/// determina dimensioni dell'oggetto spaziatore data la fase
/// </summary>
/// <param name="codFase"></param>
/// <returns></returns>
public Unit widthByCod(object codFase)
{
Unit answ = new Unit(0, UnitType.Pixel);
int livello = 0;
if (codFase != null)
{
// calcolo livello come num punti "." -1...
try
{
string[] array = codFase.ToString().Split('.');
livello = array.Length;
}
catch
{ }
if (livello >= 4)
{
answ = new Unit((livello - 3) * 10, UnitType.Pixel);
}
}
return answ;
}
/// <summary>
/// inverte valore booleano
/// </summary>
/// <param name="isEnt"></param>
/// <returns></returns>
public bool invBool(object valore)
{
bool answ = true;
try
{
answ = !Convert.ToBoolean(valore);
}
catch
{ }
return answ;
}
/// <summary>
/// abilitazione/disabilitazione gestione cambio cliente
/// </summary>
public bool changeSelCliEnabled
{
get
{
return filtroCli.changeSelEnabled;
}
set
{
filtroCli.changeSelEnabled = value;
}
}
/// <summary>
/// resetta la selezione dei valori in caso di modifiche su altri controlli
/// </summary>
public void resetSelezione()
{
grView.SelectedIndex = -1;
grView.DataBind();
setDetVisibility();
if (eh_resetSelezione != null)
{
eh_resetSelezione(this, new EventArgs());
}
}
/// <summary>
/// indico cambio selezione valore...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grView_SelectedIndexChanged(object sender, EventArgs e)
{
setDetVisibility();
if (eh_faseSel != null)
{
eh_faseSel(this, new EventArgs());
}
}
/// <summary>
/// restituisce una classe css a seconda dei valori passati:
/// green: bdgt > real
@@ -555,20 +557,51 @@ namespace GPW_Admin.WebUserControls
}
return "ui-corner-all " + answ;
}
/// <summary>
/// determina se sia visibile pnl dettaglio RA della fase selezionata
/// determina se sia eliminabile il record (=non usato)
/// </summary>
public bool enableShowRA
/// <param name="idxMaker"></param>
/// <returns></returns>
public bool delEnabled(object idxObj)
{
get
bool answ = isWritable();
// solo se ha diritti scrittura controllo
if (idxObj != null)
{
return pnlDetRA.Visible;
}
set
{
pnlDetRA.Visible = value;
if (answ)
{
int trovati = 0;
int idxFase = 0;
_ = int.TryParse(idxObj.ToString(), out idxFase);
trovati = DataProxy.DP.taRA.getByFase(idxFase).Count;
// controllo se ci sono record correlati...
if (trovati > 0)
{
answ = false;
}
}
}
return answ;
}
/// <summary>
/// inverte valore booleano
/// </summary>
/// <param name="isEnt"></param>
/// <returns></returns>
public bool invBool(object valore)
{
bool answ = true;
try
{
answ = !Convert.ToBoolean(valore);
}
catch
{ }
return answ;
}
/// <summary>
/// calcola se sia ancestore la fase
/// </summary>
@@ -590,6 +623,7 @@ namespace GPW_Admin.WebUserControls
}
return answ;
}
/// <summary>
/// risponde alla domanda se l'utente abbia permesso tipo writable (S) nel permessi2funzione
/// </summary>
@@ -604,35 +638,58 @@ namespace GPW_Admin.WebUserControls
answ = user_std.UtSn.isPageWriteEnabled(_paginaCorrente) && chkLicOk;
return answ;
}
/// <summary>
/// controllo stato licenze!
/// resetta la selezione dei valori in caso di modifiche su altri controlli
/// </summary>
public bool chkLicOk
public void resetSelezione()
{
get
grView.SelectedIndex = -1;
grView.DataBind();
setDetVisibility();
if (eh_resetSelezione != null)
{
return (licenzeGPW.utentiAttivi < licenzeGPW.licenzeAttive);
}
}
/// <summary>
/// check licenze in fase di update...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ods_Updating(object sender, ObjectDataSourceMethodEventArgs e)
{
if (!licenzeGPW.checkLicenze)
{
if (e != null)
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.EditIndex = -1;
grView.DataBind();
}
eh_resetSelezione(this, new EventArgs());
}
}
#endregion
/// <summary>
/// effettua traduzione del lemma
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
public string traduci(string lemma)
{
return user_std.UtSn.Traduci(lemma);
}
/// <summary>
/// determina dimensioni dell'oggetto spaziatore data la fase
/// </summary>
/// <param name="codFase"></param>
/// <returns></returns>
public Unit widthByCod(object codFase)
{
Unit answ = new Unit(0, UnitType.Pixel);
int livello = 0;
if (codFase != null)
{
// calcolo livello come num punti "." -1...
try
{
string[] array = codFase.ToString().Split('.');
livello = array.Length;
}
catch
{ }
if (livello >= 4)
{
answ = new Unit((livello - 3) * 10, UnitType.Pixel);
}
}
return answ;
}
#endregion Public Methods
}
}
+27
View File
@@ -14,6 +14,33 @@ namespace GPW_Admin.WebUserControls
public partial class mod_adminFasi
{
/// <summary>
/// Controllo hfCardStyle.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.HiddenField hfCardStyle;
/// <summary>
/// Controllo divCardMain.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divCardMain;
/// <summary>
/// Controllo divCardHeader.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divCardHeader;
/// <summary>
/// Controllo divReturn.
/// </summary>
+2 -2
View File
@@ -2,5 +2,5 @@
<%@ Register Src="~/WebUserControls/mod_adminFasi.ascx" TagName="mod_adminFasi" TagPrefix="uc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="cph1" runat="server">
<uc1:mod_adminFasi ID="mod_adminFasi1" runat="server" changeSelCliEnabled="false" showReturnProj="true" />
</asp:Content>
<uc1:mod_adminFasi ID="mod_adminFasi1" runat="server" changeSelCliEnabled="false" showReturnProj="true" CardStyle="secondary" />
</asp:Content>
Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

+16 -3
View File
@@ -1,7 +1,20 @@
<%@ Page Title="GPW-ADM"Language="C#" MasterPageFile="~/WebMasterPages/MasterAjax.master" AutoEventWireup="true" CodeBehind="menu.aspx.cs"
<%@ Page Title="GPW-ADM" Language="C#" MasterPageFile="~/WebMasterPages/BMP.master" AutoEventWireup="true" CodeBehind="menu.aspx.cs"
Inherits="GPW_Admin.menu" %>
<%@ Register Src="~/WebUserControls/cmp_homeButtons.ascx" TagPrefix="uc1" TagName="cmp_homeButtons" %>
<asp:Content ID="Content1" ContentPlaceHolderID="cph1" runat="server">
<div class="logo">
<div class="jumbotron">
<div class="row">
<div class="col-12 col-lg-9">
<h1>GPW</h1>
<p class="lead"><%: traduci("GpwPresentationText") %></p>
</div>
<div class="d-none d-lg-inline col-lg-3 text-right">
<%--<asp:Image runat="server" ID="imgLogin" Height="128" ImageUrl='<%# getImgUrl(appUrl) %>' />--%>
<img src="images/LogoSteamware.png" class="img-fluid" />
</div>
</div>
</div>
</asp:Content>
<uc1:cmp_homeButtons runat="server" ID="cmp_homeButtons" />
</asp:Content>
+14 -5
View File
@@ -1,10 +1,10 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// <generato automaticamente>
// Codice generato da uno strumento.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
// Le modifiche a questo file possono causare un comportamento non corretto e verranno perse se
// il codice viene rigenerato.
// </generato automaticamente>
//------------------------------------------------------------------------------
namespace GPW_Admin
@@ -13,5 +13,14 @@ namespace GPW_Admin
public partial class menu
{
/// <summary>
/// Controllo cmp_homeButtons.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::GPW_Admin.WebUserControls.cmp_homeButtons cmp_homeButtons;
}
}
+18 -29
View File
@@ -1,42 +1,31 @@
<%@ Page Title="GPW-ADM"Language="C#" MasterPageFile="~/WebMasterPages/BMP.master" AutoEventWireup="true" CodeBehind="spostaFasi.aspx.cs"
<%@ Page Title="GPW-ADM" Language="C#" MasterPageFile="~/WebMasterPages/BMP.master" AutoEventWireup="true" CodeBehind="spostaFasi.aspx.cs"
Inherits="GPW_Admin.spostaFasi" %>
<%@ Register Src="~/WebUserControls/mod_adminFasi.ascx" TagName="mod_adminFasi" TagPrefix="uc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="cph1" runat="server">
<div class="row">
<div class="col-6">
<asp:Button runat="server" ID="btnSposta" Text="&rarr;" CssClass="btnGrigio ui-corner-all shadowBox" Height="1.3em" Width="12em"
Font-Size="24pt" Font-Bold="true" ToolTip="Sposta" OnClick="btnSposta_Click" />
<asp:Button runat="server" ID="btnClona" Text="&rarr;" CssClass="btnGrigio ui-corner-all shadowBox" Height="1.3em" Width="12em"
Font-Size="24pt" Font-Bold="true" ToolTip="Clona" onclick="btnClona_Click" />
<div class="row">
<div class="col-12">
<asp:Button runat="server" ID="btnSposta" Text="&rarr;" CssClass="btn btn-lg btn-secondary btn-block" ToolTip="Sposta" OnClick="btnSposta_Click" />
</div>
<div class="col-12 small">
<h2>Origine</h2>
<uc1:mod_adminFasi ID="fasiFrom" runat="server" changeSelCliEnabled="true" enableShowRA="true" showReturnProj="false" CardStyle="info" />
</div>
</div>
</div>
<div class="col-6">
</div>
</div>
<div class="row small">
<div class="col-6 border border-primary gradBlu ui-corner-all shadowBox">
<h2>
Origine</h2>
<uc1:mod_adminFasi ID="fasiFrom" runat="server" changeSelCliEnabled="true" enableShowRA="true" showReturnProj="false" />
</div>
<div class="col-6 border border-success gradVerde ui-corner-all shadowBox">
<h2>
Destinazione</h2>
<uc1:mod_adminFasi ID="fasiTo" runat="server" changeSelCliEnabled="true" enableShowRA="false" showReturnProj="false"/>
</div>
</div>
<div style="background-color: #cdcdcd; padding: 2px;height:100%; min-height:400px; display:block; ">
<div style="background-color: #EFEFEF;">
<div class="divCenter" style="padding: .4em;">
</div>
<div>
<div class="divSx gradBlu ui-corner-all shadowBox" style="min-width: 400px; width: 48%; padding: 8px;">
<div class="row">
<div class="col-12">
<asp:Button runat="server" ID="btnClona" Text="&rarr;" CssClass="btn btn-lg btn-secondary btn-block" Font-Bold="true" ToolTip="Clona" OnClick="btnClona_Click" />
</div>
<div class="divDx gradVerde ui-corner-all shadowBox" style="min-width: 400px; width: 48%; padding: 8px;">
<div class="col-12 small">
<h2>Destinazione</h2>
<uc1:mod_adminFasi ID="fasiTo" runat="server" changeSelCliEnabled="true" enableShowRA="false" showReturnProj="false" CardStyle="success" />
</div>
</div>
</div>
</div>
</asp:Content>
</asp:Content>
+139 -113
View File
@@ -9,41 +9,137 @@ using SteamWare;
namespace GPW_Admin
{
public partial class spostaFasi : BasePage
public enum tipoSpostamento
{
/// <summary>
/// caricamento pagina
/// nessuno spsotamento consentito
/// </summary>
none,
/// <summary>
/// spostamento fase ancestor tra progetti
/// </summary>
chgProj,
/// <summary>
/// spostamento sottofase in altra fase ancestor
/// </summary>
chgAncest,
/// <summary>
/// sposta i record assegnati ad una fase (micro o macro) ad un altra fase (micro o macro)
/// </summary>
moveRA
}
public partial class spostaFasi : BasePage
{
#region Private Methods
private void fasiFrom_eh_faseSel(object sender, EventArgs e)
{
fixBtnFunc();
}
private void fasiFrom_eh_resetSelezione(object sender, EventArgs e)
{
fixBtnFunc();
}
private void fasiTo_eh_faseSel(object sender, EventArgs e)
{
fixBtnFunc();
}
private void fasiTo_eh_resetSelezione(object sender, EventArgs e)
{
fixBtnFunc();
}
#endregion Private Methods
#region Protected Methods
/// <summary>
/// clona la macrofase (e le sottofasi) dal primo progetot al secondo
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
protected void btnClona_Click(object sender, EventArgs e)
{
fasiFrom.eh_faseSel += new EventHandler(fasiFrom_eh_faseSel);
fasiFrom.eh_resetSelezione += new EventHandler(fasiFrom_eh_resetSelezione);
fasiTo.eh_faseSel += new EventHandler(fasiTo_eh_faseSel);
fasiTo.eh_resetSelezione += new EventHandler(fasiTo_eh_resetSelezione);
fixBtnFunc();
switch (moveEnabled(fasiFrom.idxFase, fasiTo.idxFase))
{
case tipoSpostamento.none:
// non faccio nulla
break;
case tipoSpostamento.chgProj:
// sposto fase ANCESTOR selezionata nel progetto di destinazione
if (fasiTo.idxProgetto > 0 && fasiFrom.idxFase > 0)
{
DataProxy.DP.taAF.clonaFaseAnc(fasiTo.idxProgetto, fasiFrom.idxFase);
}
break;
case tipoSpostamento.chgAncest:
// sposto sottofase in una differente fase ancestor
if (fasiTo.idxProgetto > 0 && fasiFrom.idxFase > 0)
{
DataProxy.DP.taAF.clonaFase(fasiTo.idxFase, fasiFrom.idxFase);
}
break;
case tipoSpostamento.moveRA:
break;
default:
// non faccio nulla
break;
}
fasiFrom.resetSelezione();
fasiTo.resetSelezione();
}
void fasiTo_eh_resetSelezione(object sender, EventArgs e)
/// <summary>
/// effettua spostamento fasi seconda dei casi...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSposta_Click(object sender, EventArgs e)
{
fixBtnFunc();
switch (moveEnabled(fasiFrom.idxFase, fasiTo.idxFase))
{
case tipoSpostamento.none:
// non faccio nulla
break;
case tipoSpostamento.chgProj:
// sposto fase ANCESTOR selezionata nel progetto di destinazione
if (fasiTo.idxProgetto > 0 && fasiFrom.idxFase > 0)
{
DataProxy.DP.taAF.updateProgetto(fasiTo.idxProgetto, fasiFrom.idxFase);
}
break;
case tipoSpostamento.chgAncest:
// sposto sottofase in una differente fase ancestor
if (fasiTo.idxProgetto > 0 && fasiFrom.idxFase > 0)
{
DataProxy.DP.taAF.updateFaseAncest(fasiTo.idxFase, fasiFrom.idxFase);
}
break;
case tipoSpostamento.moveRA:
break;
default:
// non faccio nulla
break;
}
fasiFrom.resetSelezione();
fasiTo.resetSelezione();
}
void fasiTo_eh_faseSel(object sender, EventArgs e)
{
fixBtnFunc();
}
void fasiFrom_eh_resetSelezione(object sender, EventArgs e)
{
fixBtnFunc();
}
void fasiFrom_eh_faseSel(object sender, EventArgs e)
{
fixBtnFunc();
}
/// <summary>
/// sistema abilitazione del button spostamenti
/// </summary>
@@ -58,8 +154,8 @@ namespace GPW_Admin
bool enableBtnClona = false;
string testoBtn = traduci("noAction");
string testoBtnClona = traduci("noAction");
string cssBtn = "btnGrigio ui-corner-all shadowBox";
string cssBtnClona = "btnGrigio ui-corner-all shadowBox";
string cssBtn = "btn btn-lg btn-secondary btn-block";
string cssBtnClona = "btn btn-lg btn-secondary btn-block";
switch (moveEnabled(fasiFrom.idxFase, fasiTo.idxFase))
{
case tipoSpostamento.chgProj:
@@ -67,22 +163,25 @@ namespace GPW_Admin
enableBtnClona = true;
testoBtn = traduci("chgProj");
testoBtnClona = traduci("clonaFase");
cssBtn = "btnBlu ui-corner-all shadowBox btnEditBig";
cssBtnClona = "btnVerde ui-corner-all shadowBox btnClonaBig";
cssBtn = "btn btn-lg btn-primary btn-block";
cssBtnClona = "btn btn-lg btn-success btn-block";
break;
case tipoSpostamento.chgAncest:
enableBtnSposta = true;
enableBtnClona = true;
testoBtn = traduci("chgAncest");
testoBtnClona = traduci("clonaSottoFase");
cssBtn = "btnBlu ui-corner-all shadowBox btnEditBig";
cssBtnClona = "btnVerde ui-corner-all shadowBox btnClonaBig";
cssBtn = "btn btn-lg btn-secondary btn-block";
cssBtnClona = "btn btn-lg btn-success btn-block";
break;
case tipoSpostamento.moveRA:
//enableBtnSposta = true;
//testoBtn = traduci("moveRA");
//cssBtn = "btnBlu ui-corner-all shadowBox btnEditBig";
break;
default:
break;
}
@@ -95,41 +194,7 @@ namespace GPW_Admin
btnClona.Text = testoBtnClona;
btnClona.CssClass = cssBtnClona;
}
/// <summary>
/// effettua spostamento fasi seconda dei casi...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSposta_Click(object sender, EventArgs e)
{
switch (moveEnabled(fasiFrom.idxFase, fasiTo.idxFase))
{
case tipoSpostamento.none:
// non faccio nulla
break;
case tipoSpostamento.chgProj:
// sposto fase ANCESTOR selezionata nel progetto di destinazione
if (fasiTo.idxProgetto > 0 && fasiFrom.idxFase > 0)
{
DataProxy.DP.taAF.updateProgetto(fasiTo.idxProgetto, fasiFrom.idxFase);
}
break;
case tipoSpostamento.chgAncest:
// sposto sottofase in una differente fase ancestor
if (fasiTo.idxProgetto > 0 && fasiFrom.idxFase > 0)
{
DataProxy.DP.taAF.updateFaseAncest(fasiTo.idxFase, fasiFrom.idxFase);
}
break;
case tipoSpostamento.moveRA:
break;
default:
// non faccio nulla
break;
}
fasiFrom.resetSelezione();
fasiTo.resetSelezione();
}
/// <summary>
/// fornisce il tipo di spostamento concesso secondo valori selezionati
/// </summary>
@@ -175,60 +240,21 @@ namespace GPW_Admin
}
return answ;
}
/// <summary>
/// clona la macrofase (e le sottofasi) dal primo progetot al secondo
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnClona_Click(object sender, EventArgs e)
protected void Page_Load(object sender, EventArgs e)
{
switch (moveEnabled(fasiFrom.idxFase, fasiTo.idxFase))
{
case tipoSpostamento.none:
// non faccio nulla
break;
case tipoSpostamento.chgProj:
// sposto fase ANCESTOR selezionata nel progetto di destinazione
if (fasiTo.idxProgetto > 0 && fasiFrom.idxFase > 0)
{
DataProxy.DP.taAF.clonaFaseAnc(fasiTo.idxProgetto, fasiFrom.idxFase);
}
break;
case tipoSpostamento.chgAncest:
// sposto sottofase in una differente fase ancestor
if (fasiTo.idxProgetto > 0 && fasiFrom.idxFase > 0)
{
DataProxy.DP.taAF.clonaFase(fasiTo.idxFase, fasiFrom.idxFase);
}
break;
case tipoSpostamento.moveRA:
break;
default:
// non faccio nulla
break;
}
fasiFrom.resetSelezione();
fasiTo.resetSelezione();
fasiFrom.eh_faseSel += new EventHandler(fasiFrom_eh_faseSel);
fasiFrom.eh_resetSelezione += new EventHandler(fasiFrom_eh_resetSelezione);
fasiTo.eh_faseSel += new EventHandler(fasiTo_eh_faseSel);
fasiTo.eh_resetSelezione += new EventHandler(fasiTo_eh_resetSelezione);
fixBtnFunc();
}
}
public enum tipoSpostamento
{
/// <summary>
/// nessuno spsotamento consentito
/// </summary>
none,
/// <summary>
/// spostamento fase ancestor tra progetti
/// </summary>
chgProj,
/// <summary>
/// spostamento sottofase in altra fase ancestor
/// </summary>
chgAncest,
/// <summary>
/// sposta i record assegnati ad una fase (micro o macro) ad un altra fase (micro o macro)
/// </summary>
moveRA
#endregion Protected Methods
}
}
+18 -16
View File
@@ -7,11 +7,13 @@
// </generato automaticamente>
//------------------------------------------------------------------------------
namespace GPW_Admin {
public partial class spostaFasi {
namespace GPW_Admin
{
public partial class spostaFasi
{
/// <summary>
/// Controllo btnSposta.
/// </summary>
@@ -20,16 +22,7 @@ namespace GPW_Admin {
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnSposta;
/// <summary>
/// Controllo btnClona.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnClona;
/// <summary>
/// Controllo fasiFrom.
/// </summary>
@@ -38,7 +31,16 @@ namespace GPW_Admin {
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::GPW_Admin.WebUserControls.mod_adminFasi fasiFrom;
/// <summary>
/// Controllo btnClona.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnClona;
/// <summary>
/// Controllo fasiTo.
/// </summary>
Vendored
+1 -1
View File
@@ -10,7 +10,7 @@ pipeline {
steps {
/* calcolo numero versione... diverso x branch MASTER/DEVELOP */
script {
withEnv(['NEXT_BUILD_NUMBER=4131']) {
withEnv(['NEXT_BUILD_NUMBER=4132']) {
// env.versionNumber = VersionNumber(versionNumberString : '2.7.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true)
env.versionNumber = VersionNumber(versionNumberString : '2.7.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
env.APP_NAME = 'GPW'