From: <ro...@us...> - 2006-07-27 17:19:12
|
Revision: 227 Author: rouquin Date: 2006-07-27 10:18:49 -0700 (Thu, 27 Jul 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=227&view=rev Log Message: ----------- Updated Roles etc. Modified Paths: -------------- Website/App_Code/Common.cs Website/App_Code/tcdbDataSet.xsd Website/App_Code/tcdbDataSet.xss Website/Includes/AdministrationTree.ascx.cs Website/Includes/Rights.ascx Website/Includes/Rights.ascx.cs Website/Includes/UserSettings.ascx Website/Includes/UserSettings.ascx.cs Added Paths: ----------- Website/AdminRole.aspx Website/Includes/Roles.ascx Website/Includes/Roles.ascx.cs Website/Role.aspx Property Changed: ---------------- Design/Schema/ Screenshots/ WebPrototype/ WebPrototype/App_Themes/Python/Images/ WebPrototype/Bin/ WebPrototype/Images/ Website/ Website/Bin/ Property changes on: Design/Schema ___________________________________________________________________ Name: svn:ignore + Thumbs.db Property changes on: Screenshots ___________________________________________________________________ Name: svn:ignore + Thumbs.db Property changes on: WebPrototype ___________________________________________________________________ Name: svn:ignore + licenses.licx Property changes on: WebPrototype/App_Themes/Python/Images ___________________________________________________________________ Name: svn:ignore + Thumbs.db Property changes on: WebPrototype/Bin ___________________________________________________________________ Name: svn:ignore + App_Licenses.dll FreeTextBox.dll.refresh Microsoft.Web.Atlas.dll.refresh Property changes on: WebPrototype/Images ___________________________________________________________________ Name: svn:ignore + Thumbs.db Property changes on: Website ___________________________________________________________________ Name: svn:ignore - App_Data tcdb2006.log + App_Data tcdb2006.log licenses.licx tcdb2006.log.3 Added: Website/AdminRole.aspx =================================================================== --- Website/AdminRole.aspx (rev 0) +++ Website/AdminRole.aspx 2006-07-27 17:18:49 UTC (rev 227) @@ -0,0 +1,52 @@ +<%@ Page Language="C#" MasterPageFile="~/TCDB.master" AutoEventWireup="true" Title="TCDB: Administration" %> +<%@ Import Namespace="TCDB.Common" %> + +<%@ Register Src="~/Includes/AdministrationTree.ascx" TagPrefix="admin" TagName="Tree" %> + +<script runat="server"> + int product = Convert.ToInt32(HttpContext.Current.Request.QueryString[Constants.CODE_PRODUCT]); + + protected void Page_Load(object sender, EventArgs e) + { + } + protected void newRole(object sender, CommandEventArgs e) + { + Response.Redirect("Role.aspx?mode=new&" + Constants.CODE_PRODUCT + "=" + product); + } + protected void addRole(object sender, CommandEventArgs e) + { + Response.Redirect("Role.aspx?mode=edit&"+Constants.CODE_ROLE+"=" + roleList.SelectedValue + "&" + Constants.CODE_PRODUCT + "=" + product); + } + protected void newRight(object sender, CommandEventArgs e) + { + Response.Redirect("Right.aspx?mode=new"); + } +</script> + +<asp:Content ID="TreeContent" ContentPlaceHolderID="TreeContentPlaceHolder" runat="Server"> + <admin:Tree runat="server" ID="Tree" /> +</asp:Content> +<asp:Content ID="MainContent" ContentPlaceHolderID="MainContentPlaceHolder" runat="Server"> + <table width="700"> + <tr> + <td align="center" valign="middle" style="height: 101px"> + <asp:DropDownList ID="roleList" runat="server" DataSourceID="RoleDataSource" DataTextField="roleName" + DataValueField="roleID"> + </asp:DropDownList><asp:ObjectDataSource ID="RoleDataSource" runat="server" OldValuesParameterFormatString="original_{0}" + SelectMethod="GetData" TypeName="tcdbDataSetTableAdapters.db_roleUserProductTableAdapter"> + <SelectParameters> + <asp:Parameter Name="userID" Type="Int32" /> + <asp:SessionParameter Name="productID" SessionField="product" Type="Int32" /> + <asp:Parameter DefaultValue="true" Name="active" Type="Boolean" /> + </SelectParameters> + </asp:ObjectDataSource> + <asp:LinkButton ID="addRoleBtn" runat="server" CommandName="addRole" OnCommand="addRole">Add User Role</asp:LinkButton> + <br /> + <br /> + <asp:LinkButton ID="newRoleBtn" runat="server" CommandName="newRole" OnCommand="newRole">New User Role</asp:LinkButton> + <asp:LinkButton ID="newRightBtn" runat="server" CommandName="newRight" OnCommand="newRight">New Right</asp:LinkButton></td> + </tr> + </table> +</asp:Content> +<asp:Content ID="NotesContent" ContentPlaceHolderID="NotesContentPlaceHolder" runat="Server"> +</asp:Content> Modified: Website/App_Code/Common.cs =================================================================== --- Website/App_Code/Common.cs 2006-07-27 00:32:49 UTC (rev 226) +++ Website/App_Code/Common.cs 2006-07-27 17:18:49 UTC (rev 227) @@ -1205,6 +1205,8 @@ public static string CODE_WO = "wo"; public static string CODE_PRODUCT = "p"; public static string CODE_VERSION = "v"; + public static string CODE_RIGHT = "rt"; + public static string CODE_ROLE = "r"; // TODO: figure this one out //public static bool ASSIGNMENT_PRIORITY_ALL = null; Modified: Website/App_Code/tcdbDataSet.xsd =================================================================== --- Website/App_Code/tcdbDataSet.xsd 2006-07-27 00:32:49 UTC (rev 226) +++ Website/App_Code/tcdbDataSet.xsd 2006-07-27 17:18:49 UTC (rev 227) @@ -574,7 +574,7 @@ <Sources> </Sources> </TableAdapter> - <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="sel_rightsTableAdapter" GeneratorDataComponentClassName="sel_rightsTableAdapter" Name="sel_rights" UserDataComponentName="sel_rightsTableAdapter"> + <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="db_rightsTableAdapter" GeneratorDataComponentClassName="db_rightsTableAdapter" Name="db_rights" UserDataComponentName="db_rightsTableAdapter"> <MainSource> <DbSource ConnectionRef="tcdbConnectionString (Web.config)" DbObjectName="tcdb.dbo.sel_rights" DbObjectType="StoredProcedure" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="True" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="False" UserGetMethodName="GetData" UserSourceName="Fill"> <InsertCommand> @@ -635,7 +635,7 @@ <Sources> </Sources> </TableAdapter> - <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="sel_roleTableAdapter" GeneratorDataComponentClassName="sel_roleTableAdapter" Name="sel_role" UserDataComponentName="sel_roleTableAdapter"> + <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="db_roleTableAdapter" GeneratorDataComponentClassName="db_roleTableAdapter" Name="db_role" UserDataComponentName="db_roleTableAdapter"> <MainSource> <DbSource ConnectionRef="tcdbConnectionString (Web.config)" DbObjectName="tcdb.dbo.sel_role" DbObjectType="StoredProcedure" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="True" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="False" UserGetMethodName="GetData" UserSourceName="Fill"> <InsertCommand> @@ -696,6 +696,89 @@ <Sources> </Sources> </TableAdapter> + <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="db_roleProductUserTableAdapter" GeneratorDataComponentClassName="db_roleProductUserTableAdapter" Name="db_roleProductUser" UserDataComponentName="db_roleProductUserTableAdapter"> + <MainSource> + <DbSource ConnectionRef="tcdbConnectionString (Web.config)" DbObjectName="tcdb.dbo.sel_roleProductUser" DbObjectType="StoredProcedure" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="False" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="False" UserGetMethodName="GetData" UserSourceName="Fill"> + <SelectCommand> + <DbCommand CommandType="StoredProcedure" ModifiedByUser="False"> + <CommandText>dbo.sel_roleProductUser</CommandText> + <Parameters> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@roleID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@productID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@active" Precision="1" ProviderType="Bit" Scale="0" Size="1" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + </Parameters> + </DbCommand> + </SelectCommand> + </DbSource> + </MainSource> + <Mappings> + <Mapping SourceColumn="userID" DataSetColumn="userID" /> + <Mapping SourceColumn="fullName" DataSetColumn="fullName" /> + <Mapping SourceColumn="roleID" DataSetColumn="roleID" /> + <Mapping SourceColumn="productID" DataSetColumn="productID" /> + <Mapping SourceColumn="active" DataSetColumn="active" /> + </Mappings> + <Sources> + </Sources> + </TableAdapter> + <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="db_roleProductTableAdapter" GeneratorDataComponentClassName="db_roleProductTableAdapter" Name="db_roleProduct" UserDataComponentName="db_roleProductTableAdapter"> + <MainSource> + <DbSource ConnectionRef="tcdbConnectionString (Web.config)" DbObjectName="tcdb.dbo.sel_roleProduct" DbObjectType="StoredProcedure" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="False" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="False" UserGetMethodName="GetData" UserSourceName="Fill"> + <SelectCommand> + <DbCommand CommandType="StoredProcedure" ModifiedByUser="False"> + <CommandText>dbo.sel_roleProduct</CommandText> + <Parameters> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@roleID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@active" Precision="1" ProviderType="Bit" Scale="0" Size="1" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + </Parameters> + </DbCommand> + </SelectCommand> + </DbSource> + </MainSource> + <Mappings> + <Mapping SourceColumn="productID" DataSetColumn="productID" /> + <Mapping SourceColumn="productName" DataSetColumn="productName" /> + </Mappings> + <Sources> + </Sources> + </TableAdapter> + <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="db_roleUserProductTableAdapter" GeneratorDataComponentClassName="db_roleUserProductTableAdapter" Name="db_roleUserProduct" UserDataComponentName="db_roleUserProductTableAdapter"> + <MainSource> + <DbSource ConnectionRef="tcdbConnectionString (Web.config)" DbObjectName="tcdb.dbo.sel_roleUserProduct" DbObjectType="StoredProcedure" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="False" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="False" UserGetMethodName="GetData" UserSourceName="Fill"> + <SelectCommand> + <DbCommand CommandType="StoredProcedure" ModifiedByUser="False"> + <CommandText>dbo.sel_roleUserProduct</CommandText> + <Parameters> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@userID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@productID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@active" Precision="1" ProviderType="Bit" Scale="0" Size="1" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + </Parameters> + </DbCommand> + </SelectCommand> + </DbSource> + </MainSource> + <Mappings> + <Mapping SourceColumn="roleID" DataSetColumn="roleID" /> + <Mapping SourceColumn="roleName" DataSetColumn="roleName" /> + <Mapping SourceColumn="active" DataSetColumn="active" /> + </Mappings> + <Sources> + </Sources> + </TableAdapter> </Tables> <Sources> </Sources> @@ -708,172 +791,172 @@ <xs:element name="db_users" msprop:Generator_UserTableName="db_users" msprop:Generator_RowDeletedName="db_usersRowDeleted" msprop:Generator_RowChangedName="db_usersRowChanged" msprop:Generator_RowClassName="db_usersRow" msprop:Generator_RowChangingName="db_usersRowChanging" msprop:Generator_RowEvArgName="db_usersRowChangeEvent" msprop:Generator_RowEvHandlerName="db_usersRowChangeEventHandler" msprop:Generator_TableClassName="db_usersDataTable" msprop:Generator_TableVarName="tabledb_users" msprop:Generator_RowDeletingName="db_usersRowDeleting" msprop:Generator_TablePropName="db_users"> <xs:complexType> <xs:sequence> - <xs:element name="userID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="userID" msprop:Generator_ColumnPropNameInRow="userID" msprop:Generator_ColumnVarNameInTable="columnuserID" msprop:Generator_ColumnPropNameInTable="userIDColumn" type="xs:int" /> - <xs:element name="username" msprop:Generator_UserColumnName="username" msprop:Generator_ColumnPropNameInRow="username" msprop:Generator_ColumnVarNameInTable="columnusername" msprop:Generator_ColumnPropNameInTable="usernameColumn"> + <xs:element name="userID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="userID" msprop:Generator_ColumnVarNameInTable="columnuserID" msprop:Generator_ColumnPropNameInRow="userID" msprop:Generator_ColumnPropNameInTable="userIDColumn" type="xs:int" /> + <xs:element name="username" msprop:Generator_UserColumnName="username" msprop:Generator_ColumnVarNameInTable="columnusername" msprop:Generator_ColumnPropNameInRow="username" msprop:Generator_ColumnPropNameInTable="usernameColumn"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="email" msprop:Generator_UserColumnName="email" msprop:Generator_ColumnPropNameInRow="email" msprop:Generator_ColumnVarNameInTable="columnemail" msprop:Generator_ColumnPropNameInTable="emailColumn"> + <xs:element name="email" msprop:Generator_UserColumnName="email" msprop:Generator_ColumnVarNameInTable="columnemail" msprop:Generator_ColumnPropNameInRow="email" msprop:Generator_ColumnPropNameInTable="emailColumn"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="officePhone" msprop:Generator_UserColumnName="officePhone" msprop:Generator_ColumnPropNameInRow="officePhone" msprop:Generator_ColumnVarNameInTable="columnofficePhone" msprop:Generator_ColumnPropNameInTable="officePhoneColumn" minOccurs="0"> + <xs:element name="officePhone" msprop:Generator_UserColumnName="officePhone" msprop:Generator_ColumnVarNameInTable="columnofficePhone" msprop:Generator_ColumnPropNameInRow="officePhone" msprop:Generator_ColumnPropNameInTable="officePhoneColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="14" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="homePhone" msprop:Generator_UserColumnName="homePhone" msprop:Generator_ColumnPropNameInRow="homePhone" msprop:Generator_ColumnVarNameInTable="columnhomePhone" msprop:Generator_ColumnPropNameInTable="homePhoneColumn" minOccurs="0"> + <xs:element name="homePhone" msprop:Generator_UserColumnName="homePhone" msprop:Generator_ColumnVarNameInTable="columnhomePhone" msprop:Generator_ColumnPropNameInRow="homePhone" msprop:Generator_ColumnPropNameInTable="homePhoneColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="14" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="cellPhone" msprop:Generator_UserColumnName="cellPhone" msprop:Generator_ColumnPropNameInRow="cellPhone" msprop:Generator_ColumnVarNameInTable="columncellPhone" msprop:Generator_ColumnPropNameInTable="cellPhoneColumn" minOccurs="0"> + <xs:element name="cellPhone" msprop:Generator_UserColumnName="cellPhone" msprop:Generator_ColumnVarNameInTable="columncellPhone" msprop:Generator_ColumnPropNameInRow="cellPhone" msprop:Generator_ColumnPropNameInTable="cellPhoneColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="14" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="firstName" msprop:Generator_UserColumnName="firstName" msprop:Generator_ColumnPropNameInRow="firstName" msprop:Generator_ColumnVarNameInTable="columnfirstName" msprop:Generator_ColumnPropNameInTable="firstNameColumn"> + <xs:element name="firstName" msprop:Generator_UserColumnName="firstName" msprop:Generator_ColumnVarNameInTable="columnfirstName" msprop:Generator_ColumnPropNameInRow="firstName" msprop:Generator_ColumnPropNameInTable="firstNameColumn"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="24" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="lastName" msprop:Generator_UserColumnName="lastName" msprop:Generator_ColumnPropNameInRow="lastName" msprop:Generator_ColumnVarNameInTable="columnlastName" msprop:Generator_ColumnPropNameInTable="lastNameColumn"> + <xs:element name="lastName" msprop:Generator_UserColumnName="lastName" msprop:Generator_ColumnVarNameInTable="columnlastName" msprop:Generator_ColumnPropNameInRow="lastName" msprop:Generator_ColumnPropNameInTable="lastNameColumn"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="24" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="fullName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="fullName" msprop:Generator_ColumnPropNameInRow="fullName" msprop:Generator_ColumnVarNameInTable="columnfullName" msprop:Generator_ColumnPropNameInTable="fullNameColumn" minOccurs="0"> + <xs:element name="fullName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="fullName" msprop:Generator_ColumnVarNameInTable="columnfullName" msprop:Generator_ColumnPropNameInRow="fullName" msprop:Generator_ColumnPropNameInTable="fullNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="automation" msprop:Generator_UserColumnName="automation" msprop:Generator_ColumnPropNameInRow="automation" msprop:Generator_ColumnVarNameInTable="columnautomation" msprop:Generator_ColumnPropNameInTable="automationColumn" type="xs:boolean" /> + <xs:element name="automation" msprop:Generator_UserColumnName="automation" msprop:Generator_ColumnVarNameInTable="columnautomation" msprop:Generator_ColumnPropNameInRow="automation" msprop:Generator_ColumnPropNameInTable="automationColumn" type="xs:boolean" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_products" msprop:Generator_UserTableName="db_products" msprop:Generator_RowDeletedName="db_productsRowDeleted" msprop:Generator_RowChangedName="db_productsRowChanged" msprop:Generator_RowClassName="db_productsRow" msprop:Generator_RowChangingName="db_productsRowChanging" msprop:Generator_RowEvArgName="db_productsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_productsRowChangeEventHandler" msprop:Generator_TableClassName="db_productsDataTable" msprop:Generator_TableVarName="tabledb_products" msprop:Generator_RowDeletingName="db_productsRowDeleting" msprop:Generator_TablePropName="db_products"> <xs:complexType> <xs:sequence> - <xs:element name="productID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="productID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> + <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="devManager" msprop:Generator_UserColumnName="devManager" msprop:Generator_ColumnPropNameInRow="devManager" msprop:Generator_ColumnVarNameInTable="columndevManager" msprop:Generator_ColumnPropNameInTable="devManagerColumn" type="xs:int" minOccurs="0" /> - <xs:element name="qaManager" msprop:Generator_UserColumnName="qaManager" msprop:Generator_ColumnPropNameInRow="qaManager" msprop:Generator_ColumnVarNameInTable="columnqaManager" msprop:Generator_ColumnPropNameInTable="qaManagerColumn" type="xs:int" minOccurs="0" /> - <xs:element name="devLead" msprop:Generator_UserColumnName="devLead" msprop:Generator_ColumnPropNameInRow="devLead" msprop:Generator_ColumnVarNameInTable="columndevLead" msprop:Generator_ColumnPropNameInTable="devLeadColumn" type="xs:int" minOccurs="0" /> - <xs:element name="qaLead" msprop:Generator_UserColumnName="qaLead" msprop:Generator_ColumnPropNameInRow="qaLead" msprop:Generator_ColumnVarNameInTable="columnqaLead" msprop:Generator_ColumnPropNameInTable="qaLeadColumn" type="xs:int" minOccurs="0" /> - <xs:element name="pm" msprop:Generator_UserColumnName="pm" msprop:Generator_ColumnPropNameInRow="pm" msprop:Generator_ColumnVarNameInTable="columnpm" msprop:Generator_ColumnPropNameInTable="pmColumn" type="xs:int" minOccurs="0" /> - <xs:element name="codeName" msprop:Generator_UserColumnName="codeName" msprop:Generator_ColumnPropNameInRow="codeName" msprop:Generator_ColumnVarNameInTable="columncodeName" msprop:Generator_ColumnPropNameInTable="codeNameColumn" minOccurs="0"> + <xs:element name="devManager" msprop:Generator_UserColumnName="devManager" msprop:Generator_ColumnVarNameInTable="columndevManager" msprop:Generator_ColumnPropNameInRow="devManager" msprop:Generator_ColumnPropNameInTable="devManagerColumn" type="xs:int" minOccurs="0" /> + <xs:element name="qaManager" msprop:Generator_UserColumnName="qaManager" msprop:Generator_ColumnVarNameInTable="columnqaManager" msprop:Generator_ColumnPropNameInRow="qaManager" msprop:Generator_ColumnPropNameInTable="qaManagerColumn" type="xs:int" minOccurs="0" /> + <xs:element name="devLead" msprop:Generator_UserColumnName="devLead" msprop:Generator_ColumnVarNameInTable="columndevLead" msprop:Generator_ColumnPropNameInRow="devLead" msprop:Generator_ColumnPropNameInTable="devLeadColumn" type="xs:int" minOccurs="0" /> + <xs:element name="qaLead" msprop:Generator_UserColumnName="qaLead" msprop:Generator_ColumnVarNameInTable="columnqaLead" msprop:Generator_ColumnPropNameInRow="qaLead" msprop:Generator_ColumnPropNameInTable="qaLeadColumn" type="xs:int" minOccurs="0" /> + <xs:element name="pm" msprop:Generator_UserColumnName="pm" msprop:Generator_ColumnVarNameInTable="columnpm" msprop:Generator_ColumnPropNameInRow="pm" msprop:Generator_ColumnPropNameInTable="pmColumn" type="xs:int" minOccurs="0" /> + <xs:element name="codeName" msprop:Generator_UserColumnName="codeName" msprop:Generator_ColumnVarNameInTable="columncodeName" msprop:Generator_ColumnPropNameInRow="codeName" msprop:Generator_ColumnPropNameInTable="codeNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="10" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_actionItems" msprop:Generator_UserTableName="db_actionItems" msprop:Generator_RowDeletedName="db_actionItemsRowDeleted" msprop:Generator_RowChangedName="db_actionItemsRowChanged" msprop:Generator_RowClassName="db_actionItemsRow" msprop:Generator_RowChangingName="db_actionItemsRowChanging" msprop:Generator_RowEvArgName="db_actionItemsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_actionItemsRowChangeEventHandler" msprop:Generator_TableClassName="db_actionItemsDataTable" msprop:Generator_TableVarName="tabledb_actionItems" msprop:Generator_RowDeletingName="db_actionItemsRowDeleting" msprop:Generator_TablePropName="db_actionItems"> <xs:complexType> <xs:sequence> - <xs:element name="actionItemID" msprop:Generator_UserColumnName="actionItemID" msprop:Generator_ColumnVarNameInTable="columnactionItemID" msprop:Generator_ColumnPropNameInRow="actionItemID" msprop:Generator_ColumnPropNameInTable="actionItemIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="actionItemID" msprop:Generator_UserColumnName="actionItemID" msprop:Generator_ColumnPropNameInRow="actionItemID" msprop:Generator_ColumnVarNameInTable="columnactionItemID" msprop:Generator_ColumnPropNameInTable="actionItemIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> + <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="percentComplete" msprop:Generator_UserColumnName="percentComplete" msprop:Generator_ColumnVarNameInTable="columnpercentComplete" msprop:Generator_ColumnPropNameInRow="percentComplete" msprop:Generator_ColumnPropNameInTable="percentCompleteColumn" type="xs:int" minOccurs="0" /> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="percentComplete" msprop:Generator_UserColumnName="percentComplete" msprop:Generator_ColumnPropNameInRow="percentComplete" msprop:Generator_ColumnVarNameInTable="columnpercentComplete" msprop:Generator_ColumnPropNameInTable="percentCompleteColumn" type="xs:int" minOccurs="0" /> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="createdBy" msdata:ReadOnly="true" msprop:Generator_UserColumnName="createdBy" msprop:Generator_ColumnVarNameInTable="columncreatedBy" msprop:Generator_ColumnPropNameInRow="createdBy" msprop:Generator_ColumnPropNameInTable="createdByColumn" minOccurs="0"> + <xs:element name="createdBy" msdata:ReadOnly="true" msprop:Generator_UserColumnName="createdBy" msprop:Generator_ColumnPropNameInRow="createdBy" msprop:Generator_ColumnVarNameInTable="columncreatedBy" msprop:Generator_ColumnPropNameInTable="createdByColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> - <xs:element name="testPass" msprop:Generator_UserColumnName="testPass" msprop:Generator_ColumnPropNameInRow="testPass" msprop:Generator_ColumnVarNameInTable="columntestPass" msprop:Generator_ColumnPropNameInTable="testPassColumn" minOccurs="0"> + <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> + <xs:element name="testPass" msprop:Generator_UserColumnName="testPass" msprop:Generator_ColumnVarNameInTable="columntestPass" msprop:Generator_ColumnPropNameInRow="testPass" msprop:Generator_ColumnPropNameInTable="testPassColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> + <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="statusID" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="testPassID" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> - <xs:element name="creatorID" msprop:Generator_UserColumnName="creatorID" msprop:Generator_ColumnVarNameInTable="columncreatorID" msprop:Generator_ColumnPropNameInRow="creatorID" msprop:Generator_ColumnPropNameInTable="creatorIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="statusID" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="testPassID" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="creatorID" msprop:Generator_UserColumnName="creatorID" msprop:Generator_ColumnPropNameInRow="creatorID" msprop:Generator_ColumnVarNameInTable="columncreatorID" msprop:Generator_ColumnPropNameInTable="creatorIDColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_status" msprop:Generator_UserTableName="db_status" msprop:Generator_RowDeletedName="db_statusRowDeleted" msprop:Generator_RowChangedName="db_statusRowChanged" msprop:Generator_RowClassName="db_statusRow" msprop:Generator_RowChangingName="db_statusRowChanging" msprop:Generator_RowEvArgName="db_statusRowChangeEvent" msprop:Generator_RowEvHandlerName="db_statusRowChangeEventHandler" msprop:Generator_TableClassName="db_statusDataTable" msprop:Generator_TableVarName="tabledb_status" msprop:Generator_RowDeletingName="db_statusRowDeleting" msprop:Generator_TablePropName="db_status"> <xs:complexType> <xs:sequence> - <xs:element name="statusID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" /> - <xs:element name="Description" msprop:Generator_UserColumnName="Description" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnVarNameInTable="columnDescription" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" minOccurs="0"> + <xs:element name="statusID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" /> + <xs:element name="Description" msprop:Generator_UserColumnName="Description" msprop:Generator_ColumnVarNameInTable="columnDescription" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> @@ -886,113 +969,113 @@ <xs:element name="db_notes" msprop:Generator_UserTableName="db_notes" msprop:Generator_RowDeletedName="db_notesRowDeleted" msprop:Generator_RowChangedName="db_notesRowChanged" msprop:Generator_RowClassName="db_notesRow" msprop:Generator_RowChangingName="db_notesRowChanging" msprop:Generator_RowEvArgName="db_notesRowChangeEvent" msprop:Generator_RowEvHandlerName="db_notesRowChangeEventHandler" msprop:Generator_TableClassName="db_notesDataTable" msprop:Generator_TableVarName="tabledb_notes" msprop:Generator_RowDeletingName="db_notesRowDeleting" msprop:Generator_TablePropName="db_notes"> <xs:complexType> <xs:sequence> - <xs:element name="noteID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="noteID" msprop:Generator_ColumnPropNameInRow="noteID" msprop:Generator_ColumnVarNameInTable="columnnoteID" msprop:Generator_ColumnPropNameInTable="noteIDColumn" type="xs:int" /> - <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="noteField" msprop:Generator_UserColumnName="noteField" msprop:Generator_ColumnPropNameInRow="noteField" msprop:Generator_ColumnVarNameInTable="columnnoteField" msprop:Generator_ColumnPropNameInTable="noteFieldColumn" minOccurs="0"> + <xs:element name="noteID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="noteID" msprop:Generator_ColumnVarNameInTable="columnnoteID" msprop:Generator_ColumnPropNameInRow="noteID" msprop:Generator_ColumnPropNameInTable="noteIDColumn" type="xs:int" /> + <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="noteField" msprop:Generator_UserColumnName="noteField" msprop:Generator_ColumnVarNameInTable="columnnoteField" msprop:Generator_ColumnPropNameInRow="noteField" msprop:Generator_ColumnPropNameInTable="noteFieldColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="noteAuthor" msprop:Generator_UserColumnName="noteAuthor" msprop:Generator_ColumnPropNameInRow="noteAuthor" msprop:Generator_ColumnVarNameInTable="columnnoteAuthor" msprop:Generator_ColumnPropNameInTable="noteAuthorColumn" type="xs:int" minOccurs="0" /> + <xs:element name="noteAuthor" msprop:Generator_UserColumnName="noteAuthor" msprop:Generator_ColumnVarNameInTable="columnnoteAuthor" msprop:Generator_ColumnPropNameInRow="noteAuthor" msprop:Generator_ColumnPropNameInTable="noteAuthorColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_assignments" msprop:Generator_UserTableName="db_assignments" msprop:Generator_RowDeletedName="db_assignmentsRowDeleted" msprop:Generator_RowChangedName="db_assignmentsRowChanged" msprop:Generator_RowClassName="db_assignmentsRow" msprop:Generator_RowChangingName="db_assignmentsRowChanging" msprop:Generator_RowEvArgName="db_assignmentsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_assignmentsRowChangeEventHandler" msprop:Generator_TableClassName="db_assignmentsDataTable" msprop:Generator_TableVarName="tabledb_assignments" msprop:Generator_RowDeletingName="db_assignmentsRowDeleting" msprop:Generator_TablePropName="db_assignments"> <xs:complexType> <xs:sequence> - <xs:element name="aType" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aType" msprop:Generator_ColumnPropNameInRow="aType" msprop:Generator_ColumnVarNameInTable="columnaType" msprop:Generator_ColumnPropNameInTable="aTypeColumn" minOccurs="0"> + <xs:element name="aType" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aType" msprop:Generator_ColumnVarNameInTable="columnaType" msprop:Generator_ColumnPropNameInRow="aType" msprop:Generator_ColumnPropNameInTable="aTypeColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="childID" msdata:ReadOnly="true" msprop:Generator_UserColumnName="childID" msprop:Generator_ColumnPropNameInRow="childID" msprop:Generator_ColumnVarNameInTable="columnchildID" msprop:Generator_ColumnPropNameInTable="childIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="creator" msdata:ReadOnly="true" msprop:Generator_UserColumnName="creator" msprop:Generator_ColumnPropNameInRow="creator" msprop:Generator_ColumnVarNameInTable="columncreator" msprop:Generator_ColumnPropNameInTable="creatorColumn" minOccurs="0"> + <xs:element name="childID" msdata:ReadOnly="true" msprop:Generator_UserColumnName="childID" msprop:Generator_ColumnVarNameInTable="columnchildID" msprop:Generator_ColumnPropNameInRow="childID" msprop:Generator_ColumnPropNameInTable="childIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="creator" msdata:ReadOnly="true" msprop:Generator_UserColumnName="creator" msprop:Generator_ColumnVarNameInTable="columncreator" msprop:Generator_ColumnPropNameInRow="creator" msprop:Generator_ColumnPropNameInTable="creatorColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> + <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="WOTotalTest" msprop:Generator_UserColumnName="WOTotalTest" msprop:Generator_ColumnPropNameInRow="WOTotalTest" msprop:Generator_ColumnVarNameInTable="columnWOTotalTest" msprop:Generator_ColumnPropNameInTable="WOTotalTestColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOPassRate" msdata:ReadOnly="true" msprop:Generator_UserColumnName="WOPassRate" msprop:Generator_ColumnPropNameInRow="WOPassRate" msprop:Generator_ColumnVarNameInTable="columnWOPassRate" msprop:Generator_ColumnPropNameInTable="WOPassRateColumn" minOccurs="0"> + <xs:element name="WOTotalTest" msprop:Generator_UserColumnName="WOTotalTest" msprop:Generator_ColumnVarNameInTable="columnWOTotalTest" msprop:Generator_ColumnPropNameInRow="WOTotalTest" msprop:Generator_ColumnPropNameInTable="WOTotalTestColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOPassRate" msdata:ReadOnly="true" msprop:Generator_UserColumnName="WOPassRate" msprop:Generator_ColumnVarNameInTable="columnWOPassRate" msprop:Generator_ColumnPropNameInRow="WOPassRate" msprop:Generator_ColumnPropNameInTable="WOPassRateColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="31" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="WOPass" msprop:Generator_UserColumnName="WOPass" msprop:Generator_ColumnPropNameInRow="WOPass" msprop:Generator_ColumnVarNameInTable="columnWOPass" msprop:Generator_ColumnPropNameInTable="WOPassColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOFail" msprop:Generator_UserColumnName="WOFail" msprop:Generator_ColumnPropNameInRow="WOFail" msprop:Generator_ColumnVarNameInTable="columnWOFail" msprop:Generator_ColumnPropNameInTable="WOFailColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOError" msprop:Generator_UserColumnName="WOError" msprop:Generator_ColumnPropNameInRow="WOError" msprop:Generator_ColumnVarNameInTable="columnWOError" msprop:Generator_ColumnPropNameInTable="WOErrorColumn" type="xs:int" minOccurs="0" /> - <xs:element name="aName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aName" msprop:Generator_ColumnPropNameInRow="aName" msprop:Generator_ColumnVarNameInTable="columnaName" msprop:Generator_ColumnPropNameInTable="aNameColumn" minOccurs="0"> + <xs:element name="WOPass" msprop:Generator_UserColumnName="WOPass" msprop:Generator_ColumnVarNameInTable="columnWOPass" msprop:Generator_ColumnPropNameInRow="WOPass" msprop:Generator_ColumnPropNameInTable="WOPassColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOFail" msprop:Generator_UserColumnName="WOFail" msprop:Generator_ColumnVarNameInTable="columnWOFail" msprop:Generator_ColumnPropNameInRow="WOFail" msprop:Generator_ColumnPropNameInTable="WOFailColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOError" msprop:Generator_UserColumnName="WOError" msprop:Generator_ColumnVarNameInTable="columnWOError" msprop:Generator_ColumnPropNameInRow="WOError" msprop:Generator_ColumnPropNameInTable="WOErrorColumn" type="xs:int" minOccurs="0" /> + <xs:element name="aName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aName" msprop:Generator_ColumnVarNameInTable="columnaName" msprop:Generator_ColumnPropNameInRow="aName" msprop:Generator_ColumnPropNameInTable="aNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - ... [truncated message content] |
From: <ro...@us...> - 2006-07-31 15:36:05
|
Revision: 239 Author: rouquin Date: 2006-07-31 08:35:53 -0700 (Mon, 31 Jul 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=239&view=rev Log Message: ----------- Made a number of changes to the admin tree. Prune a little here add a little there... Also changed the view format of Roles/Products/Users on the Role view and Product view pages. These need beautification. Matt and I decided that we don't need all of the roles hard coded to the product in the database - we're going to use built-in role objects instead. So we can get rid of those attributes. Started work on enforcing rights. Still need an insert user/product/role query, etc. Modified Paths: -------------- Website/AdminRole.aspx Website/App_Code/Users.cs Website/App_Code/tcdbDataSet.xsd Website/App_Code/tcdbDataSet.xss Website/Includes/AdministrationTree.ascx.cs Website/Includes/Products.ascx Website/Includes/Roles.ascx Website/Includes/Roles.ascx.cs Modified: Website/AdminRole.aspx =================================================================== --- Website/AdminRole.aspx 2006-07-29 20:47:23 UTC (rev 238) +++ Website/AdminRole.aspx 2006-07-31 15:35:53 UTC (rev 239) @@ -9,18 +9,10 @@ protected void Page_Load(object sender, EventArgs e) { } - protected void newRole(object sender, CommandEventArgs e) - { - Response.Redirect("Role.aspx?mode=new&" + Constants.CODE_PRODUCT + "=" + product); - } protected void addRole(object sender, CommandEventArgs e) { - Response.Redirect("Role.aspx?mode=edit&"+Constants.CODE_ROLE+"=" + roleList.SelectedValue + "&" + Constants.CODE_PRODUCT + "=" + product); + Response.Redirect("Role.aspx?mode=new&" + Constants.CODE_PRODUCT + "=" + product+"&"+Constants.CODE_ROLE+"="+roleList.SelectedValue); } - protected void newRight(object sender, CommandEventArgs e) - { - Response.Redirect("Right.aspx?mode=new"); - } </script> <asp:Content ID="TreeContent" ContentPlaceHolderID="TreeContentPlaceHolder" runat="Server"> @@ -42,9 +34,7 @@ </asp:ObjectDataSource> <asp:LinkButton ID="addRoleBtn" runat="server" CommandName="addRole" OnCommand="addRole">Add User Role</asp:LinkButton> <br /> - <br /> - <asp:LinkButton ID="newRoleBtn" runat="server" CommandName="newRole" OnCommand="newRole">New User Role</asp:LinkButton> - <asp:LinkButton ID="newRightBtn" runat="server" CommandName="newRight" OnCommand="newRight">New Right</asp:LinkButton></td> + </td> </tr> </table> </asp:Content> Modified: Website/App_Code/Users.cs =================================================================== --- Website/App_Code/Users.cs 2006-07-29 20:47:23 UTC (rev 238) +++ Website/App_Code/Users.cs 2006-07-31 15:35:53 UTC (rev 239) @@ -209,6 +209,16 @@ if (ds.db_users.HasErrors) return false; + // Guest user == 1, Site Admin = 2 + if (ta.GetData(null, null).Count > 2) + { + user.AddRole("Basic User", Constants.PRODUCT_SITEID); + } + else + { + user.AddRole("Admin", Constants.PRODUCT_SITEID); + } + return true; } } @@ -393,14 +403,20 @@ public bool HasRight(string right, int productID) { - if (p_rights.ContainsKey(productID)) - return p_rights[productID].Contains(right); - else - { + if (!p_rights.ContainsKey(productID)) p_rights[productID] = RightDB.TCDB_GetUserRights(productID,p_id); + if (p_rights[productID].Contains(right)) + return true; - return p_rights[productID].Contains(right); + if (productID != Constants.PRODUCT_SITEID) + { + if (!p_rights.ContainsKey(Constants.PRODUCT_SITEID)) + p_rights[Constants.PRODUCT_SITEID] = RightDB.TCDB_GetUserRights(Constants.PRODUCT_SITEID, p_id); + if (p_rights[Constants.PRODUCT_SITEID].Contains(right)) + return true; } + + return false; } public static bool HasRight(int userID, string right, int productID) @@ -408,6 +424,11 @@ return (RightDB.TCDB_GetUserRight(productID, userID, right) != null); } + public void AddRole(String role, int productID) + { + // Insert user role Product + } + public List<Assignment> GetAssignments(bool reload, int statusFilter) { // TODO: This list needs to be able to reflect filters! Modified: Website/App_Code/tcdbDataSet.xsd =================================================================== --- Website/App_Code/tcdbDataSet.xsd 2006-07-29 20:47:23 UTC (rev 238) +++ Website/App_Code/tcdbDataSet.xsd 2006-07-31 15:35:53 UTC (rev 239) @@ -782,6 +782,19 @@ <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="db_roleRightTableAdapter" GeneratorDataComponentClassName="db_roleRightTableAdapter" Name="db_roleRight" UserDataComponentName="db_roleRightTableAdapter"> <MainSource> <DbSource ConnectionRef="tcdbConnectionString (Web.config)" DbObjectName="tcdb.dbo.sel_roleRight" DbObjectType="StoredProcedure" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="False" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="False" UserGetMethodName="GetData" UserSourceName="Fill"> + <InsertCommand> + <DbCommand CommandType="StoredProcedure" ModifiedByUser="False"> + <CommandText>dbo.ins_roleRight</CommandText> + <Parameters> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@roleID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumn="roleID" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@rightsID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumn="rightsID" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + </Parameters> + </DbCommand> + </InsertCommand> <SelectCommand> <DbCommand CommandType="StoredProcedure" ModifiedByUser="False"> <CommandText>dbo.sel_roleRight</CommandText> @@ -854,172 +867,172 @@ <xs:element name="db_users" msprop:Generator_UserTableName="db_users" msprop:Generator_RowDeletedName="db_usersRowDeleted" msprop:Generator_RowChangedName="db_usersRowChanged" msprop:Generator_RowClassName="db_usersRow" msprop:Generator_RowChangingName="db_usersRowChanging" msprop:Generator_RowEvArgName="db_usersRowChangeEvent" msprop:Generator_RowEvHandlerName="db_usersRowChangeEventHandler" msprop:Generator_TableClassName="db_usersDataTable" msprop:Generator_TableVarName="tabledb_users" msprop:Generator_RowDeletingName="db_usersRowDeleting" msprop:Generator_TablePropName="db_users"> <xs:complexType> <xs:sequence> - <xs:element name="userID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="userID" msprop:Generator_ColumnVarNameInTable="columnuserID" msprop:Generator_ColumnPropNameInRow="userID" msprop:Generator_ColumnPropNameInTable="userIDColumn" type="xs:int" /> - <xs:element name="username" msprop:Generator_UserColumnName="username" msprop:Generator_ColumnVarNameInTable="columnusername" msprop:Generator_ColumnPropNameInRow="username" msprop:Generator_ColumnPropNameInTable="usernameColumn"> + <xs:element name="userID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="userID" msprop:Generator_ColumnPropNameInRow="userID" msprop:Generator_ColumnVarNameInTable="columnuserID" msprop:Generator_ColumnPropNameInTable="userIDColumn" type="xs:int" /> + <xs:element name="username" msprop:Generator_UserColumnName="username" msprop:Generator_ColumnPropNameInRow="username" msprop:Generator_ColumnVarNameInTable="columnusername" msprop:Generator_ColumnPropNameInTable="usernameColumn"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="email" msprop:Generator_UserColumnName="email" msprop:Generator_ColumnVarNameInTable="columnemail" msprop:Generator_ColumnPropNameInRow="email" msprop:Generator_ColumnPropNameInTable="emailColumn"> + <xs:element name="email" msprop:Generator_UserColumnName="email" msprop:Generator_ColumnPropNameInRow="email" msprop:Generator_ColumnVarNameInTable="columnemail" msprop:Generator_ColumnPropNameInTable="emailColumn"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="officePhone" msprop:Generator_UserColumnName="officePhone" msprop:Generator_ColumnVarNameInTable="columnofficePhone" msprop:Generator_ColumnPropNameInRow="officePhone" msprop:Generator_ColumnPropNameInTable="officePhoneColumn" minOccurs="0"> + <xs:element name="officePhone" msprop:Generator_UserColumnName="officePhone" msprop:Generator_ColumnPropNameInRow="officePhone" msprop:Generator_ColumnVarNameInTable="columnofficePhone" msprop:Generator_ColumnPropNameInTable="officePhoneColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="14" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="homePhone" msprop:Generator_UserColumnName="homePhone" msprop:Generator_ColumnVarNameInTable="columnhomePhone" msprop:Generator_ColumnPropNameInRow="homePhone" msprop:Generator_ColumnPropNameInTable="homePhoneColumn" minOccurs="0"> + <xs:element name="homePhone" msprop:Generator_UserColumnName="homePhone" msprop:Generator_ColumnPropNameInRow="homePhone" msprop:Generator_ColumnVarNameInTable="columnhomePhone" msprop:Generator_ColumnPropNameInTable="homePhoneColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="14" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="cellPhone" msprop:Generator_UserColumnName="cellPhone" msprop:Generator_ColumnVarNameInTable="columncellPhone" msprop:Generator_ColumnPropNameInRow="cellPhone" msprop:Generator_ColumnPropNameInTable="cellPhoneColumn" minOccurs="0"> + <xs:element name="cellPhone" msprop:Generator_UserColumnName="cellPhone" msprop:Generator_ColumnPropNameInRow="cellPhone" msprop:Generator_ColumnVarNameInTable="columncellPhone" msprop:Generator_ColumnPropNameInTable="cellPhoneColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="14" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="firstName" msprop:Generator_UserColumnName="firstName" msprop:Generator_ColumnVarNameInTable="columnfirstName" msprop:Generator_ColumnPropNameInRow="firstName" msprop:Generator_ColumnPropNameInTable="firstNameColumn"> + <xs:element name="firstName" msprop:Generator_UserColumnName="firstName" msprop:Generator_ColumnPropNameInRow="firstName" msprop:Generator_ColumnVarNameInTable="columnfirstName" msprop:Generator_ColumnPropNameInTable="firstNameColumn"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="24" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="lastName" msprop:Generator_UserColumnName="lastName" msprop:Generator_ColumnVarNameInTable="columnlastName" msprop:Generator_ColumnPropNameInRow="lastName" msprop:Generator_ColumnPropNameInTable="lastNameColumn"> + <xs:element name="lastName" msprop:Generator_UserColumnName="lastName" msprop:Generator_ColumnPropNameInRow="lastName" msprop:Generator_ColumnVarNameInTable="columnlastName" msprop:Generator_ColumnPropNameInTable="lastNameColumn"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="24" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="fullName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="fullName" msprop:Generator_ColumnVarNameInTable="columnfullName" msprop:Generator_ColumnPropNameInRow="fullName" msprop:Generator_ColumnPropNameInTable="fullNameColumn" minOccurs="0"> + <xs:element name="fullName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="fullName" msprop:Generator_ColumnPropNameInRow="fullName" msprop:Generator_ColumnVarNameInTable="columnfullName" msprop:Generator_ColumnPropNameInTable="fullNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="automation" msprop:Generator_UserColumnName="automation" msprop:Generator_ColumnVarNameInTable="columnautomation" msprop:Generator_ColumnPropNameInRow="automation" msprop:Generator_ColumnPropNameInTable="automationColumn" type="xs:boolean" /> + <xs:element name="automation" msprop:Generator_UserColumnName="automation" msprop:Generator_ColumnPropNameInRow="automation" msprop:Generator_ColumnVarNameInTable="columnautomation" msprop:Generator_ColumnPropNameInTable="automationColumn" type="xs:boolean" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_products" msprop:Generator_UserTableName="db_products" msprop:Generator_RowDeletedName="db_productsRowDeleted" msprop:Generator_RowChangedName="db_productsRowChanged" msprop:Generator_RowClassName="db_productsRow" msprop:Generator_RowChangingName="db_productsRowChanging" msprop:Generator_RowEvArgName="db_productsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_productsRowChangeEventHandler" msprop:Generator_TableClassName="db_productsDataTable" msprop:Generator_TableVarName="tabledb_products" msprop:Generator_RowDeletingName="db_productsRowDeleting" msprop:Generator_TablePropName="db_products"> <xs:complexType> <xs:sequence> - <xs:element name="productID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="productID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> + <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="devManager" msprop:Generator_UserColumnName="devManager" msprop:Generator_ColumnVarNameInTable="columndevManager" msprop:Generator_ColumnPropNameInRow="devManager" msprop:Generator_ColumnPropNameInTable="devManagerColumn" type="xs:int" minOccurs="0" /> - <xs:element name="qaManager" msprop:Generator_UserColumnName="qaManager" msprop:Generator_ColumnVarNameInTable="columnqaManager" msprop:Generator_ColumnPropNameInRow="qaManager" msprop:Generator_ColumnPropNameInTable="qaManagerColumn" type="xs:int" minOccurs="0" /> - <xs:element name="devLead" msprop:Generator_UserColumnName="devLead" msprop:Generator_ColumnVarNameInTable="columndevLead" msprop:Generator_ColumnPropNameInRow="devLead" msprop:Generator_ColumnPropNameInTable="devLeadColumn" type="xs:int" minOccurs="0" /> - <xs:element name="qaLead" msprop:Generator_UserColumnName="qaLead" msprop:Generator_ColumnVarNameInTable="columnqaLead" msprop:Generator_ColumnPropNameInRow="qaLead" msprop:Generator_ColumnPropNameInTable="qaLeadColumn" type="xs:int" minOccurs="0" /> - <xs:element name="pm" msprop:Generator_UserColumnName="pm" msprop:Generator_ColumnVarNameInTable="columnpm" msprop:Generator_ColumnPropNameInRow="pm" msprop:Generator_ColumnPropNameInTable="pmColumn" type="xs:int" minOccurs="0" /> - <xs:element name="codeName" msprop:Generator_UserColumnName="codeName" msprop:Generator_ColumnVarNameInTable="columncodeName" msprop:Generator_ColumnPropNameInRow="codeName" msprop:Generator_ColumnPropNameInTable="codeNameColumn" minOccurs="0"> + <xs:element name="devManager" msprop:Generator_UserColumnName="devManager" msprop:Generator_ColumnPropNameInRow="devManager" msprop:Generator_ColumnVarNameInTable="columndevManager" msprop:Generator_ColumnPropNameInTable="devManagerColumn" type="xs:int" minOccurs="0" /> + <xs:element name="qaManager" msprop:Generator_UserColumnName="qaManager" msprop:Generator_ColumnPropNameInRow="qaManager" msprop:Generator_ColumnVarNameInTable="columnqaManager" msprop:Generator_ColumnPropNameInTable="qaManagerColumn" type="xs:int" minOccurs="0" /> + <xs:element name="devLead" msprop:Generator_UserColumnName="devLead" msprop:Generator_ColumnPropNameInRow="devLead" msprop:Generator_ColumnVarNameInTable="columndevLead" msprop:Generator_ColumnPropNameInTable="devLeadColumn" type="xs:int" minOccurs="0" /> + <xs:element name="qaLead" msprop:Generator_UserColumnName="qaLead" msprop:Generator_ColumnPropNameInRow="qaLead" msprop:Generator_ColumnVarNameInTable="columnqaLead" msprop:Generator_ColumnPropNameInTable="qaLeadColumn" type="xs:int" minOccurs="0" /> + <xs:element name="pm" msprop:Generator_UserColumnName="pm" msprop:Generator_ColumnPropNameInRow="pm" msprop:Generator_ColumnVarNameInTable="columnpm" msprop:Generator_ColumnPropNameInTable="pmColumn" type="xs:int" minOccurs="0" /> + <xs:element name="codeName" msprop:Generator_UserColumnName="codeName" msprop:Generator_ColumnPropNameInRow="codeName" msprop:Generator_ColumnVarNameInTable="columncodeName" msprop:Generator_ColumnPropNameInTable="codeNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="10" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_actionItems" msprop:Generator_UserTableName="db_actionItems" msprop:Generator_RowDeletedName="db_actionItemsRowDeleted" msprop:Generator_RowChangedName="db_actionItemsRowChanged" msprop:Generator_RowClassName="db_actionItemsRow" msprop:Generator_RowChangingName="db_actionItemsRowChanging" msprop:Generator_RowEvArgName="db_actionItemsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_actionItemsRowChangeEventHandler" msprop:Generator_TableClassName="db_actionItemsDataTable" msprop:Generator_TableVarName="tabledb_actionItems" msprop:Generator_RowDeletingName="db_actionItemsRowDeleting" msprop:Generator_TablePropName="db_actionItems"> <xs:complexType> <xs:sequence> - <xs:element name="actionItemID" msprop:Generator_UserColumnName="actionItemID" msprop:Generator_ColumnPropNameInRow="actionItemID" msprop:Generator_ColumnVarNameInTable="columnactionItemID" msprop:Generator_ColumnPropNameInTable="actionItemIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="actionItemID" msprop:Generator_UserColumnName="actionItemID" msprop:Generator_ColumnVarNameInTable="columnactionItemID" msprop:Generator_ColumnPropNameInRow="actionItemID" msprop:Generator_ColumnPropNameInTable="actionItemIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> + <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="percentComplete" msprop:Generator_UserColumnName="percentComplete" msprop:Generator_ColumnPropNameInRow="percentComplete" msprop:Generator_ColumnVarNameInTable="columnpercentComplete" msprop:Generator_ColumnPropNameInTable="percentCompleteColumn" type="xs:int" minOccurs="0" /> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="percentComplete" msprop:Generator_UserColumnName="percentComplete" msprop:Generator_ColumnVarNameInTable="columnpercentComplete" msprop:Generator_ColumnPropNameInRow="percentComplete" msprop:Generator_ColumnPropNameInTable="percentCompleteColumn" type="xs:int" minOccurs="0" /> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="createdBy" msdata:ReadOnly="true" msprop:Generator_UserColumnName="createdBy" msprop:Generator_ColumnPropNameInRow="createdBy" msprop:Generator_ColumnVarNameInTable="columncreatedBy" msprop:Generator_ColumnPropNameInTable="createdByColumn" minOccurs="0"> + <xs:element name="createdBy" msdata:ReadOnly="true" msprop:Generator_UserColumnName="createdBy" msprop:Generator_ColumnVarNameInTable="columncreatedBy" msprop:Generator_ColumnPropNameInRow="createdBy" msprop:Generator_ColumnPropNameInTable="createdByColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> - <xs:element name="testPass" msprop:Generator_UserColumnName="testPass" msprop:Generator_ColumnVarNameInTable="columntestPass" msprop:Generator_ColumnPropNameInRow="testPass" msprop:Generator_ColumnPropNameInTable="testPassColumn" minOccurs="0"> + <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> + <xs:element name="testPass" msprop:Generator_UserColumnName="testPass" msprop:Generator_ColumnPropNameInRow="testPass" msprop:Generator_ColumnVarNameInTable="columntestPass" msprop:Generator_ColumnPropNameInTable="testPassColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> + <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="statusID" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="testPassID" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> - <xs:element name="creatorID" msprop:Generator_UserColumnName="creatorID" msprop:Generator_ColumnPropNameInRow="creatorID" msprop:Generator_ColumnVarNameInTable="columncreatorID" msprop:Generator_ColumnPropNameInTable="creatorIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="statusID" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="testPassID" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="creatorID" msprop:Generator_UserColumnName="creatorID" msprop:Generator_ColumnVarNameInTable="columncreatorID" msprop:Generator_ColumnPropNameInRow="creatorID" msprop:Generator_ColumnPropNameInTable="creatorIDColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_status" msprop:Generator_UserTableName="db_status" msprop:Generator_RowDeletedName="db_statusRowDeleted" msprop:Generator_RowChangedName="db_statusRowChanged" msprop:Generator_RowClassName="db_statusRow" msprop:Generator_RowChangingName="db_statusRowChanging" msprop:Generator_RowEvArgName="db_statusRowChangeEvent" msprop:Generator_RowEvHandlerName="db_statusRowChangeEventHandler" msprop:Generator_TableClassName="db_statusDataTable" msprop:Generator_TableVarName="tabledb_status" msprop:Generator_RowDeletingName="db_statusRowDeleting" msprop:Generator_TablePropName="db_status"> <xs:complexType> <xs:sequence> - <xs:element name="statusID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" /> - <xs:element name="Description" msprop:Generator_UserColumnName="Description" msprop:Generator_ColumnVarNameInTable="columnDescription" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" minOccurs="0"> + <xs:element name="statusID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" /> + <xs:element name="Description" msprop:Generator_UserColumnName="Description" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnVarNameInTable="columnDescription" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> @@ -1032,113 +1045,113 @@ <xs:element name="db_notes" msprop:Generator_UserTableName="db_notes" msprop:Generator_RowDeletedName="db_notesRowDeleted" msprop:Generator_RowChangedName="db_notesRowChanged" msprop:Generator_RowClassName="db_notesRow" msprop:Generator_RowChangingName="db_notesRowChanging" msprop:Generator_RowEvArgName="db_notesRowChangeEvent" msprop:Generator_RowEvHandlerName="db_notesRowChangeEventHandler" msprop:Generator_TableClassName="db_notesDataTable" msprop:Generator_TableVarName="tabledb_notes" msprop:Generator_RowDeletingName="db_notesRowDeleting" msprop:Generator_TablePropName="db_notes"> <xs:complexType> <xs:sequence> - <xs:element name="noteID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="noteID" msprop:Generator_ColumnVarNameInTable="columnnoteID" msprop:Generator_ColumnPropNameInRow="noteID" msprop:Generator_ColumnPropNameInTable="noteIDColumn" type="xs:int" /> - <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="noteField" msprop:Generator_UserColumnName="noteField" msprop:Generator_ColumnVarNameInTable="columnnoteField" msprop:Generator_ColumnPropNameInRow="noteField" msprop:Generator_ColumnPropNameInTable="noteFieldColumn" minOccurs="0"> + <xs:element name="noteID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="noteID" msprop:Generator_ColumnPropNameInRow="noteID" msprop:Generator_ColumnVarNameInTable="columnnoteID" msprop:Generator_ColumnPropNameInTable="noteIDColumn" type="xs:int" /> + <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="noteField" msprop:Generator_UserColumnName="noteField" msprop:Generator_ColumnPropNameInRow="noteField" msprop:Generator_ColumnVarNameInTable="columnnoteField" msprop:Generator_ColumnPropNameInTable="noteFieldColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="noteAuthor" msprop:Generator_UserColumnName="noteAuthor" msprop:Generator_ColumnVarNameInTable="columnnoteAuthor" msprop:Generator_ColumnPropNameInRow="noteAuthor" msprop:Generator_ColumnPropNameInTable="noteAuthorColumn" type="xs:int" minOccurs="0" /> + <xs:element name="noteAuthor" msprop:Generator_UserColumnName="noteAuthor" msprop:Generator_ColumnPropNameInRow="noteAuthor" msprop:Generator_ColumnVarNameInTable="columnnoteAuthor" msprop:Generator_ColumnPropNameInTable="noteAuthorColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_assignments" msprop:Generator_UserTableName="db_assignments" msprop:Generator_RowDeletedName="db_assignmentsRowDeleted" msprop:Generator_RowChangedName="db_assignmentsRowChanged" msprop:Generator_RowClassName="db_assignmentsRow" msprop:Generator_RowChangingName="db_assignmentsRowChanging" msprop:Generator_RowEvArgName="db_assignmentsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_assignmentsRowChangeEventHandler" msprop:Generator_TableClassName="db_assignmentsDataTable" msprop:Generator_TableVarName="tabledb_assignments" msprop:Generator_RowDeletingName="db_assignmentsRowDeleting" msprop:Generator_TablePropName="db_assignments"> <xs:complexType> <xs:sequence> - <xs:element name="aType" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aType" msprop:Generator_ColumnVarNameInTable="columnaType" msprop:Generator_ColumnPropNameInRow="aType" msprop:Generator_ColumnPropNameInTable="aTypeColumn" minOccurs="0"> + <xs:element name="aType" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aType" msprop:Generator_ColumnPropNameInRow="aType" msprop:Generator_ColumnVarNameInTable="columnaType" msprop:Generator_ColumnPropNameInTable="aTypeColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="childID" msdata:ReadOnly="true" msprop:Generator_UserColumnName="childID" msprop:Generator_ColumnVarNameInTable="columnchildID" msprop:Generator_ColumnPropNameInRow="childID" msprop:Generator_ColumnPropNameInTable="childIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="creator" msdata:ReadOnly="true" msprop:Generator_UserColumnName="creator" msprop:Generator_ColumnVarNameInTable="columncreator" msprop:Generator_ColumnPropNameInRow="creator" msprop:Generator_ColumnPropNameInTable="creatorColumn" minOccurs="0"> + <xs:element name="childID" msdata:ReadOnly="true" msprop:Generator_UserColumnName="childID" msprop:Generator_ColumnPropNameInRow="childID" msprop:Generator_ColumnVarNameInTable="columnchildID" msprop:Generator_ColumnPropNameInTable="childIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="creator" msdata:ReadOnly="true" msprop:Generator_UserColumnName="creator" msprop:Generator_ColumnPropNameInRow="creator" msprop:Generator_ColumnVarNameInTable="columncreator" msprop:Generator_ColumnPropNameInTable="creatorColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> + <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="WOTotalTest" msprop:Generator_UserColumnName="WOTotalTest" msprop:Generator_ColumnVarNameInTable="columnWOTotalTest" msprop:Generator_ColumnPropNameInRow="WOTotalTest" msprop:Generator_ColumnPropNameInTable="WOTotalTestColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOPassRate" msdata:ReadOnly="true" msprop:Generator_UserColumnName="WOPassRate" msprop:Generator_ColumnVarNameInTable="columnWOPassRate" msprop:Generator_ColumnPropNameInRow="WOPassRate" msprop:Generator_ColumnPropNameInTable="WOPassRateColumn" minOccurs="0"> + <xs:element name="WOTotalTest" msprop:Generator_UserColumnName="WOTotalTest" msprop:Generator_ColumnPropNameInRow="WOTotalTest" msprop:Generator_ColumnVarNameInTable="columnWOTotalTest" msprop:Generator_ColumnPropNameInTable="WOTotalTestColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOPassRate" msdata:ReadOnly="true" msprop:Generator_UserColumnName="WOPassRate" msprop:Generator_ColumnPropNameInRow="WOPassRate" msprop:Generator_ColumnVarNameInTable="columnWOPassRate" msprop:Generator_ColumnPropNameInTable="WOPassRateColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="31" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="WOPass" msprop:Generator_UserColumnName="WOPass" msprop:Generator_ColumnVarNameInTable="columnWOPass" msprop:Generator_ColumnPropNameInRow="WOPass" msprop:Generator_ColumnPropNameInTable="WOPassColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOFail" msprop:Generator_UserColumnName="WOFail" msprop:Generator_ColumnVarNameInTable="columnWOFail" msprop:Generator_ColumnPropNameInRow="WOFail" msprop:Generator_ColumnPropNameInTable="WOFailColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOError" msprop:Generator_UserColumnName="WOError" msprop:Generator_ColumnVarNameInTable="columnWOError" msprop:Generator_ColumnPropNameInRow="WOError" msprop:Generator_ColumnPropNameInTable="WOErrorColumn" type="xs:int" minOccurs="0" /> - <xs:element name="aName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aName" msprop:Generator_ColumnVarNameInTable="columnaName" msprop:Generator_ColumnPropNameInRow="aName" msprop:Generator_ColumnPropNameInTable="aNameColumn" minOccurs="0"> + <xs:element name="WOPass" msprop:Generator_UserColumnName="WOPass" msprop:Generator_ColumnPropNameInRow="WOPass" msprop:Generator_ColumnVarNameInTable="columnWOPass" msprop:Generator_ColumnPropNameInTable="WOPassColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOFail" msprop:Generator_UserColumnName="WOFail" msprop:Generator_ColumnPropNameInRow="WOFail" msprop:Generator_ColumnVarNameInTable="columnWOFail" msprop:Generator_ColumnPropNameInTable="WOFailColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOError" msprop:Generator_UserColumnName="WOError" msprop:Generator_ColumnPropNameInRow="WOError" msprop:Generator_ColumnVarNameInTable="columnWOError" msprop:Generator_ColumnPropNameInTable="WOErrorColumn" type="xs:int" minOccurs="0" /> + <xs:element name="aName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aName" msprop:Generator_ColumnPropNameInRow="aName" msprop:Generator_ColumnVarNameInTable="columnaName" msprop:Generator_ColumnPropNameInTable="aNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_testPass" msprop:Generator_UserTableName="db_testPass" msprop:Generator_RowDeletedName="db_testPassRowDeleted" msprop:Generator_RowChangedName="db_testPassRowChanged" msprop:Generator_RowClassName="db_testPassRow" msprop:Generator_RowChangingName="db_testPassRowChanging" msprop:Generator_RowEvArgName="db_testPassRowChangeEvent" msprop:Generator_RowEvHandlerName="db_testPassRowChangeEventHandler" msprop:Generator_TableClassName="db_testPassDataTable" msprop:Generator_TableVarName="tabledb_testPass" msprop:Generator_RowDeletingName="db_testPassRowDeleting" msprop:Generator_TablePropName="db_testPass"> <xs:complexType> <xs:sequence> - <xs:element name="testPassID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="testPassID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="versionID" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="versionID" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_config" msprop:Generator_UserTableName="db_config" msprop:Generator_RowDeletedName="db_configRowDeleted" msprop:Generator_RowChangedName="db_configRowChanged" msprop:Generator_RowClassName="db_configRow" msprop:Generator_RowChangingName="db_configRowChanging" msprop:Generator_RowEvArgName="db_configRowChangeEvent" msprop:Generator_RowEvHandlerName="db_configRowChangeEventHandler" msprop:Generator_TableClassName="db_configDataTable" msprop:Generator_TableVarName="tabledb_config" msprop:Generator_RowDeletingName="db_configRowDeleting" msprop:Generator_TablePropName="db_config"> <xs:complexType> <xs:sequence> - <xs:element name="configID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="configID" msprop:Generator_ColumnPropNameInRow="configID" msprop:Generator_ColumnVarNameInTable="columnconfigID" msprop:Generator_ColumnPropNameInTable="configIDColumn" type="xs:int" /> - <xs:element name="userID" msprop:Generator_UserColumnName="userID" msprop:Generator_ColumnPropNameInRow="userID" msprop:Generator_ColumnVarNameInTable="columnuserID" msprop:Generator_ColumnPropNameInTable="userIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="configID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="configID" msprop:Generator_ColumnVarNameInTable="columnconfigID" msprop:Generator_ColumnPropNameInRow="configID" msprop:Generator_ColumnPropNameInTable="configIDColumn" type="xs:int" /> + <xs:element name="userID" msprop:Generator_UserColumnName="userID" msprop:Generator_ColumnVarNameInTable="columnuserID" msprop:Generator_ColumnPropNameInRow="userID" msprop:Generator_ColumnPropNameInTable="userIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="value" msprop:Generator_UserColumnName="value" msprop:Generator_ColumnPropNameInRow="value" msprop:Generator_ColumnVarNameInTable="columnvalue" msprop:Generator_ColumnPropNameInTable="valueColumn" minOccurs="0"> + <xs:element name="value" msprop:Generator_UserColumnName="value" msprop:Generator_ColumnVarNameInTable="columnvalue" msprop:Generator_ColumnPropNameInRow="value" msprop:Generator_ColumnPropNameInTable="valueColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> + <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> @@ -1151,93 +1164,93 @@ <xs:element name="db_version" msprop:Generator_UserTableName="db_version" msprop:Generator_RowDeletedName="db_versionRowDeleted" msprop:Generator_RowChangedName="db_versionRowChanged" msprop:Generator_RowClassName="db_versionRow" msprop:Generator_RowChangingName="db_versionRowChanging" msprop:Generator_RowEvArgName="db_versionRowChangeEvent" msprop:Generator_RowEvHandlerName="db_versionRowChangeEventHandler" msprop:Generator_TableClassName="db_versionDataTable" msprop:Generator_TableVarName="tabledb_version" msprop:Generator_RowDeletingName="db_versionRowDeleting" msprop:Generator_TablePropName="db_version"> <xs:complexType> <xs:sequence> - <xs:element name="versionID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" /> - <xs:element name="productID" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="number" msprop:Generator_UserColumnName="number" msprop:Generator_ColumnPropNameInRow="number" msprop:Generator_ColumnVarNameInTable="columnnumber" msprop:Generator_ColumnPropNameInTable="numberColumn" minOccurs="0"> + <xs:element name="versionID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" /> + <xs:element name="productID" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="number" msprop:Generator_UserColumnName="number" msprop:Generator_ColumnVarNameInTable="columnnumber... [truncated message content] |
From: <m_h...@us...> - 2006-07-31 15:39:23
|
Revision: 240 Author: m_hildebrand Date: 2006-07-31 08:39:18 -0700 (Mon, 31 Jul 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=240&view=rev Log Message: ----------- Commented out sections unnecessary for the next production release. Comments start with ***NONPRODUCTION*** Modified Paths: -------------- Website/Administration.aspx Website/Includes/AdministrationTree.ascx.cs Website/Includes/Header_CurrentInfo.ascx Website/Includes/Header_Menu.ascx Website/Includes/UserSettings.ascx Modified: Website/Administration.aspx =================================================================== --- Website/Administration.aspx 2006-07-31 15:35:53 UTC (rev 239) +++ Website/Administration.aspx 2006-07-31 15:39:18 UTC (rev 240) @@ -8,7 +8,7 @@ <table width="700"> <tr> <td align="center" valign="middle"> - <asp:LinkButton ID="newProduct" runat="server" PostBackUrl="~/Product.aspx?mode=new">New Product</asp:LinkButton> + <!-- ***NONPRODUCTION***<asp:LinkButton ID="newProduct" runat="server" PostBackUrl="~/Product.aspx?mode=new">New Product</asp:LinkButton> --> <asp:LinkButton ID="newUser" runat="server" PostBackUrl="~/UserSettings.aspx?mode=new">New User</asp:LinkButton></td> </tr> </table> Modified: Website/Includes/AdministrationTree.ascx.cs =================================================================== --- Website/Includes/AdministrationTree.ascx.cs 2006-07-31 15:35:53 UTC (rev 239) +++ Website/Includes/AdministrationTree.ascx.cs 2006-07-31 15:39:18 UTC (rev 240) @@ -119,6 +119,7 @@ newNode.Expand(); } + /* ***NONPRODUCTION*** // Operating Systems newNode = new TreeNode(); newNode.Text = "Operating Systems"; @@ -138,6 +139,7 @@ parent.ChildNodes.Add(newNode); if (nodes.Contains(newNode.ValuePath)) newNode.Expand(); + ***END NONPRODUCTION*** */ } protected void BuildReleaseList(TreeNode parent) { @@ -207,6 +209,7 @@ TreeNode newNode; // Versions + /* ***NONPRODUCTION*** newNode = new TreeNode(); newNode.Text = "Releases"; newNode.Value = "release"; @@ -215,7 +218,7 @@ parent.ChildNodes.Add(newNode); if (nodes.Contains(newNode.ValuePath)) newNode.Expand(); - + // Tags newNode = new TreeNode(); newNode.Text = "Tags"; @@ -245,6 +248,7 @@ parent.ChildNodes.Add(newNode); if (nodes.Contains(newNode.ValuePath)) newNode.Expand(); + ***END NONPRODUCTION*** */ // Users newNode = new TreeNode(); @@ -272,6 +276,7 @@ if (nodes.Contains(newNode.ValuePath)) newNode.Expand(); + /* ***NONPRODUCTION*** // WorkOrder newNode = new TreeNode(); newNode.Text = "Work Order"; @@ -301,6 +306,7 @@ parent.ChildNodes.Add(newNode); if (nodes.Contains(newNode.ValuePath)) newNode.Expand(); + ***END NONPRODUCTION*** */ } protected void BuildLabList(TreeNode parent) { @@ -761,9 +767,10 @@ BuildCategoryList(e.Node); break; case 2: + /* ***NONPRODUCTION*** if (e.Node.Value == "release") BuildReleaseList(e.Node); - else if (e.Node.Value == "tag") + else */ if (e.Node.Value == "tag") BuildTagList(e.Node); else if (e.Node.Value == "status") BuildStatusGroupList(e.Node); Modified: Website/Includes/Header_CurrentInfo.ascx =================================================================== --- Website/Includes/Header_CurrentInfo.ascx 2006-07-31 15:35:53 UTC (rev 239) +++ Website/Includes/Header_CurrentInfo.ascx 2006-07-31 15:39:18 UTC (rev 240) @@ -1,4 +1,4 @@ <%@ Control Language="C#" AutoEventWireup="true" %> <%@ Import Namespace="TCDB.Users" %> -Product | Version | Build \ No newline at end of file +<!-- ***NONPRODUCTION*** Product | Version | Build--> \ No newline at end of file Modified: Website/Includes/Header_Menu.ascx =================================================================== --- Website/Includes/Header_Menu.ascx 2006-07-31 15:35:53 UTC (rev 239) +++ Website/Includes/Header_Menu.ascx 2006-07-31 15:39:18 UTC (rev 240) @@ -2,4 +2,4 @@ <%@ Import Namespace="TCDB.Users" %> <%@ Import Namespace="TCDB.Common" %> -<a href="Assignments.aspx?<% Response.Write(Constants.CODE_USER+"="+m_user.ID); %>">Assignments</a> | Execute | <a href="TestManagement.aspx">Management</a> +<a href="Assignments.aspx?<% Response.Write(Constants.CODE_USER+"="+m_user.ID); %>">Assignments</a><!-- ***NONPRODUCTION*** | Execute | <a href="TestManagement.aspx">Management</a>--> Modified: Website/Includes/UserSettings.ascx =================================================================== --- Website/Includes/UserSettings.ascx 2006-07-31 15:35:53 UTC (rev 239) +++ Website/Includes/UserSettings.ascx 2006-07-31 15:39:18 UTC (rev 240) @@ -91,8 +91,8 @@ <asp:LinkButton ID="New" runat="server" CommandName="New" OnLoad="newButton_Load">New</asp:LinkButton><asp:Label runat="server" ID="newLabel" OnLoad="newLabel_Load"> | </asp:Label> <asp:LinkButton ID="Edit" runat="server" CommandName="Edit">Edit User</asp:LinkButton> - | - <asp:LinkButton ID="editConfig" runat="server" CommandName="editConfig" OnCommand="editConfig">Preferences</asp:LinkButton> + <!-- ***NONPRODUCTION*** | + <asp:LinkButton ID="editConfig" runat="server" CommandName="editConfig" OnCommand="editConfig">Preferences</asp:LinkButton> --> <asp:Label runat="server" ID="deleteLabel" OnLoad="deleteLabel_Load"> | </asp:Label><asp:LinkButton ID="Delete" runat="server" CommandName="Delete" OnLoad="deleteButton_Load">Delete</asp:LinkButton> </div> @@ -169,6 +169,7 @@ </div> <div class="cm"> <div class="left"> + <div class="item"><label>Roles:</label></div> <div class="item"> <asp:TreeView ID="roleTree" runat="server" OnInit="roleTreeEdit_Init" OnTreeNodePopulate="roleTree_TreeNodePopulate" ShowCheckBoxes="All" OnSelectedNodeChanged="roleTree_SelectedNodeChanged" ShowExpandCollapse="false"> @@ -268,6 +269,7 @@ </div> <div class="cm"> <div class="left"> + <div class="item"><label>Roles:</label></div> <div class="item"> <asp:TreeView ID="roleTree" runat="server" OnInit="roleTreeEdit_Init" OnTreeNodePopulate="roleTree_TreeNodePopulate" ShowCheckBoxes="All" OnSelectedNodeChanged="roleTree_SelectedNodeChanged" ShowExpandCollapse="false"> @@ -291,9 +293,9 @@ <asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" /> | <asp:LinkButton ID="sync" runat="server" Text="Sync with AD" OnCommand="SyncWithAD" /> - + <!-- <asp:Label ID="passwordLbl" runat="server" Text="Password: "></asp:Label><asp:TextBox - ID="passwordBox" runat="server" TextMode="Password"></asp:TextBox> + ID="passwordBox" runat="server" TextMode="Password"></asp:TextBox>--> </div> <div class="right"> </div> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <m_h...@us...> - 2006-07-31 19:49:06
|
Revision: 242 Author: m_hildebrand Date: 2006-07-31 12:48:43 -0700 (Mon, 31 Jul 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=242&view=rev Log Message: ----------- Made some style changes with the graphics Modified Paths: -------------- Website/Administration.aspx Website/App_Themes/Python/Python.skin Website/App_Themes/Python/python.css Website/Includes/Assignments.ascx Added Paths: ----------- Website/App_Themes/Python/Images/important.png Modified: Website/Administration.aspx =================================================================== --- Website/Administration.aspx 2006-07-31 17:09:29 UTC (rev 241) +++ Website/Administration.aspx 2006-07-31 19:48:43 UTC (rev 242) @@ -9,7 +9,7 @@ <tr> <td align="center" valign="middle"> <!-- ***NONPRODUCTION***<asp:LinkButton ID="newProduct" runat="server" PostBackUrl="~/Product.aspx?mode=new">New Product</asp:LinkButton> --> - <div class="button"><asp:LinkButton ID="newUser" runat="server" PostBackUrl="~/UserSettings.aspx?mode=new"><img src="App_Themes/Python/Images/user_add_32.png" alt="New User" />New User</asp:LinkButton></div></td> + <div class="button"><asp:LinkButton ID="newUser" runat="server" PostBackUrl="~/UserSettings.aspx?mode=new"><asp:Image runat="server" SkinID="newUserImage" AlternateText="New User" />New User</asp:LinkButton></div></td> </tr> </table> </asp:Content> Added: Website/App_Themes/Python/Images/important.png =================================================================== (Binary files differ) Property changes on: Website/App_Themes/Python/Images/important.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: Website/App_Themes/Python/Python.skin =================================================================== --- Website/App_Themes/Python/Python.skin 2006-07-31 17:09:29 UTC (rev 241) +++ Website/App_Themes/Python/Python.skin 2006-07-31 19:48:43 UTC (rev 242) @@ -21,4 +21,5 @@ <atlas:CollapsiblePanelExtender runat="server" SkinId="note" ExpandedImage="Images/ArrowDown.gif" CollapsedImage="Images/ArrowUp.gif" /> --%> <asp:GridView runat="server" SkinId="assignments" Width="100%" /> +<asp:Image runat="server" SkinId="newUserImage" ImageUrl="Images/user_add_32.png" /> Modified: Website/App_Themes/Python/python.css =================================================================== --- Website/App_Themes/Python/python.css 2006-07-31 17:09:29 UTC (rev 241) +++ Website/App_Themes/Python/python.css 2006-07-31 19:48:43 UTC (rev 242) @@ -153,6 +153,8 @@ top: 6px !important; padding-left: 5px !important; margin: 0 0 3px 0 !important; + height: 20px !important; + width: 20px !important; } /********** END Calendar Classes ************/ @@ -646,7 +648,7 @@ - +*/ #Assignments .priority_high, #Assignments .priority_normal { display: inline; @@ -654,14 +656,14 @@ #Assignments .priority_high { - background-image: url(images/priority_high_small.gif); + background-image: url(images/important.png); padding: 0; - margin: 0; + margin: 0 0 0 1px; background-repeat: no-repeat; - width: 10px; - height: 10px; - min-width: 10px; - min-height: 10px; + width: 12px; + height: 11px; + min-width: 12px; + min-height: 11px; display: block; } @@ -676,7 +678,7 @@ text-align: center; display: inline; } - +/* #aiContent .top .priority { display: inline; Modified: Website/Includes/Assignments.ascx =================================================================== --- Website/Includes/Assignments.ascx 2006-07-31 17:09:29 UTC (rev 241) +++ Website/Includes/Assignments.ascx 2006-07-31 19:48:43 UTC (rev 242) @@ -165,7 +165,7 @@ To:</label><div class="calendar"> <ew:CalendarPopup ID="toDate" runat="server" PopupLocation="Bottom" ShowGoToToday="True" ControlDisplay="LabelImage" SkinID="calendar" SelectedDate="1/1/3000 12:00:00 AM" - AutoPostBack="true" OnDateChanged="update" OnInit="toDate_Init"> + AutoPostBack="true" OnDateChanged="update" OnInit="toDate_Init" > </ew:CalendarPopup> </div> </div> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ro...@us...> - 2006-07-31 20:21:50
|
Revision: 243 Author: rouquin Date: 2006-07-31 13:21:40 -0700 (Mon, 31 Jul 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=243&view=rev Log Message: ----------- Add enforced user rights to the Assignments page. It definately makes the code a little more complicated and ugly, but it appears to be working. We may want some more debug/comments added. Modified Paths: -------------- Website/App_Code/Assignments.cs Website/App_Code/Common.cs Website/App_Code/Users.cs Website/Includes/Assignments.ascx.cs Website/Includes/AssignmentsTree.ascx Website/Includes/AssignmentsTree.ascx.cs Website/Includes/Products.ascx Website/Right.aspx Modified: Website/App_Code/Assignments.cs =================================================================== --- Website/App_Code/Assignments.cs 2006-07-31 19:48:43 UTC (rev 242) +++ Website/App_Code/Assignments.cs 2006-07-31 20:21:40 UTC (rev 243) @@ -537,20 +537,24 @@ private int p_id; private string p_name; - private int p_creatorID; + private User p_creator; + private User p_assigned; + public WorkOrder() { p_id = 0; p_name = ""; - p_creatorID = 0; + p_creator = new User(); + p_assigned = new User(); } - public WorkOrder(int id, string name, string description, int creatorID) + public WorkOrder(int id, string name, string description, User assigned, User creator) { p_id = id; p_name = name; - p_creatorID = creatorID; + p_assigned = assigned; + p_creator = creator; } public int ID @@ -565,12 +569,18 @@ set { p_name = value; } } - public int CREATORID + public User CREATOR { - get { return p_creatorID; } - set { p_creatorID = value; } + get { return p_creator; } + set { p_creator = value; } } + public User ASSIGNED + { + get { return p_assigned; } + set { p_assigned = value; } + } + public override string ToString() { return NAME; Modified: Website/App_Code/Common.cs =================================================================== --- Website/App_Code/Common.cs 2006-07-31 19:48:43 UTC (rev 242) +++ Website/App_Code/Common.cs 2006-07-31 20:21:40 UTC (rev 243) @@ -1204,6 +1204,7 @@ // Defaults in the database public static int ANONYMOUSUSERID = 1; public static int PRODUCT_SITEID = 1; + public static int PRODUCT_ANYID = -1; public static string CODE_USER = "u"; Modified: Website/App_Code/Users.cs =================================================================== --- Website/App_Code/Users.cs 2006-07-31 19:48:43 UTC (rev 242) +++ Website/App_Code/Users.cs 2006-07-31 20:21:40 UTC (rev 243) @@ -20,6 +20,7 @@ using System.Web.SessionState; using log4net; using TCDB.Rights; +using TCDB.Products; namespace TCDB.Users { @@ -403,11 +404,25 @@ public bool HasRight(string right, int productID) { + // Any product + if (productID == Constants.PRODUCT_ANYID) + { + List<Product> products = ProductDB.GetProductList(true); + foreach (Product product in products) + { + if (HasRight(right, product.ID)) + return true; + } + return false; + } + + // Specified product if (!p_rights.ContainsKey(productID)) p_rights[productID] = RightDB.TCDB_GetUserRights(productID,p_id); if (p_rights[productID].Contains(right)) return true; + // Site rights? if (productID != Constants.PRODUCT_SITEID) { if (!p_rights.ContainsKey(Constants.PRODUCT_SITEID)) @@ -424,6 +439,22 @@ return (RightDB.TCDB_GetUserRight(productID, userID, right) != null); } + public bool HasRights(int productID) + { + if (!p_rights.ContainsKey(productID)) + p_rights[productID] = RightDB.TCDB_GetUserRights(productID, p_id); + + if (p_rights[productID].Count > 0) + return true; + + return false; + } + + public static bool HasRights(int userID, int productID) + { + return (RightDB.TCDB_GetUserRights(productID, userID).Count > 0); + } + public void AddRole(String role, int productID) { // Insert user role Product Modified: Website/Includes/Assignments.ascx.cs =================================================================== --- Website/Includes/Assignments.ascx.cs 2006-07-31 19:48:43 UTC (rev 242) +++ Website/Includes/Assignments.ascx.cs 2006-07-31 20:21:40 UTC (rev 243) @@ -12,6 +12,7 @@ using TCDB.Assignments; using TCDB.Common; using TCDB.Users; +using TCDB.Products; using log4net; /// <summary> @@ -21,46 +22,73 @@ { private static ILog m_logg = LogManager.GetLogger("Page:Assignments"); private String uid = HttpContext.Current.Request.QueryString[Constants.CODE_USER]; + private int productID = Convert.ToInt32(HttpContext.Current.Request.QueryString[Constants.CODE_PRODUCT]); private const int MAX_NAME_LENGTH = 30; protected void Page_Load(object sender, EventArgs e) { - if (!m_user.ISAUTHENTICATED) { - return; } - m_logg.Debug("Loading assignments for [" + m_user.ToString() + "]"); + if (!m_user.ISAUTHENTICATED) + { + return; + } + m_logg.Debug("Loading assignments for [" + m_user.ToString() + "]"); + if (productID == 0) + productID = Constants.PRODUCT_ANYID; + if (uid == null) { m_logg.Debug("UserID not specified in the url, checking for permissions to view multiple users assignments"); - if (m_user.HasRight(Constants.RIGHTS_SITEADMIN, Constants.PRODUCT_SITEID)) + if (m_user.HasRight("view_other_ai", productID) || m_user.HasRight("view_created_ai", productID) || + m_user.HasRight("view_other_wo", productID) || m_user.HasRight("view_created_wo", productID)) { - m_logg.Debug("User has site admin rights, display all users"); - // Admin user should get everything, so don't set any values! - Page.Title = "TCDB: All Assignments"; - header.Text = "All Assignments"; + Product product = ProductDB.GetProduct(true, Convert.ToInt32(productID)); + + if (product != null) + { + m_logg.Debug("User has product admin rights, display all product users"); + + // Admin user should get everything, so don't set any values! + Page.Title = "TCDB: " + product.NAME + " Assignments"; + header.Text = product.NAME + " Assignments"; + } } - // TODO: add code for if user has create/edit/view assignments right anywhere else { - m_logg.Debug("User has no special privledges, only display own assignments"); - uid = m_user.ID.ToString(); - Page.Title = "TCDB: My Assignments"; - header.Text = "My Assignments"; + if (m_user.HasRight("view_my_ai") || m_user.HasRight("view_my_wo")) + { + m_logg.Debug("User has no special privledges, only display own assignments"); + uid = m_user.ID.ToString(); + Page.Title = "TCDB: My Assignments"; + header.Text = "My Assignments"; + } + else // No rights to do anything + Response.Redirect("~/Default.aspx"); } } else if (uid == m_user.ID.ToString()) { - m_logg.Debug("The current user's assignments have been requested, only displaying those"); - // TODO: Set these text fields dynamically from the config/DB (and do it globally!) - Page.Title = "TCDB: My Assignments"; - header.Text = "My Assignments"; + if (m_user.HasRight("view_my_ai") || m_user.HasRight("view_my_wo")) + { + m_logg.Debug("The current user's assignments have been requested, only displaying those"); + Page.Title = "TCDB: My Assignments"; + header.Text = "My Assignments"; + } + else // No rights to do anything + Response.Redirect("~/Default.aspx"); } else { - // TODO: check permissions before displaying this! If no permission, redirect to this page with no params - String name = UserDB.GetUserInfo(Convert.ToInt32(uid)).FULLNAME; - m_logg.Debug("User requested assignments for [" + name + "]"); - Page.Title = "TCDB: " + name + "'s Assignments"; - header.Text = name + "'s Assignments"; + User user = UserDB.GetUserInfo(Convert.ToInt32(uid)); + + if (user.HasRights(productID) && + (m_user.HasRight("view_other_ai", productID) || m_user.HasRight("view_other_wo", productID) || + m_user.HasRight("view_created_ai", productID) || m_user.HasRight("view_created_wo", productID))) + { + String name = user.FULLNAME; + m_logg.Debug("User requested assignments for [" + name + "]"); + Page.Title = "TCDB: " + name + "'s Assignments"; + header.Text = name + "'s Assignments"; + } } Session.Add("uid", uid); m_logg.Debug("Databinding the AssignmentsGridView"); @@ -101,7 +129,7 @@ gRow.Cells[0].Text = "<div class=\"priority_normal\"></div>"; // Set Hyperlink URL - String cid = data["childID"].ToString(); + int cid = Convert.ToInt32(data["childID"]); String type = data["aType"].ToString(); String name = data["aName"].ToString(); String displayName; @@ -112,12 +140,34 @@ gRow.Cells[1].ToolTip = name; if (type == Constants.CODE_AI) + { + ActionItem ai = ActionItemDB.GetActionItem(cid); + + if (ai != null && + (!m_user.HasRight("view_other_ai",productID) && + !(ai.ASSIGNED.ID == m_user.ID && m_user.HasRight("view_my_ai", productID)) && + !(ai.CREATOR.ID == m_user.ID && m_user.HasRight("view_created_ai",productID)))) + gRow.Visible = false; + gRow.Cells[1].Text = "<a href=\"ActionItem.aspx?" + Constants.CODE_AI + "=" + cid + "\">" + displayName + "</a>"; + } else if (type == Constants.CODE_WO) + { + WorkOrder wo = WorkOrderDB.TCDB_GetWorkOrder(cid); + + if (wo != null && + (!m_user.HasRight("view_other_wo",productID) && + !(wo.ASSIGNED.ID == m_user.ID && m_user.HasRight("view_my_wo", productID)) && + !(wo.CREATOR.ID == m_user.ID && m_user.HasRight("view_created_wo",productID)))) + gRow.Visible = false; + gRow.Cells[1].Text = "<a href=\"WorkOrder.aspx?" + Constants.CODE_WO + "=" + cid + "\">" + name + "</a>"; + } else + { m_logg.Debug("Couldn't determine what type [" + type + "] is"); - + } + if (cboPriorityFilter.Checked) { switch (priority) @@ -200,7 +250,7 @@ if ((dateDue < from) || (dateDue > to)) gRow.Visible = false; } - if (gRow.Visible && cboFinishedFilter.Checked) + if (gRow.Visible && cboFinishedFilter.Checked && data["dateFinished"].ToString() != "") { DateTime dateFinished = Convert.ToDateTime(data["dateFinished"]); DateTime to = toFinishedDate.SelectedDate; @@ -388,66 +438,82 @@ } protected void toDate_Init(object sender, EventArgs e) { - toDate.SelectedDate = m_user.GetConfigDate("filter_show_to_assigned_date"); + if (!IsPostBack) + toDate.SelectedDate = m_user.GetConfigDate("filter_show_to_assigned_date"); } protected void toDueDate_Init(object sender, EventArgs e) { - toDueDate.SelectedDate = m_user.GetConfigDate("filter_show_to_due_date"); + if (!IsPostBack) + toDueDate.SelectedDate = m_user.GetConfigDate("filter_show_to_due_date"); } protected void toFinishedDate_Init(object sender, EventArgs e) { - toFinishedDate.SelectedDate = m_user.GetConfigDate("filter_show_to_finished_dates"); + if (!IsPostBack) + toFinishedDate.SelectedDate = m_user.GetConfigDate("filter_show_to_finished_dates"); } protected void fromDate_Init(object sender, EventArgs e) { - fromDate.SelectedDate = m_user.GetConfigDate("filter_show_from_assigned_date"); + if (!IsPostBack) + fromDate.SelectedDate = m_user.GetConfigDate("filter_show_from_assigned_date"); } protected void fromDueDate_Init(object sender, EventArgs e) { - fromDueDate.SelectedDate = m_user.GetConfigDate("filter_show_from_due_date"); + if (!IsPostBack) + fromDueDate.SelectedDate = m_user.GetConfigDate("filter_show_from_due_date"); } protected void fromFinishedDate_Init(object sender, EventArgs e) { - fromFinishedDate.SelectedDate = m_user.GetConfigDate("filter_show_from_finished_date"); + if (!IsPostBack) + fromFinishedDate.SelectedDate = m_user.GetConfigDate("filter_show_from_finished_date"); } protected void cboShowActionItems_Init(object sender, EventArgs e) { - cboShowActionItems.Checked = m_user.GetConfigBool("filter_show_action_items"); + if (!IsPostBack) + cboShowActionItems.Checked = m_user.GetConfigBool("filter_show_action_items"); } protected void cboShowWorkOrders_Init(object sender, EventArgs e) { - cboShowWorkOrders.Checked = m_user.GetConfigBool("filter_show_work_orders"); + if (!IsPostBack) + cboShowWorkOrders.Checked = m_user.GetConfigBool("filter_show_work_orders"); } protected void cboHighPriority_Init(object sender, EventArgs e) { - cboHighPriority.Checked = m_user.GetConfigBool("filter_show_high_priority"); + if (!IsPostBack) + cboHighPriority.Checked = m_user.GetConfigBool("filter_show_high_priority"); } protected void cboLowPriority_Init(object sender, EventArgs e) { - cboLowPriority.Checked = m_user.GetConfigBool("filter_show_low_priority"); + if (!IsPostBack) + cboLowPriority.Checked = m_user.GetConfigBool("filter_show_low_priority"); } protected void cboStatusFilter_Init(object sender, EventArgs e) { - cboStatusFilter.Checked = m_user.GetConfigBool("filter_enable_status_filter"); + if (!IsPostBack) + cboStatusFilter.Checked = m_user.GetConfigBool("filter_enable_status_filter"); } protected void cboDateFilter_Init(object sender, EventArgs e) { - cboDateFilter.Checked = m_user.GetConfigBool("filter_enable_assigned_date_filter"); + if (!IsPostBack) + cboDateFilter.Checked = m_user.GetConfigBool("filter_enable_assigned_date_filter"); } protected void cboDueFilter_Init(object sender, EventArgs e) { - cboDueFilter.Checked = m_user.GetConfigBool("filter_enable_due_date_filter"); + if (!IsPostBack) + cboDueFilter.Checked = m_user.GetConfigBool("filter_enable_due_date_filter"); } protected void cboFinishedFilter_Init(object sender, EventArgs e) { - cboFinishedFilter.Checked = m_user.GetConfigBool("filter_enable_finished_date_filter"); + if (!IsPostBack) + cboFinishedFilter.Checked = m_user.GetConfigBool("filter_enable_finished_date_filter"); } protected void cboTypeFilter_Init(object sender, EventArgs e) { - cboTypeFilter.Checked = m_user.GetConfigBool("filter_enable_type_filter"); + if (!IsPostBack) + cboTypeFilter.Checked = m_user.GetConfigBool("filter_enable_type_filter"); } protected void cboPriorityFilter_Init(object sender, EventArgs e) { - cboPriorityFilter.Checked = m_user.GetConfigBool("filter_enable_priority_filter"); + if (!IsPostBack) + cboPriorityFilter.Checked = m_user.GetConfigBool("filter_enable_priority_filter"); } } Modified: Website/Includes/AssignmentsTree.ascx =================================================================== --- Website/Includes/AssignmentsTree.ascx 2006-07-31 19:48:43 UTC (rev 242) +++ Website/Includes/AssignmentsTree.ascx 2006-07-31 20:21:40 UTC (rev 243) @@ -2,13 +2,11 @@ <asp:CheckBox ID="statusComplete" runat="server" Text="Show Completed" AutoPostBack="True" OnCheckedChanged="statusComplete_CheckedChanged" OnInit="statusComplete_Init"/> <asp:TreeView ID="AssignmentTree" runat="server" SelectedNodeStyle-CssClass="selectednode" - OnTreeNodePopulate="AssignmentTree_TreeNodePopulate" ExpandDepth="1" + OnTreeNodePopulate="AssignmentTree_TreeNodePopulate" OnTreeNodeCollapsed="AssignmentTree_TreeNodeCollapsed" - OnTreeNodeExpanded="AssignmentTree_TreeNodeExpanded" OnInit="AssignmentTree_Init"> + OnTreeNodeExpanded="AssignmentTree_TreeNodeExpanded" OnInit="AssignmentTree_Init" OnSelectedNodeChanged="AssignmentTree_SelectedNodeChanged" ExpandDepth="1"> <Nodes> - <asp:TreeNode Text="User Assignments" Value="Users" PopulateOnDemand="True" - SelectAction="Expand" - NavigateUrl="~/Assignments.aspx" /> + <asp:TreeNode Text="All Assignments" Value="Users" PopulateOnDemand="True" /> </Nodes> <SelectedNodeStyle CssClass="selectednode" /> </asp:TreeView> Modified: Website/Includes/AssignmentsTree.ascx.cs =================================================================== --- Website/Includes/AssignmentsTree.ascx.cs 2006-07-31 19:48:43 UTC (rev 242) +++ Website/Includes/AssignmentsTree.ascx.cs 2006-07-31 20:21:40 UTC (rev 243) @@ -25,10 +25,17 @@ m_logg.Debug("Loading AssignmentsTree page"); } + protected void AssignmentTree_Init(object sender, EventArgs e) { if (Session["AssignmentNodes"] == null) Session.Add("AssignmentNodes", new ArrayList()); + + if (!m_user.HasRight("view_other_ai", Constants.PRODUCT_ANYID) && !m_user.HasRight("view_created_ai", Constants.PRODUCT_ANYID) && + !m_user.HasRight("view_other_wo", Constants.PRODUCT_ANYID) && !m_user.HasRight("view_created_wo", Constants.PRODUCT_ANYID)) + { + AssignmentTree.Visible = false; + } } protected void AssignmentTree_TreeNodeCollapsed(object sender, TreeNodeEventArgs e) { @@ -40,6 +47,25 @@ m_logg.Debug("Collapsing node [" + nodes[index].ToString() + "]"); nodes.RemoveAt(index); } + + if (e.Node.Selected && AssignmentTree.ShowExpandCollapse == false) + { + e.Node.Selected = false; + switch (e.Node.Depth) + { + case 0: + Response.Redirect("~/Assignments.aspx"); + break; + case 1: + Response.Redirect("~/Assignments.aspx?" + Constants.CODE_PRODUCT + "=" + e.Node.Value); + break; + case 2: + Response.Redirect("~/Assignments.aspx?" + Constants.CODE_PRODUCT + "=" + e.Node.Parent.Value + "&"+ Constants.CODE_USER + "=" + e.Node.Value); + break; + default: + break; + } + } } protected void AssignmentTree_TreeNodeExpanded(object sender, TreeNodeEventArgs e) { @@ -50,30 +76,156 @@ nodes.Add(e.Node.ValuePath); m_logg.Debug("Expanding node [" + nodes[nodes.IndexOf(e.Node.ValuePath)].ToString() + "]"); } + + if (e.Node.Selected && AssignmentTree.ShowExpandCollapse == false) + { + e.Node.Selected = false; + switch (e.Node.Depth) + { + case 0: + Response.Redirect("~/Assignments.aspx"); + break; + case 1: + Response.Redirect("~/Assignments.aspx?" + Constants.CODE_PRODUCT + "=" + e.Node.Value); + break; + case 2: + Response.Redirect("~/Assignments.aspx?" + Constants.CODE_USER + "=" + e.Node.Value); + break; + default: + break; + } + } } + protected void AssignmentTree_SelectedNodeChanged(object sender, EventArgs e) + { + TreeNode node = AssignmentTree.SelectedNode; + node.Selected = false; + if (AssignmentTree.ShowExpandCollapse == false) + { + if (node.Expanded == true) + node.Collapse(); + else + node.Expand(); + } + else + { + switch (node.Depth) + { + case 0: + Response.Redirect("~/Assignments.aspx"); + break; + case 1: + Response.Redirect("~/Assignments.aspx?" + Constants.CODE_PRODUCT + "=" + node.Value); + break; + case 2: + Response.Redirect("~/Assignments.aspx?" + Constants.CODE_PRODUCT + "=" + node.Parent.Value + "&" + Constants.CODE_USER + "=" + node.Value); + break; + default: + break; + } + } + } protected void AssignmentTree_TreeNodePopulate(object sender, TreeNodeEventArgs e) { m_logg.Debug("Populating tree"); + if (AssignmentTree.Visible != true) + return; + // Call the appropriate method to populate a node at a particular level. switch (e.Node.Depth) { case 0: + BuildProductList(e.Node); + break; + case 1: BuildUserList(e.Node); break; - case 1: + case 2: BuildAssignmentList(e.Node); break; default: break; } } + private void BuildProductList(TreeNode parent) + { + ArrayList nodes = (ArrayList)Session["AssignmentNodes"]; + tcdbDataSetTableAdapters.db_productsTableAdapter pAdapter = new tcdbDataSetTableAdapters.db_productsTableAdapter(); + tcdbDataSet.db_productsDataTable pTable = pAdapter.GetData(true, null); + foreach (tcdbDataSet.db_productsRow row in pTable) + { + TreeNode child = new TreeNode(); + child.Text = row.name; + child.Value = row.productID.ToString(); + child.PopulateOnDemand = true; + child.SelectAction = TreeNodeSelectAction.Select; + parent.ChildNodes.Add(child); + if (nodes.Contains(child.ValuePath)) + child.Expand(); + else + AssignmentTree_TreeNodePopulate(AssignmentTree, new TreeNodeEventArgs(child)); + } + // If there are no children + if (parent.ChildNodes.Count == 0) + AssignmentTree.Visible = false; + + // if there's only one + if (parent.ChildNodes.Count == 1) + { + TreeNode child = parent.ChildNodes[0]; + + child.NavigateUrl = "~/Assignments.aspx?" + Constants.CODE_PRODUCT + "=" + child.Value; + AssignmentTree.Nodes[0].Text = ""; + AssignmentTree.ShowExpandCollapse = false; + child.Expand(); + } + } + private void BuildUserList(TreeNode parent) + { + m_logg.Debug("Building user list"); + ArrayList nodes = (ArrayList)Session["AssignmentNodes"]; + tcdbDataSetTableAdapters.db_roleProductUserTableAdapter rpuAdapter = new tcdbDataSetTableAdapters.db_roleProductUserTableAdapter(); + tcdbDataSet.db_roleProductUserDataTable rpuTable = rpuAdapter.GetData(null, Convert.ToInt32(parent.Value), true); + m_logg.Debug("There are currently [" + rpuTable.Count.ToString() + "] users"); + + // Assignment status + int status = Constants.ASSIGNMENT_UNFINISHED; + if (statusComplete.Checked) + status = Constants.ASSIGNMENT_FINISHEDANDUNFINISHED; + + foreach (tcdbDataSet.db_roleProductUserRow row in rpuTable) + { + User u = UserDB.GetUserInfo(row.userID); + if (u.GetAssignments(true, status).Count == 0) + continue; + + // Create the new child node. + TreeNode child = new TreeNode(); + child.Text = u.FULLNAME; + child.Value = u.ID.ToString(); + child.PopulateOnDemand = true; + child.SelectAction = TreeNodeSelectAction.Select; + parent.ChildNodes.Add(child); + if (nodes.Contains(child.ValuePath)) + child.Expand(); + else + AssignmentTree_TreeNodePopulate(AssignmentTree,new TreeNodeEventArgs(child)); + } + + // if there are no assignments + if (parent.ChildNodes.Count == 0) + parent.Parent.ChildNodes.Remove(parent); + } private void BuildAssignmentList(TreeNode parent) { m_logg.Debug("Building assignment list"); // Populate the second-level nodes with assignments int status = Constants.ASSIGNMENT_UNFINISHED; + int productID = Convert.ToInt32(parent.Parent.Value); + int userID = Convert.ToInt32(parent.Value); + if (statusComplete.Checked) status = Constants.ASSIGNMENT_FINISHEDANDUNFINISHED; List<Assignment> assignmentList = UserDB.GetUserInfo(Convert.ToInt32(parent.Value)).GetAssignments(false,status); @@ -93,82 +245,36 @@ child.Text = a.NAME; if (a.ISACTIONITEM) { - child.Value = a.ACTIONITEM.ID.ToString(); - child.NavigateUrl = "~/ActionItem.aspx?" + Constants.CODE_AI + "=" + child.Value; + if ((m_user.HasRight("view_other_ai",productID)) || + ((userID == m_user.ID) && m_user.HasRight("view_my_ai", productID)) || + ((a.ACTIONITEM.CREATOR.ID == m_user.ID) && m_user.HasRight("view_created_ai", productID))) + { + child.Value = a.ACTIONITEM.ID.ToString(); + child.NavigateUrl = "~/ActionItem.aspx?" + Constants.CODE_AI + "=" + child.Value; + } + else continue; } else { - child.Value = a.WORKORDER.ID.ToString(); - child.NavigateUrl = "~/WorkOrder.aspx?" + Constants.CODE_WO + "=" + child.Value; + if ((m_user.HasRight("view_other_wo", productID)) || + ((userID == m_user.ID) && m_user.HasRight("view_my_ai", productID)) || + ((a.WORKORDER.CREATOR.ID == m_user.ID) && m_user.HasRight("view_created_ai", productID))) + { + child.Value = a.WORKORDER.ID.ToString(); + child.NavigateUrl = "~/WorkOrder.aspx?" + Constants.CODE_WO + "=" + child.Value; + } + else continue; } - // Set the PopulateOnDemand property to true so that the child nodes can be - // dynamically populated. - child.PopulateOnDemand = true; - - // Set additional properties for the node. - child.SelectAction = TreeNodeSelectAction.Expand; - // Add the new child node to the ChildNodes collection of the parent node. parent.ChildNodes.Add(child); - child.Expand(); } + if (parent.ChildNodes.Count == 0) + parent.Parent.ChildNodes.Remove(parent); } } + - private void BuildUserList(TreeNode parent) - { - m_logg.Debug("Building user list"); - // TODO: implement security on this list - - // Populate the first-level nodes with users - List<User> userList = UserDB.TCDB_GetUserList(); - int numFoundUsers = 0; - int lastUserID = 0; - ArrayList nodes = (ArrayList)Session["AssignmentNodes"]; - - m_logg.Debug("There are currently [" + userList.Count.ToString() + "] users"); - if (userList.Count > 0) - { - foreach (User u in userList) - { - if (u.GetAssignments(true, Constants.ASSIGNMENT_FINISHEDANDUNFINISHED).Count == 0) - continue; - numFoundUsers++; - lastUserID = u.ID; - - // Create the new child node. - TreeNode child = new TreeNode(); - child.Text = u.FULLNAME; - child.Value = u.ID.ToString(); - - // Set the PopulateOnDemand property to true so that the child nodes can be - // dynamically populated. - child.PopulateOnDemand = true; - - // Set additional properties for the node. - child.SelectAction = TreeNodeSelectAction.Expand; - - // TODO: Make sure that when the node is clicked on, it brings up a list of assignments - // for the specified user as the user would see them - child.NavigateUrl = "~/Assignments.aspx?" + Constants.CODE_USER + "=" + child.Value; - - // Add the new child node to the ChildNodes collection of the parent node. - parent.ChildNodes.Add(child); - if (nodes.Contains(child.ValuePath)) - child.Expand(); - } - } - - // TODO: work out the logic on this! - // If we only found one user (the current user), hide the tree - if (!m_user.HasRight(Constants.RIGHTS_SITEADMIN, Constants.PRODUCT_SITEID)) // && numFoundUsers <= 1 && lastUserID == m_user.ID) - { - m_logg.Debug("Hiding assignments tree because there is only one user (the current user) and no admin/rights to see others"); - AssignmentTree.Visible = false; - } - } - protected void statusComplete_CheckedChanged(object sender, EventArgs e) { ArrayList nodes = (ArrayList)Session["AssignmentNodes"]; Modified: Website/Includes/Products.ascx =================================================================== --- Website/Includes/Products.ascx 2006-07-31 19:48:43 UTC (rev 242) +++ Website/Includes/Products.ascx 2006-07-31 20:21:40 UTC (rev 243) @@ -67,10 +67,10 @@ { Panel ruPanel = (Panel)sender; - tcdbDataSetTableAdapters.db_roleTableAdapter rAdapter = new tcdbDataSetTableAdapters.db_roleTableAdapter(); - tcdbDataSet.db_roleDataTable rTable = rAdapter.GetData(null, null, true); + tcdbDataSetTableAdapters.db_roleUserProductTableAdapter rupAdapter = new tcdbDataSetTableAdapters.db_roleUserProductTableAdapter(); + tcdbDataSet.db_roleUserProductDataTable rupTable = rupAdapter.GetData(null, productID, true); - foreach (tcdbDataSet.db_roleRow rRow in rTable) + foreach (tcdbDataSet.db_roleUserProductRow rRow in rupTable) { int roleID = rRow.roleID; Modified: Website/Right.aspx =================================================================== --- Website/Right.aspx 2006-07-31 19:48:43 UTC (rev 242) +++ Website/Right.aspx 2006-07-31 20:21:40 UTC (rev 243) @@ -1,4 +1,4 @@ -<%@ Page Language="C#" MasterPageFile="~/TCDB.master" AutoEventWireup="true" Title="TCDB: Right" %> +<%@ Page Language="C#" MasterPageFile="~/TCDB.master" AutoEventWireup="true" Title="TCDB: Right" ValidateRequest="false"%> <%@ Register Src="~/Includes/AdministrationTree.ascx" TagPrefix="admin" TagName="Tree" %> <%@ Register Src="~/Includes/Rights.ascx" TagPrefix="admin" TagName="Right" %> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ro...@us...> - 2006-08-01 15:51:54
|
Revision: 248 Author: rouquin Date: 2006-08-01 08:51:43 -0700 (Tue, 01 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=248&view=rev Log Message: ----------- Got rid of extra filtering on assignments (it was calling the filter/databind 3 times every load. Cut it down to once). Also, updated the row count function for determining if there are rows displayed. Also updated Roles/Rights pages for new queries, but the insert/delete queries don't work for me. Modified Paths: -------------- Website/AdminRole.aspx Website/App_Code/Right.cs Website/App_Code/tcdbDataSet.xsd Website/App_Code/tcdbDataSet.xss Website/Includes/Assignments.ascx Website/Includes/Assignments.ascx.cs Website/Includes/Header_User.ascx Website/Includes/Rights.ascx Website/Includes/Rights.ascx.cs Website/Includes/Roles.ascx.cs Modified: Website/AdminRole.aspx =================================================================== --- Website/AdminRole.aspx 2006-07-31 21:46:44 UTC (rev 247) +++ Website/AdminRole.aspx 2006-08-01 15:51:43 UTC (rev 248) @@ -11,8 +11,13 @@ } protected void addRole(object sender, CommandEventArgs e) { - Response.Redirect("Role.aspx?mode=new&" + Constants.CODE_PRODUCT + "=" + product+"&"+Constants.CODE_ROLE+"="+roleList.SelectedValue); + Response.Redirect("Role.aspx?mode=edit&" + Constants.CODE_PRODUCT + "=" + product + "&" + Constants.CODE_ROLE + "=" + roleList.SelectedValue); } + + protected void newRole(object sender, CommandEventArgs e) + { + Response.Redirect("Role.aspx?mode=new&" + Constants.CODE_PRODUCT + "=" + product); + } </script> <asp:Content ID="TreeContent" ContentPlaceHolderID="TreeContentPlaceHolder" runat="Server"> @@ -32,8 +37,9 @@ <asp:Parameter DefaultValue="true" Name="active" Type="Boolean" /> </SelectParameters> </asp:ObjectDataSource> - <asp:LinkButton ID="addRoleBtn" runat="server" CommandName="addRole" OnCommand="addRole">Add User Role</asp:LinkButton> - <br /> + <asp:LinkButton ID="addRoleBtn" runat="server" CommandName="addRole" OnCommand="addRole">Add User To Role</asp:LinkButton> + + <asp:LinkButton ID="newRoleBtn" runat="server" CommandName="newRole" OnCommand="newRole">New User Role</asp:LinkButton><br /> </td> </tr> </table> Modified: Website/App_Code/Right.cs =================================================================== --- Website/App_Code/Right.cs 2006-07-31 21:46:44 UTC (rev 247) +++ Website/App_Code/Right.cs 2006-08-01 15:51:43 UTC (rev 248) @@ -74,11 +74,11 @@ public static List<String> TCDB_GetUserRights(int productID, int userID) { - tcdbDataSetTableAdapters.sel_userRightsTableAdapter userRightsAdapter = new tcdbDataSetTableAdapters.sel_userRightsTableAdapter(); - tcdbDataSet.sel_userRightsDataTable userRightsTable = userRightsAdapter.GetData(userID,productID,null,null,true); + tcdbDataSetTableAdapters.db_userRightsTableAdapter userRightsAdapter = new tcdbDataSetTableAdapters.db_userRightsTableAdapter(); + tcdbDataSet.db_userRightsDataTable userRightsTable = userRightsAdapter.GetData(userID,productID,null,null,true); List<String> rightsList = new List<String>(); - foreach (tcdbDataSet.sel_userRightsRow row in userRightsTable) + foreach (tcdbDataSet.db_userRightsRow row in userRightsTable) rightsList.Add(row.rightsName); return rightsList; @@ -86,12 +86,12 @@ public static Right TCDB_GetUserRight(int productID, int userID, String rightsName) { - tcdbDataSetTableAdapters.sel_userRightsTableAdapter userRightsAdapter = new tcdbDataSetTableAdapters.sel_userRightsTableAdapter(); - tcdbDataSet.sel_userRightsDataTable userRightsTable = userRightsAdapter.GetData(userID, productID, null, rightsName, true); + tcdbDataSetTableAdapters.db_userRightsTableAdapter userRightsAdapter = new tcdbDataSetTableAdapters.db_userRightsTableAdapter(); + tcdbDataSet.db_userRightsDataTable userRightsTable = userRightsAdapter.GetData(userID, productID, null, rightsName, true); if (userRightsTable.Count > 0) { - tcdbDataSet.sel_userRightsRow row = userRightsTable[0]; + tcdbDataSet.db_userRightsRow row = userRightsTable[0]; return new Right(row.rightsID, row.rightsName, row.rightDescription); } Modified: Website/App_Code/tcdbDataSet.xsd =================================================================== --- Website/App_Code/tcdbDataSet.xsd 2006-07-31 21:46:44 UTC (rev 247) +++ Website/App_Code/tcdbDataSet.xsd 2006-08-01 15:51:43 UTC (rev 248) @@ -777,26 +777,49 @@ <Mapping SourceColumn="productName" DataSetColumn="productName" /> </Mappings> <Sources> - </Sources> - </TableAdapter> - <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="db_roleRightTableAdapter" GeneratorDataComponentClassName="db_roleRightTableAdapter" Name="db_roleRight" UserDataComponentName="db_roleRightTableAdapter"> - <MainSource> - <DbSource ConnectionRef="tcdbConnectionString (Web.config)" DbObjectName="tcdb.dbo.sel_roleRight" DbObjectType="StoredProcedure" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="False" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="False" UserGetMethodName="GetData" UserSourceName="Fill"> - <InsertCommand> + <DbSource ConnectionRef="tcdbConnectionString (Web.config)" DbObjectName="tcdb.dbo.ins_userRoleProduct" DbObjectType="StoredProcedure" GenerateShortCommands="True" GeneratorSourceName="ins_userRoleProduct" Modifier="Public" Name="ins_userRoleProduct" QueryType="NoData" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="True" UserGetMethodName="GetDataBy" UserSourceName="ins_userRoleProduct"> + <SelectCommand> <DbCommand CommandType="StoredProcedure" ModifiedByUser="False"> - <CommandText>dbo.ins_roleRight</CommandText> + <CommandText>dbo.ins_userRoleProduct</CommandText> <Parameters> <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> </Parameter> - <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@roleID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumn="roleID" SourceColumnNullMapping="False" SourceVersion="Current"> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@userID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> </Parameter> - <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@rightsID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumn="rightsID" SourceColumnNullMapping="False" SourceVersion="Current"> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@roleID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@productID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> </Parameters> </DbCommand> - </InsertCommand> + </SelectCommand> + </DbSource> + <DbSource ConnectionRef="tcdbConnectionString (Web.config)" DbObjectName="tcdb.dbo.upd_userRoleProduct" DbObjectType="StoredProcedure" GenerateShortCommands="True" GeneratorSourceName="upd_userRoleProduct" Modifier="Public" Name="upd_userRoleProduct" QueryType="NoData" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="True" UserGetMethodName="GetDataBy1" UserSourceName="upd_userRoleProduct"> <SelectCommand> <DbCommand CommandType="StoredProcedure" ModifiedByUser="False"> + <CommandText>dbo.upd_userRoleProduct</CommandText> + <Parameters> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@userID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@roleID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@productID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@active" Precision="1" ProviderType="Bit" Scale="0" Size="1" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + </Parameters> + </DbCommand> + </SelectCommand> + </DbSource> + </Sources> + </TableAdapter> + <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="db_roleRightTableAdapter" GeneratorDataComponentClassName="db_roleRightTableAdapter" Name="db_roleRight" UserDataComponentName="db_roleRightTableAdapter"> + <MainSource> + <DbSource ConnectionRef="tcdbConnectionString (Web.config)" DbObjectName="tcdb.dbo.sel_roleRight" DbObjectType="StoredProcedure" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="False" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="False" UserGetMethodName="GetData" UserSourceName="Fill"> + <SelectCommand> + <DbCommand CommandType="StoredProcedure" ModifiedByUser="False"> <CommandText>dbo.sel_roleRight</CommandText> <Parameters> <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> @@ -817,9 +840,39 @@ <Mapping SourceColumn="active" DataSetColumn="active" /> </Mappings> <Sources> + <DbSource ConnectionRef="tcdbConnectionString (Web.config)" DbObjectName="tcdb.dbo.del_roleRight" DbObjectType="StoredProcedure" GenerateShortCommands="True" GeneratorSourceName="DeleteRoleRights" Modifier="Public" Name="DeleteRoleRights" QueryType="NoData" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="True" UserGetMethodName="GetDataBy" UserSourceName="DeleteRoleRights"> + <SelectCommand> + <DbCommand CommandType="StoredProcedure" ModifiedByUser="False"> + <CommandText>dbo.del_roleRight</CommandText> + <Parameters> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@roleID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@rightID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + </Parameters> + </DbCommand> + </SelectCommand> + </DbSource> + <DbSource ConnectionRef="tcdbConnectionString (Web.config)" DbObjectName="tcdb.dbo.ins_roleRight" DbObjectType="StoredProcedure" GenerateShortCommands="True" GeneratorSourceName="InsertRoleRights" Modifier="Public" Name="InsertRoleRights" QueryType="NoData" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="True" UserGetMethodName="GetDataBy1" UserSourceName="InsertRoleRights"> + <SelectCommand> + <DbCommand CommandType="StoredProcedure" ModifiedByUser="False"> + <CommandText>dbo.ins_roleRight</CommandText> + <Parameters> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@roleID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@rightsID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + </Parameters> + </DbCommand> + </SelectCommand> + </DbSource> </Sources> </TableAdapter> - <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="sel_userRightsTableAdapter" GeneratorDataComponentClassName="sel_userRightsTableAdapter" Name="sel_userRights" UserDataComponentName="sel_userRightsTableAdapter"> + <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="db_userRightsTableAdapter" GeneratorDataComponentClassName="db_userRightsTableAdapter" Name="db_userRights" UserDataComponentName="db_userRightsTableAdapter"> <MainSource> <DbSource ConnectionRef="tcdbConnectionString (Web.config)" DbObjectName="tcdb.dbo.sel_userRights" DbObjectType="StoredProcedure" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="False" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="False" UserGetMethodName="GetData" UserSourceName="Fill"> <SelectCommand> @@ -855,6 +908,33 @@ <Sources> </Sources> </TableAdapter> + <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="db_rightRoleTableAdapter" GeneratorDataComponentClassName="db_rightRoleTableAdapter" Name="db_rightRole" UserDataComponentName="db_rightRoleTableAdapter"> + <MainSource> + <DbSource ConnectionRef="tcdbConnectionString (Web.config)" DbObjectName="tcdb.dbo.sel_rightRole" DbObjectType="StoredProcedure" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="False" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="False" UserGetMethodName="GetData" UserSourceName="Fill"> + <SelectCommand> + <DbCommand CommandType="StoredProcedure" ModifiedByUser="False"> + <CommandText>dbo.sel_rightRole</CommandText> + <Parameters> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@rightID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@active" Precision="1" ProviderType="Bit" Scale="0" Size="1" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + </Parameters> + </DbCommand> + </SelectCommand> + </DbSource> + </MainSource> + <Mappings> + <Mapping SourceColumn="rightID" DataSetColumn="rightID" /> + <Mapping SourceColumn="roleID" DataSetColumn="roleID" /> + <Mapping SourceColumn="roleName" DataSetColumn="roleName" /> + <Mapping SourceColumn="active" DataSetColumn="active" /> + </Mappings> + <Sources> + </Sources> + </TableAdapter> </Tables> <Sources> </Sources> @@ -867,172 +947,172 @@ <xs:element name="db_users" msprop:Generator_UserTableName="db_users" msprop:Generator_RowDeletedName="db_usersRowDeleted" msprop:Generator_RowChangedName="db_usersRowChanged" msprop:Generator_RowClassName="db_usersRow" msprop:Generator_RowChangingName="db_usersRowChanging" msprop:Generator_RowEvArgName="db_usersRowChangeEvent" msprop:Generator_RowEvHandlerName="db_usersRowChangeEventHandler" msprop:Generator_TableClassName="db_usersDataTable" msprop:Generator_TableVarName="tabledb_users" msprop:Generator_RowDeletingName="db_usersRowDeleting" msprop:Generator_TablePropName="db_users"> <xs:complexType> <xs:sequence> - <xs:element name="userID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="userID" msprop:Generator_ColumnPropNameInRow="userID" msprop:Generator_ColumnVarNameInTable="columnuserID" msprop:Generator_ColumnPropNameInTable="userIDColumn" type="xs:int" /> - <xs:element name="username" msprop:Generator_UserColumnName="username" msprop:Generator_ColumnPropNameInRow="username" msprop:Generator_ColumnVarNameInTable="columnusername" msprop:Generator_ColumnPropNameInTable="usernameColumn"> + <xs:element name="userID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="userID" msprop:Generator_ColumnVarNameInTable="columnuserID" msprop:Generator_ColumnPropNameInRow="userID" msprop:Generator_ColumnPropNameInTable="userIDColumn" type="xs:int" /> + <xs:element name="username" msprop:Generator_UserColumnName="username" msprop:Generator_ColumnVarNameInTable="columnusername" msprop:Generator_ColumnPropNameInRow="username" msprop:Generator_ColumnPropNameInTable="usernameColumn"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="email" msprop:Generator_UserColumnName="email" msprop:Generator_ColumnPropNameInRow="email" msprop:Generator_ColumnVarNameInTable="columnemail" msprop:Generator_ColumnPropNameInTable="emailColumn"> + <xs:element name="email" msprop:Generator_UserColumnName="email" msprop:Generator_ColumnVarNameInTable="columnemail" msprop:Generator_ColumnPropNameInRow="email" msprop:Generator_ColumnPropNameInTable="emailColumn"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="officePhone" msprop:Generator_UserColumnName="officePhone" msprop:Generator_ColumnPropNameInRow="officePhone" msprop:Generator_ColumnVarNameInTable="columnofficePhone" msprop:Generator_ColumnPropNameInTable="officePhoneColumn" minOccurs="0"> + <xs:element name="officePhone" msprop:Generator_UserColumnName="officePhone" msprop:Generator_ColumnVarNameInTable="columnofficePhone" msprop:Generator_ColumnPropNameInRow="officePhone" msprop:Generator_ColumnPropNameInTable="officePhoneColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="14" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="homePhone" msprop:Generator_UserColumnName="homePhone" msprop:Generator_ColumnPropNameInRow="homePhone" msprop:Generator_ColumnVarNameInTable="columnhomePhone" msprop:Generator_ColumnPropNameInTable="homePhoneColumn" minOccurs="0"> + <xs:element name="homePhone" msprop:Generator_UserColumnName="homePhone" msprop:Generator_ColumnVarNameInTable="columnhomePhone" msprop:Generator_ColumnPropNameInRow="homePhone" msprop:Generator_ColumnPropNameInTable="homePhoneColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="14" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="cellPhone" msprop:Generator_UserColumnName="cellPhone" msprop:Generator_ColumnPropNameInRow="cellPhone" msprop:Generator_ColumnVarNameInTable="columncellPhone" msprop:Generator_ColumnPropNameInTable="cellPhoneColumn" minOccurs="0"> + <xs:element name="cellPhone" msprop:Generator_UserColumnName="cellPhone" msprop:Generator_ColumnVarNameInTable="columncellPhone" msprop:Generator_ColumnPropNameInRow="cellPhone" msprop:Generator_ColumnPropNameInTable="cellPhoneColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="14" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="firstName" msprop:Generator_UserColumnName="firstName" msprop:Generator_ColumnPropNameInRow="firstName" msprop:Generator_ColumnVarNameInTable="columnfirstName" msprop:Generator_ColumnPropNameInTable="firstNameColumn"> + <xs:element name="firstName" msprop:Generator_UserColumnName="firstName" msprop:Generator_ColumnVarNameInTable="columnfirstName" msprop:Generator_ColumnPropNameInRow="firstName" msprop:Generator_ColumnPropNameInTable="firstNameColumn"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="24" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="lastName" msprop:Generator_UserColumnName="lastName" msprop:Generator_ColumnPropNameInRow="lastName" msprop:Generator_ColumnVarNameInTable="columnlastName" msprop:Generator_ColumnPropNameInTable="lastNameColumn"> + <xs:element name="lastName" msprop:Generator_UserColumnName="lastName" msprop:Generator_ColumnVarNameInTable="columnlastName" msprop:Generator_ColumnPropNameInRow="lastName" msprop:Generator_ColumnPropNameInTable="lastNameColumn"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="24" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="fullName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="fullName" msprop:Generator_ColumnPropNameInRow="fullName" msprop:Generator_ColumnVarNameInTable="columnfullName" msprop:Generator_ColumnPropNameInTable="fullNameColumn" minOccurs="0"> + <xs:element name="fullName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="fullName" msprop:Generator_ColumnVarNameInTable="columnfullName" msprop:Generator_ColumnPropNameInRow="fullName" msprop:Generator_ColumnPropNameInTable="fullNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="automation" msprop:Generator_UserColumnName="automation" msprop:Generator_ColumnPropNameInRow="automation" msprop:Generator_ColumnVarNameInTable="columnautomation" msprop:Generator_ColumnPropNameInTable="automationColumn" type="xs:boolean" /> + <xs:element name="automation" msprop:Generator_UserColumnName="automation" msprop:Generator_ColumnVarNameInTable="columnautomation" msprop:Generator_ColumnPropNameInRow="automation" msprop:Generator_ColumnPropNameInTable="automationColumn" type="xs:boolean" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_products" msprop:Generator_UserTableName="db_products" msprop:Generator_RowDeletedName="db_productsRowDeleted" msprop:Generator_RowChangedName="db_productsRowChanged" msprop:Generator_RowClassName="db_productsRow" msprop:Generator_RowChangingName="db_productsRowChanging" msprop:Generator_RowEvArgName="db_productsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_productsRowChangeEventHandler" msprop:Generator_TableClassName="db_productsDataTable" msprop:Generator_TableVarName="tabledb_products" msprop:Generator_RowDeletingName="db_productsRowDeleting" msprop:Generator_TablePropName="db_products"> <xs:complexType> <xs:sequence> - <xs:element name="productID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="productID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> + <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="devManager" msprop:Generator_UserColumnName="devManager" msprop:Generator_ColumnPropNameInRow="devManager" msprop:Generator_ColumnVarNameInTable="columndevManager" msprop:Generator_ColumnPropNameInTable="devManagerColumn" type="xs:int" minOccurs="0" /> - <xs:element name="qaManager" msprop:Generator_UserColumnName="qaManager" msprop:Generator_ColumnPropNameInRow="qaManager" msprop:Generator_ColumnVarNameInTable="columnqaManager" msprop:Generator_ColumnPropNameInTable="qaManagerColumn" type="xs:int" minOccurs="0" /> - <xs:element name="devLead" msprop:Generator_UserColumnName="devLead" msprop:Generator_ColumnPropNameInRow="devLead" msprop:Generator_ColumnVarNameInTable="columndevLead" msprop:Generator_ColumnPropNameInTable="devLeadColumn" type="xs:int" minOccurs="0" /> - <xs:element name="qaLead" msprop:Generator_UserColumnName="qaLead" msprop:Generator_ColumnPropNameInRow="qaLead" msprop:Generator_ColumnVarNameInTable="columnqaLead" msprop:Generator_ColumnPropNameInTable="qaLeadColumn" type="xs:int" minOccurs="0" /> - <xs:element name="pm" msprop:Generator_UserColumnName="pm" msprop:Generator_ColumnPropNameInRow="pm" msprop:Generator_ColumnVarNameInTable="columnpm" msprop:Generator_ColumnPropNameInTable="pmColumn" type="xs:int" minOccurs="0" /> - <xs:element name="codeName" msprop:Generator_UserColumnName="codeName" msprop:Generator_ColumnPropNameInRow="codeName" msprop:Generator_ColumnVarNameInTable="columncodeName" msprop:Generator_ColumnPropNameInTable="codeNameColumn" minOccurs="0"> + <xs:element name="devManager" msprop:Generator_UserColumnName="devManager" msprop:Generator_ColumnVarNameInTable="columndevManager" msprop:Generator_ColumnPropNameInRow="devManager" msprop:Generator_ColumnPropNameInTable="devManagerColumn" type="xs:int" minOccurs="0" /> + <xs:element name="qaManager" msprop:Generator_UserColumnName="qaManager" msprop:Generator_ColumnVarNameInTable="columnqaManager" msprop:Generator_ColumnPropNameInRow="qaManager" msprop:Generator_ColumnPropNameInTable="qaManagerColumn" type="xs:int" minOccurs="0" /> + <xs:element name="devLead" msprop:Generator_UserColumnName="devLead" msprop:Generator_ColumnVarNameInTable="columndevLead" msprop:Generator_ColumnPropNameInRow="devLead" msprop:Generator_ColumnPropNameInTable="devLeadColumn" type="xs:int" minOccurs="0" /> + <xs:element name="qaLead" msprop:Generator_UserColumnName="qaLead" msprop:Generator_ColumnVarNameInTable="columnqaLead" msprop:Generator_ColumnPropNameInRow="qaLead" msprop:Generator_ColumnPropNameInTable="qaLeadColumn" type="xs:int" minOccurs="0" /> + <xs:element name="pm" msprop:Generator_UserColumnName="pm" msprop:Generator_ColumnVarNameInTable="columnpm" msprop:Generator_ColumnPropNameInRow="pm" msprop:Generator_ColumnPropNameInTable="pmColumn" type="xs:int" minOccurs="0" /> + <xs:element name="codeName" msprop:Generator_UserColumnName="codeName" msprop:Generator_ColumnVarNameInTable="columncodeName" msprop:Generator_ColumnPropNameInRow="codeName" msprop:Generator_ColumnPropNameInTable="codeNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="10" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_actionItems" msprop:Generator_UserTableName="db_actionItems" msprop:Generator_RowDeletedName="db_actionItemsRowDeleted" msprop:Generator_RowChangedName="db_actionItemsRowChanged" msprop:Generator_RowClassName="db_actionItemsRow" msprop:Generator_RowChangingName="db_actionItemsRowChanging" msprop:Generator_RowEvArgName="db_actionItemsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_actionItemsRowChangeEventHandler" msprop:Generator_TableClassName="db_actionItemsDataTable" msprop:Generator_TableVarName="tabledb_actionItems" msprop:Generator_RowDeletingName="db_actionItemsRowDeleting" msprop:Generator_TablePropName="db_actionItems"> <xs:complexType> <xs:sequence> - <xs:element name="actionItemID" msprop:Generator_UserColumnName="actionItemID" msprop:Generator_ColumnVarNameInTable="columnactionItemID" msprop:Generator_ColumnPropNameInRow="actionItemID" msprop:Generator_ColumnPropNameInTable="actionItemIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="actionItemID" msprop:Generator_UserColumnName="actionItemID" msprop:Generator_ColumnPropNameInRow="actionItemID" msprop:Generator_ColumnVarNameInTable="columnactionItemID" msprop:Generator_ColumnPropNameInTable="actionItemIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> + <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="percentComplete" msprop:Generator_UserColumnName="percentComplete" msprop:Generator_ColumnVarNameInTable="columnpercentComplete" msprop:Generator_ColumnPropNameInRow="percentComplete" msprop:Generator_ColumnPropNameInTable="percentCompleteColumn" type="xs:int" minOccurs="0" /> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="percentComplete" msprop:Generator_UserColumnName="percentComplete" msprop:Generator_ColumnPropNameInRow="percentComplete" msprop:Generator_ColumnVarNameInTable="columnpercentComplete" msprop:Generator_ColumnPropNameInTable="percentCompleteColumn" type="xs:int" minOccurs="0" /> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="createdBy" msdata:ReadOnly="true" msprop:Generator_UserColumnName="createdBy" msprop:Generator_ColumnVarNameInTable="columncreatedBy" msprop:Generator_ColumnPropNameInRow="createdBy" msprop:Generator_ColumnPropNameInTable="createdByColumn" minOccurs="0"> + <xs:element name="createdBy" msdata:ReadOnly="true" msprop:Generator_UserColumnName="createdBy" msprop:Generator_ColumnPropNameInRow="createdBy" msprop:Generator_ColumnVarNameInTable="columncreatedBy" msprop:Generator_ColumnPropNameInTable="createdByColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> - <xs:element name="testPass" msprop:Generator_UserColumnName="testPass" msprop:Generator_ColumnPropNameInRow="testPass" msprop:Generator_ColumnVarNameInTable="columntestPass" msprop:Generator_ColumnPropNameInTable="testPassColumn" minOccurs="0"> + <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> + <xs:element name="testPass" msprop:Generator_UserColumnName="testPass" msprop:Generator_ColumnVarNameInTable="columntestPass" msprop:Generator_ColumnPropNameInRow="testPass" msprop:Generator_ColumnPropNameInTable="testPassColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> + <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="statusID" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="testPassID" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> - <xs:element name="creatorID" msprop:Generator_UserColumnName="creatorID" msprop:Generator_ColumnVarNameInTable="columncreatorID" msprop:Generator_ColumnPropNameInRow="creatorID" msprop:Generator_ColumnPropNameInTable="creatorIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="statusID" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="testPassID" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="creatorID" msprop:Generator_UserColumnName="creatorID" msprop:Generator_ColumnPropNameInRow="creatorID" msprop:Generator_ColumnVarNameInTable="columncreatorID" msprop:Generator_ColumnPropNameInTable="creatorIDColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_status" msprop:Generator_UserTableName="db_status" msprop:Generator_RowDeletedName="db_statusRowDeleted" msprop:Generator_RowChangedName="db_statusRowChanged" msprop:Generator_RowClassName="db_statusRow" msprop:Generator_RowChangingName="db_statusRowChanging" msprop:Generator_RowEvArgName="db_statusRowChangeEvent" msprop:Generator_RowEvHandlerName="db_statusRowChangeEventHandler" msprop:Generator_TableClassName="db_statusDataTable" msprop:Generator_TableVarName="tabledb_status" msprop:Generator_RowDeletingName="db_statusRowDeleting" msprop:Generator_TablePropName="db_status"> <xs:complexType> <xs:sequence> - <xs:element name="statusID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" /> - <xs:element name="Description" msprop:Generator_UserColumnName="Description" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnVarNameInTable="columnDescription" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" minOccurs="0"> + <xs:element name="statusID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" /> + <xs:element name="Description" msprop:Generator_UserColumnName="Description" msprop:Generator_ColumnVarNameInTable="columnDescription" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> @@ -1045,113 +1125,113 @@ <xs:element name="db_notes" msprop:Generator_UserTableName="db_notes" msprop:Generator_RowDeletedName="db_notesRowDeleted" msprop:Generator_RowChangedName="db_notesRowChanged" msprop:Generator_RowClassName="db_notesRow" msprop:Generator_RowChangingName="db_notesRowChanging" msprop:Generator_RowEvArgName="db_notesRowChangeEvent" msprop:Generator_RowEvHandlerName="db_notesRowChangeEventHandler" msprop:Generator_TableClassName="db_notesDataTable" msprop:Generator_TableVarName="tabledb_notes" msprop:Generator_RowDeletingName="db_notesRowDeleting" msprop:Generator_TablePropName="db_notes"> <xs:complexType> <xs:sequence> - <xs:element name="noteID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="noteID" msprop:Generator_ColumnPropNameInRow="noteID" msprop:Generator_ColumnVarNameInTable="columnnoteID" msprop:Generator_ColumnPropNameInTable="noteIDColumn" type="xs:int" /> - <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="noteField" msprop:Generator_UserColumnName="noteField" msprop:Generator_ColumnPropNameInRow="noteField" msprop:Generator_ColumnVarNameInTable="columnnoteField" msprop:Generator_ColumnPropNameInTable="noteFieldColumn" minOccurs="0"> + <xs:element name="noteID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="noteID" msprop:Generator_ColumnVarNameInTable="columnnoteID" msprop:Generator_ColumnPropNameInRow="noteID" msprop:Generator_ColumnPropNameInTable="noteIDColumn" type="xs:int" /> + <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="noteField" msprop:Generator_UserColumnName="noteField" msprop:Generator_ColumnVarNameInTable="columnnoteField" msprop:Generator_ColumnPropNameInRow="noteField" msprop:Generator_ColumnPropNameInTable="noteFieldColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="noteAuthor" msprop:Generator_UserColumnName="noteAuthor" msprop:Generator_ColumnPropNameInRow="noteAuthor" msprop:Generator_ColumnVarNameInTable="columnnoteAuthor" msprop:Generator_ColumnPropNameInTable="noteAuthorColumn" type="xs:int" minOccurs="0" /> + <xs:element name="noteAuthor" msprop:Generator_UserColumnName="noteAuthor" msprop:Generator_ColumnVarNameInTable="columnnoteAuthor" msprop:Generator_ColumnPropNameInRow="noteAuthor" msprop:Generator_ColumnPropNameInTable="noteAuthorColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_assignments" msprop:Generator_UserTableName="db_assignments" msprop:Generator_RowDeletedName="db_assignmentsRowDeleted" msprop:Generator_RowChangedName="db_assignmentsRowChanged" msprop:Generator_RowClassName="db_assignmentsRow" msprop:Generator_RowChangingName="db_assignmentsRowChanging" msprop:Generator_RowEvArgName="db_assignmentsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_assignmentsRowChangeEventHandler" msprop:Generator_TableClassName="db_assignmentsDataTable" msprop:Generator_TableVarName="tabledb_assignments" msprop:Generator_RowDeletingName="db_assignmentsRowDeleting" msprop:Generator_TablePropName="db_assignments"> <xs:complexType> <xs:sequence> - <xs:element name="aType" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aType" msprop:Generator_ColumnPropNameInRow="aType" msprop:Generator_ColumnVarNameInTable="columnaType" msprop:Generator_ColumnPropNameInTable="aTypeColumn" minOccurs="0"> + <xs:element name="aType" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aType" msprop:Generator_ColumnVarNameInTable="columnaType" msprop:Generator_ColumnPropNameInRow="aType" msprop:Generator_ColumnPropNameInTable="aTypeColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="childID" msdata:ReadOnly="true" msprop:Generator_UserColumnName="childID" msprop:Generator_ColumnPropNameInRow="childID" msprop:Generator_ColumnVarNameInTable="columnchildID" msprop:Generator_ColumnPropNameInTable="childIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="creator" msdata:ReadOnly="true" msprop:Generator_UserColumnName="creator" msprop:Generator_ColumnPropNameInRow="creator" msprop:Generator_ColumnVarNameInTable="columncreator" msprop:Generator_ColumnPropNameInTable="creatorColumn" minOccurs="0"> + <xs:element name="childID" msdata:ReadOnly="true" msprop:Generator_UserColumnName="childID" msprop:Generator_ColumnVarNameInTable="columnchildID" msprop:Generator_ColumnPropNameInRow="childID" msprop:Generator_ColumnPropNameInTable="childIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="creator" msdata:ReadOnly="true" msprop:Generator_UserColumnName="creator" msprop:Generator_ColumnVarNameInTable="columncreator" msprop:Generator_ColumnPropNameInRow="creator" msprop:Generator_ColumnPropNameInTable="creatorColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> + <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="WOTotalTest" msprop:Generator_UserColumnName="WOTotalTest" msprop:Generator_ColumnPropNameInRow="WOTotalTest" msprop:Generator_ColumnVarNameInTable="columnWOTotalTest" msprop:Generator_ColumnPropNameInTable="WOTotalTestColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOPassRate" msdata:ReadOnly="true" msprop:Generator_UserColumnName="WOPassRate" msprop:Generator_ColumnPropNameInRow="WOPassRate" msprop:Generator_ColumnVarNameInTable="columnWOPassRate" msprop:Generator_Colum... [truncated message content] |
From: <m_h...@us...> - 2006-08-01 17:32:33
|
Revision: 251 Author: m_hildebrand Date: 2006-08-01 10:32:28 -0700 (Tue, 01 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=251&view=rev Log Message: ----------- Added message of the day feature, eventually I would like this to be able to have product-specific messages Modified Paths: -------------- Website/App_Code/Common.cs Website/App_Themes/Python/python.css Website/TCDB.master Modified: Website/App_Code/Common.cs =================================================================== --- Website/App_Code/Common.cs 2006-08-01 17:15:42 UTC (rev 250) +++ Website/App_Code/Common.cs 2006-08-01 17:32:28 UTC (rev 251) @@ -1072,6 +1072,45 @@ return value; } + public static int GetConfigID(int userID, String name) + { + int id = -1; + + tcdbDataSet ds = new tcdbDataSet(); + tcdbDataSetTableAdapters.db_configTableAdapter ta = new tcdbDataSetTableAdapters.db_configTableAdapter(); + ta.GetData(userID, name); + ta.Fill(ds.db_config, userID, name); + + DataTableReader dr = ds.db_config.CreateDataReader(); + if (dr.HasRows && dr.Read()) + { + id = Help.DB_IntParse(dr["id"]); + } + + return id; + } + + public static void DeleteConfig(int userID, String name) + { + + try + { + int id = GetConfigID(userID, name); + DeleteConfig(id); + } + catch { } + } + + public static void DeleteConfig(int id) + { + // TODO: Make sure to remove the config value from the cache. Don't remove + // it from the config file though. + + tcdbDataSet ds = new tcdbDataSet(); + tcdbDataSetTableAdapters.db_configTableAdapter ta = new tcdbDataSetTableAdapters.db_configTableAdapter(); + ta.Delete(id); + } + public static void SaveConfigString(int userID, String name, String value) { tcdbDataSetTableAdapters.db_configTableAdapter configAdapter = new tcdbDataSetTableAdapters.db_configTableAdapter(); Modified: Website/App_Themes/Python/python.css =================================================================== --- Website/App_Themes/Python/python.css 2006-08-01 17:15:42 UTC (rev 250) +++ Website/App_Themes/Python/python.css 2006-08-01 17:32:28 UTC (rev 251) @@ -154,7 +154,21 @@ z-index: -10; } +.motd +{ + margin: 10px 0 0 10px; + text-align: center; +} +.motd SPAN +{ + color: Red; + background-color: Yellow; + border: red; + padding: 3px 4px 3px 4px; + border: solid 1px red; +} + /********** END Global Classes **********/ /********** BEGIN Calendar Classes **********/ Modified: Website/TCDB.master =================================================================== --- Website/TCDB.master 2006-08-01 17:15:42 UTC (rev 250) +++ Website/TCDB.master 2006-08-01 17:32:28 UTC (rev 251) @@ -20,11 +20,24 @@ <div id="NonFooter"> <% if (ConfigDB.GetConfigString("tcdb_version").Equals(Constants.TCDB_VERSION)) { + try + { + string motd = ConfigDB.GetConfigString(Constants.ANONYMOUSUSERID, "site_motd"); + if (motd.Length > 0) + { + motdLabel.Text = motd; + motdLabel.Enabled = true; + motdLabel.Visible = true; + } + } + catch { } %> <form id="Form1" runat="server"> <div id="HeaderContent"> <TCDB:Header runat="server" ID="Header" /> </div> + <div class="motd"><asp:Label ID="motdLabel" runat="server" Visible="false" Enabled="false"></asp:Label></div> + <% if (m_user.ISAUTHENTICATED) { @@ -38,6 +51,26 @@ </asp:ContentPlaceHolder> </td> <td id="MainContent"> + <% + + + try + { + string error = ConfigDB.GetConfigString(m_user.ID, "error"); + if (error.Length > 0) + { + errorLabel.Text = error; + errorLabel.Enabled = true; + errorLabel.Visible = true; + + ConfigDB.DeleteConfig(m_user.ID, "error"); + } + } + catch { } + + + %> + <asp:Label ID="errorLabel" runat="server" CssClass="error" Visible="false"></asp:Label> <asp:ContentPlaceHolder ID="MainContentPlaceHolder" runat="server"> </asp:ContentPlaceHolder> </td> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <m_h...@us...> - 2006-08-01 18:07:00
|
Revision: 252 Author: m_hildebrand Date: 2006-08-01 11:06:53 -0700 (Tue, 01 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=252&view=rev Log Message: ----------- Updated code & schema version to "1.0.0 Alpha 2" Modified Paths: -------------- Website/App_Code/Common.cs Website/TCDB.master Modified: Website/App_Code/Common.cs =================================================================== --- Website/App_Code/Common.cs 2006-08-01 17:32:28 UTC (rev 251) +++ Website/App_Code/Common.cs 2006-08-01 18:06:53 UTC (rev 252) @@ -1263,9 +1263,8 @@ public static int ASSIGNMENT_UNFINISHED = 0; public static int ASSIGNMENT_NEW = 3; - public static string TCDB_VERSION = "1.0.0 Alpha"; + public static string TCDB_VERSION = "1.0.0 Alpha 2"; - public static string RIGHTS_ASSIGNPERMISSION = "assignPermission"; public static string RIGHTS_SITEADMIN = "siteAdmin"; public static string RIGHTS_ASSIGNASSIGNMENT = "assignAssignment"; Modified: Website/TCDB.master =================================================================== --- Website/TCDB.master 2006-08-01 17:32:28 UTC (rev 251) +++ Website/TCDB.master 2006-08-01 18:06:53 UTC (rev 252) @@ -93,7 +93,7 @@ <% } %> </form> <% } else { %> - Unable to load TCDB. Code version [<%= Constants.TCDB_VERSION %>] does not equal schema version [<%= ConfigDB.GetConfigString("tcdb_version") %>. + <div class="motd"><span>Unable to load TCDB. Code version [<%= Constants.TCDB_VERSION %>] does not equal schema version [<%= ConfigDB.GetConfigString("tcdb_version") %>].</span></div> <% } %> <br /><br /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ro...@us...> - 2006-08-01 19:07:28
|
Revision: 253 Author: rouquin Date: 2006-08-01 12:07:13 -0700 (Tue, 01 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=253&view=rev Log Message: ----------- You can now update/insert/delete roles and rights. You cannot however add a user to a role after once removing him due to a stored procedure bug - hopefully that will be remedied soon. Modified Paths: -------------- Website/App_Code/Right.cs Website/App_Code/tcdbDataSet.xsd Website/App_Code/tcdbDataSet.xss Website/Includes/Rights.ascx Website/Includes/Rights.ascx.cs Website/Includes/Roles.ascx Website/Includes/Roles.ascx.cs Website/Includes/UserSettings.ascx Website/Includes/UserSettings.ascx.cs Website/Role.aspx Modified: Website/App_Code/Right.cs =================================================================== --- Website/App_Code/Right.cs 2006-08-01 18:06:53 UTC (rev 252) +++ Website/App_Code/Right.cs 2006-08-01 19:07:13 UTC (rev 253) @@ -39,7 +39,7 @@ { tcdbDataSet.db_rightsRow row = rightsTable[0]; - return new Right(row.rightsID, row.rightsName, row.rightDescription); + return new Right(row.rightsID, row.rightsName, row.rightsDescription); } else return new Right(); @@ -54,12 +54,42 @@ { tcdbDataSet.db_rightsRow row = rightsTable[0]; - return new Right(row.rightsID, row.rightsName, row.rightDescription); + return new Right(row.rightsID, row.rightsName, row.rightsDescription); } else return new Right(); } + public static Role GetRoleInfo(string name) + { + tcdbDataSetTableAdapters.db_roleTableAdapter roleAdapter = new tcdbDataSetTableAdapters.db_roleTableAdapter(); + tcdbDataSet.db_roleDataTable roleTable = roleAdapter.GetData(null,name,true); + + if (roleTable.Count > 0) + { + tcdbDataSet.db_roleRow row = roleTable[0]; + + return new Role(row.roleID, row.roleName, row.roleDescription); + } + else + return new Role(); + } + + public static Role GetRoleInfo(int id) + { + tcdbDataSetTableAdapters.db_roleTableAdapter roleAdapter = new tcdbDataSetTableAdapters.db_roleTableAdapter(); + tcdbDataSet.db_roleDataTable roleTable = roleAdapter.GetData(id,null,true); + + if (roleTable.Count > 0) + { + tcdbDataSet.db_roleRow row = roleTable[0]; + + return new Role(row.roleID, row.roleName, row.roleDescription); + } + else + return new Role(); + } + public static List<Right> TCDB_GetRightList() { tcdbDataSetTableAdapters.db_rightsTableAdapter rightsAdapter = new tcdbDataSetTableAdapters.db_rightsTableAdapter(); @@ -104,7 +134,7 @@ tcdbDataSetTableAdapters.db_rightsTableAdapter rightsAdapter = new tcdbDataSetTableAdapters.db_rightsTableAdapter(); try { - rightsAdapter.Insert(right.NAME,right.DESCRIPTION,true); + rightsAdapter.Insert(right.NAME,right.DESCRIPTION); } catch (Exception e) { @@ -176,4 +206,65 @@ set { p_description = value.Trim(); } } } + + /// <summary> + /// A class representing one role object + /// </summary> + public class Role + { + private static ILog m_logg = LogManager.GetLogger("TCDB.Rights.Role"); + + private int p_id; + private string p_name; + private string p_description; + + public Role() + { + p_id = 0; + p_name = ""; + p_description = ""; + } + + public Role(string name) + { + BuildRole(RightDB.GetRoleInfo(name)); + } + + public Role(int id) + { + BuildRole(RightDB.GetRoleInfo(id)); + } + + public Role(int id, string name, string description) + { + p_id = id; + p_name = name; + p_description = description; + } + + private void BuildRole(Role role) + { + p_id = role.ID; + p_name = role.NAME; + p_description = role.DESCRIPTION; + } + + public int ID + { + get { return p_id; } + set { p_id = value; } + } + + public string NAME + { + get { return p_name.Trim(); } + set { p_name = value.Trim(); } + } + + public string DESCRIPTION + { + get { return p_description.Trim(); } + set { p_description = value.Trim(); } + } + } } Modified: Website/App_Code/tcdbDataSet.xsd =================================================================== --- Website/App_Code/tcdbDataSet.xsd 2006-08-01 18:06:53 UTC (rev 252) +++ Website/App_Code/tcdbDataSet.xsd 2006-08-01 19:07:13 UTC (rev 253) @@ -581,12 +581,10 @@ <Parameters> <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> </Parameter> - <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@name" Precision="0" ProviderType="VarChar" Scale="0" Size="255" SourceColumn="rightsName" SourceColumnNullMapping="False" SourceVersion="Current"> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@rightsName" Precision="0" ProviderType="VarChar" Scale="0" Size="255" SourceColumn="rightsName" SourceColumnNullMapping="False" SourceVersion="Current"> </Parameter> - <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@description" Precision="0" ProviderType="Text" Scale="0" Size="2147483647" SourceColumn="rightDescription" SourceColumnNullMapping="False" SourceVersion="Current"> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@rightsDescription" Precision="0" ProviderType="Text" Scale="0" Size="2147483647" SourceColumn="rightsDescription" SourceColumnNullMapping="False" SourceVersion="Current"> </Parameter> - <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@active" Precision="1" ProviderType="Bit" Scale="0" Size="1" SourceColumn="active" SourceColumnNullMapping="False" SourceVersion="Current"> - </Parameter> </Parameters> </DbCommand> </InsertCommand> @@ -613,9 +611,9 @@ </Parameter> <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@rightsID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumn="rightsID" SourceColumnNullMapping="False" SourceVersion="Current"> </Parameter> - <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@name" Precision="0" ProviderType="VarChar" Scale="0" Size="255" SourceColumn="rightsName" SourceColumnNullMapping="False" SourceVersion="Current"> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@rightsName" Precision="0" ProviderType="VarChar" Scale="0" Size="255" SourceColumn="rightsName" SourceColumnNullMapping="False" SourceVersion="Current"> </Parameter> - <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@description" Precision="0" ProviderType="Text" Scale="0" Size="2147483647" SourceColumn="rightDescription" SourceColumnNullMapping="False" SourceVersion="Current"> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@rightsDescription" Precision="0" ProviderType="Text" Scale="0" Size="2147483647" SourceColumn="rightsDescription" SourceColumnNullMapping="False" SourceVersion="Current"> </Parameter> <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@active" Precision="1" ProviderType="Bit" Scale="0" Size="1" SourceColumn="active" SourceColumnNullMapping="False" SourceVersion="Current"> </Parameter> @@ -629,6 +627,7 @@ <Mapping SourceColumn="rightsName" DataSetColumn="rightsName" /> <Mapping SourceColumn="rightDescription" DataSetColumn="rightDescription" /> <Mapping SourceColumn="active" DataSetColumn="active" /> + <Mapping SourceColumn="rightsDescription" DataSetColumn="rightsDescription" /> </Mappings> <Sources> </Sources> @@ -642,12 +641,10 @@ <Parameters> <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> </Parameter> - <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@name" Precision="0" ProviderType="VarChar" Scale="0" Size="255" SourceColumn="roleName" SourceColumnNullMapping="False" SourceVersion="Current"> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@roleName" Precision="0" ProviderType="VarChar" Scale="0" Size="255" SourceColumn="roleName" SourceColumnNullMapping="False" SourceVersion="Current"> </Parameter> - <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@description" Precision="0" ProviderType="Text" Scale="0" Size="2147483647" SourceColumn="roleDescription" SourceColumnNullMapping="False" SourceVersion="Current"> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@roleDescription" Precision="0" ProviderType="Text" Scale="0" Size="2147483647" SourceColumn="roleDescription" SourceColumnNullMapping="False" SourceVersion="Current"> </Parameter> - <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@active" Precision="1" ProviderType="Bit" Scale="0" Size="1" SourceColumn="active" SourceColumnNullMapping="False" SourceVersion="Current"> - </Parameter> </Parameters> </DbCommand> </InsertCommand> @@ -674,9 +671,9 @@ </Parameter> <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@roleID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumn="roleID" SourceColumnNullMapping="False" SourceVersion="Current"> </Parameter> - <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@name" Precision="0" ProviderType="VarChar" Scale="0" Size="255" SourceColumn="roleName" SourceColumnNullMapping="False" SourceVersion="Current"> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@roleName" Precision="0" ProviderType="VarChar" Scale="0" Size="255" SourceColumn="roleName" SourceColumnNullMapping="False" SourceVersion="Current"> </Parameter> - <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@description" Precision="0" ProviderType="Text" Scale="0" Size="2147483647" SourceColumn="roleDescription" SourceColumnNullMapping="False" SourceVersion="Current"> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@roleDescription" Precision="0" ProviderType="Text" Scale="0" Size="2147483647" SourceColumn="roleDescription" SourceColumnNullMapping="False" SourceVersion="Current"> </Parameter> <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@active" Precision="1" ProviderType="Bit" Scale="0" Size="1" SourceColumn="active" SourceColumnNullMapping="False" SourceVersion="Current"> </Parameter> @@ -947,172 +944,172 @@ <xs:element name="db_users" msprop:Generator_UserTableName="db_users" msprop:Generator_RowDeletedName="db_usersRowDeleted" msprop:Generator_RowChangedName="db_usersRowChanged" msprop:Generator_RowClassName="db_usersRow" msprop:Generator_RowChangingName="db_usersRowChanging" msprop:Generator_RowEvArgName="db_usersRowChangeEvent" msprop:Generator_RowEvHandlerName="db_usersRowChangeEventHandler" msprop:Generator_TableClassName="db_usersDataTable" msprop:Generator_TableVarName="tabledb_users" msprop:Generator_RowDeletingName="db_usersRowDeleting" msprop:Generator_TablePropName="db_users"> <xs:complexType> <xs:sequence> - <xs:element name="userID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="userID" msprop:Generator_ColumnVarNameInTable="columnuserID" msprop:Generator_ColumnPropNameInRow="userID" msprop:Generator_ColumnPropNameInTable="userIDColumn" type="xs:int" /> - <xs:element name="username" msprop:Generator_UserColumnName="username" msprop:Generator_ColumnVarNameInTable="columnusername" msprop:Generator_ColumnPropNameInRow="username" msprop:Generator_ColumnPropNameInTable="usernameColumn"> + <xs:element name="userID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="userID" msprop:Generator_ColumnPropNameInRow="userID" msprop:Generator_ColumnVarNameInTable="columnuserID" msprop:Generator_ColumnPropNameInTable="userIDColumn" type="xs:int" /> + <xs:element name="username" msprop:Generator_UserColumnName="username" msprop:Generator_ColumnPropNameInRow="username" msprop:Generator_ColumnVarNameInTable="columnusername" msprop:Generator_ColumnPropNameInTable="usernameColumn"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="email" msprop:Generator_UserColumnName="email" msprop:Generator_ColumnVarNameInTable="columnemail" msprop:Generator_ColumnPropNameInRow="email" msprop:Generator_ColumnPropNameInTable="emailColumn"> + <xs:element name="email" msprop:Generator_UserColumnName="email" msprop:Generator_ColumnPropNameInRow="email" msprop:Generator_ColumnVarNameInTable="columnemail" msprop:Generator_ColumnPropNameInTable="emailColumn"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="officePhone" msprop:Generator_UserColumnName="officePhone" msprop:Generator_ColumnVarNameInTable="columnofficePhone" msprop:Generator_ColumnPropNameInRow="officePhone" msprop:Generator_ColumnPropNameInTable="officePhoneColumn" minOccurs="0"> + <xs:element name="officePhone" msprop:Generator_UserColumnName="officePhone" msprop:Generator_ColumnPropNameInRow="officePhone" msprop:Generator_ColumnVarNameInTable="columnofficePhone" msprop:Generator_ColumnPropNameInTable="officePhoneColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="14" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="homePhone" msprop:Generator_UserColumnName="homePhone" msprop:Generator_ColumnVarNameInTable="columnhomePhone" msprop:Generator_ColumnPropNameInRow="homePhone" msprop:Generator_ColumnPropNameInTable="homePhoneColumn" minOccurs="0"> + <xs:element name="homePhone" msprop:Generator_UserColumnName="homePhone" msprop:Generator_ColumnPropNameInRow="homePhone" msprop:Generator_ColumnVarNameInTable="columnhomePhone" msprop:Generator_ColumnPropNameInTable="homePhoneColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="14" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="cellPhone" msprop:Generator_UserColumnName="cellPhone" msprop:Generator_ColumnVarNameInTable="columncellPhone" msprop:Generator_ColumnPropNameInRow="cellPhone" msprop:Generator_ColumnPropNameInTable="cellPhoneColumn" minOccurs="0"> + <xs:element name="cellPhone" msprop:Generator_UserColumnName="cellPhone" msprop:Generator_ColumnPropNameInRow="cellPhone" msprop:Generator_ColumnVarNameInTable="columncellPhone" msprop:Generator_ColumnPropNameInTable="cellPhoneColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="14" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="firstName" msprop:Generator_UserColumnName="firstName" msprop:Generator_ColumnVarNameInTable="columnfirstName" msprop:Generator_ColumnPropNameInRow="firstName" msprop:Generator_ColumnPropNameInTable="firstNameColumn"> + <xs:element name="firstName" msprop:Generator_UserColumnName="firstName" msprop:Generator_ColumnPropNameInRow="firstName" msprop:Generator_ColumnVarNameInTable="columnfirstName" msprop:Generator_ColumnPropNameInTable="firstNameColumn"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="24" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="lastName" msprop:Generator_UserColumnName="lastName" msprop:Generator_ColumnVarNameInTable="columnlastName" msprop:Generator_ColumnPropNameInRow="lastName" msprop:Generator_ColumnPropNameInTable="lastNameColumn"> + <xs:element name="lastName" msprop:Generator_UserColumnName="lastName" msprop:Generator_ColumnPropNameInRow="lastName" msprop:Generator_ColumnVarNameInTable="columnlastName" msprop:Generator_ColumnPropNameInTable="lastNameColumn"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="24" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="fullName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="fullName" msprop:Generator_ColumnVarNameInTable="columnfullName" msprop:Generator_ColumnPropNameInRow="fullName" msprop:Generator_ColumnPropNameInTable="fullNameColumn" minOccurs="0"> + <xs:element name="fullName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="fullName" msprop:Generator_ColumnPropNameInRow="fullName" msprop:Generator_ColumnVarNameInTable="columnfullName" msprop:Generator_ColumnPropNameInTable="fullNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="automation" msprop:Generator_UserColumnName="automation" msprop:Generator_ColumnVarNameInTable="columnautomation" msprop:Generator_ColumnPropNameInRow="automation" msprop:Generator_ColumnPropNameInTable="automationColumn" type="xs:boolean" /> + <xs:element name="automation" msprop:Generator_UserColumnName="automation" msprop:Generator_ColumnPropNameInRow="automation" msprop:Generator_ColumnVarNameInTable="columnautomation" msprop:Generator_ColumnPropNameInTable="automationColumn" type="xs:boolean" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_products" msprop:Generator_UserTableName="db_products" msprop:Generator_RowDeletedName="db_productsRowDeleted" msprop:Generator_RowChangedName="db_productsRowChanged" msprop:Generator_RowClassName="db_productsRow" msprop:Generator_RowChangingName="db_productsRowChanging" msprop:Generator_RowEvArgName="db_productsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_productsRowChangeEventHandler" msprop:Generator_TableClassName="db_productsDataTable" msprop:Generator_TableVarName="tabledb_products" msprop:Generator_RowDeletingName="db_productsRowDeleting" msprop:Generator_TablePropName="db_products"> <xs:complexType> <xs:sequence> - <xs:element name="productID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="productID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> + <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="devManager" msprop:Generator_UserColumnName="devManager" msprop:Generator_ColumnVarNameInTable="columndevManager" msprop:Generator_ColumnPropNameInRow="devManager" msprop:Generator_ColumnPropNameInTable="devManagerColumn" type="xs:int" minOccurs="0" /> - <xs:element name="qaManager" msprop:Generator_UserColumnName="qaManager" msprop:Generator_ColumnVarNameInTable="columnqaManager" msprop:Generator_ColumnPropNameInRow="qaManager" msprop:Generator_ColumnPropNameInTable="qaManagerColumn" type="xs:int" minOccurs="0" /> - <xs:element name="devLead" msprop:Generator_UserColumnName="devLead" msprop:Generator_ColumnVarNameInTable="columndevLead" msprop:Generator_ColumnPropNameInRow="devLead" msprop:Generator_ColumnPropNameInTable="devLeadColumn" type="xs:int" minOccurs="0" /> - <xs:element name="qaLead" msprop:Generator_UserColumnName="qaLead" msprop:Generator_ColumnVarNameInTable="columnqaLead" msprop:Generator_ColumnPropNameInRow="qaLead" msprop:Generator_ColumnPropNameInTable="qaLeadColumn" type="xs:int" minOccurs="0" /> - <xs:element name="pm" msprop:Generator_UserColumnName="pm" msprop:Generator_ColumnVarNameInTable="columnpm" msprop:Generator_ColumnPropNameInRow="pm" msprop:Generator_ColumnPropNameInTable="pmColumn" type="xs:int" minOccurs="0" /> - <xs:element name="codeName" msprop:Generator_UserColumnName="codeName" msprop:Generator_ColumnVarNameInTable="columncodeName" msprop:Generator_ColumnPropNameInRow="codeName" msprop:Generator_ColumnPropNameInTable="codeNameColumn" minOccurs="0"> + <xs:element name="devManager" msprop:Generator_UserColumnName="devManager" msprop:Generator_ColumnPropNameInRow="devManager" msprop:Generator_ColumnVarNameInTable="columndevManager" msprop:Generator_ColumnPropNameInTable="devManagerColumn" type="xs:int" minOccurs="0" /> + <xs:element name="qaManager" msprop:Generator_UserColumnName="qaManager" msprop:Generator_ColumnPropNameInRow="qaManager" msprop:Generator_ColumnVarNameInTable="columnqaManager" msprop:Generator_ColumnPropNameInTable="qaManagerColumn" type="xs:int" minOccurs="0" /> + <xs:element name="devLead" msprop:Generator_UserColumnName="devLead" msprop:Generator_ColumnPropNameInRow="devLead" msprop:Generator_ColumnVarNameInTable="columndevLead" msprop:Generator_ColumnPropNameInTable="devLeadColumn" type="xs:int" minOccurs="0" /> + <xs:element name="qaLead" msprop:Generator_UserColumnName="qaLead" msprop:Generator_ColumnPropNameInRow="qaLead" msprop:Generator_ColumnVarNameInTable="columnqaLead" msprop:Generator_ColumnPropNameInTable="qaLeadColumn" type="xs:int" minOccurs="0" /> + <xs:element name="pm" msprop:Generator_UserColumnName="pm" msprop:Generator_ColumnPropNameInRow="pm" msprop:Generator_ColumnVarNameInTable="columnpm" msprop:Generator_ColumnPropNameInTable="pmColumn" type="xs:int" minOccurs="0" /> + <xs:element name="codeName" msprop:Generator_UserColumnName="codeName" msprop:Generator_ColumnPropNameInRow="codeName" msprop:Generator_ColumnVarNameInTable="columncodeName" msprop:Generator_ColumnPropNameInTable="codeNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="10" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_actionItems" msprop:Generator_UserTableName="db_actionItems" msprop:Generator_RowDeletedName="db_actionItemsRowDeleted" msprop:Generator_RowChangedName="db_actionItemsRowChanged" msprop:Generator_RowClassName="db_actionItemsRow" msprop:Generator_RowChangingName="db_actionItemsRowChanging" msprop:Generator_RowEvArgName="db_actionItemsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_actionItemsRowChangeEventHandler" msprop:Generator_TableClassName="db_actionItemsDataTable" msprop:Generator_TableVarName="tabledb_actionItems" msprop:Generator_RowDeletingName="db_actionItemsRowDeleting" msprop:Generator_TablePropName="db_actionItems"> <xs:complexType> <xs:sequence> - <xs:element name="actionItemID" msprop:Generator_UserColumnName="actionItemID" msprop:Generator_ColumnPropNameInRow="actionItemID" msprop:Generator_ColumnVarNameInTable="columnactionItemID" msprop:Generator_ColumnPropNameInTable="actionItemIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="actionItemID" msprop:Generator_UserColumnName="actionItemID" msprop:Generator_ColumnVarNameInTable="columnactionItemID" msprop:Generator_ColumnPropNameInRow="actionItemID" msprop:Generator_ColumnPropNameInTable="actionItemIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> + <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="percentComplete" msprop:Generator_UserColumnName="percentComplete" msprop:Generator_ColumnPropNameInRow="percentComplete" msprop:Generator_ColumnVarNameInTable="columnpercentComplete" msprop:Generator_ColumnPropNameInTable="percentCompleteColumn" type="xs:int" minOccurs="0" /> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="percentComplete" msprop:Generator_UserColumnName="percentComplete" msprop:Generator_ColumnVarNameInTable="columnpercentComplete" msprop:Generator_ColumnPropNameInRow="percentComplete" msprop:Generator_ColumnPropNameInTable="percentCompleteColumn" type="xs:int" minOccurs="0" /> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="createdBy" msdata:ReadOnly="true" msprop:Generator_UserColumnName="createdBy" msprop:Generator_ColumnPropNameInRow="createdBy" msprop:Generator_ColumnVarNameInTable="columncreatedBy" msprop:Generator_ColumnPropNameInTable="createdByColumn" minOccurs="0"> + <xs:element name="createdBy" msdata:ReadOnly="true" msprop:Generator_UserColumnName="createdBy" msprop:Generator_ColumnVarNameInTable="columncreatedBy" msprop:Generator_ColumnPropNameInRow="createdBy" msprop:Generator_ColumnPropNameInTable="createdByColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> - <xs:element name="testPass" msprop:Generator_UserColumnName="testPass" msprop:Generator_ColumnVarNameInTable="columntestPass" msprop:Generator_ColumnPropNameInRow="testPass" msprop:Generator_ColumnPropNameInTable="testPassColumn" minOccurs="0"> + <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> + <xs:element name="testPass" msprop:Generator_UserColumnName="testPass" msprop:Generator_ColumnPropNameInRow="testPass" msprop:Generator_ColumnVarNameInTable="columntestPass" msprop:Generator_ColumnPropNameInTable="testPassColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> + <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="statusID" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="testPassID" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> - <xs:element name="creatorID" msprop:Generator_UserColumnName="creatorID" msprop:Generator_ColumnPropNameInRow="creatorID" msprop:Generator_ColumnVarNameInTable="columncreatorID" msprop:Generator_ColumnPropNameInTable="creatorIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="statusID" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="testPassID" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="creatorID" msprop:Generator_UserColumnName="creatorID" msprop:Generator_ColumnVarNameInTable="columncreatorID" msprop:Generator_ColumnPropNameInRow="creatorID" msprop:Generator_ColumnPropNameInTable="creatorIDColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_status" msprop:Generator_UserTableName="db_status" msprop:Generator_RowDeletedName="db_statusRowDeleted" msprop:Generator_RowChangedName="db_statusRowChanged" msprop:Generator_RowClassName="db_statusRow" msprop:Generator_RowChangingName="db_statusRowChanging" msprop:Generator_RowEvArgName="db_statusRowChangeEvent" msprop:Generator_RowEvHandlerName="db_statusRowChangeEventHandler" msprop:Generator_TableClassName="db_statusDataTable" msprop:Generator_TableVarName="tabledb_status" msprop:Generator_RowDeletingName="db_statusRowDeleting" msprop:Generator_TablePropName="db_status"> <xs:complexType> <xs:sequence> - <xs:element name="statusID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" /> - <xs:element name="Description" msprop:Generator_UserColumnName="Description" msprop:Generator_ColumnVarNameInTable="columnDescription" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" minOccurs="0"> + <xs:element name="statusID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" /> + <xs:element name="Description" msprop:Generator_UserColumnName="Description" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnVarNameInTable="columnDescription" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> @@ -1125,113 +1122,113 @@ <xs:element name="db_notes" msprop:Generator_UserTableName="db_notes" msprop:Generator_RowDeletedName="db_notesRowDeleted" msprop:Generator_RowChangedName="db_notesRowChanged" msprop:Generator_RowClassName="db_notesRow" msprop:Generator_RowChangingName="db_notesRowChanging" msprop:Generator_RowEvArgName="db_notesRowChangeEvent" msprop:Generator_RowEvHandlerName="db_notesRowChangeEventHandler" msprop:Generator_TableClassName="db_notesDataTable" msprop:Generator_TableVarName="tabledb_notes" msprop:Generator_RowDeletingName="db_notesRowDeleting" msprop:Generator_TablePropName="db_notes"> <xs:complexType> <xs:sequence> - <xs:element name="noteID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="noteID" msprop:Generator_ColumnVarNameInTable="columnnoteID" msprop:Generator_ColumnPropNameInRow="noteID" msprop:Generator_ColumnPropNameInTable="noteIDColumn" type="xs:int" /> - <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="noteField" msprop:Generator_UserColumnName="noteField" msprop:Generator_ColumnVarNameInTable="columnnoteField" msprop:Generator_ColumnPropNameInRow="noteField" msprop:Generator_ColumnPropNameInTable="noteFieldColumn" minOccurs="0"> + <xs:element name="noteID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="noteID" msprop:Generator_ColumnPropNameInRow="noteID" msprop:Generator_ColumnVarNameInTable="columnnoteID" msprop:Generator_ColumnPropNameInTable="noteIDColumn" type="xs:int" /> + <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="noteField" msprop:Generator_UserColumnName="noteField" msprop:Generator_ColumnPropNameInRow="noteField" msprop:Generator_ColumnVarNameInTable="columnnoteField" msprop:Generator_ColumnPropNameInTable="noteFieldColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="noteAuthor" msprop:Generator_UserColumnName="noteAuthor" msprop:Generator_ColumnVarNameInTable="columnnoteAuthor" msprop:Generator_ColumnPropNameInRow="noteAuthor" msprop:Generator_ColumnPropNameInTable="noteAuthorColumn" type="xs:int" minOccurs="0" /> + <xs:element name="noteAuthor" msprop:Generator_UserColumnName="noteAuthor" msprop:Generator_ColumnPropNameInRow="noteAuthor" msprop:Generator_ColumnVarNameInTable="columnnoteAuthor" msprop:Generator_ColumnPropNameInTable="noteAuthorColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_assignments" msprop:Generator_UserTableName="db_assignments" msprop:Generator_RowDeletedName="db_assignmentsRowDeleted" msprop:Generator_RowChangedName="db_assignmentsRowChanged" msprop:Generator_RowClassName="db_assignmentsRow" msprop:Generator_RowChangingName="db_assignmentsRowChanging" msprop:Generator_RowEvArgName="db_assignmentsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_assignmentsRowChangeEventHandler" msprop:Generator_TableClassName="db_assignmentsDataTable" msprop:Generator_TableVarName="tabledb_assignments" msprop:Generator_RowDeletingName="db_assignmentsRowDeleting" msprop:Generator_TablePropName="db_assignments"> <xs:complexType> <xs:sequence> - <xs:element name="aType" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aType" msprop:Generator_ColumnVarNameInTable="columnaType" msprop:Generator_ColumnPropNameInRow="aType" msprop:Generator_ColumnPropNameInTable="aTypeColumn" minOccurs="0"> + <xs:element name="aType" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aType" msprop:Generator_ColumnPropNameInRow="aType" msprop:Generator_ColumnVarNameInTable="columnaType" msprop:Generator_ColumnPropNameInTable="aTypeColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="childID" msdata:ReadOnly="true" msprop:Generator_UserColumnName="childID" msprop:Generator_ColumnVarNameInTable="columnchildID" msprop:Generator_ColumnPropNameInRow="childID" msprop:Generator_ColumnPropNameInTable="childIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="creator" msdata:ReadOnly="true" msprop:Generator_UserColumnName="creator" msprop:Generator_ColumnVarNameInTable="columncreator" msprop:Generator_ColumnPropNameInRow="creator" msprop:Generator_ColumnPropNameInTable="creatorColumn" minOccurs="0"> + <xs:element name="childID" msdata:ReadOnly="true" msprop:Generator_UserColumnName="childID" msprop:Generator_ColumnPropNameInRow="childID" msprop:Generator_ColumnVarNameInTable="columnchildID" msprop:Generator_ColumnPropNameInTable="childIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="creator" msdata:ReadOnly="true" msprop:Generator_UserColumnName="creator" msprop:Generator_ColumnPropNameInRow="creator" msprop:Generator_ColumnVarNameInTable="columncreator" msprop:Generator_ColumnPropNameInTable="creatorColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> + <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="WOTotalTest" msprop:Generator_UserColumnName="WOTotalTest" msprop:Generator_ColumnVarNameInTable="columnWOTotalTest" msprop:Generator_ColumnPropNameInRow="WOTotalTest" msprop:Generator_ColumnPropNameInTable="WOTotalTestColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOPassRate" msdata:ReadOnly="true" msprop:Generator_UserColumnName="WOPassRate" msprop:Generator_ColumnVarNameInTable="columnWOPassRate" msprop:Generator_ColumnPropNameInRow="WOPassRate" msprop:Generator_ColumnPropNameInTable="WOPassRateColumn" minOccurs="0"> + <xs:element name="WOTotalTest" msprop:Generator_UserColumnName="WOTotalTest" msprop:Generator_ColumnPropNameInRow="WOTotalTest" msprop:Generator_ColumnVarNameInTable="columnWOTotalTest" msprop:Generator_ColumnPropNameInTable="WOTotalTestColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOPassRate" msdata:ReadOnly="true" msprop:Generator_UserColumnName="WOPassRate" msprop:Generator_ColumnPropNameInRow="WOPassRate" msprop:Generator_ColumnVarNameInTable="columnWOPassRate" msprop:Generator_ColumnPropNameInTable="WOPassRateColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="31" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="WOPass" msprop:Generator_UserColumnName="WOPass" msprop:Generator_ColumnVarNameInTable="columnWOPass" msprop:Generator_ColumnPropNameInRow="WOPass" msprop:Generator_ColumnPropNameInTable="WOPassColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOFail" msprop:Generator_UserColumnName="WOFail" msprop:Generator_ColumnVarNameInTable="columnWOFail" msprop:Generator_ColumnPropNameInRow="WOFail" msprop:Generator_ColumnPropNameInTable="WOFailColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOError" msprop:Generator_UserColumnName="WOError" msprop:Generator_ColumnVarNameInTable="columnWOError" msprop:Generator_ColumnPropNameInRow="WOError" msprop:Generator_ColumnPropNameInTable="WOErrorColumn" type="xs:int" minOccurs="0" /> - <xs:element name="aName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aName" msprop:Generator_ColumnVarNameInTable="columnaName" msprop:Generator_ColumnPropNameInRow="aName" msprop:Generator_ColumnPropNameInTable="aNameColumn" minOccurs="0"> + <xs:element name="WOPass" msprop:Generator_UserColumnName="WOPass" msprop:Generator_ColumnPropNameInRow="WOPass" msprop:Generator_ColumnVarNameInTable="columnWOPass" msprop:Generator_ColumnPropNameInTable="WOPassColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOFail" msprop:Generator_UserColumnName="WOFail" msprop:Generator_ColumnPropNameInRow="WOFail" msprop:Generator_ColumnVarNameInTable="columnWOFail" msprop:Generator_ColumnPropNameInTable="WOFailColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOError" msprop:Generator_UserColumnName="WOError" msprop:Generator_ColumnPropNameInRow="WOError" msprop:Generator_ColumnVarNameInTable="columnWOError" msprop:Generator_ColumnPropNameInTable="WOErrorColumn" type="xs:int" minOccurs="0" /> + <xs:element name="aName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aName" msprop:Generator_ColumnPropNameInRow="aName" msprop:Generator_ColumnVarNameInTable="columnaName" msprop:Generator_ColumnPropNameInTable="aNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_testPass" msprop:Generator_UserTableName="db_testPass" msprop:Generator_RowDeletedName="db_testPassRowDeleted" msprop:Generator_RowChangedName="db_testPassRowChanged" msprop:Generator_RowClassName="db_testPassRow" msprop:Generator_RowChangingName="db_testPassRowChanging" msprop:Generator_RowEvArgName="db_testPassRowChangeEvent" msprop:Generator_RowEvHandlerName="db_testPassRowChangeEventHandler" msprop:Generator_TableClassName="db_testPassDataTable" msprop:Generator_TableVarName="tabledb_testPass" msprop:Generator_RowDeletingName="db_testPassRowDeleting" msprop:Generator_TablePropName="db_testPass"> <xs:complexType> <xs:sequence> - <xs:element name="testPassID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="testPassID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="versionID" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="versionID" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> ... [truncated message content] |
From: <ro...@us...> - 2006-08-01 20:32:14
|
Revision: 254 Author: rouquin Date: 2006-08-01 13:32:03 -0700 (Tue, 01 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=254&view=rev Log Message: ----------- Fixed a number of minor bugs on Rights/Roles. Everything is working now. Modified Paths: -------------- Website/AdminRole.aspx Website/App_Code/tcdbDataSet.xsd Website/App_Code/tcdbDataSet.xss Website/Includes/Rights.ascx Website/Includes/Roles.ascx Website/Includes/Roles.ascx.cs Modified: Website/AdminRole.aspx =================================================================== --- Website/AdminRole.aspx 2006-08-01 19:07:13 UTC (rev 253) +++ Website/AdminRole.aspx 2006-08-01 20:32:03 UTC (rev 254) @@ -1,48 +1,13 @@ <%@ Page Language="C#" MasterPageFile="~/TCDB.master" AutoEventWireup="true" Title="TCDB: Administration" %> -<%@ Import Namespace="TCDB.Common" %> +<%@ Import Namespace="TCDB.Common" %> <%@ Register Src="~/Includes/AdministrationTree.ascx" TagPrefix="admin" TagName="Tree" %> - -<script runat="server"> - int product = Convert.ToInt32(HttpContext.Current.Request.QueryString[Constants.CODE_PRODUCT]); - - protected void Page_Load(object sender, EventArgs e) - { - } - protected void addRole(object sender, CommandEventArgs e) - { - Response.Redirect("Role.aspx?mode=edit&" + Constants.CODE_PRODUCT + "=" + product + "&" + Constants.CODE_ROLE + "=" + roleList.SelectedValue); - } - - protected void newRole(object sender, CommandEventArgs e) - { - Response.Redirect("Role.aspx?mode=new&" + Constants.CODE_PRODUCT + "=" + product); - } -</script> - +<%@ Register Src="~/Includes/RoleAdmin.ascx" TagPrefix="admin" TagName="Role" %> <asp:Content ID="TreeContent" ContentPlaceHolderID="TreeContentPlaceHolder" runat="Server"> <admin:Tree runat="server" ID="Tree" /> </asp:Content> <asp:Content ID="MainContent" ContentPlaceHolderID="MainContentPlaceHolder" runat="Server"> - <table width="700"> - <tr> - <td align="center" valign="middle" style="height: 101px"> - <asp:DropDownList ID="roleList" runat="server" DataSourceID="RoleDataSource" DataTextField="roleName" - DataValueField="roleID"> - </asp:DropDownList><asp:ObjectDataSource ID="RoleDataSource" runat="server" OldValuesParameterFormatString="original_{0}" - SelectMethod="GetData" TypeName="tcdbDataSetTableAdapters.db_roleUserProductTableAdapter"> - <SelectParameters> - <asp:Parameter Name="userID" Type="Int32" /> - <asp:SessionParameter Name="productID" SessionField="product" Type="Int32" /> - <asp:Parameter DefaultValue="true" Name="active" Type="Boolean" /> - </SelectParameters> - </asp:ObjectDataSource> - <asp:LinkButton ID="addRoleBtn" runat="server" CommandName="addRole" OnCommand="addRole">Add User To Role</asp:LinkButton> - - <asp:LinkButton ID="newRoleBtn" runat="server" CommandName="newRole" OnCommand="newRole">New User Role</asp:LinkButton><br /> - </td> - </tr> - </table> + <admin:Role ID="Role" runat="server" /> </asp:Content> <asp:Content ID="NotesContent" ContentPlaceHolderID="NotesContentPlaceHolder" runat="Server"> </asp:Content> Modified: Website/App_Code/tcdbDataSet.xsd =================================================================== --- Website/App_Code/tcdbDataSet.xsd 2006-08-01 19:07:13 UTC (rev 253) +++ Website/App_Code/tcdbDataSet.xsd 2006-08-01 20:32:03 UTC (rev 254) @@ -944,172 +944,172 @@ <xs:element name="db_users" msprop:Generator_UserTableName="db_users" msprop:Generator_RowDeletedName="db_usersRowDeleted" msprop:Generator_RowChangedName="db_usersRowChanged" msprop:Generator_RowClassName="db_usersRow" msprop:Generator_RowChangingName="db_usersRowChanging" msprop:Generator_RowEvArgName="db_usersRowChangeEvent" msprop:Generator_RowEvHandlerName="db_usersRowChangeEventHandler" msprop:Generator_TableClassName="db_usersDataTable" msprop:Generator_TableVarName="tabledb_users" msprop:Generator_RowDeletingName="db_usersRowDeleting" msprop:Generator_TablePropName="db_users"> <xs:complexType> <xs:sequence> - <xs:element name="userID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="userID" msprop:Generator_ColumnPropNameInRow="userID" msprop:Generator_ColumnVarNameInTable="columnuserID" msprop:Generator_ColumnPropNameInTable="userIDColumn" type="xs:int" /> - <xs:element name="username" msprop:Generator_UserColumnName="username" msprop:Generator_ColumnPropNameInRow="username" msprop:Generator_ColumnVarNameInTable="columnusername" msprop:Generator_ColumnPropNameInTable="usernameColumn"> + <xs:element name="userID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="userID" msprop:Generator_ColumnVarNameInTable="columnuserID" msprop:Generator_ColumnPropNameInRow="userID" msprop:Generator_ColumnPropNameInTable="userIDColumn" type="xs:int" /> + <xs:element name="username" msprop:Generator_UserColumnName="username" msprop:Generator_ColumnVarNameInTable="columnusername" msprop:Generator_ColumnPropNameInRow="username" msprop:Generator_ColumnPropNameInTable="usernameColumn"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="email" msprop:Generator_UserColumnName="email" msprop:Generator_ColumnPropNameInRow="email" msprop:Generator_ColumnVarNameInTable="columnemail" msprop:Generator_ColumnPropNameInTable="emailColumn"> + <xs:element name="email" msprop:Generator_UserColumnName="email" msprop:Generator_ColumnVarNameInTable="columnemail" msprop:Generator_ColumnPropNameInRow="email" msprop:Generator_ColumnPropNameInTable="emailColumn"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="officePhone" msprop:Generator_UserColumnName="officePhone" msprop:Generator_ColumnPropNameInRow="officePhone" msprop:Generator_ColumnVarNameInTable="columnofficePhone" msprop:Generator_ColumnPropNameInTable="officePhoneColumn" minOccurs="0"> + <xs:element name="officePhone" msprop:Generator_UserColumnName="officePhone" msprop:Generator_ColumnVarNameInTable="columnofficePhone" msprop:Generator_ColumnPropNameInRow="officePhone" msprop:Generator_ColumnPropNameInTable="officePhoneColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="14" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="homePhone" msprop:Generator_UserColumnName="homePhone" msprop:Generator_ColumnPropNameInRow="homePhone" msprop:Generator_ColumnVarNameInTable="columnhomePhone" msprop:Generator_ColumnPropNameInTable="homePhoneColumn" minOccurs="0"> + <xs:element name="homePhone" msprop:Generator_UserColumnName="homePhone" msprop:Generator_ColumnVarNameInTable="columnhomePhone" msprop:Generator_ColumnPropNameInRow="homePhone" msprop:Generator_ColumnPropNameInTable="homePhoneColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="14" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="cellPhone" msprop:Generator_UserColumnName="cellPhone" msprop:Generator_ColumnPropNameInRow="cellPhone" msprop:Generator_ColumnVarNameInTable="columncellPhone" msprop:Generator_ColumnPropNameInTable="cellPhoneColumn" minOccurs="0"> + <xs:element name="cellPhone" msprop:Generator_UserColumnName="cellPhone" msprop:Generator_ColumnVarNameInTable="columncellPhone" msprop:Generator_ColumnPropNameInRow="cellPhone" msprop:Generator_ColumnPropNameInTable="cellPhoneColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="14" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="firstName" msprop:Generator_UserColumnName="firstName" msprop:Generator_ColumnPropNameInRow="firstName" msprop:Generator_ColumnVarNameInTable="columnfirstName" msprop:Generator_ColumnPropNameInTable="firstNameColumn"> + <xs:element name="firstName" msprop:Generator_UserColumnName="firstName" msprop:Generator_ColumnVarNameInTable="columnfirstName" msprop:Generator_ColumnPropNameInRow="firstName" msprop:Generator_ColumnPropNameInTable="firstNameColumn"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="24" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="lastName" msprop:Generator_UserColumnName="lastName" msprop:Generator_ColumnPropNameInRow="lastName" msprop:Generator_ColumnVarNameInTable="columnlastName" msprop:Generator_ColumnPropNameInTable="lastNameColumn"> + <xs:element name="lastName" msprop:Generator_UserColumnName="lastName" msprop:Generator_ColumnVarNameInTable="columnlastName" msprop:Generator_ColumnPropNameInRow="lastName" msprop:Generator_ColumnPropNameInTable="lastNameColumn"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="24" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="fullName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="fullName" msprop:Generator_ColumnPropNameInRow="fullName" msprop:Generator_ColumnVarNameInTable="columnfullName" msprop:Generator_ColumnPropNameInTable="fullNameColumn" minOccurs="0"> + <xs:element name="fullName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="fullName" msprop:Generator_ColumnVarNameInTable="columnfullName" msprop:Generator_ColumnPropNameInRow="fullName" msprop:Generator_ColumnPropNameInTable="fullNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="automation" msprop:Generator_UserColumnName="automation" msprop:Generator_ColumnPropNameInRow="automation" msprop:Generator_ColumnVarNameInTable="columnautomation" msprop:Generator_ColumnPropNameInTable="automationColumn" type="xs:boolean" /> + <xs:element name="automation" msprop:Generator_UserColumnName="automation" msprop:Generator_ColumnVarNameInTable="columnautomation" msprop:Generator_ColumnPropNameInRow="automation" msprop:Generator_ColumnPropNameInTable="automationColumn" type="xs:boolean" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_products" msprop:Generator_UserTableName="db_products" msprop:Generator_RowDeletedName="db_productsRowDeleted" msprop:Generator_RowChangedName="db_productsRowChanged" msprop:Generator_RowClassName="db_productsRow" msprop:Generator_RowChangingName="db_productsRowChanging" msprop:Generator_RowEvArgName="db_productsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_productsRowChangeEventHandler" msprop:Generator_TableClassName="db_productsDataTable" msprop:Generator_TableVarName="tabledb_products" msprop:Generator_RowDeletingName="db_productsRowDeleting" msprop:Generator_TablePropName="db_products"> <xs:complexType> <xs:sequence> - <xs:element name="productID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="productID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> + <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="devManager" msprop:Generator_UserColumnName="devManager" msprop:Generator_ColumnPropNameInRow="devManager" msprop:Generator_ColumnVarNameInTable="columndevManager" msprop:Generator_ColumnPropNameInTable="devManagerColumn" type="xs:int" minOccurs="0" /> - <xs:element name="qaManager" msprop:Generator_UserColumnName="qaManager" msprop:Generator_ColumnPropNameInRow="qaManager" msprop:Generator_ColumnVarNameInTable="columnqaManager" msprop:Generator_ColumnPropNameInTable="qaManagerColumn" type="xs:int" minOccurs="0" /> - <xs:element name="devLead" msprop:Generator_UserColumnName="devLead" msprop:Generator_ColumnPropNameInRow="devLead" msprop:Generator_ColumnVarNameInTable="columndevLead" msprop:Generator_ColumnPropNameInTable="devLeadColumn" type="xs:int" minOccurs="0" /> - <xs:element name="qaLead" msprop:Generator_UserColumnName="qaLead" msprop:Generator_ColumnPropNameInRow="qaLead" msprop:Generator_ColumnVarNameInTable="columnqaLead" msprop:Generator_ColumnPropNameInTable="qaLeadColumn" type="xs:int" minOccurs="0" /> - <xs:element name="pm" msprop:Generator_UserColumnName="pm" msprop:Generator_ColumnPropNameInRow="pm" msprop:Generator_ColumnVarNameInTable="columnpm" msprop:Generator_ColumnPropNameInTable="pmColumn" type="xs:int" minOccurs="0" /> - <xs:element name="codeName" msprop:Generator_UserColumnName="codeName" msprop:Generator_ColumnPropNameInRow="codeName" msprop:Generator_ColumnVarNameInTable="columncodeName" msprop:Generator_ColumnPropNameInTable="codeNameColumn" minOccurs="0"> + <xs:element name="devManager" msprop:Generator_UserColumnName="devManager" msprop:Generator_ColumnVarNameInTable="columndevManager" msprop:Generator_ColumnPropNameInRow="devManager" msprop:Generator_ColumnPropNameInTable="devManagerColumn" type="xs:int" minOccurs="0" /> + <xs:element name="qaManager" msprop:Generator_UserColumnName="qaManager" msprop:Generator_ColumnVarNameInTable="columnqaManager" msprop:Generator_ColumnPropNameInRow="qaManager" msprop:Generator_ColumnPropNameInTable="qaManagerColumn" type="xs:int" minOccurs="0" /> + <xs:element name="devLead" msprop:Generator_UserColumnName="devLead" msprop:Generator_ColumnVarNameInTable="columndevLead" msprop:Generator_ColumnPropNameInRow="devLead" msprop:Generator_ColumnPropNameInTable="devLeadColumn" type="xs:int" minOccurs="0" /> + <xs:element name="qaLead" msprop:Generator_UserColumnName="qaLead" msprop:Generator_ColumnVarNameInTable="columnqaLead" msprop:Generator_ColumnPropNameInRow="qaLead" msprop:Generator_ColumnPropNameInTable="qaLeadColumn" type="xs:int" minOccurs="0" /> + <xs:element name="pm" msprop:Generator_UserColumnName="pm" msprop:Generator_ColumnVarNameInTable="columnpm" msprop:Generator_ColumnPropNameInRow="pm" msprop:Generator_ColumnPropNameInTable="pmColumn" type="xs:int" minOccurs="0" /> + <xs:element name="codeName" msprop:Generator_UserColumnName="codeName" msprop:Generator_ColumnVarNameInTable="columncodeName" msprop:Generator_ColumnPropNameInRow="codeName" msprop:Generator_ColumnPropNameInTable="codeNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="10" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_actionItems" msprop:Generator_UserTableName="db_actionItems" msprop:Generator_RowDeletedName="db_actionItemsRowDeleted" msprop:Generator_RowChangedName="db_actionItemsRowChanged" msprop:Generator_RowClassName="db_actionItemsRow" msprop:Generator_RowChangingName="db_actionItemsRowChanging" msprop:Generator_RowEvArgName="db_actionItemsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_actionItemsRowChangeEventHandler" msprop:Generator_TableClassName="db_actionItemsDataTable" msprop:Generator_TableVarName="tabledb_actionItems" msprop:Generator_RowDeletingName="db_actionItemsRowDeleting" msprop:Generator_TablePropName="db_actionItems"> <xs:complexType> <xs:sequence> - <xs:element name="actionItemID" msprop:Generator_UserColumnName="actionItemID" msprop:Generator_ColumnVarNameInTable="columnactionItemID" msprop:Generator_ColumnPropNameInRow="actionItemID" msprop:Generator_ColumnPropNameInTable="actionItemIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="actionItemID" msprop:Generator_UserColumnName="actionItemID" msprop:Generator_ColumnPropNameInRow="actionItemID" msprop:Generator_ColumnVarNameInTable="columnactionItemID" msprop:Generator_ColumnPropNameInTable="actionItemIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> + <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="percentComplete" msprop:Generator_UserColumnName="percentComplete" msprop:Generator_ColumnVarNameInTable="columnpercentComplete" msprop:Generator_ColumnPropNameInRow="percentComplete" msprop:Generator_ColumnPropNameInTable="percentCompleteColumn" type="xs:int" minOccurs="0" /> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="percentComplete" msprop:Generator_UserColumnName="percentComplete" msprop:Generator_ColumnPropNameInRow="percentComplete" msprop:Generator_ColumnVarNameInTable="columnpercentComplete" msprop:Generator_ColumnPropNameInTable="percentCompleteColumn" type="xs:int" minOccurs="0" /> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="createdBy" msdata:ReadOnly="true" msprop:Generator_UserColumnName="createdBy" msprop:Generator_ColumnVarNameInTable="columncreatedBy" msprop:Generator_ColumnPropNameInRow="createdBy" msprop:Generator_ColumnPropNameInTable="createdByColumn" minOccurs="0"> + <xs:element name="createdBy" msdata:ReadOnly="true" msprop:Generator_UserColumnName="createdBy" msprop:Generator_ColumnPropNameInRow="createdBy" msprop:Generator_ColumnVarNameInTable="columncreatedBy" msprop:Generator_ColumnPropNameInTable="createdByColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> - <xs:element name="testPass" msprop:Generator_UserColumnName="testPass" msprop:Generator_ColumnPropNameInRow="testPass" msprop:Generator_ColumnVarNameInTable="columntestPass" msprop:Generator_ColumnPropNameInTable="testPassColumn" minOccurs="0"> + <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> + <xs:element name="testPass" msprop:Generator_UserColumnName="testPass" msprop:Generator_ColumnVarNameInTable="columntestPass" msprop:Generator_ColumnPropNameInRow="testPass" msprop:Generator_ColumnPropNameInTable="testPassColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> + <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="statusID" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="testPassID" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> - <xs:element name="creatorID" msprop:Generator_UserColumnName="creatorID" msprop:Generator_ColumnVarNameInTable="columncreatorID" msprop:Generator_ColumnPropNameInRow="creatorID" msprop:Generator_ColumnPropNameInTable="creatorIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="statusID" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="testPassID" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="creatorID" msprop:Generator_UserColumnName="creatorID" msprop:Generator_ColumnPropNameInRow="creatorID" msprop:Generator_ColumnVarNameInTable="columncreatorID" msprop:Generator_ColumnPropNameInTable="creatorIDColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_status" msprop:Generator_UserTableName="db_status" msprop:Generator_RowDeletedName="db_statusRowDeleted" msprop:Generator_RowChangedName="db_statusRowChanged" msprop:Generator_RowClassName="db_statusRow" msprop:Generator_RowChangingName="db_statusRowChanging" msprop:Generator_RowEvArgName="db_statusRowChangeEvent" msprop:Generator_RowEvHandlerName="db_statusRowChangeEventHandler" msprop:Generator_TableClassName="db_statusDataTable" msprop:Generator_TableVarName="tabledb_status" msprop:Generator_RowDeletingName="db_statusRowDeleting" msprop:Generator_TablePropName="db_status"> <xs:complexType> <xs:sequence> - <xs:element name="statusID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" /> - <xs:element name="Description" msprop:Generator_UserColumnName="Description" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnVarNameInTable="columnDescription" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" minOccurs="0"> + <xs:element name="statusID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" /> + <xs:element name="Description" msprop:Generator_UserColumnName="Description" msprop:Generator_ColumnVarNameInTable="columnDescription" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> @@ -1122,113 +1122,113 @@ <xs:element name="db_notes" msprop:Generator_UserTableName="db_notes" msprop:Generator_RowDeletedName="db_notesRowDeleted" msprop:Generator_RowChangedName="db_notesRowChanged" msprop:Generator_RowClassName="db_notesRow" msprop:Generator_RowChangingName="db_notesRowChanging" msprop:Generator_RowEvArgName="db_notesRowChangeEvent" msprop:Generator_RowEvHandlerName="db_notesRowChangeEventHandler" msprop:Generator_TableClassName="db_notesDataTable" msprop:Generator_TableVarName="tabledb_notes" msprop:Generator_RowDeletingName="db_notesRowDeleting" msprop:Generator_TablePropName="db_notes"> <xs:complexType> <xs:sequence> - <xs:element name="noteID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="noteID" msprop:Generator_ColumnPropNameInRow="noteID" msprop:Generator_ColumnVarNameInTable="columnnoteID" msprop:Generator_ColumnPropNameInTable="noteIDColumn" type="xs:int" /> - <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="noteField" msprop:Generator_UserColumnName="noteField" msprop:Generator_ColumnPropNameInRow="noteField" msprop:Generator_ColumnVarNameInTable="columnnoteField" msprop:Generator_ColumnPropNameInTable="noteFieldColumn" minOccurs="0"> + <xs:element name="noteID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="noteID" msprop:Generator_ColumnVarNameInTable="columnnoteID" msprop:Generator_ColumnPropNameInRow="noteID" msprop:Generator_ColumnPropNameInTable="noteIDColumn" type="xs:int" /> + <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="noteField" msprop:Generator_UserColumnName="noteField" msprop:Generator_ColumnVarNameInTable="columnnoteField" msprop:Generator_ColumnPropNameInRow="noteField" msprop:Generator_ColumnPropNameInTable="noteFieldColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="noteAuthor" msprop:Generator_UserColumnName="noteAuthor" msprop:Generator_ColumnPropNameInRow="noteAuthor" msprop:Generator_ColumnVarNameInTable="columnnoteAuthor" msprop:Generator_ColumnPropNameInTable="noteAuthorColumn" type="xs:int" minOccurs="0" /> + <xs:element name="noteAuthor" msprop:Generator_UserColumnName="noteAuthor" msprop:Generator_ColumnVarNameInTable="columnnoteAuthor" msprop:Generator_ColumnPropNameInRow="noteAuthor" msprop:Generator_ColumnPropNameInTable="noteAuthorColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_assignments" msprop:Generator_UserTableName="db_assignments" msprop:Generator_RowDeletedName="db_assignmentsRowDeleted" msprop:Generator_RowChangedName="db_assignmentsRowChanged" msprop:Generator_RowClassName="db_assignmentsRow" msprop:Generator_RowChangingName="db_assignmentsRowChanging" msprop:Generator_RowEvArgName="db_assignmentsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_assignmentsRowChangeEventHandler" msprop:Generator_TableClassName="db_assignmentsDataTable" msprop:Generator_TableVarName="tabledb_assignments" msprop:Generator_RowDeletingName="db_assignmentsRowDeleting" msprop:Generator_TablePropName="db_assignments"> <xs:complexType> <xs:sequence> - <xs:element name="aType" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aType" msprop:Generator_ColumnPropNameInRow="aType" msprop:Generator_ColumnVarNameInTable="columnaType" msprop:Generator_ColumnPropNameInTable="aTypeColumn" minOccurs="0"> + <xs:element name="aType" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aType" msprop:Generator_ColumnVarNameInTable="columnaType" msprop:Generator_ColumnPropNameInRow="aType" msprop:Generator_ColumnPropNameInTable="aTypeColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="childID" msdata:ReadOnly="true" msprop:Generator_UserColumnName="childID" msprop:Generator_ColumnPropNameInRow="childID" msprop:Generator_ColumnVarNameInTable="columnchildID" msprop:Generator_ColumnPropNameInTable="childIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="creator" msdata:ReadOnly="true" msprop:Generator_UserColumnName="creator" msprop:Generator_ColumnPropNameInRow="creator" msprop:Generator_ColumnVarNameInTable="columncreator" msprop:Generator_ColumnPropNameInTable="creatorColumn" minOccurs="0"> + <xs:element name="childID" msdata:ReadOnly="true" msprop:Generator_UserColumnName="childID" msprop:Generator_ColumnVarNameInTable="columnchildID" msprop:Generator_ColumnPropNameInRow="childID" msprop:Generator_ColumnPropNameInTable="childIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="creator" msdata:ReadOnly="true" msprop:Generator_UserColumnName="creator" msprop:Generator_ColumnVarNameInTable="columncreator" msprop:Generator_ColumnPropNameInRow="creator" msprop:Generator_ColumnPropNameInTable="creatorColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> + <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="WOTotalTest" msprop:Generator_UserColumnName="WOTotalTest" msprop:Generator_ColumnPropNameInRow="WOTotalTest" msprop:Generator_ColumnVarNameInTable="columnWOTotalTest" msprop:Generator_ColumnPropNameInTable="WOTotalTestColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOPassRate" msdata:ReadOnly="true" msprop:Generator_UserColumnName="WOPassRate" msprop:Generator_ColumnPropNameInRow="WOPassRate" msprop:Generator_ColumnVarNameInTable="columnWOPassRate" msprop:Generator_ColumnPropNameInTable="WOPassRateColumn" minOccurs="0"> + <xs:element name="WOTotalTest" msprop:Generator_UserColumnName="WOTotalTest" msprop:Generator_ColumnVarNameInTable="columnWOTotalTest" msprop:Generator_ColumnPropNameInRow="WOTotalTest" msprop:Generator_ColumnPropNameInTable="WOTotalTestColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOPassRate" msdata:ReadOnly="true" msprop:Generator_UserColumnName="WOPassRate" msprop:Generator_ColumnVarNameInTable="columnWOPassRate" msprop:Generator_ColumnPropNameInRow="WOPassRate" msprop:Generator_ColumnPropNameInTable="WOPassRateColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="31" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="WOPass" msprop:Generator_UserColumnName="WOPass" msprop:Generator_ColumnPropNameInRow="WOPass" msprop:Generator_ColumnVarNameInTable="columnWOPass" msprop:Generator_ColumnPropNameInTable="WOPassColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOFail" msprop:Generator_UserColumnName="WOFail" msprop:Generator_ColumnPropNameInRow="WOFail" msprop:Generator_ColumnVarNameInTable="columnWOFail" msprop:Generator_ColumnPropNameInTable="WOFailColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOError" msprop:Generator_UserColumnName="WOError" msprop:Generator_ColumnPropNameInRow="WOError" msprop:Generator_ColumnVarNameInTable="columnWOError" msprop:Generator_ColumnPropNameInTable="WOErrorColumn" type="xs:int" minOccurs="0" /> - <xs:element name="aName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aName" msprop:Generator_ColumnPropNameInRow="aName" msprop:Generator_ColumnVarNameInTable="columnaName" msprop:Generator_ColumnPropNameInTable="aNameColumn" minOccurs="0"> + <xs:element name="WOPass" msprop:Generator_UserColumnName="WOPass" msprop:Generator_ColumnVarNameInTable="columnWOPass" msprop:Generator_ColumnPropNameInRow="WOPass" msprop:Generator_ColumnPropNameInTable="WOPassColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOFail" msprop:Generator_UserColumnName="WOFail" msprop:Generator_ColumnVarNameInTable="columnWOFail" msprop:Generator_ColumnPropNameInRow="WOFail" msprop:Generator_ColumnPropNameInTable="WOFailColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOError" msprop:Generator_UserColumnName="WOError" msprop:Generator_ColumnVarNameInTable="columnWOError" msprop:Generator_ColumnPropNameInRow="WOError" msprop:Generator_ColumnPropNameInTable="WOErrorColumn" type="xs:int" minOccurs="0" /> + <xs:element name="aName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aName" msprop:Generator_ColumnVarNameInTable="columnaName" msprop:Generator_ColumnPropNameInRow="aName" msprop:Generator_ColumnPropNameInTable="aNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_testPass" msprop:Generator_UserTableName="db_testPass" msprop:Generator_RowDeletedName="db_testPassRowDeleted" msprop:Generator_RowChangedName="db_testPassRowChanged" msprop:Generator_RowClassName="db_testPassRow" msprop:Generator_RowChangingName="db_testPassRowChanging" msprop:Generator_RowEvArgName="db_testPassRowChangeEvent" msprop:Generator_RowEvHandlerName="db_testPassRowChangeEventHandler" msprop:Generator_TableClassName="db_testPassDataTable" msprop:Generator_TableVarName="tabledb_testPass" msprop:Generator_RowDeletingName="db_testPassRowDeleting" msprop:Generator_TablePropName="db_testPass"> <xs:complexType> <xs:sequence> - <xs:element name="testPassID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="testPassID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="versionID" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="versionID" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_config" msprop:Generator_UserTableName="db_config" msprop:Generator_RowDeletedName="db_configRowDeleted" msprop:Generator_RowChangedName="db_configRowChanged" msprop:Generator_RowClassName="db_configRow" msprop:Generator_RowChangingName="db_configRowChanging" msprop:Generator_RowEvArgName="db_configRowChangeEvent" msprop:Generator_RowEvHandlerName="db_configRowChangeEventHandler" msprop:Generator_TableClassName="db_configDataTable" msprop:Generator_TableVarName="tabledb_config" msprop:Generator_RowDeletingName="db_configRowDeleting" msprop:Generator_TablePropName="db_config"> <xs:complexType> <xs:sequence> - <xs:element name="configID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="configID" msprop:Generator_ColumnVarNameInTable="columnconfigID" msprop:Generator_ColumnPropNameInRow="configID" msprop:Generator_ColumnPropNameInTable="configIDColumn" type="xs:int" /> - <xs:element name="userID" msprop:Generator_UserColumnName="userID" msprop:Generator_ColumnVarNameInTable="columnuserID" msprop:Generator_ColumnPropNameInRow="userID" msprop:Generator_ColumnPropNameInTable="userIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="configID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="configID" msprop:Generator_ColumnPropNameInRow="configID" msprop:Generator_ColumnVarNameInTable="columnconfigID" msprop:Generator_ColumnPropNameInTable="configIDColumn" type="xs:int" /> + <xs:element name="userID" msprop:Generator_UserColumnName="userID" msprop:Generator_ColumnPropNameInRow="userID" msprop:Generator_ColumnVarNameInTable="columnuserID" msprop:Generator_ColumnPropNameInTable="userIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="value" msprop:Generator_UserColumnName="value" msprop:Generator_ColumnVarNameInTable="columnvalue" msprop:Generator_ColumnPropNameInRow="value" msprop:Generator_ColumnPropNameInTable="valueColumn" minOccurs="0"> + <xs:element name="value" msprop:Generator_UserColumnName="value" msprop:Generator_ColumnPropNameInRow="value" msprop:Generator_ColumnVarNameInTable="columnvalue" msprop:Generator_ColumnPropNameInTable="valueColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> + <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> @@ -1241,47 +1241,47 @@ <xs:element name="db_version" msprop:Generator_UserTableName="db_version" msprop:Generator_RowDeletedName="db_versionRowDeleted" msprop:Generator_RowChangedName="db_versionRowChanged" msprop:Generator_RowClassName="db_versionRow" msprop:Generator_RowChangingName="db_versionRowChanging" msprop:Generator_RowEvArgName="db_versionRowChangeEvent" msprop:Generator_RowEvHandlerName="db_versionRowChangeEventHandler" msprop:Generator_TableClassName="db_versionDataTable" msprop:Generator_TableVarName="tabledb_version" msprop:Generator_RowDeletingName="db_versionRowDeleting" msprop:Generator_TablePropName="db_version"> <xs:complexType> <xs:sequence> - <xs:element name="versionID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" /> - <xs:element name="productID" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="number" msprop:Generator_UserColumnName="number" msprop:Generator_ColumnVarNameInTable="columnnumber" msprop:Generator_ColumnPropNameInRow="number" msprop:Generator_ColumnPropNameInTable="numberColumn" minOccurs="0"> + <xs:element name="versionID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" /> + <xs:element name="productID" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="number" msprop:Generator_UserColumnName="number" msprop:Generator_ColumnPropNameInRow="number" msprop:Generator_ColumnVarNameInTable="columnnumber" msprop:Generator_ColumnPropNameInTable="numberColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="code" msprop:Generator_UserColumnName="code" msprop:Generator_ColumnVarNameInTable="columncode" msprop:Generator_ColumnPropNameInRow="code" msprop:Generator_ColumnPropNameInTable="codeColumn" minOccurs="0"> + <xs:element name="code" msprop:Generator_UserColumnName="code" msprop:Generator_ColumnPropNameInRow="code" msprop:Generator_ColumnVarNameInTable="columncode" msprop:Generator_ColumnPropNameInTable="codeColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" minOccurs="0" /> - <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" minOccurs="0" /> + <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_rights" msprop:Generator_UserTableName="db_rights" msprop:Generator_RowDeletedName="db_rightsRowDeleted" msprop:Generator_RowChangedName="db_rightsRowChanged" msprop:Generator_RowClassName="db_rightsRow" msprop:Generator_RowChangingName="db_rightsRowChanging" msprop:Generator_RowEvArgName="db_rightsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_rightsRowChangeEventHandler" msprop:Generator_TableClassName="db_rightsDataTable" msprop:Generator_TableVarName="tabledb_rights" msprop:Generator_RowDeletingName="db_rightsRowDeleting" msprop:Generator_TablePropName="db_rights"> <xs:complexType> <xs:sequence> - <xs:element name="rightsID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="rightsID" msprop:Generator_ColumnPropNameInRow="rightsID" msprop:Generator_ColumnVarNameInTable="columnrightsID" msprop:Generator_ColumnPropNameInTable="rightsIDColumn" type="xs:int" /> - <xs:element name="rightsName" msprop:Generator_UserColumnName="rightsName" msprop:Generator_ColumnPropNameInRow="rightsName" msprop:Generator_ColumnVarNameInTable="columnrightsName" msprop:Generator_ColumnPropNameInTable="rightsNameColumn" minOccurs="0"> + <xs:element name="rightsID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="rightsID" msprop:Generator_ColumnVarNameInTable="columnrightsID" msprop... [truncated message content] |
From: <ro...@us...> - 2006-08-01 20:57:19
|
Revision: 256 Author: rouquin Date: 2006-08-01 13:57:11 -0700 (Tue, 01 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=256&view=rev Log Message: ----------- Fixed a couple lists that were showing duplicate entries, etc. Modified Paths: -------------- Website/Administration.aspx Website/Includes/AdministrationTree.ascx.cs Website/Includes/RoleAdmin.ascx Website/Includes/Roles.ascx Website/Includes/Roles.ascx.cs Modified: Website/Administration.aspx =================================================================== --- Website/Administration.aspx 2006-08-01 20:39:33 UTC (rev 255) +++ Website/Administration.aspx 2006-08-01 20:57:11 UTC (rev 256) @@ -14,7 +14,7 @@ <asp:Image ID="newUserIcon" runat="server" SkinID="newUserImage" AlternateText="New User" />New User</asp:LinkButton></div> <div class="button"> - <asp:LinkButton ID="userRole" runat="server" PostBackUrl="~/AdminRole.aspx?p=1"> + <asp:LinkButton ID="userRole" runat="server" PostBackUrl="~/AdminRole.aspx"> <asp:Image ID="userRoleIcon" runat="server" SkinID="userRoleImage" AlternateText="User Roles" />User Roles</asp:LinkButton></div> </td> Modified: Website/Includes/AdministrationTree.ascx.cs =================================================================== --- Website/Includes/AdministrationTree.ascx.cs 2006-08-01 20:39:33 UTC (rev 255) +++ Website/Includes/AdministrationTree.ascx.cs 2006-08-01 20:57:11 UTC (rev 256) @@ -346,23 +346,22 @@ { tcdbDataSetTableAdapters.db_roleProductUserTableAdapter userAdapter = new tcdbDataSetTableAdapters.db_roleProductUserTableAdapter(); tcdbDataSet.db_roleProductUserDataTable userTable = userAdapter.GetData(null, Convert.ToInt32(parent.Parent.Value), null); + int lastID = -1; foreach (tcdbDataSet.db_roleProductUserRow row in userTable) { + if (lastID == row.userID) + continue; + else + lastID = row.userID; + // Create the new node. TreeNode newNode = new TreeNode(); newNode.Text = row.fullName; newNode.Value = row.userID.ToString(); ; - - // Set the PopulateOnDemand property to true so that the child nodes can be - // dynamically populated. newNode.PopulateOnDemand = true; - - // Set additional properties for the node. newNode.SelectAction = TreeNodeSelectAction.Expand; newNode.NavigateUrl = "~/UserSettings.aspx?"+Constants.CODE_USER+"=" + newNode.Value; - - // Add the new node to the ChildNodes collection of the parent node. parent.ChildNodes.Add(newNode); newNode.Expand(); } Modified: Website/Includes/RoleAdmin.ascx =================================================================== --- Website/Includes/RoleAdmin.ascx 2006-08-01 20:39:33 UTC (rev 255) +++ Website/Includes/RoleAdmin.ascx 2006-08-01 20:57:11 UTC (rev 256) @@ -7,12 +7,22 @@ <asp:DropDownList ID="roleList" runat="server" DataSourceID="RoleDataSource" DataTextField="roleName" DataValueField="roleID"> </asp:DropDownList><asp:ObjectDataSource ID="RoleDataSource" runat="server" OldValuesParameterFormatString="original_{0}" - SelectMethod="GetData" TypeName="tcdbDataSetTableAdapters.db_roleUserProductTableAdapter"> + SelectMethod="GetData" TypeName="tcdbDataSetTableAdapters.db_roleTableAdapter" InsertMethod="Insert" UpdateMethod="Update"> <SelectParameters> - <asp:Parameter Name="userID" Type="Int32" /> - <asp:SessionParameter Name="productID" SessionField="product" Type="Int32" /> + <asp:Parameter Name="roleID" Type="Int32" /> + <asp:Parameter Name="roleName" Type="String" /> <asp:Parameter DefaultValue="true" Name="active" Type="Boolean" /> </SelectParameters> + <UpdateParameters> + <asp:Parameter Name="roleID" Type="Int32" /> + <asp:Parameter Name="roleName" Type="String" /> + <asp:Parameter Name="roleDescription" Type="String" /> + <asp:Parameter Name="active" Type="Boolean" /> + </UpdateParameters> + <InsertParameters> + <asp:Parameter Name="roleName" Type="String" /> + <asp:Parameter Name="roleDescription" Type="String" /> + </InsertParameters> </asp:ObjectDataSource> <asp:LinkButton ID="addRoleBtn" runat="server" CommandName="addRole" OnCommand="addRole">Add User To Role</asp:LinkButton> Modified: Website/Includes/Roles.ascx =================================================================== --- Website/Includes/Roles.ascx 2006-08-01 20:39:33 UTC (rev 255) +++ Website/Includes/Roles.ascx 2006-08-01 20:57:11 UTC (rev 256) @@ -180,8 +180,8 @@ <td colspan="2" align="left" valign="top" width="34%"> <strong>Rights: <asp:LinkButton ID="newRight" runat="server" CommandName="newRight" OnCommand="newRight">New Right</asp:LinkButton><br /> - </strong> <asp:ListBox ID="rightsList" runat="server" DataSourceID="RoleDataSource" - DataTextField="roleName" DataValueField="roleID" SelectionMode="Multiple" Height="150px" Width="150px"></asp:ListBox> + </strong> <asp:ListBox ID="rightsList" runat="server" DataSourceID="RightsDataSource" + DataTextField="rightsName" DataValueField="rightsID" SelectionMode="Multiple" Height="150px" Width="150px"></asp:ListBox> </td> </tr> <tr> Modified: Website/Includes/Roles.ascx.cs =================================================================== --- Website/Includes/Roles.ascx.cs 2006-08-01 20:39:33 UTC (rev 255) +++ Website/Includes/Roles.ascx.cs 2006-08-01 20:57:11 UTC (rev 256) @@ -23,7 +23,6 @@ int roleID = Convert.ToInt32(HttpContext.Current.Request.QueryString[Constants.CODE_ROLE]); Role role; String mode = HttpContext.Current.Request.QueryString["mode"]; - String product = HttpContext.Current.Request.QueryString[Constants.CODE_PRODUCT]; protected void Page_Load(object sender, EventArgs e) { @@ -252,35 +251,16 @@ ListBox userList = (ListBox)FormView1.FindControl("userList"); updateProductUsers(productList, userList); - if (product != null) - productList.SelectedValue = product; Session["product"] = productList.SelectedValue; userList.DataBind(); } protected void productListInsert_DataBound(object sender, EventArgs e) { DropDownList productList = (DropDownList)sender; + ListBox userList = (ListBox)FormView1.FindControl("userList"); - // Initialize Product Users - if (Session["ProductUsers"] == null) - Session.Add("ProductUsers", new Dictionary<String, ArrayList>()); - Dictionary<String, ArrayList> ProductUsers = (Dictionary<String, ArrayList>)Session["ProductUsers"]; - - ProductUsers.Clear(); - foreach (ListItem productItem in productList.Items) - { - ArrayList users = new ArrayList(); - String productID = productItem.Value; - - if (ProductUsers.ContainsKey(productID)) - ProductUsers[productID] = users; - else - ProductUsers.Add(productID, users); - } - - // Init productList - if (product != null) - productList.SelectedValue = product; + updateProductUsers(productList, userList); + Session["product"] = productList.SelectedValue; } protected void ProductUserPanel_Init(object sender, EventArgs e) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <m_h...@us...> - 2006-08-01 22:41:38
|
Revision: 259 Author: m_hildebrand Date: 2006-08-01 15:41:20 -0700 (Tue, 01 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=259&view=rev Log Message: ----------- Made some node-style changes to the administration tree Broke Products.ascx into a code-behind file Cleaned up a few more CSS issues Changed the way non-production code is wrapped. Now all that needs to happens is for TCDB.Common.Constants.IS_DEV_ENV to be set. (true=show dev code, false=hide dev code) Modified Paths: -------------- Website/Administration.aspx Website/App_Code/Common.cs Website/App_Code/Products.cs Website/App_Themes/Python/python.css Website/Includes/AdministrationTree.ascx.cs Website/Includes/Footer.ascx Website/Includes/Header_CurrentInfo.ascx Website/Includes/Header_Menu.ascx Website/Includes/Products.ascx Website/Includes/UserSettings.ascx Website/TCDB.master Added Paths: ----------- Website/Includes/Products.ascx.cs Modified: Website/Administration.aspx =================================================================== --- Website/Administration.aspx 2006-08-01 21:22:36 UTC (rev 258) +++ Website/Administration.aspx 2006-08-01 22:41:20 UTC (rev 259) @@ -5,21 +5,19 @@ <admin:Tree runat="server" ID="Tree" /> </asp:Content> <asp:Content ID="MainContent" ContentPlaceHolderID="MainContentPlaceHolder" runat="Server"> - <table width="700"> - <tr> - <td align="center" valign="middle"> - <!-- ***NONPRODUCTION***<asp:LinkButton ID="newProduct" runat="server" PostBackUrl="~/Product.aspx?mode=new">New Product</asp:LinkButton> --> - <div class="button"> - <asp:LinkButton ID="newUser" runat="server" PostBackUrl="~/UserSettings.aspx?mode=new"> - <asp:Image ID="newUserIcon" runat="server" SkinID="newUserImage" AlternateText="New User" />New - User</asp:LinkButton></div> - <div class="button"> - <asp:LinkButton ID="userRole" runat="server" PostBackUrl="~/AdminRole.aspx"> - <asp:Image ID="userRoleIcon" runat="server" SkinID="userRoleImage" AlternateText="User Roles" />User - Roles</asp:LinkButton></div> - </td> - </tr> - </table> + <div class="pictureMenu"> + <% if (TCDB.Common.Constants.IS_DEV_ENV) + { %> + <asp:LinkButton ID="newProduct" runat="server" PostBackUrl="~/Product.aspx?mode=new">New Product</asp:LinkButton> <% } %> + <div class="button"> + <asp:LinkButton ID="newUser" runat="server" PostBackUrl="~/UserSettings.aspx?mode=new"> + <asp:Image ID="newUserIcon" runat="server" SkinID="newUserImage" AlternateText="New User" />New + User</asp:LinkButton></div> + <div class="button"> + <asp:LinkButton ID="userRole" runat="server" PostBackUrl="~/AdminRole.aspx"> + <asp:Image ID="userRoleIcon" runat="server" SkinID="userRoleImage" AlternateText="User Roles" />User + Roles</asp:LinkButton></div> + </div> </asp:Content> <asp:Content ID="NotesContent" ContentPlaceHolderID="NotesContentPlaceHolder" runat="Server"> </asp:Content> Modified: Website/App_Code/Common.cs =================================================================== --- Website/App_Code/Common.cs 2006-08-01 21:22:36 UTC (rev 258) +++ Website/App_Code/Common.cs 2006-08-01 22:41:20 UTC (rev 259) @@ -1264,6 +1264,7 @@ public static int ASSIGNMENT_NEW = 3; public static string TCDB_VERSION = "1.0.0 Alpha 2"; + public static bool IS_DEV_ENV = false; public static string RIGHTS_ASSIGNPERMISSION = "assignPermission"; public static string RIGHTS_SITEADMIN = "siteAdmin"; Modified: Website/App_Code/Products.cs =================================================================== --- Website/App_Code/Products.cs 2006-08-01 21:22:36 UTC (rev 258) +++ Website/App_Code/Products.cs 2006-08-01 22:41:20 UTC (rev 259) @@ -18,6 +18,11 @@ /// </summary> public class ProductDB : Page { + public static Product GetProduct(int productID) + { + return GetProduct(true, productID); + } + public static Product GetProduct(bool isActive, int productID) { tcdbDataSet ds = new tcdbDataSet(); Modified: Website/App_Themes/Python/python.css =================================================================== --- Website/App_Themes/Python/python.css 2006-08-01 21:22:36 UTC (rev 258) +++ Website/App_Themes/Python/python.css 2006-08-01 22:41:20 UTC (rev 259) @@ -169,6 +169,16 @@ border: solid 1px red; } +.indent +{ + display: inline; +} + +.pictureMenu +{ + text-align: center; +} + /********** END Global Classes **********/ /********** BEGIN Calendar Classes **********/ Modified: Website/Includes/AdministrationTree.ascx.cs =================================================================== --- Website/Includes/AdministrationTree.ascx.cs 2006-08-01 21:22:36 UTC (rev 258) +++ Website/Includes/AdministrationTree.ascx.cs 2006-08-01 22:41:20 UTC (rev 259) @@ -51,7 +51,7 @@ { // Create the new node. TreeNode newNode = new TreeNode(); - newNode.Text = "<font color=black><b>" + row.name + "</b></font>"; + newNode.Text = "<product>" + row.name + "</product>"; newNode.Value = row.productID.ToString(); // Set the PopulateOnDemand property to true so that the child nodes can be @@ -119,27 +119,28 @@ newNode.Expand(); } - /* ***NONPRODUCTION*** - // Operating Systems - newNode = new TreeNode(); - newNode.Text = "Operating Systems"; - newNode.Value = "os"; - newNode.PopulateOnDemand = true; - newNode.SelectAction = TreeNodeSelectAction.Expand; - parent.ChildNodes.Add(newNode); - if (nodes.Contains(newNode.ValuePath)) - newNode.Expand(); + if (TCDB.Common.Constants.IS_DEV_ENV) + { + // Operating Systems + newNode = new TreeNode(); + newNode.Text = "Operating Systems"; + newNode.Value = "os"; + newNode.PopulateOnDemand = true; + newNode.SelectAction = TreeNodeSelectAction.Expand; + parent.ChildNodes.Add(newNode); + if (nodes.Contains(newNode.ValuePath)) + newNode.Expand(); - // Architectures - newNode = new TreeNode(); - newNode.Text = "Architectures"; - newNode.Value = "arch"; - newNode.PopulateOnDemand = true; - newNode.SelectAction = TreeNodeSelectAction.Expand; - parent.ChildNodes.Add(newNode); - if (nodes.Contains(newNode.ValuePath)) - newNode.Expand(); - ***END NONPRODUCTION*** */ + // Architectures + newNode = new TreeNode(); + newNode.Text = "Architectures"; + newNode.Value = "arch"; + newNode.PopulateOnDemand = true; + newNode.SelectAction = TreeNodeSelectAction.Expand; + parent.ChildNodes.Add(newNode); + if (nodes.Contains(newNode.ValuePath)) + newNode.Expand(); + } // end non-production } protected void BuildReleaseList(TreeNode parent) { @@ -153,7 +154,7 @@ { // Create the new node. TreeNode newNode = new TreeNode(); - newNode.Text = "<font color=black>" + row.number + "</font>"; + newNode.Text = "<version>" + row.number + "</version>"; newNode.Value = row.versionID.ToString(); // Set the PopulateOnDemand property to true so that the child nodes can be dynamically populated. @@ -185,7 +186,7 @@ { // Create the new node. newNode = new TreeNode(); - newNode.Text = "<font color=blue><i>" + row["name"] + "</i></font>"; + newNode.Text = "<tag>" + row["name"] + "</tag>"; newNode.Value = row["tagID"].ToString(); // Set the PopulateOnDemand property to true so that the child nodes can be @@ -209,47 +210,48 @@ TreeNode newNode; // Versions - /* ***NONPRODUCTION*** - newNode = new TreeNode(); - newNode.Text = "Releases"; - newNode.Value = "release"; - newNode.PopulateOnDemand = true; - newNode.SelectAction = TreeNodeSelectAction.Expand; - parent.ChildNodes.Add(newNode); - if (nodes.Contains(newNode.ValuePath)) - newNode.Expand(); - - // Tags - newNode = new TreeNode(); - newNode.Text = "Tags"; - newNode.Value = "tag"; - newNode.PopulateOnDemand = true; - newNode.SelectAction = TreeNodeSelectAction.Expand; - parent.ChildNodes.Add(newNode); - if (nodes.Contains(newNode.ValuePath)) - newNode.Expand(); + if (TCDB.Common.Constants.IS_DEV_ENV) + { + newNode = new TreeNode(); + newNode.Text = "Releases"; + newNode.Value = "release"; + newNode.PopulateOnDemand = true; + newNode.SelectAction = TreeNodeSelectAction.Expand; + parent.ChildNodes.Add(newNode); + if (nodes.Contains(newNode.ValuePath)) + newNode.Expand(); - // Status Labels - newNode = new TreeNode(); - newNode.Text = "Status Levels"; - newNode.Value = "status"; - newNode.PopulateOnDemand = true; - newNode.SelectAction = TreeNodeSelectAction.Expand; - parent.ChildNodes.Add(newNode); - if (nodes.Contains(newNode.ValuePath)) - newNode.Expand(); + // Tags + newNode = new TreeNode(); + newNode.Text = "Tags"; + newNode.Value = "tag"; + newNode.PopulateOnDemand = true; + newNode.SelectAction = TreeNodeSelectAction.Expand; + parent.ChildNodes.Add(newNode); + if (nodes.Contains(newNode.ValuePath)) + newNode.Expand(); - // Labs - newNode = new TreeNode(); - newNode.Text = "Labs"; - newNode.Value = "lab"; - newNode.PopulateOnDemand = true; - newNode.SelectAction = TreeNodeSelectAction.Expand; - parent.ChildNodes.Add(newNode); - if (nodes.Contains(newNode.ValuePath)) - newNode.Expand(); - ***END NONPRODUCTION*** */ + // Status Labels + newNode = new TreeNode(); + newNode.Text = "Status Levels"; + newNode.Value = "status"; + newNode.PopulateOnDemand = true; + newNode.SelectAction = TreeNodeSelectAction.Expand; + parent.ChildNodes.Add(newNode); + if (nodes.Contains(newNode.ValuePath)) + newNode.Expand(); + // Labs + newNode = new TreeNode(); + newNode.Text = "Labs"; + newNode.Value = "lab"; + newNode.PopulateOnDemand = true; + newNode.SelectAction = TreeNodeSelectAction.Expand; + parent.ChildNodes.Add(newNode); + if (nodes.Contains(newNode.ValuePath)) + newNode.Expand(); + } // end non-production + // Users newNode = new TreeNode(); newNode.Text = "Users"; @@ -276,37 +278,38 @@ if (nodes.Contains(newNode.ValuePath)) newNode.Expand(); - /* ***NONPRODUCTION*** - // WorkOrder - newNode = new TreeNode(); - newNode.Text = "Work Order"; - newNode.Value = "WorkOrder"; - newNode.PopulateOnDemand = true; - newNode.SelectAction = TreeNodeSelectAction.Expand; - parent.ChildNodes.Add(newNode); - if (nodes.Contains(newNode.ValuePath)) - newNode.Expand(); + if (TCDB.Common.Constants.IS_DEV_ENV) + { + // WorkOrder + newNode = new TreeNode(); + newNode.Text = "Work Order"; + newNode.Value = "WorkOrder"; + newNode.PopulateOnDemand = true; + newNode.SelectAction = TreeNodeSelectAction.Expand; + parent.ChildNodes.Add(newNode); + if (nodes.Contains(newNode.ValuePath)) + newNode.Expand(); - // Objective - newNode = new TreeNode(); - newNode.Text = "Objective"; - newNode.Value = "objective"; - newNode.PopulateOnDemand = true; - newNode.SelectAction = TreeNodeSelectAction.Expand; - parent.ChildNodes.Add(newNode); - if (nodes.Contains(newNode.ValuePath)) - newNode.Expand(); + // Objective + newNode = new TreeNode(); + newNode.Text = "Objective"; + newNode.Value = "objective"; + newNode.PopulateOnDemand = true; + newNode.SelectAction = TreeNodeSelectAction.Expand; + parent.ChildNodes.Add(newNode); + if (nodes.Contains(newNode.ValuePath)) + newNode.Expand(); - // TestCase - newNode = new TreeNode(); - newNode.Text = "Testcase"; - newNode.Value = "testcase"; - newNode.PopulateOnDemand = true; - newNode.SelectAction = TreeNodeSelectAction.Expand; - parent.ChildNodes.Add(newNode); - if (nodes.Contains(newNode.ValuePath)) - newNode.Expand(); - ***END NONPRODUCTION*** */ + // TestCase + newNode = new TreeNode(); + newNode.Text = "Testcase"; + newNode.Value = "testcase"; + newNode.PopulateOnDemand = true; + newNode.SelectAction = TreeNodeSelectAction.Expand; + parent.ChildNodes.Add(newNode); + if (nodes.Contains(newNode.ValuePath)) + newNode.Expand(); + } // end non-production } protected void BuildLabList(TreeNode parent) { @@ -323,7 +326,7 @@ { // Create the new node. newNode = new TreeNode(); - newNode.Text = "<font color=blue><b>" + row["name"] + "</b></font>"; + newNode.Text = "<lab>" + row["name"] + "<lab>"; newNode.Value = row["labID"].ToString(); // Set the PopulateOnDemand property to true so that the child nodes can be @@ -390,7 +393,7 @@ foreach (tcdbDataSet.db_usersRow row in uTable) { TreeNode child = new TreeNode(); - child.Text = "<FontInfo color=black>" + row.fullName + "</font>"; + child.Text = "<os>" + row.fullName + "</os>"; child.Value = row.userID.ToString(); child.NavigateUrl = "~/UserSettings.aspx?" + Constants.CODE_USER + "=" + child.Value; @@ -407,7 +410,7 @@ foreach (tcdbDataSet.db_usersRow row in uTable) { TreeNode child = new TreeNode(); - child.Text = "<FontInfo color=black>" + row.fullName + "</font>"; + child.Text = "<architecture>" + row.fullName + "</architecture>"; child.Value = row.userID.ToString(); child.NavigateUrl = "~/UserSettings.aspx?" + Constants.CODE_USER + "=" + child.Value; @@ -495,7 +498,7 @@ { // Create the new node. newNode = new TreeNode(); - newNode.Text = "<font color=blue><i>" + row["statusName"] + "</i></font>"; + newNode.Text = "<status>" + row["statusName"] + "</status>"; newNode.Value = row["statusID"].ToString(); // Set the PopulateOnDemand property to true so that the child nodes can be @@ -528,7 +531,7 @@ { // Create the new node. newNode = new TreeNode(); - newNode.Text = "<font color=blue>" + row["name"] + "</font>"; + newNode.Text = "<computer>" + row["name"] + "</computer>"; newNode.Value = row["computerID"].ToString(); // Set the PopulateOnDemand property to true so that the child nodes can be @@ -546,7 +549,7 @@ } */ } - /* + protected void BuildRightsList(TreeNode parent) { ArrayList nodes = (ArrayList)Session["AdminNodes"]; @@ -574,7 +577,7 @@ newNode.Expand(); } } - */ + protected void BuildBuildList(TreeNode parent) { ArrayList nodes = (ArrayList)Session["AdminNodes"]; @@ -590,7 +593,7 @@ { // Create the new node. newNode = new TreeNode(); - newNode.Text = "<font color=blue><i>" + row["number"] + "</i></font>"; + newNode.Text = "<build>" + row["number"] + "</build>"; newNode.Value = row["buildID"].ToString(); // Set the PopulateOnDemand property to true so that the child nodes can be @@ -623,7 +626,7 @@ { // Create the new node. newNode = new TreeNode(); - newNode.Text = "<font color=blue>" + row["name"] + "</font>"; + newNode.Text = "<testpass>" + row["name"] + "</testpass>"; newNode.Value = row["testPassID"].ToString(); // Set the PopulateOnDemand property to true so that the child nodes can be @@ -660,7 +663,7 @@ { // Create the new node. newNode = new TreeNode(); - newNode.Text = "<font color=blue>" + row["platformName"] + "</font>"; + newNode.Text = "<platform>" + row["platformName"] + "</platform>"; newNode.Value = row["platformID"].ToString(); // Set the PopulateOnDemand property to true so that the child nodes can be @@ -695,7 +698,7 @@ { // Create the new node. newNode = new TreeNode(); - newNode.Text = "<font color=black><b>OS: </b></font><font color=green>" + row["friendlyName"] + "</font>"; + newNode.Text = "<os>" + row["friendlyName"] + "</os>"; newNode.Value = row["osID"].ToString(); // Set the PopulateOnDemand property to true so that the child nodes can be @@ -731,7 +734,7 @@ { // Create the new node. newNode = new TreeNode(); - newNode.Text = "<font color=black><b>Architecture: </b></font><font color=green>" + row["name"] + "</font>"; + newNode.Text = "<architecture>" + row["name"] + "</architecture>"; newNode.Value = row["architectureID"].ToString(); // Set the PopulateOnDemand property to true so that the child nodes can be @@ -760,16 +763,15 @@ BuildProductList(e.Node); break; case 1: - if (e.Node.Text.Contains("Site")) + if (e.Node.Text.Contains(TCDB.Products.ProductDB.GetProduct(Constants.PRODUCT_SITEID).ToString())) BuildAdminList(e.Node); else BuildCategoryList(e.Node); break; case 2: - /* ***NONPRODUCTION*** if (e.Node.Value == "release") BuildReleaseList(e.Node); - else */ if (e.Node.Value == "tag") + else if (e.Node.Value == "tag") BuildTagList(e.Node); else if (e.Node.Value == "status") BuildStatusGroupList(e.Node); @@ -795,8 +797,8 @@ BuildStatusList(e.Node); else if (e.Node.NavigateUrl.Contains("Lab")) BuildComputerList(e.Node); - /*else if (e.Node.NavigateUrl.Contains("Role")) - BuildRightsList(e.Node);*/ + else if (e.Node.NavigateUrl.Contains("Role")) + BuildRightsList(e.Node); break; case 4: if (e.Node.Value == "build") Modified: Website/Includes/Footer.ascx =================================================================== --- Website/Includes/Footer.ascx 2006-08-01 21:22:36 UTC (rev 258) +++ Website/Includes/Footer.ascx 2006-08-01 22:41:20 UTC (rev 259) @@ -9,6 +9,6 @@ } %> | TCDB -<%= TCDB.Common.ConfigDB.GetConfigString("tcdb_version") %> +<%= TCDB.Common.Constants.TCDB_VERSION %> | Page loaded in <%= PageLoad() %> Modified: Website/Includes/Header_CurrentInfo.ascx =================================================================== --- Website/Includes/Header_CurrentInfo.ascx 2006-08-01 21:22:36 UTC (rev 258) +++ Website/Includes/Header_CurrentInfo.ascx 2006-08-01 22:41:20 UTC (rev 259) @@ -1,4 +1,4 @@ <%@ Control Language="C#" AutoEventWireup="true" %> <%@ Import Namespace="TCDB.Users" %> -<!-- ***NONPRODUCTION*** Product | Version | Build--> \ No newline at end of file +<% if (TCDB.Common.Constants.IS_DEV_ENV) { %> Product | Version | Build <% } %> \ No newline at end of file Modified: Website/Includes/Header_Menu.ascx =================================================================== --- Website/Includes/Header_Menu.ascx 2006-08-01 21:22:36 UTC (rev 258) +++ Website/Includes/Header_Menu.ascx 2006-08-01 22:41:20 UTC (rev 259) @@ -2,4 +2,5 @@ <%@ Import Namespace="TCDB.Users" %> <%@ Import Namespace="TCDB.Common" %> -<a href="Assignments.aspx?<% Response.Write(Constants.CODE_USER+"="+m_user.ID); %>">Assignments</a><!-- ***NONPRODUCTION*** | Execute | <a href="TestManagement.aspx">Management</a>--> +<a href="Assignments.aspx?<% Response.Write(Constants.CODE_USER+"="+m_user.ID); %>">Assignments</a><% if (TCDB.Common.Constants.IS_DEV_ENV) + { %> | Execute | <a href="TestManagement.aspx">Management</a><% } %> Modified: Website/Includes/Products.ascx =================================================================== --- Website/Includes/Products.ascx 2006-08-01 21:22:36 UTC (rev 258) +++ Website/Includes/Products.ascx 2006-08-01 22:41:20 UTC (rev 259) @@ -1,160 +1,60 @@ -<%@ Control Language="C#" AutoEventWireup="true" %> +<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Products.ascx.cs" Inherits="Products" %> <%@ Register Assembly="FreeTextBox" Namespace="FreeTextBoxControls" TagPrefix="FTB" %> <%@ Import Namespace="TCDB.Users" %> <%@ Import Namespace="TCDB.Common" %> <%@ Import Namespace="log4net" %> - -<script runat="server"> - private static ILog m_logg = LogManager.GetLogger("Page:Product"); - private int productID = Convert.ToInt32(HttpContext.Current.Request.QueryString[Constants.CODE_PRODUCT]); - private String mode = HttpContext.Current.Request.QueryString["mode"]; - - protected void Page_Load(object sender, EventArgs e) - { - m_logg.Debug("Loading page Product"); - if (productID == 0) - { - m_logg.Debug("Unable to locate product ID in query string"); - if (mode != "new") - { - m_logg.Debug("Mode not set to new, redirecting to Test Management page"); - Response.Redirect("TestManagement.aspx"); - } - } - Session.Add("item_id", productID); - Session.Add("tableName", "tcdb_product"); - - if (mode == "new") - FormView1.ChangeMode(FormViewMode.Insert); - } - protected void FormView1_ItemDeleted(object sender, FormViewDeletedEventArgs e) - { - if (mode == "read") - Response.Redirect("TestManagement.aspx"); - else - Response.Redirect("Administration.aspx"); - } - protected void FormView1_ItemInserted(object sender, FormViewInsertedEventArgs e) - { - tcdbDataSetTableAdapters.db_productsTableAdapter productAdapter = new tcdbDataSetTableAdapters.db_productsTableAdapter(); - tcdbDataSet.db_productsDataTable productTable = productAdapter.GetData(true, null); - - if (productTable.Count > 0) - { - if (mode == "read") - Response.Redirect("Product.aspx?mode=read&" + Constants.CODE_PRODUCT + "=" + productTable[productTable.Count - 1].productID); - else - Response.Redirect("Product.aspx?" + Constants.CODE_PRODUCT + "=" + productTable[productTable.Count - 1].productID); - } - } - protected void FormView1_ItemUpdated(object sender, FormViewUpdatedEventArgs e) - { - if (mode == "read") - Response.Redirect("Product.aspx?mode=read&" + Constants.CODE_PRODUCT + "=" + productID); - else - Response.Redirect("Product.aspx?" + Constants.CODE_PRODUCT + "=" + productID); - } - protected void commandPanel_Load(object sender, EventArgs e) - { - if (mode == "read") - { - Panel commandPanel = (Panel)FormView1.FindControl("commandPanel"); - commandPanel.Visible = false; - } - } - - protected void RoleUsersPanel_Init(object sender, EventArgs e) - { - Panel ruPanel = (Panel)sender; - - tcdbDataSetTableAdapters.db_roleUserProductTableAdapter rupAdapter = new tcdbDataSetTableAdapters.db_roleUserProductTableAdapter(); - tcdbDataSet.db_roleUserProductDataTable rupTable = rupAdapter.GetData(null, productID, true); - - foreach (tcdbDataSet.db_roleUserProductRow rRow in rupTable) - { - int roleID = rRow.roleID; - - Label Role = new Label(); - Role.Text = "<strong>" + rRow.roleName + ": </strong>"; - ruPanel.Controls.Add(Role); - - tcdbDataSetTableAdapters.db_roleProductUserTableAdapter rpuAdapter = new tcdbDataSetTableAdapters.db_roleProductUserTableAdapter(); - tcdbDataSet.db_roleProductUserDataTable rpuTable = rpuAdapter.GetData(roleID, productID, true); - - Label Users = new Label(); - foreach (tcdbDataSet.db_roleProductUserRow row in rpuTable) - { - if (Users.Text != "") - Users.Text += ", "; - Users.Text += row.fullName; - } - ruPanel.Controls.Add(Users); - - Literal html = new Literal(); - html.Text = "<br />"; - ruPanel.Controls.Add(html); - } - } -</script> - -<asp:FormView ID="FormView1" runat="server" DataKeyNames="productID" DataSourceID="ProductData" - OnItemDeleted="FormView1_ItemDeleted" OnItemInserted="FormView1_ItemInserted" - OnItemUpdated="FormView1_ItemUpdated"> +<asp:FormView ID="ProductsView" runat="server" DataKeyNames="productID" DataSourceID="ProductData" + OnItemDeleted="ProductsView_ItemDeleted" OnItemInserted="ProductsView_ItemInserted" + OnItemUpdated="ProductsView_ItemUpdated"> <HeaderTemplate> - <h2> - Product</h2> + <div class="ch"> + <h2> + Product</h2> + </div> + <div class="cc"> </HeaderTemplate> <ItemTemplate> <div class="xsnazzy"> <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"> </b></b> <div class="xboxcontent"> - <table width="700"> - <tr> - <td colspan="3" width="75%" align="left"> - <strong>Product Name: </strong> - <asp:Label ID="NameLabel" runat="server" Text='<%# Bind("Name") %>'></asp:Label> </td> - <td colspan="1" width="25%" align="right"> - <strong>Abbreviation: </strong> - <asp:Label ID="CodeLabel" runat="server" Text='<%# Eval("codeName") %>'></asp:Label></td> - </tr> - <tr> - <td class="hr" colspan="4" style="height: 1px"> - </td> - </tr> - <tr> - <td colspan="4" height="200" align="left"> - <asp:Label ID="DescriptionLabel" runat="server" Text='<%# Eval("Description") %>'></asp:Label></td> - </tr> - <tr> - <td class="hr" colspan="4"> - </td> - </tr> - <tr> - <td colspan="4"> - <asp:Panel ID="RoleUsersPanel" runat="server" Height="100%" Width="100%" OnInit="RoleUsersPanel_Init"> - </asp:Panel> - </td> - </tr> - <tr> - <td class="hr" colspan="4"> - </td> - </tr> - <tr> - <td colspan="1" width="25%" align="left"> - <asp:Panel ID="commandPanel" runat="server" OnLoad="commandPanel_Load"> - <asp:LinkButton ID="New" runat="server" CommandName="New">New</asp:LinkButton> | <asp:LinkButton - ID="Edit" runat="server" CommandName="Edit">Edit</asp:LinkButton> | <asp:LinkButton - ID="Delete" runat="server" CommandName="Delete">Delete</asp:LinkButton></asp:Panel> - </td> - <td colspan="3" width="75%"> - </td> - </tr> - </table> + <div class="ct"> + <div class="item"> + <label> + Product Name:</label> + <asp:Label ID="NameLabel" runat="server" Text='<%# Bind("Name") %>'></asp:Label></div> + <div class="item"> + <label> + Abbreviation:</label> + <asp:Label ID="CodeLabel" runat="server" Text='<%# Eval("codeName") %>'></asp:Label> + </div> + <div class="hr"> + </div> + </div> + <div class="cm"> + <asp:Label ID="DescriptionLabel" runat="server" Text='<%# Eval("Description") %>'></asp:Label> + <div class="hr"> + </div> + </div> + <div class="cm"> + <asp:Panel ID="RoleUsersPanel" runat="server" Height="100%" Width="100%" OnInit="RoleUsersPanel_Init"> + </asp:Panel> + <% if (TCDB.Common.Constants.IS_DEV_ENV) + { %> + <div class="hr"> + </div> + </div> + <div class="cb"> + <asp:Panel ID="commandPanel" runat="server" OnLoad="commandPanel_Load"> + <asp:LinkButton ID="New" runat="server" CommandName="New">New</asp:LinkButton> | <asp:LinkButton + ID="Edit" runat="server" CommandName="Edit">Edit</asp:LinkButton> | <asp:LinkButton + ID="Delete" runat="server" CommandName="Delete">Delete</asp:LinkButton></asp:Panel> + </div> + <% } %> </div> - <b class="xbottom"><b class="xb4"></b><b class="xb3"></b><b class="xb2"></b><b class="xb1"> - </b></b> </div> + <b class="xbottom"><b class="xb4"></b><b class="xb3"></b><b class="xb2"></b><b class="xb1"> + </b></b></div> </ItemTemplate> <EditItemTemplate> <div class="xsnazzy"> @@ -319,6 +219,9 @@ </b></b> </div> </InsertItemTemplate> + <FooterTemplate> + </div> + </FooterTemplate> </asp:FormView> <asp:ObjectDataSource ID="ProductData" runat="server" InsertMethod="Insert" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" TypeName="tcdbDataSetTableAdapters.db_productsTableAdapter" Added: Website/Includes/Products.ascx.cs =================================================================== --- Website/Includes/Products.ascx.cs (rev 0) +++ Website/Includes/Products.ascx.cs 2006-08-01 22:41:20 UTC (rev 259) @@ -0,0 +1,113 @@ +using System; +using System.Data; +using System.Configuration; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using log4net; +using TCDB.Common; +using TCDB.Users; + +/// <summary> +/// Summary description for Products +/// </summary> +public partial class Products : SiteUserControl +{ + private static ILog m_logg = LogManager.GetLogger("Page:Product"); + private int productID = Convert.ToInt32(HttpContext.Current.Request.QueryString[Constants.CODE_PRODUCT]); + private String mode = HttpContext.Current.Request.QueryString["mode"]; + + protected void Page_Load(object sender, EventArgs e) + { + m_logg.Debug("Loading page Product"); + if (productID == 0) + { + m_logg.Debug("Unable to locate product ID in query string"); + if (mode != "new") + { + m_logg.Debug("Mode not set to new, redirecting to Test Management page"); + Response.Redirect("TestManagement.aspx"); + } + } + Session.Add("item_id", productID); + Session.Add("tableName", "tcdb_product"); + + if (mode == "new") + ProductsView.ChangeMode(FormViewMode.Insert); + } + + protected void ProductsView_ItemDeleted(object sender, FormViewDeletedEventArgs e) + { + if (mode == "read") + Response.Redirect("TestManagement.aspx"); + else + Response.Redirect("Administration.aspx"); + } + + protected void ProductsView_ItemInserted(object sender, FormViewInsertedEventArgs e) + { + tcdbDataSetTableAdapters.db_productsTableAdapter productAdapter = new tcdbDataSetTableAdapters.db_productsTableAdapter(); + tcdbDataSet.db_productsDataTable productTable = productAdapter.GetData(true, null); + + if (productTable.Count > 0) + { + if (mode == "read") + Response.Redirect("Product.aspx?mode=read&" + Constants.CODE_PRODUCT + "=" + productTable[productTable.Count - 1].productID); + else + Response.Redirect("Product.aspx?" + Constants.CODE_PRODUCT + "=" + productTable[productTable.Count - 1].productID); + } + } + + protected void ProductsView_ItemUpdated(object sender, FormViewUpdatedEventArgs e) + { + if (mode == "read") + Response.Redirect("Product.aspx?mode=read&" + Constants.CODE_PRODUCT + "=" + productID); + else + Response.Redirect("Product.aspx?" + Constants.CODE_PRODUCT + "=" + productID); + } + + protected void commandPanel_Load(object sender, EventArgs e) + { + if (mode == "read") + { + Panel commandPanel = (Panel)ProductsView.FindControl("commandPanel"); + commandPanel.Visible = false; + } + } + + protected void RoleUsersPanel_Init(object sender, EventArgs e) + { + Panel ruPanel = (Panel)sender; + + tcdbDataSetTableAdapters.db_roleUserProductTableAdapter rupAdapter = new tcdbDataSetTableAdapters.db_roleUserProductTableAdapter(); + tcdbDataSet.db_roleUserProductDataTable rupTable = rupAdapter.GetData(null, productID, true); + + foreach (tcdbDataSet.db_roleUserProductRow rRow in rupTable) + { + int roleID = rRow.roleID; + + Label Role = new Label(); + Role.Text = "<div class=\"item\"><label>" + rRow.roleName + ":</label><div class=\"indent\">"; + ruPanel.Controls.Add(Role); + + tcdbDataSetTableAdapters.db_roleProductUserTableAdapter rpuAdapter = new tcdbDataSetTableAdapters.db_roleProductUserTableAdapter(); + tcdbDataSet.db_roleProductUserDataTable rpuTable = rpuAdapter.GetData(roleID, productID, true); + + Label Users = new Label(); + foreach (tcdbDataSet.db_roleProductUserRow row in rpuTable) + { + if (Users.Text != "") + Users.Text += ", "; + Users.Text += row.fullName; + } + ruPanel.Controls.Add(Users); + + Literal html = new Literal(); + html.Text = "</div></div>"; + ruPanel.Controls.Add(html); + } + } +} Modified: Website/Includes/UserSettings.ascx =================================================================== --- Website/Includes/UserSettings.ascx 2006-08-01 21:22:36 UTC (rev 258) +++ Website/Includes/UserSettings.ascx 2006-08-01 22:41:20 UTC (rev 259) @@ -92,7 +92,11 @@ runat="server" ID="newLabel" OnLoad="newLabel_Load"> | </asp:Label> <asp:LinkButton ID="Edit" runat="server" CommandName="Edit" OnInit="Edit_Init">Edit User</asp:LinkButton><asp:Label runat="server" ID="editLabel" OnLoad="editLabel_Load"> | </asp:Label> - <asp:LinkButton ID="editConfig" runat="server" CommandName="editConfig" OnCommand="editConfig" OnInit="editConfig_Init">Preferences</asp:LinkButton> + <% if (TCDB.Common.Constants.IS_DEV_ENV) + { %> + <asp:LinkButton ID="editConfig" runat="server" CommandName="editConfig" OnCommand="editConfig" + OnInit="editConfig_Init">Preferences</asp:LinkButton> + <% } %> <asp:Label runat="server" ID="deleteLabel" OnLoad="deleteLabel_Load"> | </asp:Label><asp:LinkButton ID="Delete" runat="server" CommandName="Delete" OnLoad="deleteButton_Load">Delete</asp:LinkButton> </div> @@ -169,13 +173,15 @@ </div> <div class="cm"> <div class="left"> - <div class="item"><label>Roles:</label></div> <div class="item"> + <label> + Roles:</label></div> + <div class="item"> <asp:TreeView ID="roleTree" runat="server" OnInit="roleTreeEdit_Init" OnTreeNodePopulate="roleTree_TreeNodePopulate" - ShowCheckBoxes="All" OnSelectedNodeChanged="roleTree_SelectedNodeChanged" ShowExpandCollapse="false" OnTreeNodeCheckChanged="roleTree_TreeNodeCheckChanged"> + ShowCheckBoxes="All" OnSelectedNodeChanged="roleTree_SelectedNodeChanged" ShowExpandCollapse="false" + OnTreeNodeCheckChanged="roleTree_TreeNodeCheckChanged"> <Nodes> - <asp:TreeNode Text="" - Value="Roles" PopulateOnDemand="True" ShowCheckBox="false" /> + <asp:TreeNode Text="" Value="Roles" PopulateOnDemand="True" ShowCheckBox="false" /> </Nodes> </asp:TreeView> </div> @@ -269,15 +275,16 @@ </div> <div class="cm"> <div class="left"> - <div class="item"><label>Roles:</label></div> <div class="item"> - <asp:TreeView ID="roleTree" runat="server" OnInit="roleTreeEdit_Init" OnTreeNodePopulate="roleTree_TreeNodePopulate" - ShowCheckBoxes="All" OnSelectedNodeChanged="roleTree_SelectedNodeChanged" ShowExpandCollapse="false"> - <Nodes> - <asp:TreeNode Text="" - Value="Roles" PopulateOnDemand="True" Selected="false" ShowCheckBox="false" /> - </Nodes> - </asp:TreeView> + <label> + Roles:</label></div> + <div class="item"> + <asp:TreeView ID="roleTree" runat="server" OnInit="roleTreeEdit_Init" OnTreeNodePopulate="roleTree_TreeNodePopulate" + ShowCheckBoxes="All" OnSelectedNodeChanged="roleTree_SelectedNodeChanged" ShowExpandCollapse="false"> + <Nodes> + <asp:TreeNode Text="" Value="Roles" PopulateOnDemand="True" Selected="false" ShowCheckBox="false" /> + </Nodes> + </asp:TreeView> </div> </div> <div class="end"> Modified: Website/TCDB.master =================================================================== --- Website/TCDB.master 2006-08-01 21:22:36 UTC (rev 258) +++ Website/TCDB.master 2006-08-01 22:41:20 UTC (rev 259) @@ -20,23 +20,11 @@ <div id="NonFooter"> <% if (ConfigDB.GetConfigString("tcdb_version").Equals(Constants.TCDB_VERSION)) { - try - { - string motd = ConfigDB.GetConfigString(Constants.ANONYMOUSUSERID, "site_motd"); - if (motd.Length > 0) - { - motdLabel.Text = motd; - motdLabel.Enabled = true; - motdLabel.Visible = true; - } - } - catch { } %> <form id="Form1" runat="server"> <div id="HeaderContent"> <TCDB:Header runat="server" ID="Header" /> </div> - <div class="motd"><asp:Label ID="motdLabel" runat="server" Visible="false" Enabled="false"></asp:Label></div> <% if (m_user.ISAUTHENTICATED) @@ -53,14 +41,23 @@ <td id="MainContent"> <% - try { + string motd = ConfigDB.GetConfigString(Constants.ANONYMOUSUSERID, "site_motd"); + if (motd.Length > 0) + { + motdLabel.Text = motd; + motdLabel.Visible = true; + } + } + catch { } + + try + { string error = ConfigDB.GetConfigString(m_user.ID, "error"); if (error.Length > 0) { errorLabel.Text = error; - errorLabel.Enabled = true; errorLabel.Visible = true; ConfigDB.DeleteConfig(m_user.ID, "error"); @@ -70,7 +67,8 @@ %> - <asp:Label ID="errorLabel" runat="server" CssClass="error" Visible="false"></asp:Label> + <div class="motd"><asp:Label ID="motdLabel" runat="server" Visible="false"></asp:Label></div> + <div class="error"><asp:Label ID="errorLabel" runat="server" Visible="false"></asp:Label></div> <asp:ContentPlaceHolder ID="MainContentPlaceHolder" runat="server"> </asp:ContentPlaceHolder> </td> @@ -85,8 +83,20 @@ } else { + try + { + string motd = ConfigDB.GetConfigString(Constants.ANONYMOUSUSERID, "site_motd"); + if (motd.Length > 0) + { + motdLabelLogin.Text = motd; + motdLabelLogin.Visible = true; + } + } + catch { } + m_logg.Debug("User " + m_user.ToString() + " is not authenticated, displaying login"); %> + <div class="motd"><asp:Label ID="motdLabelLogin" runat="server" Visible="false"></asp:Label></div> <div id="Login"> <TCDB:Authenticate runat="server" ID="Authenticate" /> </div> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <m_h...@us...> - 2006-08-04 16:35:53
|
Revision: 267 Author: m_hildebrand Date: 2006-08-04 09:35:43 -0700 (Fri, 04 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=267&view=rev Log Message: ----------- Commented out code for sticky footer... it is now about 8 lines below the bottom object. Un-comment the code to get it sticky again, but be aware that it will need some TLC to make it right :( Modified Paths: -------------- Website/App_Themes/Python/python.css Website/App_Themes/Python/style-ie.css Website/TCDB.master Modified: Website/App_Themes/Python/python.css =================================================================== --- Website/App_Themes/Python/python.css 2006-08-04 16:12:13 UTC (rev 266) +++ Website/App_Themes/Python/python.css 2006-08-04 16:35:43 UTC (rev 267) @@ -1,12 +1,12 @@ /********** BEGIN Global Classes **********/ HTML { - height: 100%; + /*height: 100%;*/ } BODY { - height: 100%; + /*height: 100%;*/ margin: 0; padding: 0; font-family: Verdana, Sans-Serif; @@ -269,9 +269,9 @@ #NonFooter { - position: relative; - min-height: 100%; - overflow: auto; + position: relative; + min-height: 100%; + overflow: visible; } #FooterContent @@ -281,8 +281,8 @@ padding: 6px 0 6px 0; vertical-align: middle; text-align: center; - position: relative; - margin: -2.35em auto 0 auto; + /*position: relative;*/ + /*margin: -2.35em auto 0 auto;*/ } /********** END Footer Content **********/ Modified: Website/App_Themes/Python/style-ie.css =================================================================== --- Website/App_Themes/Python/style-ie.css 2006-08-04 16:12:13 UTC (rev 266) +++ Website/App_Themes/Python/style-ie.css 2006-08-04 16:35:43 UTC (rev 267) @@ -1,4 +1,8 @@ - +.body +{ + background: red; +} + .bottom { position: static; @@ -20,11 +24,13 @@ /* A CSS hack that only applies to IE -- specifies a different height for the footer and set the position to static so the background displays */ /* TODO: Figure out a way to keep the footer in IE from overlaping page content */ +/* #FooterContent { position: static; margin-top: -2.3em; } +*/ .form .checkbox INPUT { Modified: Website/TCDB.master =================================================================== --- Website/TCDB.master 2006-08-04 16:12:13 UTC (rev 266) +++ Website/TCDB.master 2006-08-04 16:35:43 UTC (rev 267) @@ -16,11 +16,11 @@ <head runat="server"> <title>TCDB: Test Case DataBase 2006</title> </head> -<!--[it lt IE 8]> +<!--[if IE]> <link href="App_Themes/<%= Page.StyleSheetTheme %>/style-ie.css" type="text/css" rel="stylesheet" /> <![endif]--> <body> - <div id="NonFooter"> + <!--<div id="NonFooter" style="border: solid thin red;">--> <% if (ConfigDB.GetConfigString("tcdb_version").Equals(Constants.TCDB_VERSION)) { %> @@ -109,8 +109,8 @@ <div class="motd"><span>Unable to load TCDB. Code version [<%= Constants.TCDB_VERSION %>] does not equal schema version [<%= ConfigDB.GetConfigString("tcdb_version") %>].</span></div> <% } %> - <br /><br /> - </div> + <br /><br /><br /><br /><br /><br /><br /><br /> + <!--</div>--> <div id="FooterContent"> <TCDB:Footer runat="server" ID="Footer" /> </div> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ro...@us...> - 2006-08-04 17:03:29
|
Revision: 268 Author: rouquin Date: 2006-08-04 10:03:21 -0700 (Fri, 04 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=268&view=rev Log Message: ----------- Added required field validators Modified Paths: -------------- Website/App_Code/Users.cs Website/Includes/ActionItems.ascx Website/Includes/Rights.ascx Website/Includes/Roles.ascx Website/Includes/UserSettings.ascx Website/web.config Modified: Website/App_Code/Users.cs =================================================================== --- Website/App_Code/Users.cs 2006-08-04 16:35:43 UTC (rev 267) +++ Website/App_Code/Users.cs 2006-08-04 17:03:21 UTC (rev 268) @@ -26,7 +26,7 @@ { /// <summary> /// A class containing database interactions for users in the TCDB System - /// TCDB.Users holds all the moethods that interact with the User DB + /// TCDB.Users holds all the methods that interact with the User DB /// </summary> public class UserDB : Page { Modified: Website/Includes/ActionItems.ascx =================================================================== --- Website/Includes/ActionItems.ascx 2006-08-04 16:35:43 UTC (rev 267) +++ Website/Includes/ActionItems.ascx 2006-08-04 17:03:21 UTC (rev 268) @@ -131,6 +131,8 @@ </ItemTemplate> <EditItemTemplate> <div id="aiContent"> + <asp:RequiredFieldValidator ID="nameValidator" runat="server" ErrorMessage="You must enter a name for the action item." + ControlToValidate="nameBox"></asp:RequiredFieldValidator> <div class="xsnazzy"> <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"> </b></b> @@ -139,7 +141,7 @@ <div class="left"> <div class="item"> <label> - Name:</label><asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("name") %>' + Name:</label><asp:TextBox ID="nameBox" runat="server" Text='<%# Bind("name") %>' Width="500px" /> </div> <div class="item"> @@ -231,6 +233,8 @@ </EditItemTemplate> <InsertItemTemplate> <div id="aiContent"> + <asp:RequiredFieldValidator ID="nameValidator" runat="server" ErrorMessage="You must enter a name for the action item." + ControlToValidate="nameBox"></asp:RequiredFieldValidator> <div class="xsnazzy"> <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"> </b></b> @@ -239,7 +243,7 @@ <div class="left"> <div class="item"> <label> - Name:</label><asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("name") %>' + Name:</label><asp:TextBox ID="nameBox" runat="server" Text='<%# Bind("name") %>' Width="500px" /> </div> <div class="item"> Modified: Website/Includes/Rights.ascx =================================================================== --- Website/Includes/Rights.ascx 2006-08-04 16:35:43 UTC (rev 267) +++ Website/Includes/Rights.ascx 2006-08-04 17:03:21 UTC (rev 268) @@ -4,6 +4,7 @@ OnItemCommand="FormView1_ItemCommand" OnItemInserted="FormView1_ItemInserted" OnItemUpdated="FormView1_ItemUpdated"> <EditItemTemplate> + <asp:RequiredFieldValidator ID="nameValidator" runat="server" ErrorMessage="You must enter a right name." ControlToValidate="nameBox"></asp:RequiredFieldValidator> <div class="xsnazzy"> <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"> </b></b> @@ -12,7 +13,7 @@ <tr> <td align="left" colspan="6"> <strong>Name:</strong> - <asp:TextBox ID="nameLabel" runat="server" Text='<%# Bind("rightsName") %>' Width="70%"></asp:TextBox></td> + <asp:TextBox ID="nameBox" runat="server" Text='<%# Bind("rightsName") %>' Width="70%"></asp:TextBox></td> </tr> <tr> <td class="hr" colspan="6"> @@ -63,6 +64,7 @@ </div> </EditItemTemplate> <InsertItemTemplate> + <asp:RequiredFieldValidator ID="nameValidator" runat="server" ErrorMessage="You must enter a right name." ControlToValidate="nameBox"></asp:RequiredFieldValidator> <div class="xsnazzy"> <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"> </b></b> @@ -71,7 +73,7 @@ <tr> <td align="left" colspan="6"> <strong>Name:</strong> - <asp:TextBox ID="nameLabel" runat="server" Text='<%# Bind("rightsName") %>' Width="70%"></asp:TextBox></td> + <asp:TextBox ID="nameBox" runat="server" Text='<%# Bind("rightsName") %>' Width="70%"></asp:TextBox></td> </tr> <tr> <td class="hr" colspan="6"> Modified: Website/Includes/Roles.ascx =================================================================== --- Website/Includes/Roles.ascx 2006-08-04 16:35:43 UTC (rev 267) +++ Website/Includes/Roles.ascx 2006-08-04 17:03:21 UTC (rev 268) @@ -71,6 +71,7 @@ </div> </ItemTemplate> <EditItemTemplate> + <asp:RequiredFieldValidator ID="nameValidator" runat="server" ErrorMessage="You must enter a role name." ControlToValidate="nameBox"></asp:RequiredFieldValidator> <div class="xsnazzy"> <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"> </b></b> @@ -79,7 +80,7 @@ <tr> <td align="left" colspan="6"> <strong>Name:</strong> - <asp:TextBox ID="nameLabel" runat="server" Text='<%# Bind("roleName") %>' Width="70%"></asp:TextBox></td> + <asp:TextBox ID="nameBox" runat="server" Text='<%# Bind("roleName") %>' Width="70%"></asp:TextBox></td> </tr> <tr> <td class="hr" colspan="6"> @@ -138,6 +139,7 @@ </div> </EditItemTemplate> <InsertItemTemplate> + <asp:RequiredFieldValidator ID="nameValidator" runat="server" ErrorMessage="You must enter a role name." ControlToValidate="nameBox"></asp:RequiredFieldValidator> <div class="xsnazzy"> <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"> </b></b> @@ -146,7 +148,7 @@ <tr> <td align="left" colspan="6"> <strong>Name:</strong> - <asp:TextBox ID="nameLabel" runat="server" Text='<%# Bind("roleName") %>' Width="70%"></asp:TextBox></td> + <asp:TextBox ID="nameBox" runat="server" Text='<%# Bind("roleName") %>' Width="70%"></asp:TextBox></td> </tr> <tr> <td class="hr" colspan="6"> Modified: Website/Includes/UserSettings.ascx =================================================================== --- Website/Includes/UserSettings.ascx 2006-08-04 16:35:43 UTC (rev 267) +++ Website/Includes/UserSettings.ascx 2006-08-04 17:03:21 UTC (rev 268) @@ -111,6 +111,10 @@ </div> </ItemTemplate> <EditItemTemplate> + <asp:RequiredFieldValidator ID="usernameValidator" runat="server" ErrorMessage="You must have a username." ControlToValidate="usernameBox"></asp:RequiredFieldValidator> + <asp:RequiredFieldValidator ID="firstnameValidator" runat="server" ErrorMessage="You must enter a first name." ControlToValidate="firstnameBox"></asp:RequiredFieldValidator> + <asp:RequiredFieldValidator ID="lastnameValidator" runat="server" ErrorMessage="You must enter a last name." ControlToValidate="lastnameBox"></asp:RequiredFieldValidator> + <asp:RequiredFieldValidator ID="emailValidator" runat="server" ErrorMessage="You must enter an email address." ControlToValidate="emailBox"></asp:RequiredFieldValidator> <div class="xsnazzy"> <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"> </b></b> Modified: Website/web.config =================================================================== --- Website/web.config 2006-08-04 16:35:43 UTC (rev 267) +++ Website/web.config 2006-08-04 17:03:21 UTC (rev 268) @@ -128,7 +128,7 @@ </microsoft.web> <appSettings/> <connectionStrings> - <add name="tcdbConnectionString" connectionString="Data Source=tcdb.vintela.com\sqlserver2005;Initial Catalog=tcdb;Persist Security Info=True;User ID=tcdb;Password=tcdbpw;Connect Timeout=60" + <add name="tcdbConnectionString" connectionString="Data Source=dad.vintela.com\sqlserver2005;Initial Catalog=tcdb;Persist Security Info=True;User ID=tcdb;Password=tcdbpw;Connect Timeout=60" providerName="System.Data.SqlClient" /> </connectionStrings> <system.web> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ro...@us...> - 2006-08-04 18:55:10
|
Revision: 271 Author: rouquin Date: 2006-08-04 11:54:57 -0700 (Fri, 04 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=271&view=rev Log Message: ----------- Fixed some bugs I came across. 1) Add user role to product (product default set) 2) New user - roles updated Modified Paths: -------------- Website/App_Code/Assignments.cs Website/Includes/AdministrationTree.ascx.cs Website/Includes/Roles.ascx.cs Website/Includes/UserSettings.ascx Website/web.config Modified: Website/App_Code/Assignments.cs =================================================================== --- Website/App_Code/Assignments.cs 2006-08-04 18:06:33 UTC (rev 270) +++ Website/App_Code/Assignments.cs 2006-08-04 18:54:57 UTC (rev 271) @@ -66,7 +66,7 @@ { assignment.WORKORDER = WorkOrderDB.TCDB_GetWorkOrder(row.childID); assignment.WOTOTALTEST = row.WOTotalTest; - assignment.WOPASSRATE = Convert.ToInt32(row.WOPassRate); + //assignment.WOPASSRATE = Convert.ToInt32(row.WOPassRate); assignment.WOPASS = row.WOPass; assignment.WOFAIL = row.WOFail; assignment.WOERROR = row.WOError; @@ -512,7 +512,8 @@ public User CREATOR { - get { return p_creator; } + get + { return p_creator; } set { p_creator = value; } } Modified: Website/Includes/AdministrationTree.ascx.cs =================================================================== --- Website/Includes/AdministrationTree.ascx.cs 2006-08-04 18:06:33 UTC (rev 270) +++ Website/Includes/AdministrationTree.ascx.cs 2006-08-04 18:54:57 UTC (rev 271) @@ -352,7 +352,7 @@ protected void BuildUserList(TreeNode parent) { tcdbDataSetTableAdapters.db_roleProductUserTableAdapter userAdapter = new tcdbDataSetTableAdapters.db_roleProductUserTableAdapter(); - tcdbDataSet.db_roleProductUserDataTable userTable = userAdapter.GetData(null, Convert.ToInt32(parent.Parent.Value), null); + tcdbDataSet.db_roleProductUserDataTable userTable = userAdapter.GetData(null, Convert.ToInt32(parent.Parent.Value), true); int lastID = -1; foreach (tcdbDataSet.db_roleProductUserRow row in userTable) Modified: Website/Includes/Roles.ascx.cs =================================================================== --- Website/Includes/Roles.ascx.cs 2006-08-04 18:06:33 UTC (rev 270) +++ Website/Includes/Roles.ascx.cs 2006-08-04 18:54:57 UTC (rev 271) @@ -23,6 +23,7 @@ int roleID = Convert.ToInt32(HttpContext.Current.Request.QueryString[Constants.CODE_ROLE]); Role role; String mode = HttpContext.Current.Request.QueryString["mode"]; + String productID_in = HttpContext.Current.Request.QueryString[Constants.CODE_PRODUCT]; protected void Page_Load(object sender, EventArgs e) { @@ -276,6 +277,8 @@ ListBox userList = (ListBox)FormView1.FindControl("userList"); updateProductUsers(productList, userList); + if (productID_in != null) + productList.SelectedValue = productID_in; Session["product"] = productList.SelectedValue; } protected void ProductUserPanel_Init(object sender, EventArgs e) Modified: Website/Includes/UserSettings.ascx =================================================================== --- Website/Includes/UserSettings.ascx 2006-08-04 18:06:33 UTC (rev 270) +++ Website/Includes/UserSettings.ascx 2006-08-04 18:54:57 UTC (rev 271) @@ -111,10 +111,14 @@ </div> </ItemTemplate> <EditItemTemplate> - <asp:RequiredFieldValidator ID="usernameValidator" runat="server" ErrorMessage="You must have a username." ControlToValidate="usernameBox"></asp:RequiredFieldValidator> - <asp:RequiredFieldValidator ID="firstnameValidator" runat="server" ErrorMessage="You must enter a first name." ControlToValidate="firstnameBox"></asp:RequiredFieldValidator> - <asp:RequiredFieldValidator ID="lastnameValidator" runat="server" ErrorMessage="You must enter a last name." ControlToValidate="lastnameBox"></asp:RequiredFieldValidator> - <asp:RequiredFieldValidator ID="emailValidator" runat="server" ErrorMessage="You must enter an email address." ControlToValidate="emailBox"></asp:RequiredFieldValidator> + <asp:RequiredFieldValidator ID="usernameValidator" runat="server" ErrorMessage="You must have a username." + ControlToValidate="usernameBox"></asp:RequiredFieldValidator> + <asp:RequiredFieldValidator ID="firstnameValidator" runat="server" ErrorMessage="You must enter a first name." + ControlToValidate="firstnameBox"></asp:RequiredFieldValidator> + <asp:RequiredFieldValidator ID="lastnameValidator" runat="server" ErrorMessage="You must enter a last name." + ControlToValidate="lastnameBox"></asp:RequiredFieldValidator> + <asp:RequiredFieldValidator ID="emailValidator" runat="server" ErrorMessage="You must enter an email address." + ControlToValidate="emailBox"></asp:RequiredFieldValidator> <div class="xsnazzy"> <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"> </b></b> @@ -284,7 +288,8 @@ Roles:</label></div> <div class="item"> <asp:TreeView ID="roleTree" runat="server" OnInit="roleTreeEdit_Init" OnTreeNodePopulate="roleTree_TreeNodePopulate" - ShowCheckBoxes="All" OnSelectedNodeChanged="roleTree_SelectedNodeChanged" ShowExpandCollapse="false"> + ShowCheckBoxes="All" OnSelectedNodeChanged="roleTree_SelectedNodeChanged" ShowExpandCollapse="false" + OnTreeNodeCheckChanged="roleTree_TreeNodeCheckChanged"> <Nodes> <asp:TreeNode Text="" Value="Roles" PopulateOnDemand="True" Selected="false" ShowCheckBox="false" /> </Nodes> Modified: Website/web.config =================================================================== --- Website/web.config 2006-08-04 18:06:33 UTC (rev 270) +++ Website/web.config 2006-08-04 18:54:57 UTC (rev 271) @@ -128,9 +128,11 @@ </microsoft.web> <appSettings/> <connectionStrings> - <add name="tcdbConnectionString" connectionString="Data Source=dad.vintela.com\sqlserver2005;Initial Catalog=tcdb;Persist Security Info=True;User ID=tcdb;Password=tcdbpw;Connect Timeout=60" - providerName="System.Data.SqlClient" /> - </connectionStrings> + <!-- + <add name="tcdbConnectionString" connectionString="Data Source=tcdb.vintela.com\sqlserver2005;Initial Catalog=tcdb;Persist Security Info=True;User ID=tcdb;Password=tcdbpw;Connect Timeout=60" providerName="System.Data.SqlClient" /> + --> + <add name="tcdbConnectionString" connectionString="Data Source=dad.vintela.com\sqlserver2005;Initial Catalog=tcdb;Persist Security Info=True;User ID=tcdb;Password=tcdbpw;Connect Timeout=60" providerName="System.Data.SqlClient" /> +</connectionStrings> <system.web> <sessionState mode="InProc" cookieless="false" timeout="20"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ro...@us...> - 2006-08-05 19:00:42
|
Revision: 275 Author: rouquin Date: 2006-08-05 12:00:23 -0700 (Sat, 05 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=275&view=rev Log Message: ----------- Fixed some bugs with assignments & action items that I came across. Added rights enforcement to roleAdmin and Roles. Added for functionality into dev_access right. Modified Paths: -------------- Website/Administration.aspx Website/App_Code/Common.cs Website/App_Code/Right.cs Website/App_Code/SiteUserControl.cs Website/App_Code/Users.cs Website/Includes/ActionItems.ascx.cs Website/Includes/Assignments.ascx.cs Website/Includes/AssignmentsTree.ascx Website/Includes/AssignmentsTree.ascx.cs Website/Includes/Rights.ascx Website/Includes/Rights.ascx.cs Website/Includes/RoleAdmin.ascx Website/Includes/RoleAdmin.ascx.cs Website/Includes/Roles.ascx Website/Includes/Roles.ascx.cs Website/Includes/UserSettings.ascx.cs Added Paths: ----------- Website/Includes/Administration.ascx Website/Includes/Administration.ascx.cs Modified: Website/Administration.aspx =================================================================== --- Website/Administration.aspx 2006-08-04 22:44:29 UTC (rev 274) +++ Website/Administration.aspx 2006-08-05 19:00:23 UTC (rev 275) @@ -2,7 +2,6 @@ <%@ Register Src="~/Includes/AdministrationTree.ascx" TagPrefix="admin" TagName="Tree" %> <%@ Register Src="~/Includes/Administration.ascx" TagPrefix="admin" TagName="Nav" %> - <asp:Content ID="TreeContent" ContentPlaceHolderID="TreeContentPlaceHolder" runat="Server"> <admin:Tree runat="server" ID="Tree" /> </asp:Content> Modified: Website/App_Code/Common.cs =================================================================== --- Website/App_Code/Common.cs 2006-08-04 22:44:29 UTC (rev 274) +++ Website/App_Code/Common.cs 2006-08-05 19:00:23 UTC (rev 275) @@ -1247,8 +1247,7 @@ public static int ANONYMOUSUSERID = 1; public static int PRODUCT_SITEID = 1; public static int PRODUCT_ANYID = -1; - public static int PRODUCT_MINE = -2; - public static int PRODUCT_CREATED = -3; + public static int PRODUCT_CREATED = -2; public static string CODE_USER = "u"; Modified: Website/App_Code/Right.cs =================================================================== --- Website/App_Code/Right.cs 2006-08-04 22:44:29 UTC (rev 274) +++ Website/App_Code/Right.cs 2006-08-05 19:00:23 UTC (rev 275) @@ -143,6 +143,29 @@ return null; } + public static List<String> TCDB_GetUserRoles(int productID, int userID) + { + tcdbDataSetTableAdapters.db_roleUserProductTableAdapter userRoleAdapter = new tcdbDataSetTableAdapters.db_roleUserProductTableAdapter(); + tcdbDataSet.db_roleUserProductDataTable userRoleTable = userRoleAdapter.GetData(userID, productID, true); + List<String> roleList = new List<String>(); + + foreach (tcdbDataSet.db_roleUserProductRow row in userRoleTable) + roleList.Add(row.roleName); + + return roleList; + } + public static Role TCDB_GetUserRoles(int productID, int userID, String roleName) + { + tcdbDataSetTableAdapters.db_roleUserProductTableAdapter userRoleAdapter = new tcdbDataSetTableAdapters.db_roleUserProductTableAdapter(); + tcdbDataSet.db_roleUserProductDataTable userRoleTable = userRoleAdapter.GetData(userID, productID, true); + + foreach (tcdbDataSet.db_roleUserProductRow row in userRoleTable) + if (row.roleName == roleName) + return GetRoleInfo(row.roleID); + + return null; + } + public static bool TCDB_SaveRight(Right right) { tcdbDataSetTableAdapters.db_rightsTableAdapter rightsAdapter = new tcdbDataSetTableAdapters.db_rightsTableAdapter(); @@ -158,6 +181,22 @@ return true; } + + public static bool TCDB_SaveRole(Role role) + { + tcdbDataSetTableAdapters.db_roleTableAdapter roleAdapter = new tcdbDataSetTableAdapters.db_roleTableAdapter(); + try + { + roleAdapter.Insert(role.NAME, role.DESCRIPTION); + } + catch (Exception e) + { + m_logg.Error(e.Message); + return false; + } + + return true; + } } /// <summary> Modified: Website/App_Code/SiteUserControl.cs =================================================================== --- Website/App_Code/SiteUserControl.cs 2006-08-04 22:44:29 UTC (rev 274) +++ Website/App_Code/SiteUserControl.cs 2006-08-05 19:00:23 UTC (rev 275) @@ -16,6 +16,7 @@ /// </summary> public class SiteUserControl : System.Web.UI.UserControl { + protected static Nullable<bool> active = true; protected static User m_user = null; protected static DateTime m_startTime = DateTime.Now; private static ILog m_logg = LogManager.GetLogger("TCDB.Master"); @@ -26,5 +27,16 @@ m_user = ((SiteMaster)(this.Page.Master)).LoadSessionUser(); m_startTime = ((SiteMaster)(this.Page.Master)).LoadStartTime(); + + if (m_user.HasRight("dev_access")) + { + active = null; + Session["active"] = null; + } + else + { + active = true; + Session["active"] = true; + } } } Modified: Website/App_Code/Users.cs =================================================================== --- Website/App_Code/Users.cs 2006-08-04 22:44:29 UTC (rev 274) +++ Website/App_Code/Users.cs 2006-08-05 19:00:23 UTC (rev 275) @@ -276,7 +276,8 @@ private bool p_isNew; private string p_password; private List<Assignment> p_assignments; - private Dictionary<int,List<String> > p_rights; + private Dictionary<int, List<String> > p_rights; + private Dictionary<int, List<String> > p_roles; /* TODO: Implement these as the time is right private List<Feature> p_features; private List<Assignment> p_assignmentsCreated; @@ -318,6 +319,7 @@ p_assignments = null; p_password = ""; p_rights = new Dictionary<int, List<String> >(); + p_roles = new Dictionary<int, List<String>>(); } private void BuildUser(User user) @@ -345,7 +347,8 @@ //p_assignments = user.GetAssignments(false, Constants.ASSIGNMENT_FINISHEDANDUNFINISHED); } p_assignments = null; - p_rights = new Dictionary<int, List<String>>(); + p_rights = new Dictionary<int, List<String>>(); + p_roles = new Dictionary<int, List<String>>(); } public int ID @@ -429,12 +432,17 @@ { return p_username.Trim(); } + + public void ClearRights() + { + p_rights = new Dictionary<int, List<String>>(); + p_roles = new Dictionary<int, List<String>>(); + } public bool HasRight(string right) { return HasRight(right, Constants.PRODUCT_SITEID); } - public bool HasRight(string right, int productID) { // Any product @@ -466,12 +474,41 @@ return false; } + public bool HasRight(string right, User user, int productID) + { + // Any product + if (productID == Constants.PRODUCT_ANYID) + { + List<Product> products = ProductDB.GetProductList(true); + foreach (Product product in products) + { + if (user.HasRights(product.ID) && HasRight(right, product.ID)) + return true; + } + return false; + } + // Specified product + if (!p_rights.ContainsKey(productID)) + p_rights[productID] = RightDB.TCDB_GetUserRights(productID, p_id); + if (user.HasRights(productID) && p_rights[productID].Contains(right)) + return true; + + // Site rights? + if (productID != Constants.PRODUCT_SITEID) + { + if (!p_rights.ContainsKey(Constants.PRODUCT_SITEID)) + p_rights[Constants.PRODUCT_SITEID] = RightDB.TCDB_GetUserRights(Constants.PRODUCT_SITEID, p_id); + if (user.HasRights(Constants.PRODUCT_SITEID) && p_rights[Constants.PRODUCT_SITEID].Contains(right)) + return true; + } + + return false; + } public static bool HasRight(int userID, string right, int productID) { return (RightDB.TCDB_GetUserRight(productID, userID, right) != null); } - public bool HasRights(int productID) { // Any product @@ -494,7 +531,6 @@ return false; } - public static bool HasRights(int userID, int productID) { return (RightDB.TCDB_GetUserRights(productID, userID).Count > 0); @@ -510,7 +546,72 @@ if (rTable.Count > 0) rupAdapter.ins_userRoleProduct(p_id, rTable[0].roleID, productID); } + public bool HasRole(string role) + { + return HasRole(role, Constants.PRODUCT_SITEID); + } + public bool HasRole(string role, int productID) + { + // Any product + if (productID == Constants.PRODUCT_ANYID) + { + List<Product> products = ProductDB.GetProductList(true); + foreach (Product product in products) + { + if (HasRole(role, product.ID)) + return true; + } + return false; + } + // Specified product + if (!p_roles.ContainsKey(productID)) + p_roles[productID] = RightDB.TCDB_GetUserRoles(productID, p_id); + if (p_roles[productID].Contains(role)) + return true; + + // Site rights? + if (productID != Constants.PRODUCT_SITEID) + { + if (!p_roles.ContainsKey(Constants.PRODUCT_SITEID)) + p_roles[Constants.PRODUCT_SITEID] = RightDB.TCDB_GetUserRoles(Constants.PRODUCT_SITEID, p_id); + if (p_roles[Constants.PRODUCT_SITEID].Contains(role)) + return true; + } + + return false; + } + public static bool HasRole(int userID, string role, int productID) + { + return (RightDB.TCDB_GetUserRoles(productID, userID, role) != null); + } + public bool HasRoles(int productID) + { + // Any product + if (productID == Constants.PRODUCT_ANYID) + { + List<Product> products = ProductDB.GetProductList(true); + foreach (Product product in products) + { + if (HasRoles(product.ID)) + return true; + } + return false; + } + + if (!p_roles.ContainsKey(productID)) + p_roles[productID] = RightDB.TCDB_GetUserRoles(productID, p_id); + + if (p_roles[productID].Count > 0) + return true; + + return false; + } + public static bool HasRoles(int userID, int productID) + { + return (RightDB.TCDB_GetUserRoles(productID, userID).Count > 0); + } + public List<Assignment> GetAssignments(bool reload, int statusFilter) { // TODO: This list needs to be able to reflect filters! Modified: Website/Includes/ActionItems.ascx.cs =================================================================== --- Website/Includes/ActionItems.ascx.cs 2006-08-04 22:44:29 UTC (rev 274) +++ Website/Includes/ActionItems.ascx.cs 2006-08-05 19:00:23 UTC (rev 275) @@ -399,11 +399,16 @@ protected void assignedTo_Init(object sender, EventArgs e) { DropDownList assignedTo = (DropDownList)sender; + if (ai == null) ai = ActionItemDB.GetActionItem(Convert.ToInt32(item_id)); - if (!m_user.HasRight("create_other_ai", Constants.PRODUCT_ANYID)) + if (!(ActionItemsView.CurrentMode == FormViewMode.Insert && m_user.HasRight("create_other_ai", Constants.PRODUCT_ANYID)) && + !(ActionItemsView.CurrentMode == FormViewMode.Edit && m_user.HasRight("reassign_other_ai", ai.CREATOR, Constants.PRODUCT_ANYID))) { assignedTo.Enabled = false; - assignedTo.Items.Add(new ListItem(m_user.FULLNAME, m_user.ID.ToString())); + if (ActionItemsView.CurrentMode == FormViewMode.Edit) + assignedTo.Items.Add(new ListItem(ai.ASSIGNED.FULLNAME, ai.ASSIGNED.ID.ToString())); + else + assignedTo.Items.Add(new ListItem(m_user.FULLNAME, m_user.ID.ToString())); } else { @@ -415,7 +420,8 @@ foreach (tcdbDataSet.db_productsRow pRow in pTable) { - if (m_user.HasRight("create_other_ai",pRow.productID)) + if ((ActionItemsView.CurrentMode == FormViewMode.Insert && m_user.HasRight("create_other_ai", pRow.productID)) || + (ActionItemsView.CurrentMode == FormViewMode.Edit && m_user.HasRight("reassign_other_ai", ai.CREATOR, pRow.productID))) { tcdbDataSet.db_roleProductUserDataTable rpuTable = rpuAdapter.GetData(null, pRow.productID, true); @@ -425,7 +431,7 @@ if (lastID == rpuRow.userID) continue; lastID = rpuRow.userID; - + assignedTo.Items.Add(new ListItem(rpuRow.fullName, rpuRow.userID.ToString())); } } Added: Website/Includes/Administration.ascx =================================================================== --- Website/Includes/Administration.ascx (rev 0) +++ Website/Includes/Administration.ascx 2006-08-05 19:00:23 UTC (rev 275) @@ -0,0 +1,13 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Administration.ascx.cs" Inherits="Administration" %> + +<div class="pictureMenu"> + <asp:LinkButton ID="newProduct" runat="server" PostBackUrl="~/Product.aspx?mode=new" OnInit="newProduct_Init">New Product</asp:LinkButton> + <div class="button"> + <asp:LinkButton ID="newUser" runat="server" PostBackUrl="~/UserSettings.aspx?mode=new" OnInit="newUser_Init" > + <asp:Image ID="newUserIcon" runat="server" SkinID="newUserImage" AlternateText="New User" />New + User</asp:LinkButton></div> + <div class="button"> + <asp:LinkButton ID="userRole" runat="server" PostBackUrl="~/AdminRole.aspx" OnInit="userRole_Init"> + <asp:Image ID="userRoleIcon" runat="server" SkinID="userRoleImage" AlternateText="User Roles" />User + Roles</asp:LinkButton></div> + </div> Added: Website/Includes/Administration.ascx.cs =================================================================== --- Website/Includes/Administration.ascx.cs (rev 0) +++ Website/Includes/Administration.ascx.cs 2006-08-05 19:00:23 UTC (rev 275) @@ -0,0 +1,46 @@ +using System; +using System.Data; +using System.Configuration; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using System.Collections.Generic; +using TCDB.Assignments; +using TCDB.Common; +using TCDB.Products; +using TCDB.Users; +using log4net; + +public partial class Administration : SiteUserControl +{ + private static ILog m_logg = LogManager.GetLogger("Page:Authenticate"); + + void Page_Load(Object sender, EventArgs e) + { + m_logg.Debug("Loading Administration page"); + } + protected void newUser_Init(object sender, EventArgs e) + { + LinkButton newUser = (LinkButton) sender; + + if (!m_user.HasRight("create_user", Constants.PRODUCT_ANYID)) + newUser.Visible = false; + } + protected void userRole_Init(object sender, EventArgs e) + { + LinkButton seeRoles = (LinkButton)sender; + + if (!m_user.HasRight("view_my_roles", Constants.PRODUCT_ANYID) && !m_user.HasRight("view_other_roles",Constants.PRODUCT_ANYID)) + seeRoles.Visible = false; + } + protected void newProduct_Init(object sender, EventArgs e) + { + LinkButton newProduct = (LinkButton)sender; + + if (!m_user.HasRight("create_product", Constants.PRODUCT_ANYID)) + newProduct.Visible = false; + } +} Modified: Website/Includes/Assignments.ascx.cs =================================================================== --- Website/Includes/Assignments.ascx.cs 2006-08-04 22:44:29 UTC (rev 274) +++ Website/Includes/Assignments.ascx.cs 2006-08-05 19:00:23 UTC (rev 275) @@ -125,13 +125,13 @@ if (ai != null && // It's not mine, the assignee doesn't belong to this product group, or I don't have rights to see other users' Action Items - !(ai.ASSIGNED.ID != m_user.ID && ai.ASSIGNED.HasRights(productID) && m_user.HasRight("view_other_ai",productID)) && + !(ai.ASSIGNED.ID != m_user.ID && m_user.HasRight("view_other_ai",ai.ASSIGNED,productID)) && // It's not mine, I don't have any product rights, or I can't view my own !(ai.ASSIGNED.ID == m_user.ID && m_user.HasRights(productID) && m_user.HasRight("view_my_ai", productID)) && // It's mine, the assignee doesn't belong to this product group, I didn't create it, or I don't have rights to look at it - !(ai.ASSIGNED.ID != m_user.ID && ai.ASSIGNED.HasRights(productID) && ai.CREATOR.ID == m_user.ID && m_user.HasRight("view_created_ai",productID)) + !(ai.ASSIGNED.ID != m_user.ID && ai.CREATOR.ID == m_user.ID && m_user.HasRight("view_created_ai",ai.ASSIGNED,productID)) ) return false; @@ -149,13 +149,13 @@ if (wo != null && // It's not mine, the assignee doesn't belong to this product group, or I don't have rights to see other users' work orders - !(wo.ASSIGNED.ID != m_user.ID && wo.ASSIGNED.HasRights(productID) && m_user.HasRight("view_other_wo", productID)) && + !(wo.ASSIGNED.ID != m_user.ID && m_user.HasRight("view_other_wo", wo.ASSIGNED, productID)) && // It's not mine, I don't have any product rights, or I can't view my own - !(wo.ASSIGNED.ID == m_user.ID && m_user.HasRights(productID) && m_user.HasRight("view_my_wo", productID)) && + !(wo.ASSIGNED.ID == m_user.ID && m_user.HasRight("view_my_wo", m_user, productID)) && // It's mine, the assignee doesn't belong to this product group, I didn't create it, or I don't have rights to look at it - !(wo.ASSIGNED.ID != m_user.ID && wo.ASSIGNED.HasRights(productID) && wo.CREATOR.ID == m_user.ID && m_user.HasRight("view_created_wo", productID)) + !(wo.ASSIGNED.ID != m_user.ID && wo.CREATOR.ID == m_user.ID && m_user.HasRight("view_created_wo", wo.ASSIGNED, productID)) ) return false; @@ -354,10 +354,10 @@ // update Session Session["showCompleted"] = cboShowCompleted.Checked; Session["showAICompleted"] = aiStatusList.Items.FindByText("Completed").Selected; - Session["showWOCompleted"] = woStatusList.Items.FindByText("Completed").Selected = true; + Session["showWOCompleted"] = woStatusList.Items.FindByText("Completed").Selected; Session.Add("refresh", true); - AssignmentsGridView.DataBind(); + Response.Redirect(Request.RawUrl); } protected void cboStatusFilter_CheckedChanged(object sender, EventArgs e) { @@ -391,7 +391,7 @@ Session["showCompleted"] = cboShowCompleted.Checked; Session.Add("refresh", true); - AssignmentsGridView.DataBind(); + Response.Redirect(Request.RawUrl); } protected void woStatusList_SelectedIndexChanged(object sender, EventArgs e) { Modified: Website/Includes/AssignmentsTree.ascx =================================================================== --- Website/Includes/AssignmentsTree.ascx 2006-08-04 22:44:29 UTC (rev 274) +++ Website/Includes/AssignmentsTree.ascx 2006-08-05 19:00:23 UTC (rev 275) @@ -1,6 +1,6 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeFile="AssignmentsTree.ascx.cs" Inherits="AssignmentsTree" %> -<asp:CheckBox ID="statusComplete" runat="server" Text="Show Completed" AutoPostBack="True" OnCheckedChanged="statusComplete_CheckedChanged" OnInit="statusComplete_Init"/> +<asp:CheckBox ID="statusComplete" runat="server" Text="Show Completed" AutoPostBack="True" OnCheckedChanged="statusComplete_CheckedChanged" OnLoad="statusComplete_Load" Visible="false"/> <asp:TreeView ID="AssignmentTree" runat="server" SelectedNodeStyle-CssClass="selectednode" OnTreeNodePopulate="AssignmentTree_TreeNodePopulate" OnTreeNodeCollapsed="AssignmentTree_TreeNodeCollapsed" Modified: Website/Includes/AssignmentsTree.ascx.cs =================================================================== --- Website/Includes/AssignmentsTree.ascx.cs 2006-08-04 22:44:29 UTC (rev 274) +++ Website/Includes/AssignmentsTree.ascx.cs 2006-08-05 19:00:23 UTC (rev 275) @@ -142,7 +142,7 @@ if (e.Node.NavigateUrl.Contains("mode=created")) BuildCreatedUserList(e.Node); else if (e.Node.NavigateUrl.Contains("mode=mine")) - BuildMyUserList(e.Node); + BuildAssignmentList(e.Node); else BuildUserList(e.Node); break; @@ -183,7 +183,7 @@ { TreeNode mine = new TreeNode(); mine.Text = "My Assignments"; - mine.Value = Constants.PRODUCT_MINE.ToString(); + mine.Value = m_user.ID.ToString(); mine.SelectAction = TreeNodeSelectAction.Select; mine.PopulateOnDemand = true; mine.NavigateUrl = "~/Assignments.aspx?mode=mine&" + Constants.CODE_USER + "=" + m_user.ID; @@ -210,22 +210,6 @@ created.Expand(); } } - private void BuildMyUserList(TreeNode parent) - { - m_logg.Debug("Building my user list"); - ArrayList nodes = (ArrayList)Session["AssignmentNodes"]; - - // User name - TreeNode user = new TreeNode(); - user.Text = m_user.FULLNAME; - user.Value = m_user.ID.ToString(); - user.PopulateOnDemand = true; - user.SelectAction = TreeNodeSelectAction.Select; - user.NavigateUrl = "~/Assignments.aspx?" + Constants.CODE_USER + "=" + m_user.ID; - parent.ChildNodes.Add(user); - if (nodes.Contains(user.ValuePath)) - user.Expand(); - } private void BuildCreatedUserList(TreeNode parent) { m_logg.Debug("Building my user list"); @@ -301,9 +285,17 @@ m_logg.Debug("Building created assignment list"); // Populate the second-level nodes with assignments int status = Constants.ASSIGNMENT_UNFINISHED; - int productID = Convert.ToInt32(parent.Parent.Value); int userID = Convert.ToInt32(parent.Value); + int productID = Constants.PRODUCT_ANYID; + // try and get the product id (should only fail if in "My Assignments" + try + { + productID = Convert.ToInt32(parent.Parent.Value); + } + catch { } + + // Set status and get assignment list if (statusComplete.Checked) status = Constants.ASSIGNMENT_FINISHEDANDUNFINISHED; List<Assignment> assignmentList = UserDB.GetUserInfo(Convert.ToInt32(parent.Value)).GetAssignments(false, status); @@ -372,12 +364,20 @@ AssignmentTree_TreeNodePopulate(AssignmentTree, new TreeNodeEventArgs(node)); } } - Session["completeTree"] = statusComplete.Checked; + Session["showCompleted"] = statusComplete.Checked; + Session["showAICompleted"] = statusComplete.Checked; + Session["showAICompleted"] = statusComplete.Checked; } - protected void statusComplete_Init(object sender, EventArgs e) + protected void statusComplete_Load(object sender, EventArgs e) { - if (Session["completeTree"] == null) - Session.Add("completeTree", false); - statusComplete.Checked = Convert.ToBoolean(Session["completeTree"]); + if (Session["showCompleted"] == null) + Session["showCompleted"] = (m_user.GetConfigBool("filter_show_ai_completed") && m_user.GetConfigBool("filter_show_wo_completed")); + bool show = Convert.ToBoolean(Session["showCompleted"]); + + if (statusComplete.Checked != show) + { + statusComplete.Checked = show; + //statusComplete_CheckedChanged(sender, e); + } } } Modified: Website/Includes/Rights.ascx =================================================================== --- Website/Includes/Rights.ascx 2006-08-04 22:44:29 UTC (rev 274) +++ Website/Includes/Rights.ascx 2006-08-05 19:00:23 UTC (rev 275) @@ -191,11 +191,11 @@ </asp:FormView> <asp:ObjectDataSource ID="RightsDataSource" runat="server" SelectMethod="GetData" TypeName="tcdbDataSetTableAdapters.db_rightsTableAdapter" - InsertMethod="Insert" UpdateMethod="Update"> + InsertMethod="Insert" UpdateMethod="Update" OldValuesParameterFormatString="original_{0}"> <SelectParameters> <asp:SessionParameter Name="rightsID" SessionField="rightsID" Type="Int32" /> <asp:Parameter Name="rightsName" Type="String" /> - <asp:Parameter Name="active" Type="Boolean" DefaultValue="true" /> + <asp:SessionParameter DefaultValue="" Name="active" SessionField="active" Type="Boolean" /> </SelectParameters> <UpdateParameters> <asp:Parameter Name="rightsID" Type="Int32" /> @@ -209,10 +209,20 @@ </InsertParameters> </asp:ObjectDataSource> <asp:ObjectDataSource ID="RolesDataSource" runat="server" OldValuesParameterFormatString="original_{0}" - SelectMethod="GetData" TypeName="tcdbDataSetTableAdapters.db_roleTableAdapter"> + SelectMethod="GetData" TypeName="tcdbDataSetTableAdapters.db_roleTableAdapter" InsertMethod="Insert" UpdateMethod="Update"> <SelectParameters> <asp:Parameter Name="roleID" Type="Int32" /> <asp:Parameter Name="roleName" Type="String" /> - <asp:Parameter Name="active" Type="Boolean" DefaultValue="true" /> + <asp:SessionParameter DefaultValue="" Name="active" SessionField="active" Type="Boolean" /> </SelectParameters> + <UpdateParameters> + <asp:Parameter Name="roleID" Type="Int32" /> + <asp:Parameter Name="roleName" Type="String" /> + <asp:Parameter Name="roleDescription" Type="String" /> + <asp:Parameter Name="active" Type="Boolean" /> + </UpdateParameters> + <InsertParameters> + <asp:Parameter Name="roleName" Type="String" /> + <asp:Parameter Name="roleDescription" Type="String" /> + </InsertParameters> </asp:ObjectDataSource> Modified: Website/Includes/Rights.ascx.cs =================================================================== --- Website/Includes/Rights.ascx.cs 2006-08-04 22:44:29 UTC (rev 274) +++ Website/Includes/Rights.ascx.cs 2006-08-05 19:00:23 UTC (rev 275) @@ -25,8 +25,6 @@ protected void Page_Load(object sender, EventArgs e) { - if (!m_user.ISAUTHENTICATED) { return; } - m_logg.Debug("Loading page Rights"); if (rightsID == 0) { @@ -44,32 +42,10 @@ if (mode == "new") FormView1.ChangeMode(FormViewMode.Insert); + else if (mode == "edit") + FormView1.ChangeMode(FormViewMode.Edit); } - protected void FormView1_ItemInserted(object sender, FormViewInsertedEventArgs e) - { - tcdbDataSetTableAdapters.db_rightsTableAdapter rightsAdapter = new tcdbDataSetTableAdapters.db_rightsTableAdapter(); - tcdbDataSet.db_rightsDataTable rightsTable = rightsAdapter.GetData(null, e.Values["rightsName"].ToString(), true); - if (rightsTable.Count > 0) - { - rightsID = rightsTable[rightsTable.Count - 1].rightsID; - - updateRoles(); - Response.Redirect("~/Right.aspx?" + Constants.CODE_RIGHT + "=" + rightsID); - } - else - { - m_logg.Error("Could not insert right: " + e.Values["rightsName"]); - Response.Redirect("~/Administration.aspx"); - } - } - protected void deleteCmd(object sender, CommandEventArgs e) - { - tcdbDataSetTableAdapters.db_rightsTableAdapter rAdapter = new tcdbDataSetTableAdapters.db_rightsTableAdapter(); - rAdapter.Update(rightsID, right.NAME, right.DESCRIPTION, false); - - Response.Redirect("~/Administration.aspx"); - } protected void updateRoles() { ListBox roleList = (ListBox)FormView1.FindControl("roleList"); @@ -100,6 +76,31 @@ rrAdapter.DeleteRoleRights(roleID, rightsID); } } + protected void FormView1_ItemInserted(object sender, FormViewInsertedEventArgs e) + { + tcdbDataSetTableAdapters.db_rightsTableAdapter rightsAdapter = new tcdbDataSetTableAdapters.db_rightsTableAdapter(); + tcdbDataSet.db_rightsDataTable rightsTable = rightsAdapter.GetData(null, e.Values["rightsName"].ToString(), true); + + if (rightsTable.Count > 0) + { + rightsID = rightsTable[rightsTable.Count - 1].rightsID; + + updateRoles(); + Response.Redirect("~/Right.aspx?" + Constants.CODE_RIGHT + "=" + rightsID); + } + else + { + m_logg.Error("Could not insert right: " + e.Values["rightsName"]); + Response.Redirect("~/Administration.aspx"); + } + } + protected void deleteCmd(object sender, CommandEventArgs e) + { + tcdbDataSetTableAdapters.db_rightsTableAdapter rAdapter = new tcdbDataSetTableAdapters.db_rightsTableAdapter(); + rAdapter.Update(rightsID, right.NAME, right.DESCRIPTION, false); + + Response.Redirect("~/Administration.aspx"); + } protected void FormView1_ItemUpdated(object sender, FormViewUpdatedEventArgs e) { updateRoles(); @@ -110,6 +111,7 @@ if (FormView1.CurrentMode == FormViewMode.Insert && e.CommandName == "Cancel") Response.Redirect("Administration.aspx"); } + protected void roleList_DataBound(object sender, EventArgs e) { ListBox roleList = (ListBox)sender; @@ -117,7 +119,7 @@ if (FormView1.CurrentMode == FormViewMode.Edit) { tcdbDataSetTableAdapters.db_rightRoleTableAdapter rrAdapter = new tcdbDataSetTableAdapters.db_rightRoleTableAdapter(); - tcdbDataSet.db_rightRoleDataTable rrTable = rrAdapter.GetData(rightsID, true); + tcdbDataSet.db_rightRoleDataTable rrTable = rrAdapter.GetData(rightsID, active); foreach (tcdbDataSet.db_rightRoleRow row in rrTable) roleList.Items.FindByValue(row.roleID.ToString()).Selected = true; Modified: Website/Includes/RoleAdmin.ascx =================================================================== --- Website/Includes/RoleAdmin.ascx 2006-08-04 22:44:29 UTC (rev 274) +++ Website/Includes/RoleAdmin.ascx 2006-08-05 19:00:23 UTC (rev 275) @@ -1,34 +1,27 @@ -<%@ Control Language="C#" AutoEventWireup="true" CodeFile="RoleAdmin.ascx.cs" - Inherits="RoleAdmin" %> - +<%@ Control Language="C#" AutoEventWireup="true" CodeFile="RoleAdmin.ascx.cs" Inherits="RoleAdmin" %> <table width="700"> - <tr> - <td align="center" valign="middle" style="height: 101px"> - <asp:DropDownList ID="roleList" runat="server" DataSourceID="RoleDataSource" DataTextField="roleName" - DataValueField="roleID"> - </asp:DropDownList><asp:ObjectDataSource ID="RoleDataSource" runat="server" OldValuesParameterFormatString="original_{0}" - SelectMethod="GetData" TypeName="tcdbDataSetTableAdapters.db_roleTableAdapter" InsertMethod="Insert" UpdateMethod="Update"> - <SelectParameters> - <asp:Parameter Name="roleID" Type="Int32" /> - <asp:Parameter Name="roleName" Type="String" /> - <asp:Parameter DefaultValue="true" Name="active" Type="Boolean" /> - </SelectParameters> - <UpdateParameters> - <asp:Parameter Name="roleID" Type="Int32" /> - <asp:Parameter Name="roleName" Type="String" /> - <asp:Parameter Name="roleDescription" Type="String" /> - <asp:Parameter Name="active" Type="Boolean" /> - </UpdateParameters> - <InsertParameters> - <asp:Parameter Name="roleName" Type="String" /> - <asp:Parameter Name="roleDescription" Type="String" /> - </InsertParameters> - </asp:ObjectDataSource> - <asp:LinkButton ID="addRoleBtn" runat="server" CommandName="addRole" OnCommand="addRole">Add User To Role</asp:LinkButton> - - <asp:LinkButton ID="newRoleBtn" runat="server" CommandName="newRole" OnCommand="newRole" OnInit="newRole_Init">New User Role</asp:LinkButton> - - <asp:LinkButton ID="newRightBtn" runat="server" CommandName="newRight" OnCommand="newRight" OnInit="newRight_Init">New User Right</asp:LinkButton><br /> - </td> - </tr> - </table> + <tr> + <td align="center" valign="middle" style="height: 101px"> + <asp:DropDownList ID="roleList" runat="server" OnInit="roleList_Init" AutoPostBack="True"> + </asp:DropDownList> + <asp:LinkButton ID="viewRoleBtn" runat="server" CommandName="viewRole" OnCommand="viewRole" + OnLoad="viewRoleBtn_Load">View Role</asp:LinkButton> + + <asp:LinkButton ID="addRoleBtn" runat="server" CommandName="addRole" OnCommand="addRole" + OnLoad="addRoleBtn_Load">Add User To Role</asp:LinkButton> + <br /> + <br /><asp:DropDownList ID="rightsList" runat="server" OnInit="rightsList_Init" AutoPostBack="True"> + </asp:DropDownList> + <asp:LinkButton ID="viewRightBtn" runat="server" CommandName="viewRight" OnCommand="viewRight">View Right</asp:LinkButton> + + <asp:LinkButton ID="editRightsBtn" runat="server" CommandName="editRight" OnCommand="addRight">Edit Right</asp:LinkButton> + <br /> + <br /> + <asp:LinkButton ID="newRoleBtn" runat="server" CommandName="newRole" OnCommand="newRole" + OnInit="newRole_Init">New User Role</asp:LinkButton> + + <asp:LinkButton ID="newRightBtn" runat="server" CommandName="newRight" OnCommand="newRight" + OnInit="newRight_Init">New User Right</asp:LinkButton><br /> + </td> + </tr> +</table> Modified: Website/Includes/RoleAdmin.ascx.cs =================================================================== --- Website/Includes/RoleAdmin.ascx.cs 2006-08-04 22:44:29 UTC (rev 274) +++ Website/Includes/RoleAdmin.ascx.cs 2006-08-05 19:00:23 UTC (rev 275) @@ -17,39 +17,89 @@ public partial class RoleAdmin : SiteUserControl { private static ILog m_logg = LogManager.GetLogger("Page:Authenticate"); - int product = Convert.ToInt32(HttpContext.Current.Request.QueryString[Constants.CODE_PRODUCT]); + int productID = Convert.ToInt32(HttpContext.Current.Request.QueryString[Constants.CODE_PRODUCT]); protected void Page_Load(object sender, EventArgs e) { + if (productID == 0) + productID = Constants.PRODUCT_ANYID; } + + protected void viewRole(object sender, CommandEventArgs e) + { + Response.Redirect("Role.aspx?" + Constants.CODE_PRODUCT + "=" + productID + "&" + Constants.CODE_ROLE + "=" + roleList.SelectedValue); + } protected void addRole(object sender, CommandEventArgs e) { - Response.Redirect("Role.aspx?mode=edit&" + Constants.CODE_PRODUCT + "=" + product + "&" + Constants.CODE_ROLE + "=" + roleList.SelectedValue); + Response.Redirect("Role.aspx?mode=edit&" + Constants.CODE_PRODUCT + "=" + productID + "&" + Constants.CODE_ROLE + "=" + roleList.SelectedValue); } - protected void newRole(object sender, CommandEventArgs e) { - Response.Redirect("Role.aspx?mode=new&" + Constants.CODE_PRODUCT + "=" + product); + Response.Redirect("Role.aspx?mode=new&" + Constants.CODE_PRODUCT + "=" + productID); } - protected void newRight(object sender, CommandEventArgs e) { - Response.Redirect("Right.aspx?mode=new&" + Constants.CODE_PRODUCT + "=" + product); + Response.Redirect("Right.aspx?mode=new&" + Constants.CODE_PRODUCT + "=" + productID); } + protected void addRight(object sender, CommandEventArgs e) + { + Response.Redirect("Right.aspx?mode=edit&" + Constants.CODE_PRODUCT + "=" + productID + "&" + Constants.CODE_RIGHT + "=" + rightsList.SelectedValue); + } + protected void viewRight(object sender, CommandEventArgs e) + { + Response.Redirect("Right.aspx?" + Constants.CODE_PRODUCT + "=" + productID + "&" + Constants.CODE_RIGHT + "=" + rightsList.SelectedValue); + } protected void newRole_Init(object sender, EventArgs e) { - LinkButton newRole = (LinkButton)sender; - if (!m_user.HasRight("create_role", Constants.PRODUCT_ANYID)) - newRole.Visible = false; + newRoleBtn.Visible = false; } - protected void newRight_Init(object sender, EventArgs e) { - LinkButton newRight = (LinkButton) sender; + if (!m_user.HasRight("dev_access")) + newRightBtn.Visible = false; + } - if (!m_user.HasRight("dev_access", Constants.PRODUCT_ANYID)) - newRight.Visible = false; + protected void roleList_Init(object sender, EventArgs e) + { + tcdbDataSetTableAdapters.db_roleTableAdapter rAdapter = new tcdbDataSetTableAdapters.db_roleTableAdapter(); + tcdbDataSet.db_roleDataTable rTable = rAdapter.GetData(null, null, active); + + foreach (tcdbDataSet.db_roleRow row in rTable) + roleList.Items.Add(new ListItem(row.roleName, row.roleID.ToString())); } + protected void addRoleBtn_Load(object sender, EventArgs e) + { + String role = roleList.SelectedItem.Text; + + if (!m_user.HasRight("edit_role_users", productID)) + addRoleBtn.Visible = false; + } + protected void viewRoleBtn_Load(object sender, EventArgs e) + { + String role = roleList.SelectedItem.Text; + + if (!(m_user.HasRole(role,productID) && m_user.HasRight("view_my_roles", productID)) && + !m_user.HasRight("view_other_roles", productID)) + viewRoleBtn.Visible = false; + } + + protected void rightsList_Init(object sender, EventArgs e) + { + if (!m_user.HasRight("dev_access")) + { + rightsList.Visible = false; + viewRightBtn.Visible = false; + editRightsBtn.Visible = false; + + return; + } + + tcdbDataSetTableAdapters.db_rightsTableAdapter rAdapter = new tcdbDataSetTableAdapters.db_rightsTableAdapter(); + tcdbDataSet.db_rightsDataTable rTable = rAdapter.GetData(null, null, active); + + foreach (tcdbDataSet.db_rightsRow row in rTable) + rightsList.Items.Add(new ListItem(row.rightsName, row.rightsID.ToString())); + } } Modified: Website/Includes/Roles.ascx =================================================================== --- Website/Includes/Roles.ascx 2006-08-04 22:44:29 UTC (rev 274) +++ Website/Includes/Roles.ascx 2006-08-05 19:00:23 UTC (rev 275) @@ -42,14 +42,14 @@ <td colspan="2" align="left" valign="top" width="34%" style="height: 132px"> <strong>Rights:</strong><br /> <asp:ListBox ID="rightsList" runat="server" DataSourceID="RoleRightsDataSource" - DataTextField="rightName" DataValueField="rightsID" Height="150px" Width="150px"></asp:ListBox><asp:ObjectDataSource - ID="RoleRightsDataSource" runat="server" OldValuesParameterFormatString="original_{0}" - SelectMethod="GetData" TypeName="tcdbDataSetTableAdapters.db_roleRightTableAdapter"> - <SelectParameters> - <asp:SessionParameter Name="roleID" SessionField="roleID" Type="Int32" /> - <asp:Parameter DefaultValue="true" Name="active" Type="Boolean" /> - </SelectParameters> - </asp:ObjectDataSource> + DataTextField="rightName" DataValueField="rightsID" Height="150px" Width="150px"> + </asp:ListBox><asp:ObjectDataSource ID="RoleRightsDataSource" runat="server" OldValuesParameterFormatString="original_{0}" + SelectMethod="GetData" TypeName="tcdbDataSetTableAdapters.db_roleRightTableAdapter"> + <SelectParameters> + <asp:SessionParameter Name="roleID" SessionField="roleID" Type="Int32" /> + <asp:Parameter DefaultValue="true" Name="active" Type="Boolean" /> + </SelectParameters> + </asp:ObjectDataSource> </td> </tr> <tr> @@ -58,11 +58,11 @@ </tr> <tr> <td align="left" colspan="6"> - <asp:LinkButton ID="New" runat="server" CommandName="new">New</asp:LinkButton> - | - <asp:LinkButton ID="Edit" runat="server" CommandName="edit">Edit</asp:LinkButton> - | - <asp:LinkButton ID="Delete" runat="server" CommandName="deleteCmd" OnCommand="deleteCmd">Delete</asp:LinkButton></td> + <asp:LinkButton ID="New" runat="server" CommandName="new" OnInit="New_Init">New</asp:LinkButton><asp:Label + ID="newLbl" runat="server" Text=" | "></asp:Label><asp:LinkButton + ID="Edit" runat="server" CommandName="edit" OnInit="Edit_Init">Edit</asp:LinkButton><asp:Label ID="deleteLbl" + runat="server" Text=" | "></asp:Label><asp:LinkButton ID="Delete" + runat="server" CommandName="deleteCmd" OnCommand="deleteCmd" OnLoad="Delete_Load">Delete</asp:LinkButton></td> </tr> </table> </div> @@ -71,7 +71,8 @@ </div> </ItemTemplate> <EditItemTemplate> - <asp:RequiredFieldValidator ID="nameValidator" runat="server" ErrorMessage="You must enter a role name." ControlToValidate="nameBox"></asp:RequiredFieldValidator> + <asp:RequiredFieldValidator ID="nameValidator" runat="server" ErrorMessage="You must enter a role name." + ControlToValidate="nameBox"></asp:RequiredFieldValidator> <div class="xsnazzy"> <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"> </b></b> @@ -80,7 +81,7 @@ <tr> <td align="left" colspan="6"> <strong>Name:</strong> - <asp:TextBox ID="nameBox" runat="server" Text='<%# Bind("roleName") %>' Width="70%"></asp:TextBox></td> + <asp:TextBox ID="nameBox" runat="server" Text='<%# Bind("roleName") %>' Width="70%" OnInit="nameBox_Init"></asp:TextBox></td> </tr> <tr> <td class="hr" colspan="6"> @@ -90,7 +91,8 @@ <td align="left" colspan="6" valign="top"> <strong>Description:</strong><br /> <FTB:FreeTextBox ID="descriptionBox" runat="server" SupportFolder="~/aspnet_client/FreeTextBox/" - Width="100%" Text='<%# Bind("roleDescription") %>' Height="200px" EnableHtmlMode="true" DisableIEBackButton="False"> + Width="100%" Text='<%# Bind("roleDescription") %>' Height="200px" EnableHtmlMode="true" + DisableIEBackButton="False" OnInit="descriptionBox_Init"> </FTB:FreeTextBox> </td> </tr> @@ -100,22 +102,21 @@ </tr> <tr> <td colspan="2" align="left" valign="top" width="33%"> - <strong>Products: <asp:DropDownList ID="productList" runat="server" DataSourceID="ProductDataSource" - DataTextField="name" DataValueField="productID" AutoPostBack="True" OnDataBound="productListEdit_DataBound" - OnSelectedIndexChanged="productList_SelectedIndexChanged"> + <strong>Products: <asp:DropDownList ID="productList" runat="server" AutoPostBack="True" + OnSelectedIndexChanged="productList_SelectedIndexChanged" OnInit="productList_Init"> </asp:DropDownList></strong> </td> <td colspan="2" align="left" valign="top" width="33%"> <strong>Users:<br /> </strong> - <asp:ListBox ID="userList" runat="server" DataSourceID="UserDataSource" DataTextField="fullName" - DataValueField="userID" SelectionMode="Multiple" OnDataBound="userList_DataBound" Height="150px" - Width="150px"></asp:ListBox></td> + <asp:ListBox ID="userList" runat="server" SelectionMode="Multiple" + Height="150px" Width="150px" OnInit="userList_Init"></asp:ListBox></td> <td colspan="2" align="left" valign="top" width="34%"> <strong>Rights:<br /> - <asp:LinkButton ID="newRight" runat="server" CommandName="newRight" OnCommand="newRight" OnInit="newRight_Init">New Right</asp:LinkButton><br /> + <asp:LinkButton ID="newRight" runat="server" CommandName="newRight" OnCommand="newRight" + OnInit="newRight_Init">New Right</asp:LinkButton><br /> </strong> <asp:ListBox ID="rightsList" runat="server" DataSourceID="RightsDataSource" DataTextField="rightsName" DataValueField="rightsID" SelectionMode="Multiple" - Height="150px" OnDataBound="rightsList_DataBound" Width="150px"></asp:ListBox> + Height="150px" OnDataBound="rightsList_DataBound" Width="150px" OnInit="rightsList_Init"></asp:ListBox> </td> </tr> <tr> @@ -139,7 +140,8 @@ </div> </EditItemTemplate> <InsertItemTemplate> - <asp:RequiredFieldValidator ID="nameValidator" runat="server" ErrorMessage="You must enter a role name." ControlToValidate="nameBox"></asp:RequiredFieldValidator> + <asp:RequiredFieldValidator ID="nameValidator" runat="server" ErrorMessage="You must enter a role name." + ControlToValidate="nameBox"></asp:RequiredFieldValidator> <div class="xsnazzy"> <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"> </b></b> @@ -169,21 +171,20 @@ <tr> <td colspan="2" align="left" valign="top" width="33%"> <strong>Products: </strong><asp:DropDownList ID="productList" runat="server" - DataSourceID="ProductDataSource" DataTextField="name" DataValueField="productID" - AutoPostBack="True" OnDataBound="productListInsert_DataBound" OnSelectedIndexChanged="productList_SelectedIndexChanged"> + AutoPostBack="True" OnSelectedIndexChanged="productList_SelectedIndexChanged" OnInit="productList_Init"> </asp:DropDownList> </td> <td colspan="2" align="left" valign="top" width="33%"> <strong>Users:<br /> </strong> - <asp:ListBox ID="userList" runat="server" DataSourceID="UserDataSource" DataTextField="fullName" - DataValueField="userID" SelectionMode="Multiple" OnDataBound="userList_DataBound" Height="150px" - Width="150px"></asp:ListBox></td> + <asp:ListBox ID="userList" runat="server" SelectionMode="Multiple" + Height="150px" Width="150px"></asp:ListBox></td> <td colspan="2" align="left" valign="top" width="34%"> <strong>Rights: <asp:LinkButton ID="newRight" runat="server" CommandName="newRight" OnCommand="newRight">New Right</asp:LinkButton><br /> </strong> <asp:ListBox ID="rightsList" runat="server" DataSourceID="RightsDataSource" - DataTextField="rightsName" DataValueField="rightsID" SelectionMode="Multiple" Height="150px" Width="150px"></asp:ListBox> + DataTextField="rightsName" DataValueField="rightsID" SelectionMode="Multiple" + Height="150px" Width="150px"></asp:ListBox> </td> </tr> <tr> @@ -206,9 +207,9 @@ </div> </InsertItemTemplate> </asp:FormView> -<asp:ObjectDataSource ID="RoleDataSource" runat="server" InsertMethod="Insert" - SelectMethod="GetData" TypeName="tcdbDataSetTableAdapters.db_roleTableAdapter" - UpdateMethod="Update"> +<asp:ObjectDataSource ID="RoleDataSource" runat="server" InsertMethod="Insert" SelectMethod="GetData" + TypeName="tcdbDataSetTableAdapters.db_roleTableAdapter" UpdateMethod="Update" + OldValuesParameterFormatString="original_{0}"> <UpdateParameters> <asp:Parameter Name="roleID" Type="Int32" /> <asp:Parameter Name="roleName" Type="String" /> @@ -218,32 +219,29 @@ <SelectParameters> <asp:SessionParameter Name="roleID" SessionField="roleID" Type="Int32" /> <asp:Parameter Name="roleName" Type="String" /> - <asp:Parameter Name="active" Type="Boolean" DefaultValue="true" /> + <asp:SessionParameter DefaultValue="" Name="active" SessionField="active" Type="Boolean" /> </SelectParameters> <InsertParameters> <asp:Parameter Name="roleName" Type="String" /> <asp:Parameter Name="roleDescription" Type="String" /> </InsertParameters> </asp:ObjectDataSource> -<asp:ObjectDataSource ID="ProductDataSource" runat="server" OldValuesParameterFormatString="original_{0}" - SelectMethod="GetData" TypeName="tcdbDataSetTableAdapters.db_productsTableAdapter"> - <SelectParameters> - <asp:Parameter Name="active" Type="Boolean" DefaultValue="true" /> - <asp:Parameter Name="productID" Type="Int32" /> - </SelectParameters> -</asp:ObjectDataSource> -<asp:ObjectDataSource ID="UserDataSource" runat="server" OldValuesParameterFormatString="original_{0}" - SelectMethod="GetData" TypeName="tcdbDataSetTableAdapters.db_usersTableAdapter"> - <SelectParameters> - <asp:Parameter Name="username" Type="String" /> - <asp:Parameter Name="userID" Type="Int32" /> - </SelectParameters> -</asp:ObjectDataSource> <asp:ObjectDataSource ID="RightsDataSource" runat="server" OldValuesParameterFormatString="original_{0}" - SelectMethod="GetData" TypeName="tcdbDataSetTableAdapters.db_rightsTableAdapter"> + SelectMethod="GetData" TypeName="tcdbDataSetTableAdapters.db_rightsTableAdapter" + InsertMethod="Insert" UpdateMethod="Update"> <SelectParameters> <asp:Parameter Name="rightsID" Type="Int32" /> <asp:Parameter Name="rightsName" Type="String" /> - <asp:Parameter Name="active" Type="Boolean" DefaultValue="true" /> + <asp:SessionParameter DefaultValue="" Name="active" SessionField="active" Type="Boolean" /> </SelectParameters> + <UpdateParameters> + <asp:Parameter Name="rightsID" Type="Int32" /> + <asp:Parameter Name="rightsName" Type="String" /> + <asp:Parameter Name="rightsDescription" Type="String" /> + <asp:Parameter Name="active" Type="Boolean" /> + </UpdateParameters> + <InsertParameters> + <asp:Parameter Name="rightsName" Type="String" /> + <asp:Parameter Name="rightsDescription" Type="String" /> + </InsertParameters> </asp:ObjectDataSource> Modified: Website/Includes/Roles.ascx.cs =================================================================== --- Website/Includes/Roles.ascx.cs 2006-08-04 22:44:29 UTC (rev 274) +++ Website/Includes/Roles.ascx.cs 2006-08-05 19:00:23 UTC (rev 275) @@ -27,8 +27,6 @@ protected void Page_Load(object sender, EventArgs e) { - if (!m_user.ISAUTHENTICATED) { return; } - m_logg.Debug("Loading page Roles"); if (roleID == 0) { @@ -40,13 +38,21 @@ } } + // Get Role info + role = RightDB.GetRoleInfo(roleID); Session.Add("roleID", roleID); - role = RightDB.GetRoleInfo(roleID); + + // Check rights + if (!(m_user.HasRole(role.NAME) && m_user.HasRight("view_my_roles",Constants.PRODUCT_ANYID)) && + !m_user.HasRight("view_other_roles",Constants.PRODUCT_ANYID)) + Response.Redirect("~/Administration.aspx"); + + // Setup notes //Session.Add("tableName", "tcdb_role"); - if (mode == "new") + if (mode == "new" && m_user.HasRight("create_role",Constants.PRODUCT_ANYID)) FormView1.ChangeMode(FormViewMode.Insert); - else if (mode == "edit") + else if (mode == "edit" && (m_user.HasRight("edit_role",Constants.PRODUCT_ANYID) || m_user.HasRight("edit_role_users",Constants.PRODUCT_ANYID))) FormView1.ChangeMode(FormViewMode.Edit); } protected void updateUserRoleProducts() @@ -164,6 +170,7 @@ Response.Redirect("~/Administration.aspx"); } } + protected void userList_DataBound(object sender, EventArgs e) { Dictionary<String, ArrayList> ProductUsers = (Dictionary<String, ArrayList>)Session["ProductUsers"]; @@ -192,6 +199,7 @@ foreach (tcdbDataSet.db_roleRightRow row in roleRightTable) rightsList.Items.FindByValue(row.rightsID.ToString()).Selected = true; } + protected void addUsers(object sender, CommandEventArgs e) { updateUserRoleProducts(); @@ -200,6 +208,7 @@ { Response.Redirect("Right.aspx?mode=new&"+Constants.CODE_ROLE+"=" + roleID); } + protected void productList_SelectedIndexChanged(object sender, EventArgs e) { ListBox userList = (ListBox)FormView1.FindControl("userList"); @@ -215,7 +224,7 @@ // Get Product Users if (Session["ProductUsers"] == null) - updateProductUsers(productList, userList); + updateProductUsers(); Dictionary<String, ArrayList> ProductUsers = (Dictionary<String, ArrayList>)Session["ProductUsers"]; // update selected product @@ -235,20 +244,26 @@ Session["product"] = productList.SelectedValue; // Update userlist - userList.DataBind(); + userList_populate(); } - protected void updateProductUsers(DropDownList productList, ListBox userList) + protected void updateProductUsers() { // Init ProductUsers if (Session["ProductUsers"] == null) Session.Add("ProductUsers", new Dictionary<String, ArrayList>()); Dictionary<String, ArrayList> ProductUsers = (Dictionary<String, ArrayList>)Session["ProductUsers"]; + ProductUsers.Clear(); - ProductUsers.Clear(); - foreach (ListItem productItem in productList.Items) + if (FormView1.CurrentMode == FormViewMode.Insert) + return; + + tcdbDataSetTableAdapters.db_productsTableAdapter pAdapter = new tcdbDataSetTableAdapters.db_productsTableAdapter(); + tcdbDataSet.db_productsDataTable pTable = pAdapter.GetData(active, null); + + foreach (tcdbDataSet.db_productsRow pRow in pTable) { ArrayList users = new ArrayList(); - String productID = productItem.Value; + String productID = pRow.productID.ToString(); tcdbDataSetTableAdapters.db_roleProductUserTableAdapter roleProductUserAdapter = new tcdbDataSetTableAdapters.db_roleProductUserTableAdapter(); tcdbDataSet.db_roleProductUserDataTable roleProductUserTable = roleProductUserAdapter.GetData(roleID, Convert.ToInt32(productID), true); @@ -262,25 +277,7 @@ ProductUsers.Add(productID, users); } } - protected void productListEdit_DataBound(object sender, EventArgs e) - { - DropDownList productList = (DropDownList)sender; - ListBox userList = (ListBox)FormView1.FindControl("userList"); - updateProductUsers(productList, userList); - Session["product"] = productList.SelectedValue; - userList.DataBind(); - } - protected void productListInsert_DataBound(object sender, EventArgs e) - { - DropDownList productList = (DropDownList)sender; - ListBox userList = (ListBox)FormView1.FindControl("userList"); - - updateProductUsers(productList, userList); - if (productID_in != null) - productList.SelectedValue = productID_in; - Session["product"] = productList.SelectedValue; - } protected void ProductUserPanel_Init(object sender, EventArgs e) { Panel puPanel = (Panel)sender; @@ -324,4 +321,113 @@ if (!m_user.HasRight("dev_access")) btn.Visible = false; } + protected void New_Init(object sender, EventArgs e) + { + LinkButton newBtn = (LinkButton)sender; + Label newLbl = (Label)FormView1.FindControl("newLbl"); + + if (!m_user.HasRight("create_role",Constants.PRODUCT_ANYID)){ + newBtn.Visible = false; + newLbl.Visible = false; + } + } + protected void Edit_Init(object sender, EventArgs e) + { + LinkButton editBtn = (LinkButton)sender; + + if (!m_user.HasRight("edit_role",Constants.PRODUCT_ANYID) && !m_user.HasRight("edit_role_users",Constants.PRODUCT_ANYID)) + editBtn.Visible = false; + } + protected void Delete_Load(object sender, EventArgs e) + { + LinkButton deleteBtn = (LinkButton)sender; + Label deleteLbl = (Label)FormView1.FindControl("deleteLbl"); + updateProductUsers(); + Dictionary<String, ArrayList> Produ... [truncated message content] |
From: <ro...@us...> - 2006-08-07 18:31:30
|
Revision: 278 Author: rouquin Date: 2006-08-07 11:31:14 -0700 (Mon, 07 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=278&view=rev Log Message: ----------- The Product page is fully functional (pending bug #9825). Also fixed a few bugs elsewhere. Modified Paths: -------------- Website/App_Code/Products.cs Website/App_Code/tcdbDataSet.xsd Website/App_Code/tcdbDataSet.xss Website/Includes/Administration.ascx.cs Website/Includes/Assignments.ascx Website/Includes/Assignments.ascx.cs Website/Includes/FeaturesTree.ascx.cs Website/Includes/Header_Menu.ascx Website/Includes/Products.ascx Website/Includes/Products.ascx.cs Website/Includes/Rights.ascx Website/Includes/Rights.ascx.cs Website/Includes/Roles.ascx Website/Includes/Roles.ascx.cs Website/Product.aspx Modified: Website/App_Code/Products.cs =================================================================== --- Website/App_Code/Products.cs 2006-08-07 15:45:20 UTC (rev 277) +++ Website/App_Code/Products.cs 2006-08-07 18:31:14 UTC (rev 278) @@ -25,23 +25,14 @@ public static Product GetProduct(bool isActive, int productID) { - tcdbDataSet ds = new tcdbDataSet(); tcdbDataSetTableAdapters.db_productsTableAdapter ta = new tcdbDataSetTableAdapters.db_productsTableAdapter(); - ta.GetData(isActive, productID); - ta.Fill(ds.db_products, isActive, productID); - + tcdbDataSet.db_productsDataTable pTable = ta.GetData(isActive, productID); Product product = new Product(); - DataTableReader dr = ds.db_products.CreateDataReader(); - if (dr.HasRows && dr.Read()) - { - int id = Help.DB_IntParse(dr["productID"]); - string name = Help.DB_StringParse(dr["name"]); - string description = Help.DB_StringParse(dr["description"]); - string codeName = Help.DB_StringParse(dr["codeName"]); - bool active = Help.DB_BoolParse(dr["active"]); + if (pTable.Count > 0){ + tcdbDataSet.db_productsRow row = pTable[0]; - product = new Product(id, name, description, codeName, active); + product = new Product(row.productID, row.name, row.description, row.codeName, row.active); } return product; @@ -49,36 +40,13 @@ public static List<Product> GetProductList(bool isActive) { - tcdbDataSet ds = new tcdbDataSet(); tcdbDataSetTableAdapters.db_productsTableAdapter ta = new tcdbDataSetTableAdapters.db_productsTableAdapter(); - ta.GetData(isActive, null); - ta.Fill(ds.db_products, isActive, null); - + tcdbDataSet.db_productsDataTable pTable = ta.GetData(isActive, null); List<Product> productList = new List<Product>(); - DataTableReader dr = ds.db_products.CreateDataReader(); - if (dr.HasRows) - { - int id; - string name; - string description; - string codeName; - bool active; + foreach (tcdbDataSet.db_productsRow row in pTable) + productList.Add(new Product(row.productID, row.name, row.description, row.codeName, row.active)); - while (dr.Read()) { - Product product = new Product(); - - id = Help.DB_IntParse(dr["productID"]); - name = Help.DB_StringParse(dr["name"]); - description = Help.DB_StringParse(dr["description"]); - codeName = Help.DB_StringParse(dr["codeName"]); - active = Help.DB_BoolParse(dr["active"]); - - product = new Product(id, name, description, codeName, active); - productList.Add(product); - } - } - return productList; } } Modified: Website/App_Code/tcdbDataSet.xsd =================================================================== --- Website/App_Code/tcdbDataSet.xsd 2006-08-07 15:45:20 UTC (rev 277) +++ Website/App_Code/tcdbDataSet.xsd 2006-08-07 18:31:14 UTC (rev 278) @@ -944,108 +944,108 @@ <xs:element name="db_products" msprop:Generator_UserTableName="db_products" msprop:Generator_RowDeletedName="db_productsRowDeleted" msprop:Generator_RowChangedName="db_productsRowChanged" msprop:Generator_RowClassName="db_productsRow" msprop:Generator_RowChangingName="db_productsRowChanging" msprop:Generator_RowEvArgName="db_productsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_productsRowChangeEventHandler" msprop:Generator_TableClassName="db_productsDataTable" msprop:Generator_TableVarName="tabledb_products" msprop:Generator_RowDeletingName="db_productsRowDeleting" msprop:Generator_TablePropName="db_products"> <xs:complexType> <xs:sequence> - <xs:element name="productID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="productID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> + <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="devManager" msprop:Generator_UserColumnName="devManager" msprop:Generator_ColumnPropNameInRow="devManager" msprop:Generator_ColumnVarNameInTable="columndevManager" msprop:Generator_ColumnPropNameInTable="devManagerColumn" type="xs:int" minOccurs="0" /> - <xs:element name="qaManager" msprop:Generator_UserColumnName="qaManager" msprop:Generator_ColumnPropNameInRow="qaManager" msprop:Generator_ColumnVarNameInTable="columnqaManager" msprop:Generator_ColumnPropNameInTable="qaManagerColumn" type="xs:int" minOccurs="0" /> - <xs:element name="devLead" msprop:Generator_UserColumnName="devLead" msprop:Generator_ColumnPropNameInRow="devLead" msprop:Generator_ColumnVarNameInTable="columndevLead" msprop:Generator_ColumnPropNameInTable="devLeadColumn" type="xs:int" minOccurs="0" /> - <xs:element name="qaLead" msprop:Generator_UserColumnName="qaLead" msprop:Generator_ColumnPropNameInRow="qaLead" msprop:Generator_ColumnVarNameInTable="columnqaLead" msprop:Generator_ColumnPropNameInTable="qaLeadColumn" type="xs:int" minOccurs="0" /> - <xs:element name="pm" msprop:Generator_UserColumnName="pm" msprop:Generator_ColumnPropNameInRow="pm" msprop:Generator_ColumnVarNameInTable="columnpm" msprop:Generator_ColumnPropNameInTable="pmColumn" type="xs:int" minOccurs="0" /> - <xs:element name="codeName" msprop:Generator_UserColumnName="codeName" msprop:Generator_ColumnPropNameInRow="codeName" msprop:Generator_ColumnVarNameInTable="columncodeName" msprop:Generator_ColumnPropNameInTable="codeNameColumn" minOccurs="0"> + <xs:element name="devManager" msprop:Generator_UserColumnName="devManager" msprop:Generator_ColumnVarNameInTable="columndevManager" msprop:Generator_ColumnPropNameInRow="devManager" msprop:Generator_ColumnPropNameInTable="devManagerColumn" type="xs:int" minOccurs="0" /> + <xs:element name="qaManager" msprop:Generator_UserColumnName="qaManager" msprop:Generator_ColumnVarNameInTable="columnqaManager" msprop:Generator_ColumnPropNameInRow="qaManager" msprop:Generator_ColumnPropNameInTable="qaManagerColumn" type="xs:int" minOccurs="0" /> + <xs:element name="devLead" msprop:Generator_UserColumnName="devLead" msprop:Generator_ColumnVarNameInTable="columndevLead" msprop:Generator_ColumnPropNameInRow="devLead" msprop:Generator_ColumnPropNameInTable="devLeadColumn" type="xs:int" minOccurs="0" /> + <xs:element name="qaLead" msprop:Generator_UserColumnName="qaLead" msprop:Generator_ColumnVarNameInTable="columnqaLead" msprop:Generator_ColumnPropNameInRow="qaLead" msprop:Generator_ColumnPropNameInTable="qaLeadColumn" type="xs:int" minOccurs="0" /> + <xs:element name="pm" msprop:Generator_UserColumnName="pm" msprop:Generator_ColumnVarNameInTable="columnpm" msprop:Generator_ColumnPropNameInRow="pm" msprop:Generator_ColumnPropNameInTable="pmColumn" type="xs:int" minOccurs="0" /> + <xs:element name="codeName" msprop:Generator_UserColumnName="codeName" msprop:Generator_ColumnVarNameInTable="columncodeName" msprop:Generator_ColumnPropNameInRow="codeName" msprop:Generator_ColumnPropNameInTable="codeNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="10" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_actionItems" msprop:Generator_UserTableName="db_actionItems" msprop:Generator_RowDeletedName="db_actionItemsRowDeleted" msprop:Generator_RowChangedName="db_actionItemsRowChanged" msprop:Generator_RowClassName="db_actionItemsRow" msprop:Generator_RowChangingName="db_actionItemsRowChanging" msprop:Generator_RowEvArgName="db_actionItemsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_actionItemsRowChangeEventHandler" msprop:Generator_TableClassName="db_actionItemsDataTable" msprop:Generator_TableVarName="tabledb_actionItems" msprop:Generator_RowDeletingName="db_actionItemsRowDeleting" msprop:Generator_TablePropName="db_actionItems"> <xs:complexType> <xs:sequence> - <xs:element name="actionItemID" msprop:Generator_UserColumnName="actionItemID" msprop:Generator_ColumnVarNameInTable="columnactionItemID" msprop:Generator_ColumnPropNameInRow="actionItemID" msprop:Generator_ColumnPropNameInTable="actionItemIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="actionItemID" msprop:Generator_UserColumnName="actionItemID" msprop:Generator_ColumnPropNameInRow="actionItemID" msprop:Generator_ColumnVarNameInTable="columnactionItemID" msprop:Generator_ColumnPropNameInTable="actionItemIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> + <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="percentComplete" msprop:Generator_UserColumnName="percentComplete" msprop:Generator_ColumnVarNameInTable="columnpercentComplete" msprop:Generator_ColumnPropNameInRow="percentComplete" msprop:Generator_ColumnPropNameInTable="percentCompleteColumn" type="xs:int" minOccurs="0" /> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="percentComplete" msprop:Generator_UserColumnName="percentComplete" msprop:Generator_ColumnPropNameInRow="percentComplete" msprop:Generator_ColumnVarNameInTable="columnpercentComplete" msprop:Generator_ColumnPropNameInTable="percentCompleteColumn" type="xs:int" minOccurs="0" /> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="createdBy" msdata:ReadOnly="true" msprop:Generator_UserColumnName="createdBy" msprop:Generator_ColumnVarNameInTable="columncreatedBy" msprop:Generator_ColumnPropNameInRow="createdBy" msprop:Generator_ColumnPropNameInTable="createdByColumn" minOccurs="0"> + <xs:element name="createdBy" msdata:ReadOnly="true" msprop:Generator_UserColumnName="createdBy" msprop:Generator_ColumnPropNameInRow="createdBy" msprop:Generator_ColumnVarNameInTable="columncreatedBy" msprop:Generator_ColumnPropNameInTable="createdByColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> - <xs:element name="testPass" msprop:Generator_UserColumnName="testPass" msprop:Generator_ColumnPropNameInRow="testPass" msprop:Generator_ColumnVarNameInTable="columntestPass" msprop:Generator_ColumnPropNameInTable="testPassColumn" minOccurs="0"> + <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> + <xs:element name="testPass" msprop:Generator_UserColumnName="testPass" msprop:Generator_ColumnVarNameInTable="columntestPass" msprop:Generator_ColumnPropNameInRow="testPass" msprop:Generator_ColumnPropNameInTable="testPassColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> + <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="statusID" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="testPassID" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> - <xs:element name="creatorID" msprop:Generator_UserColumnName="creatorID" msprop:Generator_ColumnVarNameInTable="columncreatorID" msprop:Generator_ColumnPropNameInRow="creatorID" msprop:Generator_ColumnPropNameInTable="creatorIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="statusID" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="testPassID" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="creatorID" msprop:Generator_UserColumnName="creatorID" msprop:Generator_ColumnPropNameInRow="creatorID" msprop:Generator_ColumnVarNameInTable="columncreatorID" msprop:Generator_ColumnPropNameInTable="creatorIDColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_status" msprop:Generator_UserTableName="db_status" msprop:Generator_RowDeletedName="db_statusRowDeleted" msprop:Generator_RowChangedName="db_statusRowChanged" msprop:Generator_RowClassName="db_statusRow" msprop:Generator_RowChangingName="db_statusRowChanging" msprop:Generator_RowEvArgName="db_statusRowChangeEvent" msprop:Generator_RowEvHandlerName="db_statusRowChangeEventHandler" msprop:Generator_TableClassName="db_statusDataTable" msprop:Generator_TableVarName="tabledb_status" msprop:Generator_RowDeletingName="db_statusRowDeleting" msprop:Generator_TablePropName="db_status"> <xs:complexType> <xs:sequence> - <xs:element name="statusID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" /> - <xs:element name="Description" msprop:Generator_UserColumnName="Description" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnVarNameInTable="columnDescription" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" minOccurs="0"> + <xs:element name="statusID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" /> + <xs:element name="Description" msprop:Generator_UserColumnName="Description" msprop:Generator_ColumnVarNameInTable="columnDescription" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> @@ -1058,113 +1058,113 @@ <xs:element name="db_notes" msprop:Generator_UserTableName="db_notes" msprop:Generator_RowDeletedName="db_notesRowDeleted" msprop:Generator_RowChangedName="db_notesRowChanged" msprop:Generator_RowClassName="db_notesRow" msprop:Generator_RowChangingName="db_notesRowChanging" msprop:Generator_RowEvArgName="db_notesRowChangeEvent" msprop:Generator_RowEvHandlerName="db_notesRowChangeEventHandler" msprop:Generator_TableClassName="db_notesDataTable" msprop:Generator_TableVarName="tabledb_notes" msprop:Generator_RowDeletingName="db_notesRowDeleting" msprop:Generator_TablePropName="db_notes"> <xs:complexType> <xs:sequence> - <xs:element name="noteID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="noteID" msprop:Generator_ColumnPropNameInRow="noteID" msprop:Generator_ColumnVarNameInTable="columnnoteID" msprop:Generator_ColumnPropNameInTable="noteIDColumn" type="xs:int" /> - <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="noteField" msprop:Generator_UserColumnName="noteField" msprop:Generator_ColumnPropNameInRow="noteField" msprop:Generator_ColumnVarNameInTable="columnnoteField" msprop:Generator_ColumnPropNameInTable="noteFieldColumn" minOccurs="0"> + <xs:element name="noteID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="noteID" msprop:Generator_ColumnVarNameInTable="columnnoteID" msprop:Generator_ColumnPropNameInRow="noteID" msprop:Generator_ColumnPropNameInTable="noteIDColumn" type="xs:int" /> + <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="noteField" msprop:Generator_UserColumnName="noteField" msprop:Generator_ColumnVarNameInTable="columnnoteField" msprop:Generator_ColumnPropNameInRow="noteField" msprop:Generator_ColumnPropNameInTable="noteFieldColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="noteAuthor" msprop:Generator_UserColumnName="noteAuthor" msprop:Generator_ColumnPropNameInRow="noteAuthor" msprop:Generator_ColumnVarNameInTable="columnnoteAuthor" msprop:Generator_ColumnPropNameInTable="noteAuthorColumn" type="xs:int" minOccurs="0" /> + <xs:element name="noteAuthor" msprop:Generator_UserColumnName="noteAuthor" msprop:Generator_ColumnVarNameInTable="columnnoteAuthor" msprop:Generator_ColumnPropNameInRow="noteAuthor" msprop:Generator_ColumnPropNameInTable="noteAuthorColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_assignments" msprop:Generator_UserTableName="db_assignments" msprop:Generator_RowDeletedName="db_assignmentsRowDeleted" msprop:Generator_RowChangedName="db_assignmentsRowChanged" msprop:Generator_RowClassName="db_assignmentsRow" msprop:Generator_RowChangingName="db_assignmentsRowChanging" msprop:Generator_RowEvArgName="db_assignmentsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_assignmentsRowChangeEventHandler" msprop:Generator_TableClassName="db_assignmentsDataTable" msprop:Generator_TableVarName="tabledb_assignments" msprop:Generator_RowDeletingName="db_assignmentsRowDeleting" msprop:Generator_TablePropName="db_assignments"> <xs:complexType> <xs:sequence> - <xs:element name="aType" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aType" msprop:Generator_ColumnPropNameInRow="aType" msprop:Generator_ColumnVarNameInTable="columnaType" msprop:Generator_ColumnPropNameInTable="aTypeColumn" minOccurs="0"> + <xs:element name="aType" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aType" msprop:Generator_ColumnVarNameInTable="columnaType" msprop:Generator_ColumnPropNameInRow="aType" msprop:Generator_ColumnPropNameInTable="aTypeColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="childID" msdata:ReadOnly="true" msprop:Generator_UserColumnName="childID" msprop:Generator_ColumnPropNameInRow="childID" msprop:Generator_ColumnVarNameInTable="columnchildID" msprop:Generator_ColumnPropNameInTable="childIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="creator" msdata:ReadOnly="true" msprop:Generator_UserColumnName="creator" msprop:Generator_ColumnPropNameInRow="creator" msprop:Generator_ColumnVarNameInTable="columncreator" msprop:Generator_ColumnPropNameInTable="creatorColumn" minOccurs="0"> + <xs:element name="childID" msdata:ReadOnly="true" msprop:Generator_UserColumnName="childID" msprop:Generator_ColumnVarNameInTable="columnchildID" msprop:Generator_ColumnPropNameInRow="childID" msprop:Generator_ColumnPropNameInTable="childIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="creator" msdata:ReadOnly="true" msprop:Generator_UserColumnName="creator" msprop:Generator_ColumnVarNameInTable="columncreator" msprop:Generator_ColumnPropNameInRow="creator" msprop:Generator_ColumnPropNameInTable="creatorColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> + <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="WOTotalTest" msprop:Generator_UserColumnName="WOTotalTest" msprop:Generator_ColumnPropNameInRow="WOTotalTest" msprop:Generator_ColumnVarNameInTable="columnWOTotalTest" msprop:Generator_ColumnPropNameInTable="WOTotalTestColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOPassRate" msdata:ReadOnly="true" msprop:Generator_UserColumnName="WOPassRate" msprop:Generator_ColumnPropNameInRow="WOPassRate" msprop:Generator_ColumnVarNameInTable="columnWOPassRate" msprop:Generator_ColumnPropNameInTable="WOPassRateColumn" minOccurs="0"> + <xs:element name="WOTotalTest" msprop:Generator_UserColumnName="WOTotalTest" msprop:Generator_ColumnVarNameInTable="columnWOTotalTest" msprop:Generator_ColumnPropNameInRow="WOTotalTest" msprop:Generator_ColumnPropNameInTable="WOTotalTestColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOPassRate" msdata:ReadOnly="true" msprop:Generator_UserColumnName="WOPassRate" msprop:Generator_ColumnVarNameInTable="columnWOPassRate" msprop:Generator_ColumnPropNameInRow="WOPassRate" msprop:Generator_ColumnPropNameInTable="WOPassRateColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="31" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="WOPass" msprop:Generator_UserColumnName="WOPass" msprop:Generator_ColumnPropNameInRow="WOPass" msprop:Generator_ColumnVarNameInTable="columnWOPass" msprop:Generator_ColumnPropNameInTable="WOPassColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOFail" msprop:Generator_UserColumnName="WOFail" msprop:Generator_ColumnPropNameInRow="WOFail" msprop:Generator_ColumnVarNameInTable="columnWOFail" msprop:Generator_ColumnPropNameInTable="WOFailColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOError" msprop:Generator_UserColumnName="WOError" msprop:Generator_ColumnPropNameInRow="WOError" msprop:Generator_ColumnVarNameInTable="columnWOError" msprop:Generator_ColumnPropNameInTable="WOErrorColumn" type="xs:int" minOccurs="0" /> - <xs:element name="aName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aName" msprop:Generator_ColumnPropNameInRow="aName" msprop:Generator_ColumnVarNameInTable="columnaName" msprop:Generator_ColumnPropNameInTable="aNameColumn" minOccurs="0"> + <xs:element name="WOPass" msprop:Generator_UserColumnName="WOPass" msprop:Generator_ColumnVarNameInTable="columnWOPass" msprop:Generator_ColumnPropNameInRow="WOPass" msprop:Generator_ColumnPropNameInTable="WOPassColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOFail" msprop:Generator_UserColumnName="WOFail" msprop:Generator_ColumnVarNameInTable="columnWOFail" msprop:Generator_ColumnPropNameInRow="WOFail" msprop:Generator_ColumnPropNameInTable="WOFailColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOError" msprop:Generator_UserColumnName="WOError" msprop:Generator_ColumnVarNameInTable="columnWOError" msprop:Generator_ColumnPropNameInRow="WOError" msprop:Generator_ColumnPropNameInTable="WOErrorColumn" type="xs:int" minOccurs="0" /> + <xs:element name="aName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aName" msprop:Generator_ColumnVarNameInTable="columnaName" msprop:Generator_ColumnPropNameInRow="aName" msprop:Generator_ColumnPropNameInTable="aNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_testPass" msprop:Generator_UserTableName="db_testPass" msprop:Generator_RowDeletedName="db_testPassRowDeleted" msprop:Generator_RowChangedName="db_testPassRowChanged" msprop:Generator_RowClassName="db_testPassRow" msprop:Generator_RowChangingName="db_testPassRowChanging" msprop:Generator_RowEvArgName="db_testPassRowChangeEvent" msprop:Generator_RowEvHandlerName="db_testPassRowChangeEventHandler" msprop:Generator_TableClassName="db_testPassDataTable" msprop:Generator_TableVarName="tabledb_testPass" msprop:Generator_RowDeletingName="db_testPassRowDeleting" msprop:Generator_TablePropName="db_testPass"> <xs:complexType> <xs:sequence> - <xs:element name="testPassID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="testPassID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="versionID" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="versionID" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_config" msprop:Generator_UserTableName="db_config" msprop:Generator_RowDeletedName="db_configRowDeleted" msprop:Generator_RowChangedName="db_configRowChanged" msprop:Generator_RowClassName="db_configRow" msprop:Generator_RowChangingName="db_configRowChanging" msprop:Generator_RowEvArgName="db_configRowChangeEvent" msprop:Generator_RowEvHandlerName="db_configRowChangeEventHandler" msprop:Generator_TableClassName="db_configDataTable" msprop:Generator_TableVarName="tabledb_config" msprop:Generator_RowDeletingName="db_configRowDeleting" msprop:Generator_TablePropName="db_config"> <xs:complexType> <xs:sequence> - <xs:element name="configID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="configID" msprop:Generator_ColumnVarNameInTable="columnconfigID" msprop:Generator_ColumnPropNameInRow="configID" msprop:Generator_ColumnPropNameInTable="configIDColumn" type="xs:int" /> - <xs:element name="userID" msprop:Generator_UserColumnName="userID" msprop:Generator_ColumnVarNameInTable="columnuserID" msprop:Generator_ColumnPropNameInRow="userID" msprop:Generator_ColumnPropNameInTable="userIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="configID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="configID" msprop:Generator_ColumnPropNameInRow="configID" msprop:Generator_ColumnVarNameInTable="columnconfigID" msprop:Generator_ColumnPropNameInTable="configIDColumn" type="xs:int" /> + <xs:element name="userID" msprop:Generator_UserColumnName="userID" msprop:Generator_ColumnPropNameInRow="userID" msprop:Generator_ColumnVarNameInTable="columnuserID" msprop:Generator_ColumnPropNameInTable="userIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="value" msprop:Generator_UserColumnName="value" msprop:Generator_ColumnVarNameInTable="columnvalue" msprop:Generator_ColumnPropNameInRow="value" msprop:Generator_ColumnPropNameInTable="valueColumn" minOccurs="0"> + <xs:element name="value" msprop:Generator_UserColumnName="value" msprop:Generator_ColumnPropNameInRow="value" msprop:Generator_ColumnVarNameInTable="columnvalue" msprop:Generator_ColumnPropNameInTable="valueColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> + <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> @@ -1177,47 +1177,47 @@ <xs:element name="db_version" msprop:Generator_UserTableName="db_version" msprop:Generator_RowDeletedName="db_versionRowDeleted" msprop:Generator_RowChangedName="db_versionRowChanged" msprop:Generator_RowClassName="db_versionRow" msprop:Generator_RowChangingName="db_versionRowChanging" msprop:Generator_RowEvArgName="db_versionRowChangeEvent" msprop:Generator_RowEvHandlerName="db_versionRowChangeEventHandler" msprop:Generator_TableClassName="db_versionDataTable" msprop:Generator_TableVarName="tabledb_version" msprop:Generator_RowDeletingName="db_versionRowDeleting" msprop:Generator_TablePropName="db_version"> <xs:complexType> <xs:sequence> - <xs:element name="versionID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" /> - <xs:element name="productID" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="number" msprop:Generator_UserColumnName="number" msprop:Generator_ColumnVarNameInTable="columnnumber" msprop:Generator_ColumnPropNameInRow="number" msprop:Generator_ColumnPropNameInTable="numberColumn" minOccurs="0"> + <xs:element name="versionID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" /> + <xs:element name="productID" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="number" msprop:Generator_UserColumnName="number" msprop:Generator_ColumnPropNameInRow="number" msprop:Generator_ColumnVarNameInTable="columnnumber" msprop:Generator_ColumnPropNameInTable="numberColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="code" msprop:Generator_UserColumnName="code" msprop:Generator_ColumnVarNameInTable="columncode" msprop:Generator_ColumnPropNameInRow="code" msprop:Generator_ColumnPropNameInTable="codeColumn" minOccurs="0"> + <xs:element name="code" msprop:Generator_UserColumnName="code" msprop:Generator_ColumnPropNameInRow="code" msprop:Generator_ColumnVarNameInTable="columncode" msprop:Generator_ColumnPropNameInTable="codeColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" minOccurs="0" /> - <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" minOccurs="0" /> + <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_rights" msprop:Generator_UserTableName="db_rights" msprop:Generator_RowDeletedName="db_rightsRowDeleted" msprop:Generator_RowChangedName="db_rightsRowChanged" msprop:Generator_RowClassName="db_rightsRow" msprop:Generator_RowChangingName="db_rightsRowChanging" msprop:Generator_RowEvArgName="db_rightsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_rightsRowChangeEventHandler" msprop:Generator_TableClassName="db_rightsDataTable" msprop:Generator_TableVarName="tabledb_rights" msprop:Generator_RowDeletingName="db_rightsRowDeleting" msprop:Generator_TablePropName="db_rights"> <xs:complexType> <xs:sequence> - <xs:element name="rightsID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="rightsID" msprop:Generator_ColumnPropNameInRow="rightsID" msprop:Generator_ColumnVarNameInTable="columnrightsID" msprop:Generator_ColumnPropNameInTable="rightsIDColumn" type="xs:int" /> - <xs:element name="rightsName" msprop:Generator_UserColumnName="rightsName" msprop:Generator_ColumnPropNameInRow="rightsName" msprop:Generator_ColumnVarNameInTable="columnrightsName" msprop:Generator_ColumnPropNameInTable="rightsNameColumn" minOccurs="0"> + <xs:element name="rightsID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="rightsID" msprop:Generator_ColumnVarNameInTable="columnrightsID" msprop:Generator_ColumnPropNameInRow="rightsID" msprop:Generator_ColumnPropNameInTable="rightsIDColumn" type="xs:int" /> + <xs:element name="rightsName" msprop:Generator_UserColumnName="rightsName" msprop:Generator_ColumnVarNameInTable="columnrightsName" msprop:Generator_ColumnPropNameInRow="rightsName" msprop:Generator_ColumnPropNameInTable="rightsNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="rightDescription" msprop:Generator_UserColumnName="rightDescription" msprop:Generator_ColumnPropNameInRow="rightDescription" msprop:Generator_ColumnVarNameInTable="columnrightDescription" msprop:Generator_ColumnPropNameInTable="rightDescriptionColumn" minOccurs="0"> + <xs:element name="rightDescription" msprop:Generator_UserColumnName="rightDescription" msprop:Generator_ColumnVarNameInTable="columnrightDescription" msprop:Generator_ColumnPropNameInRow="rightDescription" msprop:Generator_ColumnPropNameInTable="rightDescriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> - <xs:element name="rightsDescription" msprop:Generator_UserColumnName="rightsDescription" msprop:Generator_ColumnPropNameInRow="rightsDescription" msprop:Generator_ColumnVarNameInTable="columnrightsDescription" msprop:Generator_ColumnPropNameInTable="rightsDescriptionColumn" minOccurs="0"> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="rightsDescription" msprop:Generator_UserColumnName="rightsDescription" msprop:Generator_ColumnVarNameInTable="columnrightsDescription" msprop:Generator_ColumnPropNameInRow="rightsDescription" msprop:Generator_ColumnPropNameInTable="rightsDescriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> @@ -1230,25 +1230,25 @@ <xs:element name="db_roleProductUser" msprop:Generator_UserTableName="db_roleProductUser" msprop:Generator_RowDeletedName="db_roleProductUserRowDeleted" msprop:Generator_RowChangedName="db_roleProductUserRowChanged" msprop:Generator_RowClassName="db_roleProductUserRow" msprop:Generator_RowChangingName="db_roleProductUserRowChanging" msprop:Generator_RowEvArgName="db_roleProductUserRowChangeEvent" msprop:Generator_RowEvHandlerName="db_roleProductUserRowChangeEventHandler" msprop:Generator_TableClassName="db_roleProductUserDataTable" msprop:Generator_TableVarName="tabledb_roleProductUser" msprop:Generator_RowDeletingName="db_roleProductUserRowDeleting" msprop:Generator_TablePropName="db_roleProductUser"> <xs:complexType> <xs:sequence> - <xs:element name="userID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="userID" msprop:Generator_ColumnVarNameInTable="columnuserID" msprop:Generator_ColumnPropNameInRow="userID" msprop:Generator_ColumnPropNameInTable="userIDColumn" type="xs:int" /> - <xs:element name="fullName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="fullName" msprop:Generator_ColumnVarNameInTable="columnfullName" msprop:Generator_ColumnPropNameInRow="fullName" msprop:Generator_ColumnPropNameInTable="fullNameColumn" minOccurs="0"> + <xs:element name="userID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="userID" msprop:Generator_ColumnPropNameInRow="userID" msprop:Generator_ColumnVarNameInTable="columnuserID" msprop:Generator_ColumnPropNameInTable="userIDColumn" type="xs:int" /> + <xs:element name="fullName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="fullName" msprop:Generator_ColumnPropNameInRow="fullName" msprop:Generator_ColumnVarNameInTable="columnfullName" msprop:Generator_ColumnPropNameInTable="fullNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="roleID" msprop:Generator_UserColumnName="roleID" msprop:Generator_ColumnVarNameInTable="columnroleID" msprop:Generator_ColumnPropNameInRow="roleID" msprop:Generator_ColumnPropNameInTable="roleIDColumn" type="xs:int" /> - <xs:element name="productID" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" /> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="roleID" msprop:Generator_UserColumnName="roleID" msprop:Generator_ColumnPropNameInRow="roleID" msprop:Generator_ColumnVarNameInTable="columnroleID" msprop:Generator_ColumnPropNameInTable="roleIDColumn" type="xs:int" /> + <xs:element name="productID" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_roleProduct" msprop:Generator_UserTableName="db_roleProduct" msprop:Generator_RowDeletedName="db_roleProductRowDeleted" msprop:Generator_RowChangedName="db_roleProductRowChanged" msprop:Generator_RowClassName="db_roleProductRow" msprop:Generator_RowChangingName="db_roleProductRowChanging" msprop:Generator_RowEvArgName="db_roleProductRowChangeEvent" msprop:Generator_RowEvHandlerName="db_roleProductRowChangeEventHandler" msprop:Generator_TableClassName="db_roleProductDataTable" msprop:Generator_TableVarName="tabledb_roleProduct" msprop:Generator_RowDeletingName="db_roleProductRowDeleting" msprop:Generator_TablePropName="db_roleProduct"> <xs:complexType> ... [truncated message content] |
From: <m_h...@us...> - 2006-08-08 20:56:54
|
Revision: 283 Author: m_hildebrand Date: 2006-08-08 13:56:12 -0700 (Tue, 08 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=283&view=rev Log Message: ----------- Made some changes to logging to allow user and host to be output on each line Moved everything into the TCDB, TCDB.Code, or TCDB.Plugins namespace Modified Paths: -------------- Website/AdminRole.aspx Website/App_Code/Assignments.cs Website/App_Code/Common.cs Website/App_Code/GlobalClass.cs Website/App_Code/InstallerClass.cs Website/App_Code/Notes.cs Website/App_Code/Products.cs Website/App_Code/Right.cs Website/App_Code/SiteMaster.cs Website/App_Code/SiteUserControl.cs Website/App_Code/Statuses.cs Website/App_Code/Users.cs Website/App_Code/Versions.cs Website/App_Themes/Python/Python.skin Website/Global.asax Website/Includes/ActionItems.ascx Website/Includes/ActionItems.ascx.cs Website/Includes/AdminConfig.ascx Website/Includes/AdminConfig.ascx.cs Website/Includes/Administration.ascx Website/Includes/Administration.ascx.cs Website/Includes/AdministrationTree.ascx Website/Includes/AdministrationTree.ascx.cs Website/Includes/Assignments.ascx Website/Includes/Assignments.ascx.cs Website/Includes/AssignmentsTree.ascx Website/Includes/AssignmentsTree.ascx.cs Website/Includes/Authenticate.ascx Website/Includes/Authenticate.ascx.cs Website/Includes/Builds.ascx Website/Includes/Execution.ascx Website/Includes/Features.ascx Website/Includes/FeaturesTree.ascx Website/Includes/FeaturesTree.ascx.cs Website/Includes/Footer.ascx Website/Includes/Footer.ascx.cs Website/Includes/Header.ascx Website/Includes/Header_CurrentInfo.ascx Website/Includes/Header_Menu.ascx Website/Includes/Header_User.ascx Website/Includes/Header_User.ascx.cs Website/Includes/Notes.ascx Website/Includes/Notes.ascx.cs Website/Includes/Objectives.ascx Website/Includes/Platforms.ascx Website/Includes/Products.ascx Website/Includes/Products.ascx.cs Website/Includes/Reports.ascx Website/Includes/Rights.ascx Website/Includes/Rights.ascx.cs Website/Includes/RoleAdmin.ascx Website/Includes/RoleAdmin.ascx.cs Website/Includes/Roles.ascx Website/Includes/Roles.ascx.cs Website/Includes/Tags.ascx Website/Includes/TestCases.ascx Website/Includes/UserConfig.ascx Website/Includes/UserConfig.ascx.cs Website/Includes/UserSettings.ascx Website/Includes/UserSettings.ascx.cs Website/Includes/Users.ascx Website/Includes/Versions.ascx Website/Includes/Versions.ascx.cs Website/Includes/WorkOrders.ascx Website/Plugins/VAS_Execution.ascx Website/Plugins/VAS_Execution.ascx.cs Website/PrivacyPolicy.aspx Website/TCDB.master Added Paths: ----------- Website/App_Code/Plugins/ Website/App_Code/Plugins/AD_Authentication.cs Removed Paths: ------------- Website/App_Code/AD_Authentication.cs Website/Includes/SqlDatabase.ascx Modified: Website/AdminRole.aspx =================================================================== --- Website/AdminRole.aspx 2006-08-08 19:11:55 UTC (rev 282) +++ Website/AdminRole.aspx 2006-08-08 20:56:12 UTC (rev 283) @@ -1,8 +1,7 @@ <%@ Page Language="C#" MasterPageFile="~/TCDB.master" AutoEventWireup="true" Title="TCDB: Administration" %> - -<%@ Import Namespace="TCDB.Common" %> <%@ Register Src="~/Includes/AdministrationTree.ascx" TagPrefix="admin" TagName="Tree" %> <%@ Register Src="~/Includes/RoleAdmin.ascx" TagPrefix="admin" TagName="Role" %> + <asp:Content ID="TreeContent" ContentPlaceHolderID="TreeContentPlaceHolder" runat="Server"> <admin:Tree runat="server" ID="Tree" /> </asp:Content> Deleted: Website/App_Code/AD_Authentication.cs =================================================================== --- Website/App_Code/AD_Authentication.cs 2006-08-08 19:11:55 UTC (rev 282) +++ Website/App_Code/AD_Authentication.cs 2006-08-08 20:56:12 UTC (rev 283) @@ -1,121 +0,0 @@ -using System; -using System.Data; -using System.DirectoryServices; -using System.Configuration; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; -using TCDB.Users; -using TCDB.Common; -using log4net; - -namespace AD_Auth -{ - /// <summary> - /// Summary description for AD_Authentication - /// </summary> - public static class AD_Authentication - { - private static ILog m_logg = LogManager.GetLogger("AD_Auth.AD_Authentication"); - - public static bool AD_Authenticate(string strUserName, string strPassword) - { - bool result = false; - - // Get the domain name from the config table - string strDomain = ConfigDB.GetConfigString("ad_domain"); - - m_logg.Debug("Checking AD authentication for [" + strUserName + "] in domain [" + strDomain + "]"); - DirectoryEntry de = new DirectoryEntry("LDAP://" + strDomain, strUserName, strPassword); - DirectorySearcher ds = new DirectorySearcher(de); - ds.SearchScope = SearchScope.OneLevel; - try - { - SearchResult sr = ds.FindOne(); - m_logg.Info("User [" + strUserName + "] is authenticated in the domain [" + strDomain + "]"); - if (sr != null) result = true; - } - catch - { - m_logg.Warn("User [" + strUserName + "] could not authenticate to the domain [" + strDomain + "]"); - result = false; - } - - return result; - } - - public static User AD_GetUserInfo(string strUserName, string strPassword) - { - return AD_GetUserInfo(strUserName, strPassword, strUserName); - } - - public static User AD_GetUserInfo(string strUserName, string strPassword, string strFindUser) - { - User user = new User(); - - // Get the domain name from the config table - string strDomain = ConfigDB.GetConfigString("ad_domain"); - - m_logg.Debug("Getting AD information for [" + strUserName + "] in domain [" + strDomain + "]"); - //DirectoryEntry de = new DirectoryEntry("LDAP://" + strDomain); - //de.AuthenticationType = AuthenticationTypes.Anonymous; - - DirectoryEntry de = new DirectoryEntry("LDAP://" + strDomain, strUserName, strPassword); - DirectorySearcher ds = new DirectorySearcher(de); - ds.SearchScope = SearchScope.Subtree; - ds.Filter = "(&(objectClass=user)(sAMAccountName=" + strFindUser + "))"; - - user.ID = Constants.NEWUSER; - user.AUTOMATION = false; - user.ISAUTHENTICATED = true; - user.USERNAME = strFindUser; - try - { - SearchResult sr = ds.FindOne(); - if (sr != null) - { - ResultPropertyCollection rpc = sr.Properties; - ResultPropertyValueCollection property; - - property = rpc[ConfigDB.GetConfigString("uidnumber_attribute")]; - if (property.Count > 0) - user.ID = Convert.ToInt32(property[0]); - property = rpc[ConfigDB.GetConfigString("firstname_attribute")]; - if (property.Count > 0) - user.FIRSTNAME = property[0].ToString(); - property = rpc[ConfigDB.GetConfigString("lastname_attribute")]; - if (property.Count > 0) - user.LASTNAME = property[0].ToString(); - property = rpc[ConfigDB.GetConfigString("email_attribute")]; - if (property.Count > 0) - user.EMAIL = property[0].ToString(); - property = rpc[ConfigDB.GetConfigString("homephone_attribute")]; - if (property.Count > 0) - user.HOMEPHONE = property[0].ToString(); - property = rpc[ConfigDB.GetConfigString("officephone_attribute")]; - if (property.Count > 0) - user.OFFICEPHONE = property[0].ToString(); - property = rpc[ConfigDB.GetConfigString("cellphone_attribute")]; - if (property.Count > 0) - user.CELLPHONE = property[0].ToString(); - } - } - catch - { - m_logg.Debug("Unable to find any AD information for [" + strFindUser + "] in domain [" + strDomain + "]"); - - } - finally - { - ds.Dispose(); - de.Dispose(); - } - - return user; - } - - } -} Modified: Website/App_Code/Assignments.cs =================================================================== --- Website/App_Code/Assignments.cs 2006-08-08 19:11:55 UTC (rev 282) +++ Website/App_Code/Assignments.cs 2006-08-08 20:56:12 UTC (rev 283) @@ -8,16 +8,13 @@ using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; -using TCDB.Statuses; -using TCDB.Common; -using TCDB.Users; -using log4net; -namespace TCDB.Assignments + +namespace TCDB.Code { public class AssignmentDB { - private static ILog m_logg = LogManager.GetLogger("TCDB.Assignments.AssignmentDB"); + private static Logger m_logg = new Logger("TCDB.Code.AssignmentDB"); public static List<Assignment> GetAssignmentList(string aType, int finished, int assignedID, string highPriority, Nullable<int> creatorID, Nullable<bool> active) { @@ -86,7 +83,7 @@ public class ActionItemDB : Page { - private static ILog m_logg = LogManager.GetLogger("TCDB.Assignments.ActionItemDB"); + private static Logger m_logg = new Logger("TCDB.Assignments.ActionItemDB"); public static bool SendNewActionItemMail(int id) { @@ -254,7 +251,7 @@ public class WorkOrderDB : Page { - private static ILog m_logg = LogManager.GetLogger("TCDB.Assignments.WorkOrderDB"); + private static Logger m_logg = new Logger("TCDB.Assignments.WorkOrderDB"); public static WorkOrder TCDB_GetWorkOrder(int id) { @@ -287,7 +284,7 @@ public class Assignment { - private static ILog m_logg = LogManager.GetLogger("TCDB.Assignments.Assignment"); + private static Logger m_logg = new Logger("TCDB.Assignments.Assignment"); private int p_id; private string p_name; @@ -473,7 +470,7 @@ public class ActionItem { - private static ILog m_logg = LogManager.GetLogger("TCDB.Assignments.ActionItem"); + private static Logger m_logg = new Logger("TCDB.Assignments.ActionItem"); private int p_id; private string p_name; @@ -548,7 +545,7 @@ public class WorkOrder { - private static ILog m_logg = LogManager.GetLogger("TCDB.Assignments.WorkOrder"); + private static Logger m_logg = new Logger("TCDB.Assignments.WorkOrder"); private int p_id; private string p_name; Modified: Website/App_Code/Common.cs =================================================================== --- Website/App_Code/Common.cs 2006-08-08 19:11:55 UTC (rev 282) +++ Website/App_Code/Common.cs 2006-08-08 20:56:12 UTC (rev 283) @@ -9,15 +9,129 @@ using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Collections.Generic; -using TCDB.Users; using log4net; -namespace TCDB.Common +namespace TCDB.Code { + public class Logger : System.Web.HttpApplication + { + private ILog m_logg = null; + private static HttpRequest m_request = null; + private static User m_user = null; + public Logger(string instance) + { + m_logg = LogManager.GetLogger(instance); + } + + public static void CreateLoggerDetails(User user, HttpRequest request) + { + m_user = user; + m_request = request; + } + + public void Fatal(string message) + { + if (m_logg.IsFatalEnabled) + m_logg.Fatal(Prefix() + message); + } + + public void Fatal(string message, Exception ex) + { + if (m_logg.IsFatalEnabled) + m_logg.Fatal(Prefix() + message, ex); + } + + public void Error(string message) + { + if (m_logg.IsErrorEnabled) + m_logg.Error(Prefix() + message); + } + + public void Error(string message, Exception ex) + { + if (m_logg.IsErrorEnabled) + m_logg.Error(Prefix() + message, ex); + } + + public void Warn(string message) + { + if (m_logg.IsWarnEnabled) + m_logg.Warn(Prefix() + message); + } + + public void Warn(string message, Exception ex) + { + if (m_logg.IsWarnEnabled) + m_logg.Warn(Prefix() + message, ex); + } + + public void Info(string message) + { + if (m_logg.IsInfoEnabled) + m_logg.Info(Prefix() + message); + } + + public void Info(string message, Exception ex) + { + if (m_logg.IsInfoEnabled) + m_logg.Info(Prefix() + message, ex); + } + + public void Debug(string message) + { + if (m_logg.IsDebugEnabled) + m_logg.Debug(Prefix() + message); + } + + public void Debug(string message, Exception ex) + { + if (m_logg.IsDebugEnabled) + m_logg.Debug(Prefix() + message, ex); + } + + private string Prefix() + { + string result = ""; + bool u = false; + bool hn = false; + bool ha = false; + + try { + if (m_user != null) u = true; + } + catch {} + + try { + if (m_request.UserHostName != null) hn = true; + } + catch {} + + try { + if (m_request.UserHostAddress != null) + { + if (hn && m_request.UserHostName != m_request.UserHostAddress) + ha = true; + } + } + catch {} + + if (u || hn || ha) result = "["; + if (u) result = result + m_user.ToString(); + if (u && (hn || ha)) result = result + "@"; + if (hn) result = result + m_request.UserHostName; + if (u && hn && ha) result = result + " ("; + if (ha) result = result + m_request.UserHostAddress; + if (u && hn && ha) result = result + ")"; + if (u || hn || ha) result = result + "] "; + + return result; + } + } + public class ConfigDB { - private static ILog m_logg = LogManager.GetLogger("TCDB.Common.ConfigDB"); + private static Logger m_logg = new Logger("TCDB.Code.ConfigDB"); public static Dictionary<String, List<Config>> GetAdminSettings() { @@ -310,7 +424,7 @@ // add group settings.Add("auth", group); - + // ------------------------------------------------ // email group // ------------------------------------------------ @@ -328,7 +442,7 @@ "email", "tc...@yo...main", "Email address that messages sent by TCDB should come from")); - + // smtp_server values = new Dictionary<String, String>(); group.Add(new Config("smtp_server", @@ -453,7 +567,7 @@ "newuser", "true", "Allow new users to register with the site")); - + // newuser_ai_name values = new Dictionary<String, String>(); group.Add(new Config("newuser_ai_name", @@ -741,8 +855,8 @@ "true", "Specify if you want to see Not Started Action Items by default")); - + // filter_show_wo_active values = new Dictionary<String, String>(); group.Add(new Config("filter_show_wo_active", @@ -1148,7 +1262,7 @@ private String p_key; private String p_name; private String p_type; - private Dictionary<String,String> p_values; + private Dictionary<String, String> p_values; private String p_validation; private bool p_userSetting; private int p_order; @@ -1161,7 +1275,7 @@ KEY = ""; NAME = ""; TYPE = ""; - VALUES = new Dictionary<String,String>(); + VALUES = new Dictionary<String, String>(); VALIDATION = ""; USER_SETTING = false; ORDER = 1; @@ -1170,7 +1284,7 @@ DESCRIPTION = ""; } - public Config(String key, String name, String type, Dictionary<String,String> values, String validation, bool userSetting, int order, String group, String defaultValue, String description) + public Config(String key, String name, String type, Dictionary<String, String> values, String validation, bool userSetting, int order, String group, String defaultValue, String description) { KEY = key; NAME = name; @@ -1268,7 +1382,7 @@ public static int ASSIGNMENT_NEW = 3; public static string TCDB_VERSION = "1.0.0 Alpha 3"; - public static bool IS_DEV_ENV = false; + public static bool IS_DEV_ENV = true; public static string RIGHTS_ASSIGNPERMISSION = "assignPermission"; public static string RIGHTS_SITEADMIN = "siteAdmin"; @@ -1278,7 +1392,7 @@ public static class Help { - private static ILog m_logg = LogManager.GetLogger("TCDB.Common.Help"); + private static Logger m_logg = new Logger("TCDB.Common.Help"); //protected void SendMail(int type, int id) public static bool SendMail(string subject, string body, bool html, User to) Modified: Website/App_Code/GlobalClass.cs =================================================================== --- Website/App_Code/GlobalClass.cs 2006-08-08 19:11:55 UTC (rev 282) +++ Website/App_Code/GlobalClass.cs 2006-08-08 20:56:12 UTC (rev 283) @@ -4,17 +4,15 @@ using System.Configuration; using log4net; using log4net.Config; -using TCDB.Common; -using TCDB.Users; -namespace TCDB +namespace TCDB.Code { /// <summary> /// Summary description for GlobalClass /// </summary> public class GlobalClass : System.Web.HttpApplication { - public static ILog m_logg = LogManager.GetLogger("TCDB 2006"); + private static Logger m_logg = new Logger("TCDB.GlobalClass"); void Application_Start(object sender, EventArgs e) { @@ -43,7 +41,7 @@ throw new NullReferenceException("log4net configuration could not be completed. \nDo you have your app.config set up properly?", nfe); } - m_logg = LogManager.GetLogger("TCDB"); + m_logg = new Logger("TCDB.GlobalClass"); m_logg.Info("TCDB 2006 started"); // Logging levels @@ -76,12 +74,8 @@ if (User.Identity.IsAuthenticated) { Session["m_user"] = UserDB.GetUserInfo(User.Identity.Name); + m_logg.Debug("Loading information for user [" + Session["m_user"].ToString() + "]"); } } - - void Application_PreRequestHandlerExecute(object sender, EventArgs e) - { - - } } } Modified: Website/App_Code/InstallerClass.cs =================================================================== --- Website/App_Code/InstallerClass.cs 2006-08-08 19:11:55 UTC (rev 282) +++ Website/App_Code/InstallerClass.cs 2006-08-08 20:56:12 UTC (rev 283) @@ -60,6 +60,8 @@ } } /* + // TODO: make sure this sets the path of the log file properly, it must be a folder + * that the webserver can write to if (node.Name == "log4net") foreach (XmlNode childNode in node.ChildNodes) { Modified: Website/App_Code/Notes.cs =================================================================== --- Website/App_Code/Notes.cs 2006-08-08 19:11:55 UTC (rev 282) +++ Website/App_Code/Notes.cs 2006-08-08 20:56:12 UTC (rev 283) @@ -7,24 +7,22 @@ using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; -using TCDB.Users; -using TCDB.Common; -namespace TCDB_Notes +namespace TCDB.Code { /// <summary> /// Summary description for TCDB_Notes /// </summary> - public class TCDB_NoteDB : Page + public class NoteDB : Page { - public static TCDB_Note TCDB_GetNote(int id) + public static Note GetNote(int id) { tcdbDataSet ds = new tcdbDataSet(); tcdbDataSetTableAdapters.db_notesTableAdapter ta = new tcdbDataSetTableAdapters.db_notesTableAdapter(); ta.GetData(null, id); ta.Fill(ds.db_notes, null, id); - TCDB_Note note = null; + Note note = null; DataTableReader dr = ds.CreateDataReader(); if (dr.HasRows && dr.Read()) @@ -34,7 +32,7 @@ string noteField = Help.DB_StringParse(dr["noteField"]); int noteAuthor = Help.DB_IntParse(dr["noteAuthor"]); - note = new TCDB_Note(noteid, dateCreated, noteField, noteAuthor); + note = new Note(noteid, dateCreated, noteField, noteAuthor); } return note; @@ -42,14 +40,14 @@ } - public class TCDB_Note + public class Note { private int p_id; private DateTime p_dateCreated; private string p_noteField; private User p_noteAuthor; - public TCDB_Note(int id, DateTime dateCreated, string noteField, User noteAuthor) + public Note(int id, DateTime dateCreated, string noteField, User noteAuthor) { p_id = id; p_dateCreated = dateCreated; @@ -57,7 +55,7 @@ p_noteAuthor = noteAuthor; } - public TCDB_Note(int id, DateTime dateCreated, string noteField, int noteAuthor) + public Note(int id, DateTime dateCreated, string noteField, int noteAuthor) { p_id = id; p_dateCreated = dateCreated; @@ -65,7 +63,7 @@ p_noteAuthor = UserDB.GetUserInfo(noteAuthor); } - public TCDB_Note() + public Note() { p_id = 0; p_dateCreated = new DateTime(1,1,1); Copied: Website/App_Code/Plugins/AD_Authentication.cs (from rev 280, Website/App_Code/AD_Authentication.cs) =================================================================== --- Website/App_Code/Plugins/AD_Authentication.cs (rev 0) +++ Website/App_Code/Plugins/AD_Authentication.cs 2006-08-08 20:56:12 UTC (rev 283) @@ -0,0 +1,115 @@ +using System; +using System.Data; +using System.DirectoryServices; +using System.Configuration; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using TCDB.Code; + + +namespace TCDB.Plugins.AD +{ + /// <summary> + /// Summary description for AD_Auth + /// </summary> + public static class AD_Auth + { + private static Logger m_logg = new Logger("TCDB.Plugins.AD.AD_Auth"); + + public static bool Authenticate(string strUserName, string strPassword) + { + bool result = false; + + // Get the domain name from the config table + string strDomain = ConfigDB.GetConfigString("ad_domain"); + + try + { + m_logg.Debug("Checking AD authentication for [" + strUserName + "] in domain [" + strDomain + "]"); + DirectoryEntry de = new DirectoryEntry("LDAP://" + strDomain, strUserName, strPassword); + DirectorySearcher ds = new DirectorySearcher(de); + ds.SearchScope = SearchScope.OneLevel; + SearchResult sr = ds.FindOne(); + m_logg.Info("User [" + strUserName + "] is authenticated in the domain [" + strDomain + "]"); + if (sr != null) result = true; + } + catch + { + m_logg.Warn("User [" + strUserName + "] could not authenticate to the domain [" + strDomain + "]"); + result = false; + } + + return result; + } + + public static User GetUserInfo(string strUserName, string strPassword) + { + return GetUserInfo(strUserName, strPassword, strUserName); + } + + public static User GetUserInfo(string strUserName, string strPassword, string strFindUser) + { + User user = new User(); + user.ID = Constants.NEWUSER; + user.AUTOMATION = false; + user.ISAUTHENTICATED = true; + user.USERNAME = strFindUser; + + string strDomain = ConfigDB.GetConfigString("ad_domain"); + m_logg.Debug("Retreived domain name [" + strDomain + "] from the database"); + + try + { + m_logg.Debug("Getting AD information for [" + strUserName + "] in domain [" + strDomain + "]"); + DirectoryEntry de = new DirectoryEntry("LDAP://" + strDomain, strUserName, strPassword); + DirectorySearcher ds = new DirectorySearcher(de); + ds.SearchScope = SearchScope.Subtree; + ds.Filter = "(&(objectClass=user)(sAMAccountName=" + strFindUser + "))"; + + SearchResult sr = ds.FindOne(); + if (sr != null) + { + ResultPropertyCollection rpc = sr.Properties; + ResultPropertyValueCollection property; + + property = rpc[ConfigDB.GetConfigString("uidnumber_attribute")]; + if (property.Count > 0) + user.ID = Convert.ToInt32(property[0]); + property = rpc[ConfigDB.GetConfigString("firstname_attribute")]; + if (property.Count > 0) + user.FIRSTNAME = property[0].ToString(); + property = rpc[ConfigDB.GetConfigString("lastname_attribute")]; + if (property.Count > 0) + user.LASTNAME = property[0].ToString(); + property = rpc[ConfigDB.GetConfigString("email_attribute")]; + if (property.Count > 0) + user.EMAIL = property[0].ToString(); + property = rpc[ConfigDB.GetConfigString("homephone_attribute")]; + if (property.Count > 0) + user.HOMEPHONE = property[0].ToString(); + property = rpc[ConfigDB.GetConfigString("officephone_attribute")]; + if (property.Count > 0) + user.OFFICEPHONE = property[0].ToString(); + property = rpc[ConfigDB.GetConfigString("cellphone_attribute")]; + if (property.Count > 0) + user.CELLPHONE = property[0].ToString(); + + ds.Dispose(); + de.Dispose(); + } + } + catch + { + m_logg.Debug("Unable to find any AD information for [" + strFindUser + "] in domain [" + strDomain + "]"); + } + + m_logg.Debug("Returning user object for user [" + user.ToString() + "]"); + return user; + } + + } +} Modified: Website/App_Code/Products.cs =================================================================== --- Website/App_Code/Products.cs 2006-08-08 19:11:55 UTC (rev 282) +++ Website/App_Code/Products.cs 2006-08-08 20:56:12 UTC (rev 283) @@ -8,10 +8,8 @@ using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; -using TCDB.Users; -using TCDB.Common; -namespace TCDB.Products +namespace TCDB.Code { /// <summary> /// Summary description for TCDB.Products Modified: Website/App_Code/Right.cs =================================================================== --- Website/App_Code/Right.cs 2006-08-08 19:11:55 UTC (rev 282) +++ Website/App_Code/Right.cs 2006-08-08 20:56:12 UTC (rev 283) @@ -14,13 +14,11 @@ using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; -using TCDB.Assignments; -using TCDB.Common; -using AD_Auth; +using TCDB.Plugins.AD; using System.Web.SessionState; -using log4net; -namespace TCDB.Rights + +namespace TCDB.Code { /// <summary> /// A class containing database interactions for users in the TCDB System @@ -28,7 +26,7 @@ /// </summary> public class RightDB : Page { - private static ILog m_logg = LogManager.GetLogger("TCDB.Rights.RightDB"); + private static Logger m_logg = new Logger("TCDB.Code.RightDB"); public static Right GetRightInfo(String code) { @@ -208,7 +206,7 @@ /// </summary> public class Right { - private static ILog m_logg = LogManager.GetLogger("TCDB.Rights.Right"); + private static Logger m_logg = new Logger("TCDB.Rights.Right"); private int p_id; private string p_name; @@ -289,7 +287,7 @@ /// </summary> public class Role { - private static ILog m_logg = LogManager.GetLogger("TCDB.Rights.Role"); + private static Logger m_logg = new Logger("TCDB.Rights.Role"); private int p_id; private string p_name; Modified: Website/App_Code/SiteMaster.cs =================================================================== --- Website/App_Code/SiteMaster.cs 2006-08-08 19:11:55 UTC (rev 282) +++ Website/App_Code/SiteMaster.cs 2006-08-08 20:56:12 UTC (rev 283) @@ -8,92 +8,98 @@ using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Web.Configuration; -using TCDB.Users; -using TCDB.Common; -using log4net; +using TCDB.Code; -/// <summary> -/// Summary description for SiteMaster -/// </summary> -public class SiteMaster : System.Web.UI.MasterPage +namespace TCDB { - protected User m_user; - protected DateTime m_startTime = new DateTime(); - protected static ILog m_logg = LogManager.GetLogger("TCDB.Master"); + /// <summary> + /// Summary description for SiteMaster + /// </summary> + public class SiteMaster : System.Web.UI.MasterPage + { + protected User m_user = null; + protected DateTime m_startTime = new DateTime(); + protected HttpRequest m_request = null; + protected static Logger m_logg = new Logger("TCDB.SiteMaster"); - protected override void OnInit(EventArgs e) - { - if (Page.User.Identity.IsAuthenticated) + protected override void OnInit(EventArgs e) { - m_user = LoadSessionUser(); - m_startTime = LoadStartTime(); + if (Page.User.Identity.IsAuthenticated) + { + m_logg.Debug("[" + Request.UserHostName + " (" + Request.UserHostAddress + ")] " + "Processing authenticated user startup"); + m_request = LoadRequest(); + m_user = LoadSessionUser(); + m_startTime = LoadStartTime(); + } + } - //TimeSpan d = DateTime.Now - m_startTime; - //d.Milliseconds; - }/* - else + public HttpRequest LoadRequest() { - PagesSection ps = (PagesSection)WebConfigurationManager.OpenWebConfiguration("").GetSection("system.web/pages"); - ps.ValidateRequest = false; - }*/ - } + m_logg.Debug("[" + Request.UserHostName + " (" + Request.UserHostAddress + ")] " + "Loading the request details"); + if (m_request != null) + { + m_logg.Debug("Returning an existing request details object"); + return m_request; + } - public DateTime LoadStartTime() - { - if (m_startTime != new DateTime()) - { - return m_startTime; + m_logg.Debug("[" + Request.UserHostName + " (" + Request.UserHostAddress + ")] " + "Returning the current request details"); + return Request; } - return DateTime.Now; - - } + public DateTime LoadStartTime() + { + m_logg.Debug("Loading the request start time"); + if (m_startTime != new DateTime()) + { + m_logg.Debug("Returning an existing time"); + return m_startTime; + } - public User LoadSessionUser() - { - if (m_user != null && m_user.ISAUTHENTICATED) - { - return m_user; + m_logg.Debug("Returning the current time"); + return DateTime.Now; } - m_logg.Debug("Entering the SiteUserControl LoadUser"); - - try + public User LoadSessionUser() { - m_logg.Debug("Pulling the userID from the session data"); - //id = (int)Session["m_user"]; - m_user = (User)Session["m_user"]; - //m_logg.Debug("Found userID [" + id.ToString() + "]"); - m_logg.Debug("Found user [" + m_user.ToString() + "]"); - } - catch - { - m_logg.Debug("Unable to find user object in session data, using the anonymous user instead"); - //id = Constants.ANONYMOUSUSERID; - m_user = UserDB.GetUserInfo(Constants.ANONYMOUSUSERID); - } + m_logg.Debug("Loading the session user"); + if (m_user != null && m_user.ISAUTHENTICATED) + { + m_logg.Debug("Returning an existing user [" + m_user.ToString() + "]"); + return m_user; + } - //m_logg.Debug("Setting up a user object based on userID [" + id.ToString() + "]"); - //m_user = UserDB.GetUserInfo(id); - m_logg.Debug("Got information for user [" + m_user.ToString() + "]"); + try + { + m_logg.Debug("Pulling the user from the session data"); + m_user = (User)Session["m_user"]; + } + catch + { + m_logg.Debug("Error finding user object in session data, using the anonymous user instead"); + m_user = UserDB.GetUserInfo(Constants.ANONYMOUSUSERID); + } - if (m_user.ID != Constants.ANONYMOUSUSERID) - { - m_logg.Debug("User [" + m_user.ToString() + "] is logged in and active, marking as authenticated"); - m_user.ISAUTHENTICATED = true; + if (m_user == null) + { + m_logg.Debug("Unable to find user object in session data, using the anonymous user instead"); + m_user = UserDB.GetUserInfo(Constants.ANONYMOUSUSERID); + } + + m_logg.Debug("Got information for user [" + m_user.ToString() + "]"); + + if (m_user.ID != Constants.ANONYMOUSUSERID) + { + m_logg.Debug("User [" + m_user.ToString() + "] is logged in and active, marking as authenticated"); + m_user.ISAUTHENTICATED = true; + } + else + { + m_logg.Debug("User [" + m_user.ToString() + "] is anonymous, marking as guest"); + m_user.ISAUTHENTICATED = false; + } + + return m_user; } - else - { - m_logg.Debug("User [" + m_user.ToString() + "] is anonymous, marking as guest"); - m_user.ISAUTHENTICATED = false; - } - /* try - { - User g_user; - g_user = (User)Session["g_user"]; - } - catch { }*/ - return m_user; } -} +} \ No newline at end of file Modified: Website/App_Code/SiteUserControl.cs =================================================================== --- Website/App_Code/SiteUserControl.cs 2006-08-08 19:11:55 UTC (rev 282) +++ Website/App_Code/SiteUserControl.cs 2006-08-08 20:56:12 UTC (rev 283) @@ -7,36 +7,62 @@ using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; -using TCDB.Users; -using TCDB.Common; -using log4net; +using TCDB.Code; -/// <summary> -/// Summary description for SiteUserControl -/// </summary> -public class SiteUserControl : System.Web.UI.UserControl + +namespace TCDB { - protected static Nullable<bool> active = true; - protected static User m_user = null; - protected static DateTime m_startTime = DateTime.Now; - private static ILog m_logg = LogManager.GetLogger("TCDB.Master"); - - protected override void OnInit(EventArgs e) + /// <summary> + /// Summary description for SiteUserControl + /// </summary> + public class SiteUserControl : System.Web.UI.UserControl { - base.OnInit(e); + protected static Nullable<bool> active = true; + protected static User m_user = null; + protected static DateTime m_startTime = DateTime.Now; + protected static HttpRequest m_request = null; + private static Logger m_logg = new Logger("TCDB.SiteUserControl"); - m_user = ((SiteMaster)(this.Page.Master)).LoadSessionUser(); - m_startTime = ((SiteMaster)(this.Page.Master)).LoadStartTime(); + protected override void OnInit(EventArgs e) + { + base.OnInit(e); - if (m_user.HasRight("dev_access")) - { - active = null; - Session["active"] = null; + Logger.CreateLoggerDetails(m_user, Request); + + try + { + m_logg.Debug("Loading Session user information"); + m_user = ((SiteMaster)(this.Page.Master)).LoadSessionUser(); + } + catch (Exception ex) + { + m_logg.Debug("Unable to load session user information", ex); + } + + Logger.CreateLoggerDetails(m_user, Request); + + try + { + m_logg.Debug("Loading request start time"); + m_startTime = ((SiteMaster)(this.Page.Master)).LoadStartTime(); + } + catch (Exception ex) + { + m_logg.Debug("Unable to load request start time", ex); + } + + if (m_user.HasRight("dev_access")) + { + m_logg.Debug("User has developer access right, setting 'active' to 'null'"); + active = null; + Session["active"] = null; + } + else + { + m_logg.Debug("User does not have developer access right, setting 'active' to 'true'"); + active = true; + Session["active"] = true; + } } - else - { - active = true; - Session["active"] = true; - } } -} +} \ No newline at end of file Modified: Website/App_Code/Statuses.cs =================================================================== --- Website/App_Code/Statuses.cs 2006-08-08 19:11:55 UTC (rev 282) +++ Website/App_Code/Statuses.cs 2006-08-08 20:56:12 UTC (rev 283) @@ -7,9 +7,8 @@ using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; -using TCDB.Common; -namespace TCDB.Statuses +namespace TCDB.Code { public class StatusDB : Page { Modified: Website/App_Code/Users.cs =================================================================== --- Website/App_Code/Users.cs 2006-08-08 19:11:55 UTC (rev 282) +++ Website/App_Code/Users.cs 2006-08-08 20:56:12 UTC (rev 283) @@ -14,15 +14,11 @@ using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; -using TCDB.Assignments; -using TCDB.Common; -using AD_Auth; using System.Web.SessionState; -using log4net; -using TCDB.Rights; -using TCDB.Products; +using TCDB.Plugins.AD; -namespace TCDB.Users + +namespace TCDB.Code { /// <summary> /// A class containing database interactions for users in the TCDB System @@ -30,7 +26,7 @@ /// </summary> public class UserDB : Page { - private static ILog m_logg = LogManager.GetLogger("TCDB.Users.UserDB"); + private static Logger m_logg = new Logger("TCDB.Code.UserDB"); /// <summary> /// Attemps to authenticate a user by checking for the user in the database. @@ -50,9 +46,9 @@ { // TODO: Add logic here to determine and use the appropriate // authentication method based on configuration data - + // Using AD authentication - if (!AD_Authentication.AD_Authenticate(strUserName, strPassword)) + if (!AD_Auth.Authenticate(strUserName, strPassword)) { // We can't authenticate, so return the guest user return new User(); @@ -68,7 +64,7 @@ } // Using AD authentication - user = AD_Authentication.AD_GetUserInfo(strUserName, strPassword); + user = AD_Auth.GetUserInfo(strUserName, strPassword); user.ISNEW = true; return user; } @@ -261,7 +257,7 @@ /// </summary> public class User { - private static ILog m_logg = LogManager.GetLogger("TCDB.Users.User"); + private static Logger m_logg = new Logger("TCDB.Users.User"); private int p_id; private string p_username; Modified: Website/App_Code/Versions.cs =================================================================== --- Website/App_Code/Versions.cs 2006-08-08 19:11:55 UTC (rev 282) +++ Website/App_Code/Versions.cs 2006-08-08 20:56:12 UTC (rev 283) @@ -8,11 +8,8 @@ using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; -using TCDB.Users; -using TCDB.Products; -using TCDB.Common; -namespace TCDB.Versions +namespace TCDB.Code { /// <summary> /// Summary description for TCDB.Versions Modified: Website/App_Themes/Python/Python.skin =================================================================== --- Website/App_Themes/Python/Python.skin 2006-08-08 19:11:55 UTC (rev 282) +++ Website/App_Themes/Python/Python.skin 2006-08-08 20:56:12 UTC (rev 283) @@ -23,6 +23,7 @@ <asp:GridView runat="server" SkinId="assignments" Width="100%" /> <asp:Image runat="server" SkinId="newUserImage" ImageUrl="Images/user_add_48.png" /> <asp:Image runat="server" SkinId="userRoleImage" ImageUrl="Images/user_role_48.png" /> +<asp:Image runat="server" SkinId="newProductImage" ImageUrl="Images/product_add_48.png" /> <asp:Image runat="server" SkinId="priority_high_small" ImageUrl="Images/priority_high_small.png" /> <asp:Image runat="server" SkinId="priority_high_large" ImageUrl="Images/priority_high_large.png" /> <asp:Image runat="server" SkinId="priority_normal_small" ImageUrl="" /> Modified: Website/Global.asax =================================================================== --- Website/Global.asax 2006-08-08 19:11:55 UTC (rev 282) +++ Website/Global.asax 2006-08-08 20:56:12 UTC (rev 283) @@ -1 +1 @@ -<%@ Application Language="C#" Inherits="TCDB.GlobalClass" %> \ No newline at end of file +<%@ Application Language="C#" Inherits="TCDB.Code.GlobalClass" %> \ No newline at end of file Modified: Website/Includes/ActionItems.ascx =================================================================== --- Website/Includes/ActionItems.ascx 2006-08-08 19:11:55 UTC (rev 282) +++ Website/Includes/ActionItems.ascx 2006-08-08 20:56:12 UTC (rev 283) @@ -1,4 +1,4 @@ -<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ActionItems.ascx.cs" Inherits="ActionItems" %> +<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ActionItems.ascx.cs" Inherits="TCDB.ActionItems" %> <%@ Register Assembly="eWorld.UI, Version=2.0.0.2148, Culture=neutral, PublicKeyToken=24d65337282035f2" Namespace="eWorld.UI" TagPrefix="ew" %> <%@ Register Assembly="FreeTextBox" Namespace="FreeTextBoxControls" TagPrefix="FTB" %> Modified: Website/Includes/ActionItems.ascx.cs =================================================================== --- Website/Includes/ActionItems.ascx.cs 2006-08-08 19:11:55 UTC (rev 282) +++ Website/Includes/ActionItems.ascx.cs 2006-08-08 20:56:12 UTC (rev 283) @@ -11,479 +11,480 @@ using System.Collections.Generic; using System.Data.SqlClient; using System.Net.Mail; -using TCDB.Assignments; -using TCDB.Common; -using TCDB.Users; -using TCDB.Products; +using TCDB.Code; using eWorld.UI; -using log4net; -public partial class ActionItems : SiteUserControl + +namespace TCDB { - private static ILog m_logg = LogManager.GetLogger("Page:ActionItems"); - private ActionItem ai; - private String item_id = HttpContext.Current.Request.QueryString[Constants.CODE_AI]; - private int productID = Convert.ToInt32(HttpContext.Current.Request.QueryString[Constants.CODE_PRODUCT]); - private String mode = HttpContext.Current.Request.QueryString["mode"]; - - protected void Page_Load(object sender, EventArgs e) + public partial class ActionItems : SiteUserControl { - if (productID == 0) - productID = Constants.PRODUCT_SITEID; + private static Logger m_logg = new Logger("TCDB.ActionItems"); + private ActionItem ai; + private String item_id = HttpContext.Current.Request.QueryString[Constants.CODE_AI]; + private int productID = Convert.ToInt32(HttpContext.Current.Request.QueryString[Constants.CODE_PRODUCT]); + private String mode = HttpContext.Current.Request.QueryString["mode"]; - m_logg.Debug("Loading page ActionItems"); - if (item_id == null) + protected void Page_Load(object sender, EventArgs e) { - m_logg.Debug("Unable to locate action item ID in query string"); - if (mode != "new") + if (productID == 0) + productID = Constants.PRODUCT_SITEID; + + m_logg.Debug("Loading page ActionItems"); + if (item_id == null) { - m_logg.Debug("Mode not set, redirecting to Assignments page"); - Response.Redirect("Assignments.aspx?" + Constants.CODE_USER + "=" + m_user.ID); + m_logg.Debug("Unable to locate action item ID in query string"); + if (mode != "new") + { + m_logg.Debug("Mode not set, redirecting to Assignments page"); + Response.Redirect("Assignments.aspx?" + Constants.CODE_USER + "=" + m_user.ID); + } } - } - else - { - ai = ActionItemDB.GetActionItem(Convert.ToInt32(item_id),active); + else + { + ai = ActionItemDB.GetActionItem(Convert.ToInt32(item_id), active); - if (ai != null && - (!m_user.HasRight("view_other_ai", productID) && - !(ai.ASSIGNED.ID == m_user.ID && m_user.HasRight("view_my_ai", productID)) && - !(ai.CREATOR.ID == m_user.ID && m_user.HasRight("view_created_ai", productID)))) - Response.Redirect("~/Assignments.aspx?"+Constants.CODE_USER+"="+m_user.ID); - } + if (ai != null && + (!m_user.HasRight("view_other_ai", productID) && + !(ai.ASSIGNED.ID == m_user.ID && m_user.HasRight("view_my_ai", productID)) && + !(ai.CREATOR.ID == m_user.ID && m_user.HasRight("view_created_ai", productID)))) + Response.Redirect("~/Assignments.aspx?" + Constants.CODE_USER + "=" + m_user.ID); + } - Session.Add("item_id", item_id); - Session.Add("productID", productID); - Session.Add("tableName", "tcdb_actionItem"); + Session.Add("item_id", item_id); + Session.Add("productID", productID); + Session.Add("tableName", "tcdb_actionItem"); - if (mode == "new" && (m_user.HasRight("create_my_ai") || m_user.HasRight("create_other_ai"))) - ActionItemsView.ChangeMode(FormViewMode.Insert); - } - - protected void updateStatus() - { - RadioButtonList percentList = (RadioButtonList)ActionItemsView.FindControl("percentList"); - DropDownList statusList = (DropDownList)ActionItemsView.FindControl("statusList"); - Object dateFinished = ActionItemsView.FindControl("dateFinished"); - Nullable<DateTime> date; - int id = Convert.ToInt32(item_id); - - if (ActionItemsView.CurrentMode == FormViewMode.ReadOnly) - { - String finished = ((Label)dateFinished).Text; - - if (finished == "") - date = null; - else - date = Convert.ToDateTime(finished); + if (mode == "new" && (m_user.HasRight("create_my_ai") || m_user.HasRight("create_other_ai"))) + ActionItemsView.ChangeMode(FormViewMode.Insert); } - else - { - date = ((CalendarPopup)dateFinished).SelectedValue; - } - // Update Database - tcdbDataSetTableAdapters.db_actionItemsTableAdapter aiAdapter = new tcdbDataSetTableAdapters.db_actionItemsTableAdapter(); - aiAdapter.upd_actionItemStatus(id, Convert.ToInt32(statusList.SelectedValue), Convert.ToInt32(percentList.SelectedValue), date); - - m_logg.Debug("Action Item updated, preparing to send email"); - if (date == null) - ActionItemDB.SendUpdatedActionItemMail(id, m_user); - else - ActionItemDB.SendCompletedActionItemMail(id, m_user); - Response.Redirect(Request.RawUrl); - - } - protected void dateFinished_DateChanged(object sender, EventArgs e) - { - if (ActionItemsView.CurrentMode != FormViewMode.Insert) + protected void updateStatus() { RadioButtonList percentList = (RadioButtonList)ActionItemsView.FindControl("percentList"); DropDownList statusList = (DropDownList)ActionItemsView.FindControl("statusList"); - CalendarPopup dateFinished = (CalendarPopup)sender; + Object dateFinished = ActionItemsView.FindControl("dateFinished"); + Nullable<DateTime> date; + int id = Convert.ToInt32(item_id); - if (dateFinished.SelectedValue != null) + if (ActionItemsView.CurrentMode == FormViewMode.ReadOnly) { - dateFinished.ClearDateText = "Clear Date"; - statusList.SelectedValue = statusList.Items.FindByText("Completed").Value; - percentList.SelectedValue = "100"; + String finished = ((Label)dateFinished).Text; + + if (finished == "") + date = null; + else + date = Convert.ToDateTime(finished); } else { - dateFinished.ClearDateText = ""; - if (statusList.SelectedItem.Text == "Completed") - statusList.SelectedValue = statusList.Items.FindByText("Active").Value; - if (percentList.SelectedValue == "100") - percentList.SelectedValue = "75"; + date = ((CalendarPopup)dateFinished).SelectedValue; } - if (ActionItemsView.CurrentMode == FormViewMode.ReadOnly) - updateStatus(); - } + // Update Database + tcdbDataSetTableAdapters.db_actionItemsTableAdapter aiAdapter = new tcdbDataSetTableAdapters.db_actionItemsTableAdapter(); + aiAdapter.upd_actionItemStatus(id, Convert.ToInt32(statusList.SelectedValue), Convert.ToInt32(percentList.SelectedValue), date); - // Check for bad state - if (ActionItemsView.CurrentMode == FormViewMode.Edit) - { - FreeTextBoxControls.FreeTextBox ftb = (FreeTextBoxControls.FreeTextBox)ActionItemsView.FindControl("descriptionBox"); - if (ftb.Text == "") - ActionItemsView.DataBind(); + m_logg.Debug("Action Item updated, preparing to send email"); + if (date == null) + ActionItemDB.SendUpdatedActionItemMail(id, m_user); + else + ActionItemDB.SendCompletedActionItemMail(id, m_user); + Response.Redirect(Request.RawUrl); + } - } - protected void percentChanged(object sender, EventArgs e) - { - if (ActionItemsView.CurrentMode != FormViewMode.Insert) + protected void dateFinished_DateChanged(object sender, EventArgs e) { - RadioButtonList percentList = (RadioButtonList)sender; - DropDownList statusList = (DropDownList)ActionItemsView.FindControl("statusList"); - - if (percentList.SelectedValue == "100") + if (ActionItemsView.CurrentMode != FormViewMode.Insert) { - statusList.SelectedValue = statusList.Items.FindByText("Completed").Value; + RadioButtonList percentList = (RadioButtonList)ActionItemsView.FindControl("percentList"); + DropDownList statusList = (DropDownList)ActionItemsView.FindControl("statusList"); + CalendarPopup dateFinished = (CalendarPopup)sender; - // Set finished Date - if (ActionItemsView.CurrentMode == FormViewMode.ReadOnly) + if (dateFinished.SelectedValue != null) { - Label dateFinished = (Label)ActionItemsView.FindControl("dateFinished"); - - if (dateFinished.Text == "") - dateFinished.Text = DateTime.Today.ToShortDateString(); + dateFinished.ClearDateText = "Clear Date"; + statusList.SelectedValue = statusList.Items.FindByText("Completed").Value; + percentList.SelectedValue = "100"; } else { - CalendarPopup dateFinished = (CalendarPopup)ActionItemsView.FindControl("dateFinished"); - - if (dateFinished.SelectedValue == null) - dateFinished.SelectedValue = DateTime.Today; - dateFinished.ClearDateText = "Clear Date"; + dateFinished.ClearDateText = ""; + if (statusList.SelectedItem.Text == "Completed") + statusList.SelectedValue = statusList.Items.FindByText("Active").Value; + if (percentList.SelectedValue == "100") + percentList.SelectedValue = "75"; } - } - else { - if (percentList.SelectedValue == "0") - statusList.SelectedValue = statusList.Items.FindByText("Not Started").Value; - else if (percentList.SelectedValue == "25" || percentList.SelectedValue == "75" || percentList.SelectedValue == "50") - statusList.SelectedValue = statusList.Items.FindByText("Active").Value; - // Unset finished Date if (ActionItemsView.CurrentMode == FormViewMode.ReadOnly) - { - Label dateFinished = (Label)ActionItemsView.FindControl("dateFinished"); - dateFinished.Text = ""; - } - else - { - CalendarPopup dateFinished = (CalendarPopup)ActionItemsView.FindControl("dateFinished"); - dateFinished.Clear(); - dateFinished.PostedDate = ""; - dateFinished.ClearDateText = ""; - } + updateStatus(); } - if (ActionItemsView.CurrentMode == FormViewMode.ReadOnly) - updateStatus(); - } - // Check for bad state - if (ActionItemsView.CurrentMode == FormViewMode.Edit) - { - FreeTextBoxControls.FreeTextBox ftb = (FreeTextBoxControls.FreeTextBox)ActionItemsView.FindControl("descriptionBox"); - if (ftb.Text == "") - ActionItemsView.DataBind(); + // Check for bad state + if (ActionItemsView.CurrentMode == FormViewMode.Edit) + { + FreeTextBoxControls.FreeTextBox ftb = (FreeTextBoxControls.FreeTextBox)ActionItemsView.FindControl("descriptionBox"); + if (ftb.Text == "") + ActionItemsView.DataBind(); + } } - } - protected void statusChanged(object sender, EventArgs e) - { - if (ActionItemsView.CurrentMode != FormViewMode.Insert) + protected void percentChanged(object sender, EventArgs e) { - RadioButtonList percentList = (RadioButtonList)ActionItemsView.FindControl("percentList"); - DropDownList statusList = (DropDownList)sender; - - if (statusList.SelectedItem.Text == "Completed") + if (ActionItemsView.CurrentMode != FormViewMode.Insert) { - percentList.SelectedValue = "100"; + RadioButtonList percentList = (RadioButtonList)sender; + DropDownList statusList = (DropDownList)ActionItemsView.FindControl("statusList"); - // Set finished Date - if (ActionItemsView.CurrentMode == FormViewMode.ReadOnly) + if (percentList.SelectedValue == "100") { - Label dateFinished = (Label)ActionItemsView.FindControl("dateFinished"); + statusList.SelectedValue = statusList.Items.FindByText("Completed").Value; - dateFinished.Text = DateTime.Today.ToShortDateString(); + // Set finished Date + if (ActionItemsView.CurrentMode == FormViewMode.ReadOnly) + { + Label dateFinished = (Label)ActionItemsView.FindControl("dateFinished"); + + if (dateFinished.Text == "") + dateFinished.Text = DateTime.Today.ToShortDateString(); + } + else + { + CalendarPopup dateFinished = (CalendarPopup)ActionItemsView.FindControl("dateFinished"); + + if (dateFinished.SelectedValue == null) + dateFinished.SelectedValue = DateTime.Today; + dateFinished.ClearDateText = "Clear Date"; + } } else { - CalendarPopup dateFinished = (CalendarPopup)ActionItemsView.FindControl("dateFinished"); + if (percentList.SelectedValue == "0") + statusList.SelectedValue = statusList.Items.FindByText("Not Started").Value; + else if (percentList.SelectedValue == "25" || percentList.SelectedValue == "75" || percentList.SelectedValue == "50") + statusList.SelectedValue = statusList.Items.FindByText("Active").Value; - dateFinished.SelectedValue = DateTime.Today; - dateFinished.ClearDateText = "Clear Date"; + // Unset finished Date + if (ActionItemsView.CurrentMode == FormViewMode.ReadOnly) + { + Label dateFinished = (Label)ActionItemsView.FindControl("dateFinished"); + dateFinished.Text = ""; + } + else + { + ... [truncated message content] |
From: <ro...@us...> - 2006-08-08 21:27:07
|
Revision: 284 Author: rouquin Date: 2006-08-08 14:26:55 -0700 (Tue, 08 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=284&view=rev Log Message: ----------- I ran into a ton of merging conflicts but here's some new stuff. I moved the role assignments to a new page. Modified Paths: -------------- Website/App_Code/Assignments.cs Website/Includes/AssignmentsTree.ascx.cs Website/Includes/RoleAdmin.ascx.cs Website/Includes/Roles.ascx Website/Includes/Roles.ascx.cs Added Paths: ----------- Website/Includes/RoleAssignments.ascx Website/Includes/RoleAssignments.ascx.cs Website/RoleAssignments.aspx Modified: Website/App_Code/Assignments.cs =================================================================== --- Website/App_Code/Assignments.cs 2006-08-08 20:56:12 UTC (rev 283) +++ Website/App_Code/Assignments.cs 2006-08-08 21:26:55 UTC (rev 284) @@ -9,7 +9,6 @@ using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; - namespace TCDB.Code { public class AssignmentDB @@ -291,7 +290,7 @@ private User p_creator; private User p_assigned; private DateTime p_dateAssigned; - private DateTime p_dateFinished; + private Nullable<DateTime> p_dateFinished; private DateTime p_dateDue; private WorkOrder p_workOrder; private ActionItem p_actionItem; @@ -311,7 +310,7 @@ p_creator = new User(); p_assigned = new User(); p_dateAssigned = new DateTime(1, 1, 1); - p_dateFinished = new DateTime(1, 1, 1); + p_dateFinished = null; p_dateDue = new DateTime(1, 1, 1); p_workOrder = null; p_actionItem = null; @@ -355,7 +354,7 @@ set { p_dateAssigned = value; } } - public DateTime DATEFINISHED + public Nullable<DateTime> DATEFINISHED { get { return p_dateFinished; } set { p_dateFinished = value; } Modified: Website/Includes/AssignmentsTree.ascx.cs =================================================================== --- Website/Includes/AssignmentsTree.ascx.cs 2006-08-08 20:56:12 UTC (rev 283) +++ Website/Includes/AssignmentsTree.ascx.cs 2006-08-08 21:26:55 UTC (rev 284) @@ -344,14 +344,16 @@ else continue; } if (a.DELETED) - { child.Text = "<font class='deleted'>" + child.Text + "</font>"; - } + else if (a.DATEFINISHED != null) + child.Text = "<font class='finished'>" + child.Text + "</font>"; + else if (a.DATEDUE < DateTime.Today) + child.Text = "<font class='overdue'>" + child.Text + "</font>"; // Add the new child node to the ChildNodes collection of the parent node. parent.ChildNodes.Add(child); } - + // if there are no assignments if (parent.ChildNodes.Count == 0) parent.Parent.ChildNodes.Remove(parent); Modified: Website/Includes/RoleAdmin.ascx.cs =================================================================== --- Website/Includes/RoleAdmin.ascx.cs 2006-08-08 20:56:12 UTC (rev 283) +++ Website/Includes/RoleAdmin.ascx.cs 2006-08-08 21:26:55 UTC (rev 284) @@ -15,11 +15,13 @@ { public partial class RoleAdmin : SiteUserControl { - private static Logger m_logg = new Logger("TCDB.Authenticate"); + private static Logger m_logg = new Logger("TCDB.RoleAdmin"); int productID = Convert.ToInt32(HttpContext.Current.Request.QueryString[Constants.CODE_PRODUCT]); protected void Page_Load(object sender, EventArgs e) { + m_logg.Debug("Loading page Role Admin"); + if (productID == 0) productID = Constants.PRODUCT_ANYID; } @@ -30,7 +32,7 @@ } protected void addRole(object sender, CommandEventArgs e) { - Response.Redirect("Role.aspx?mode=edit&" + Constants.CODE_PRODUCT + "=" + productID + "&" + Constants.CODE_ROLE + "=" + roleList.SelectedValue); + Response.Redirect("RoleAssignments.aspx?" + Constants.CODE_PRODUCT + "=" + productID + "&" + Constants.CODE_ROLE + "=" + roleList.SelectedValue); } protected void newRole(object sender, CommandEventArgs e) { @@ -84,15 +86,15 @@ return; } - if (!m_user.HasRight("dev_access")) + if (!m_user.HasRight("dev_access")) editRightsBtn.Visible = false; - List<Right> rights = RightDB.TCDB_GetRightList(active); + List<Right> rights = RightDB.TCDB_GetRightList(active); - foreach (Right right in rights) + foreach (Right right in rights) { - ListItem item = new ListItem(right.NAME, right.ID.ToString()); - if (!right.ACTIVE) + ListItem item = new ListItem(right.NAME, right.ID.ToString()); + if (!right.ACTIVE) item.Attributes.CssStyle.Add("text-decoration", "line-through"); rightsList.Items.Add(item); @@ -114,6 +116,5 @@ !m_user.HasRight("view_other_roles", productID)) viewRoleBtn.Visible = false; } - } } Added: Website/Includes/RoleAssignments.ascx =================================================================== --- Website/Includes/RoleAssignments.ascx (rev 0) +++ Website/Includes/RoleAssignments.ascx 2006-08-08 21:26:55 UTC (rev 284) @@ -0,0 +1,26 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeFile="RoleAssignments.ascx.cs" + Inherits="RoleAssignments" %> +<table width="700"> + <tr> + <td> + <h2> + <asp:LinkButton ID="roleNameBtn" runat="server" OnClick="roleNameBtn_Click"></asp:LinkButton></h2> + </td> + <td> + <asp:Button ID="Update" runat="server" Text="Update" OnClick="Update_Click"></asp:Button> + </td> + </tr> + <tr> + <td align="left" valign="top"> + <strong>Products: </strong><asp:DropDownList ID="productList" runat="server" + AutoPostBack="True" OnSelectedIndexChanged="productList_SelectedIndexChanged" + OnInit="productList_Init"> + </asp:DropDownList> + </td> + <td> + <strong>Users:</strong><br /> + <asp:ListBox ID="userList" runat="server" SelectionMode="Multiple" Height="500px" + Width="200px"></asp:ListBox> + </td> + </tr> +</table> Added: Website/Includes/RoleAssignments.ascx.cs =================================================================== --- Website/Includes/RoleAssignments.ascx.cs (rev 0) +++ Website/Includes/RoleAssignments.ascx.cs 2006-08-08 21:26:55 UTC (rev 284) @@ -0,0 +1,175 @@ +using System; +using System.Data; +using System.Configuration; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using System.Collections.Generic; +using System.Collections; +using TCDB; +using TCDB.Code; +using log4net; + +public partial class RoleAssignments : SiteUserControl +{ + private static ILog m_logg = LogManager.GetLogger("Page:Role Assignments"); + Role role; + int roleID = Convert.ToInt32(HttpContext.Current.Request.QueryString[Constants.CODE_ROLE]); + int productID = Convert.ToInt32(HttpContext.Current.Request.QueryString[Constants.CODE_PRODUCT]); + + protected void Page_Load(object sender, EventArgs e) + { + // Check roleID + if (roleID == 0) + { + m_logg.Info("Could not find role"); + Response.Redirect("~/Administration.aspx"); + } + role = RightDB.GetRoleInfo(roleID); + + // Check rights + if (!m_user.HasRight("edit_role_users",Constants.PRODUCT_ANYID)) + Response.Redirect("~/Administration.aspx"); + + roleNameBtn.Text = role.NAME; + } + + protected void updateUserRoleProducts() + { + Dictionary<int, ArrayList> ProductUsers = (Dictionary<int, ArrayList>)Session["ProductUsers"]; + if (ProductUsers == null) + return; + tcdbDataSetTableAdapters.db_roleUserProductTableAdapter rupAdapter = new tcdbDataSetTableAdapters.db_roleUserProductTableAdapter(); + + // Update ProductUsers + int[] indices = userList.GetSelectedIndices(); + ArrayList users = new ArrayList(); + foreach (int index in indices) + users.Add(userList.Items[index].Value); + if (ProductUsers.ContainsKey(Convert.ToInt32(productList.SelectedValue))) + ProductUsers[Convert.ToInt32(productList.SelectedValue)] = users; + + foreach (ListItem product in productList.Items) + { + /* + String productID = item.Value; + + // Clear list + rupAdapter.upd_userRoleProduct(null,null,Convert.ToInt32(productID),false); + + // update ProductUser roles + if (ProductUsers.ContainsKey(productID)) + { + foreach (String userID in ProductUsers[productID]) + rupAdapter.ins_userRoleProduct(Convert.ToInt32(userID),roleID,Convert.ToInt32(productID)); + } + */ + int productID = Convert.ToInt32(product.Value); + foreach (ListItem user in userList.Items) + { + int userID = Convert.ToInt32(user.Value); + + if (ProductUsers.ContainsKey(productID) && ProductUsers[productID].Contains(userID.ToString())) + rupAdapter.ins_userRoleProduct(userID, roleID, productID); + else + rupAdapter.upd_userRoleProduct(userID, roleID, productID, false); + } + } + } + protected void updateProductUsers() + { + // Init ProductUsers + Dictionary<int, ArrayList> ProductUsers = new Dictionary<int, ArrayList>(); + List<Product> products = ProductDB.GetProductList(active); + + foreach (Product product in products) + { + ArrayList users = new ArrayList(); + + tcdbDataSetTableAdapters.db_roleProductUserTableAdapter roleProductUserAdapter = new tcdbDataSetTableAdapters.db_roleProductUserTableAdapter(); + tcdbDataSet.db_roleProductUserDataTable roleProductUserTable = roleProductUserAdapter.GetData(roleID, product.ID, true); + + foreach (tcdbDataSet.db_roleProductUserRow row in roleProductUserTable) + users.Add(row.userID.ToString()); + + ProductUsers[product.ID] = users; + } + Session["ProductUsers"] = ProductUsers; + } + + protected void productList_Init(object sender, EventArgs e) + { + List<Product> products = ProductDB.GetProductList(active); + foreach (Product product in products) + if (m_user.HasRight("edit_role_users", product.ID)) + productList.Items.Add(new ListItem(product.NAME, product.ID.ToString())); + + // Set selected value + if (productList.Items.FindByValue(productID.ToString()) != null && m_user.HasRight("edit_role_users", productID)) + productList.SelectedValue = productID.ToString(); + Session["product"] = productList.SelectedValue; + + userList_populate(Convert.ToInt32(productList.SelectedValue)); + } + protected void productList_SelectedIndexChanged(object sender, EventArgs e) + { + // Get Product Users + if (Session["ProductUsers"] == null) + updateProductUsers(); + Dictionary<int, ArrayList> ProductUsers = (Dictionary<int, ArrayList>)Session["ProductUsers"]; + + // update selected product + if (Session["product"] != null) + { + int productID = Convert.ToInt32(Session["product"]); + + // Update ProductUsers + int[] indices = userList.GetSelectedIndices(); + ArrayList users = new ArrayList(); + foreach (int index in indices) + users.Add(userList.Items[index].Value); + if (ProductUsers.ContainsKey(productID)) + ProductUsers[productID] = users; + } + Session["product"] = productList.SelectedValue; + + // Update userlist + userList_populate(Convert.ToInt32(productList.SelectedValue)); + } + + protected void userList_populate(int productID) + { + // Get ProductUsers + updateProductUsers(); + Dictionary<int, ArrayList> ProductUsers = (Dictionary<int, ArrayList>)Session["ProductUsers"]; + + // Init selected user list + ArrayList users; + if (ProductUsers.ContainsKey(productID)) + users = ProductUsers[productID]; + else + users = new ArrayList(); + + // populate user list + userList.Items.Clear(); + List<User> usersList = UserDB.TCDB_GetUserList(); + foreach (User user in usersList) + { + ListItem item = new ListItem(user.FULLNAME, user.ID.ToString()); + if (users.Contains(user.ID.ToString())) + item.Selected = true; + userList.Items.Add(item); + } + } + protected void Update_Click(object sender, EventArgs e) + { + updateUserRoleProducts(); + } + protected void roleNameBtn_Click(object sender, EventArgs e) + { + Response.Redirect("~/Role.aspx?" + Constants.CODE_PRODUCT + "=" + productID + "&" + Constants.CODE_ROLE + "=" + roleID); + } +} Modified: Website/Includes/Roles.ascx =================================================================== --- Website/Includes/Roles.ascx 2006-08-08 20:56:12 UTC (rev 283) +++ Website/Includes/Roles.ascx 2006-08-08 21:26:55 UTC (rev 284) @@ -7,9 +7,11 @@ <div align="left"> <h2> User Role</h2> - </div><div align="right"> + </div> + <div align="right"> <asp:Label ID="activeLbl" runat="server" Text="Active"></asp:Label> - <asp:CheckBox ID="activeBox" runat="server" AutoPostBack="True" OnCheckedChanged="activeBox_CheckedChanged" OnInit="activeBox_Init" /></div> + <asp:CheckBox ID="activeBox" runat="server" AutoPostBack="True" OnCheckedChanged="activeBox_CheckedChanged" + OnInit="activeBox_Init" /></div> </HeaderTemplate> <ItemTemplate> <div class="xsnazzy"> @@ -40,6 +42,9 @@ <asp:Panel ID="ProductUserPanel" runat="server" Height="100%" Width="100%" OnInit="ProductUserPanel_Init" ScrollBars="Horizontal" Wrap="False"> </asp:Panel> + <br /> + <asp:LinkButton ID="editAssignments" runat="server" CommandName="editAssignments" + OnCommand="editAssignments_Command">Edit Role Assignments</asp:LinkButton> </td> <td colspan="2" align="left" valign="top" width="34%" style="height: 132px"> <strong>Rights:</strong><br /> @@ -54,9 +59,9 @@ <tr> <td align="left" colspan="6"> <asp:LinkButton ID="New" runat="server" CommandName="new" OnInit="New_Init">New</asp:LinkButton><asp:Label - ID="newLbl" runat="server" Text=" | "></asp:Label><asp:LinkButton - ID="Edit" runat="server" CommandName="edit" OnInit="Edit_Init">Edit</asp:LinkButton><asp:Label ID="deleteLbl" - runat="server" Text=" | "></asp:Label><asp:LinkButton ID="Delete" + ID="newLbl" runat="server" Text=" | "></asp:Label><asp:LinkButton ID="Edit" + runat="server" CommandName="edit" OnInit="Edit_Init">Edit</asp:LinkButton><asp:Label + ID="deleteLbl" runat="server" Text=" | "></asp:Label><asp:LinkButton ID="Delete" runat="server" CommandName="deleteCmd" OnCommand="deleteCmd" OnLoad="Delete_Load">Delete</asp:LinkButton></td> </tr> </table> @@ -76,8 +81,8 @@ <tr> <td align="left" colspan="6"> <strong>Name:</strong> - <asp:TextBox ID="nameBox" runat="server" Text='<%# Bind("roleName") %>' Width="70%" OnLoad="nameBox_Load"></asp:TextBox> - <asp:Label ID="nameLbl" runat="server" Text='<%# Eval("roleName") %>' Visible="False"></asp:Label></td> + <asp:TextBox ID="nameBox" runat="server" Text='<%# Bind("roleName") %>' Width="70%"></asp:TextBox> + </td> </tr> <tr> <td class="hr" colspan="6"> @@ -90,8 +95,7 @@ Width="100%" Text='<%# Bind("roleDescription") %>' Height="200px" EnableHtmlMode="true" DisableIEBackButton="False"> </FTB:FreeTextBox> - <asp:Label ID="descriptionLbl" runat="server" Text='<%# Eval("roleDescription") %>' - Visible="False"></asp:Label></td> + </td> </tr> <tr> <td class="hr" colspan="6"> @@ -99,22 +103,16 @@ </tr> <tr> <td colspan="2" align="left" valign="top" width="33%"> - <strong>Products: <asp:DropDownList ID="productList" runat="server" AutoPostBack="True" - OnSelectedIndexChanged="productList_SelectedIndexChanged" OnInit="productList_Init"> - </asp:DropDownList></strong> </td> + </td> <td colspan="2" align="left" valign="top" width="33%"> - <strong>Users:<br /> - </strong> - <asp:ListBox ID="userList" runat="server" SelectionMode="Multiple" - Height="150px" Width="150px" OnInit="userList_Init"></asp:ListBox></td> + </td> <td colspan="2" align="left" valign="top" width="34%"> <strong>Rights:<br /> - <asp:LinkButton ID="newRight" runat="server" CommandName="newRight" OnCommand="newRight" - OnInit="newRight_Init">New Right</asp:LinkButton><br /> + <asp:LinkButton ID="newRight" runat="server" CommandName="newRight" OnCommand="newRight">New Right</asp:LinkButton><br /> </strong> <asp:ListBox ID="rightsList" runat="server" DataSourceID="RightsDataSource" DataTextField="rightsName" DataValueField="rightsID" SelectionMode="Multiple" - Height="150px" OnDataBound="rightsList_DataBound" Width="150px" OnInit="rightsList_Init"></asp:ListBox> - </td> + Height="150px" OnDataBound="rightsList_DataBound" Width="150px"> + </asp:ListBox> </td> </tr> <tr> <td class="hr" colspan="6"> @@ -167,15 +165,9 @@ </tr> <tr> <td colspan="2" align="left" valign="top" width="33%"> - <strong>Products: </strong><asp:DropDownList ID="productList" runat="server" - AutoPostBack="True" OnSelectedIndexChanged="productList_SelectedIndexChanged" OnInit="productList_Init"> - </asp:DropDownList> - </td> + </td> <td colspan="2" align="left" valign="top" width="33%"> - <strong>Users:<br /> - </strong> - <asp:ListBox ID="userList" runat="server" SelectionMode="Multiple" - Height="150px" Width="150px"></asp:ListBox></td> + </td> <td colspan="2" align="left" valign="top" width="34%"> <strong>Rights: <asp:LinkButton ID="newRight" runat="server" CommandName="newRight" OnCommand="newRight">New Right</asp:LinkButton><br /> Modified: Website/Includes/Roles.ascx.cs =================================================================== --- Website/Includes/Roles.ascx.cs 2006-08-08 20:56:12 UTC (rev 283) +++ Website/Includes/Roles.ascx.cs 2006-08-08 21:26:55 UTC (rev 284) @@ -11,17 +11,17 @@ using System.Web.UI.HtmlControls; using System.Data.SqlClient; using TCDB.Code; +using log4net; - namespace TCDB { public partial class TCDBRoles : SiteUserControl { - private static Logger m_logg = new Logger("TCDB.TCDBRoles"); + private static ILog m_logg = LogManager.GetLogger("Page:TCDBRoles"); int roleID = Convert.ToInt32(HttpContext.Current.Request.QueryString[Constants.CODE_ROLE]); Role role; String mode = HttpContext.Current.Request.QueryString["mode"]; - String productID_in = HttpContext.Current.Request.QueryString[Constants.CODE_PRODUCT]; + String productID = HttpContext.Current.Request.QueryString[Constants.CODE_PRODUCT]; protected void Page_Load(object sender, EventArgs e) { @@ -54,49 +54,31 @@ FormView1.ChangeMode(FormViewMode.Edit); } - protected void updateUserRoleProducts() + protected void updateProductUsers() { - DropDownList productList = (DropDownList)FormView1.FindControl("productList"); - ListBox userList = (ListBox)FormView1.FindControl("userList"); - Dictionary<String, ArrayList> ProductUsers = (Dictionary<String, ArrayList>)Session["ProductUsers"]; - if (ProductUsers == null) + // Init ProductUsers + Dictionary<int, ArrayList> ProductUsers = new Dictionary<int, ArrayList>(); + + if (FormView1.CurrentMode == FormViewMode.Insert) return; - tcdbDataSetTableAdapters.db_roleUserProductTableAdapter rupAdapter = new tcdbDataSetTableAdapters.db_roleUserProductTableAdapter(); - // Update ProductUsers - int[] indices = userList.GetSelectedIndices(); - ArrayList users = new ArrayList(); - foreach (int index in indices) - users.Add(userList.Items[index].Value); - if (ProductUsers.ContainsKey(productList.SelectedValue)) - ProductUsers[productList.SelectedValue] = users; - - foreach (ListItem product in productList.Items) + foreach (Product product in ProductDB.GetProductList(active)) { - /* - String productID = item.Value; + ArrayList users = new ArrayList(); + int productID = product.ID; - // Clear list - rupAdapter.upd_userRoleProduct(null,null,Convert.ToInt32(productID),false); + tcdbDataSetTableAdapters.db_roleProductUserTableAdapter roleProductUserAdapter = new tcdbDataSetTableAdapters.db_roleProductUserTableAdapter(); + tcdbDataSet.db_roleProductUserDataTable roleProductUserTable = roleProductUserAdapter.GetData(roleID, productID, true); - // update ProductUser roles - if (ProductUsers.ContainsKey(productID)) - { - foreach (String userID in ProductUsers[productID]) - rupAdapter.ins_userRoleProduct(Convert.ToInt32(userID),roleID,Convert.ToInt32(productID)); - } - */ - int productID = Convert.ToInt32(product.Value); - foreach (ListItem user in userList.Items) - { - int userID = Convert.ToInt32(user.Value); + foreach (tcdbDataSet.db_roleProductUserRow row in roleProductUserTable) + users.Add(row.userID.ToString()); - if (ProductUsers.ContainsKey(productID.ToString()) && ProductUsers[productID.ToString()].Contains(userID.ToString())) - rupAdapter.ins_userRoleProduct(userID, roleID, productID); - else - rupAdapter.upd_userRoleProduct(userID, roleID, productID, false); - } + if (ProductUsers.ContainsKey(product.ID)) + ProductUsers[product.ID] = users; + else + ProductUsers.Add(product.ID, users); } + Session["ProductUsers"] = ProductUsers; } protected void updateRoleRights() { @@ -104,30 +86,10 @@ // Clear roles tcdbDataSetTableAdapters.db_roleRightTableAdapter rrAdapter = new tcdbDataSetTableAdapters.db_roleRightTableAdapter(); - rrAdapter.DeleteRoleRights(roleID,null); + rrAdapter.DeleteRoleRights(roleID, null); - // Update roles - int[] indices = rightsList.GetSelectedIndices(); - foreach (int index in indices) - { - int rightsID = Convert.ToInt32(rightsList.Items[index].Value); - - rrAdapter.InsertRoleRights(roleID,rightsID); - } - /* - tcdbDataSetTableAdapters.db_roleRightTableAdapter rrAdapter = new tcdbDataSetTableAdapters.db_roleRightTableAdapter(); - foreach (ListItem item in rightsList.Items) - { - int rightsID = Convert.ToInt32(item.Value); - - if (item.Selected) - rrAdapter.InsertRoleRights(roleID, rightsID); - else - rrAdapter.DeleteRoleRights(roleID, rightsID); - } - * */ - } + protected void FormView1_ItemInserted(object sender, FormViewInsertedEventArgs e) { tcdbDataSetTableAdapters.db_roleTableAdapter roleAdapter = new tcdbDataSetTableAdapters.db_roleTableAdapter(); @@ -137,7 +99,6 @@ { roleID = roleTable[roleTable.Count - 1].roleID; - updateUserRoleProducts(); updateRoleRights(); Session.Remove("tableName"); Response.Redirect("~/Role.aspx?" + Constants.CODE_ROLE + "=" + roleID); @@ -151,7 +112,6 @@ } protected void FormView1_ItemUpdated(object sender, FormViewUpdatedEventArgs e) { - updateUserRoleProducts(); updateRoleRights(); Session.Remove("tableName"); Response.Redirect("~/Role.aspx?" + Constants.CODE_ROLE + "=" + roleID); @@ -169,29 +129,14 @@ { if (FormView1.CurrentMode == FormViewMode.Insert && e.CommandName == "Cancel") { - Session.Remove("tableName"); - Response.Redirect("~/Administration.aspx"); - } - } - - protected void userList_DataBound(object sender, EventArgs e) - { - Dictionary<String, ArrayList> ProductUsers = (Dictionary<String, ArrayList>)Session["ProductUsers"]; - - if (ProductUsers != null) - { - ListBox userList = (ListBox)sender; - DropDownList productList = (DropDownList)FormView1.FindControl("productList"); - String productID = productList.SelectedValue; - userList.ClearSelection(); - - if (ProductUsers.ContainsKey(productID)) + if (FormView1.CurrentMode == FormViewMode.Insert && e.CommandName == "Cancel") { - foreach (String userID in ProductUsers[productID]) - userList.Items.FindByValue(userID).Selected = true; + Session.Remove("tableName"); + Response.Redirect("~/Administration.aspx"); } } } + protected void rightsList_DataBound(object sender, EventArgs e) { ListBox rightsList = (ListBox)sender; @@ -207,98 +152,24 @@ item.Attributes.CssStyle.Add("text-decoration", "line-through"); } } - - protected void addUsers(object sender, CommandEventArgs e) - { - updateUserRoleProducts(); - } protected void newRight(object sender, CommandEventArgs e) { Response.Redirect("Right.aspx?mode=new&" + Constants.CODE_ROLE + "=" + roleID); } - protected void productList_SelectedIndexChanged(object sender, EventArgs e) - { - ListBox userList = (ListBox)FormView1.FindControl("userList"); - DropDownList productList = (DropDownList)sender; - - // Check for bad state - if (FormView1.CurrentMode == FormViewMode.Edit) - { - FreeTextBoxControls.FreeTextBox ftb = (FreeTextBoxControls.FreeTextBox)FormView1.FindControl("descriptionBox"); - if (ftb.Text == "") - FormView1.DataBind(); - } - - // Get Product Users - if (Session["ProductUsers"] == null) - updateProductUsers(); - Dictionary<String, ArrayList> ProductUsers = (Dictionary<String, ArrayList>)Session["ProductUsers"]; - - // update selected product - String productID; - if (Session["product"] != null) - { - productID = Session["product"].ToString(); - - // Update ProductUsers - int[] indices = userList.GetSelectedIndices(); - ArrayList users = new ArrayList(); - foreach (int index in indices) - users.Add(userList.Items[index].Value); - if (ProductUsers.ContainsKey(productID)) - ProductUsers[productID] = users; - } - - Session["product"] = productList.SelectedValue; - // Update userlist - userList_populate(); - } - protected void updateProductUsers() - { - // Init ProductUsers - if (Session["ProductUsers"] == null) - Session.Add("ProductUsers", new Dictionary<String, ArrayList>()); - Dictionary<String, ArrayList> ProductUsers = (Dictionary<String, ArrayList>)Session["ProductUsers"]; - ProductUsers.Clear(); - - if (FormView1.CurrentMode == FormViewMode.Insert) - return; - - tcdbDataSetTableAdapters.db_productsTableAdapter pAdapter = new tcdbDataSetTableAdapters.db_productsTableAdapter(); - tcdbDataSet.db_productsDataTable pTable = pAdapter.GetData(active, null, null); - - foreach (tcdbDataSet.db_productsRow pRow in pTable) - { - ArrayList users = new ArrayList(); - String productID = pRow.productID.ToString(); - - tcdbDataSetTableAdapters.db_roleProductUserTableAdapter roleProductUserAdapter = new tcdbDataSetTableAdapters.db_roleProductUserTableAdapter(); - tcdbDataSet.db_roleProductUserDataTable roleProductUserTable = roleProductUserAdapter.GetData(roleID, Convert.ToInt32(productID), true); - - foreach (tcdbDataSet.db_roleProductUserRow row in roleProductUserTable) - users.Add(row.userID.ToString()); - - if (ProductUsers.ContainsKey(productID)) - ProductUsers[productID] = users; - else - ProductUsers.Add(productID, users); - } - } - protected void ProductUserPanel_Init(object sender, EventArgs e) { Panel puPanel = (Panel)sender; - List<Product> products = ProductDB.GetProductList(active); + List<Product> products = ProductDB.GetProductList(active); - foreach (Product product in products) + foreach (Product product in products) { - Label ProductLbl = new Label(); - ProductLbl.Text = "<strong>"+product.CODENAME+": </strong>"; + Label ProductLbl = new Label(); + ProductLbl.Text = "<strong>" + product.CODENAME + ": </strong>"; tcdbDataSetTableAdapters.db_roleProductUserTableAdapter rpuAdapter = new tcdbDataSetTableAdapters.db_roleProductUserTableAdapter(); - tcdbDataSet.db_roleProductUserDataTable rpuTable = rpuAdapter.GetData(roleID, product.ID, true); + tcdbDataSet.db_roleProductUserDataTable rpuTable = rpuAdapter.GetData(roleID, product.ID, true); Label Users = new Label(); foreach (tcdbDataSet.db_roleProductUserRow row in rpuTable) @@ -313,7 +184,7 @@ if (Users.Text != "") { - puPanel.Controls.Add(ProductLbl); + puPanel.Controls.Add(ProductLbl); puPanel.Controls.Add(Users); puPanel.Controls.Add(html); } @@ -347,101 +218,28 @@ protected void Delete_Load(object sender, EventArgs e) { LinkButton deleteBtn = (LinkButton)sender; + LinkButton editBtn = (LinkButton)FormView1.FindControl("Edit"); Label deleteLbl = (Label)FormView1.FindControl("deleteLbl"); - Label activeLbl = (Label)FormView1.FindControl("activeLbl"); + Label newLbl = (Label)FormView1.FindControl("newLbl"); + Label activeLbl = (Label)FormView1.FindControl("activeLbl"); updateProductUsers(); - Dictionary<String, ArrayList> ProductUsers = (Dictionary<String, ArrayList>)Session["ProductUsers"]; + Dictionary<int, ArrayList> ProductUsers = (Dictionary<int, ArrayList>)Session["ProductUsers"]; - foreach (String productID in ProductUsers.Keys) + foreach (int productID in ProductUsers.Keys) { - if ( activeLbl.Visible == true || ((ProductUsers[productID].Count > 0) && !m_user.HasRight("delete_role", Convert.ToInt32(productID)))) + if (activeLbl.Visible == true || ((ProductUsers[productID].Count > 0) && !m_user.HasRight("delete_role", productID))) { deleteBtn.Visible = false; deleteLbl.Visible = false; } - } + if ((ProductUsers[productID].Count > 0) && !m_user.HasRight("edit_role", productID)) + { + editBtn.Visible = false; + newLbl.Visible = false; + } + } } - protected void rightsList_Init(object sender, EventArgs e) - { - ListBox rightsList = (ListBox)sender; - updateProductUsers(); - Dictionary<String, ArrayList> ProductUsers = (Dictionary<String, ArrayList>)Session["ProductUsers"]; - foreach (String productID in ProductUsers.Keys) - { - if (!m_user.HasRight("edit_role", Convert.ToInt32(productID))) - rightsList.Enabled = false; - } - } - protected void userList_Init(object sender, EventArgs e) - { - ListBox userList = (ListBox)sender; - - if (!m_user.HasRight("edit_role_users", Constants.PRODUCT_ANYID)) - userList.Enabled = false; - } - - protected void userList_populate() - { - ListBox userList = (ListBox)FormView1.FindControl("userList"); - int productID = Convert.ToInt32(Session["product"]); - - tcdbDataSetTableAdapters.db_usersTableAdapter uAdapter = new tcdbDataSetTableAdapters.db_usersTableAdapter(); - tcdbDataSet.db_usersDataTable uTable = uAdapter.GetData(null, null); - - updateProductUsers(); - Dictionary<String, ArrayList> ProductUsers = (Dictionary<String, ArrayList>)Session["ProductUsers"]; - - // Init selected user list - ArrayList users; - if (ProductUsers.ContainsKey(productID.ToString())) - users = ProductUsers[productID.ToString()]; - else - users = new ArrayList(); - - // populate user list - userList.Items.Clear(); - foreach (tcdbDataSet.db_usersRow row in uTable) - { - ListItem item = new ListItem(row.fullName, row.userID.ToString()); - if (users.Contains(row.userID.ToString())) - item.Selected = true; - userList.Items.Add(item); - } - } - protected void productList_Init(object sender, EventArgs e) - { - DropDownList productList = (DropDownList)sender; - - List<Product> products = ProductDB.GetProductList(active); - - foreach (Product product in products) - if (m_user.HasRight("edit_role_users", product.ID)) - productList.Items.Add(new ListItem(product.NAME, product.ID.ToString())); - - // Set selected value - if (FormView1.CurrentMode == FormViewMode.Edit && productList.Items.FindByValue(productID_in) != null && m_user.HasRight("edit_role_users", Convert.ToInt32(productID_in))) - productList.SelectedValue = productID_in; - Session["product"] = productList.SelectedValue; - - userList_populate(); - } - - protected void nameBox_Load(object sender, EventArgs e) - { - TextBox nameBox = (TextBox)FormView1.FindControl("nameBox"); - FreeTextBoxControls.FreeTextBox descriptionBox = (FreeTextBoxControls.FreeTextBox)FormView1.FindControl("descriptionBox"); - Label nameLbl = (Label)FormView1.FindControl("nameLbl"); - Label descriptionLbl = (Label)FormView1.FindControl("descriptionLbl"); - - if (!m_user.HasRight("edit_role", Constants.PRODUCT_ANYID)) - { - nameBox.Visible = false; - descriptionBox.Visible = false; - nameLbl.Visible = true; - descriptionLbl.Visible = true; - } - } protected void activeBox_Init(object sender, EventArgs e) { CheckBox activeBox = (CheckBox)sender; @@ -488,5 +286,10 @@ rightsList.Items.Add(item); } } + protected void editAssignments_Command(object sender, CommandEventArgs e) + { + Response.Redirect("~/RoleAssignments.aspx?" + Constants.CODE_PRODUCT + "=" + productID + "&" + Constants.CODE_ROLE + "=" + roleID); + } } } + Added: Website/RoleAssignments.aspx =================================================================== --- Website/RoleAssignments.aspx (rev 0) +++ Website/RoleAssignments.aspx 2006-08-08 21:26:55 UTC (rev 284) @@ -0,0 +1,12 @@ +<%@ Page Language="C#" MasterPageFile="~/TCDB.master" AutoEventWireup="true" Title="TCDB: Role Assignments" %> + +<%@ Register Src="~/Includes/AdministrationTree.ascx" TagPrefix="admin" TagName="Tree" %> +<%@ Register Src="~/Includes/RoleAssignments.ascx" TagPrefix="admin" TagName="Assignments" %> +<asp:Content ID="TreeContent" ContentPlaceHolderID="TreeContentPlaceHolder" runat="Server"> + <admin:Tree runat="server" ID="Tree" /> +</asp:Content> +<asp:Content ID="MainContent" ContentPlaceHolderID="MainContentPlaceHolder" runat="Server"> + <admin:Assignments ID="Assignments" runat="server" /> +</asp:Content> +<asp:Content ID="NotesContent" ContentPlaceHolderID="NotesContentPlaceHolder" runat="Server"> +</asp:Content> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <m_h...@us...> - 2006-08-09 04:47:42
|
Revision: 285 Author: m_hildebrand Date: 2006-08-08 21:47:23 -0700 (Tue, 08 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=285&view=rev Log Message: ----------- Lots more refactoring Changed Assignments Tree to use postbacks for all links rather than typical html links Added product_add graphic that I forgot to commit up earlier Modified Paths: -------------- Website/App_Code/Assignments.cs Website/App_Code/Common.cs Website/App_Code/Right.cs Website/Includes/Assignments.ascx.cs Website/Includes/AssignmentsTree.ascx Website/Includes/AssignmentsTree.ascx.cs Website/Includes/Footer.ascx.cs Website/Includes/Header.ascx Website/Includes/Header_Menu.ascx Website/Includes/Header_User.ascx Website/Role.aspx Website/TCDB.master Added Paths: ----------- Website/App_Themes/Python/Images/product_add_48.png Website/Includes/Header.ascx.cs Website/Includes/Header_Menu.ascx.cs Website/Includes/UserRoles.ascx Website/Includes/UserRoles.ascx.cs Removed Paths: ------------- Website/Includes/Roles.ascx Website/Includes/Roles.ascx.cs Modified: Website/App_Code/Assignments.cs =================================================================== --- Website/App_Code/Assignments.cs 2006-08-08 21:26:55 UTC (rev 284) +++ Website/App_Code/Assignments.cs 2006-08-09 04:47:23 UTC (rev 285) @@ -82,7 +82,7 @@ public class ActionItemDB : Page { - private static Logger m_logg = new Logger("TCDB.Assignments.ActionItemDB"); + private static Logger m_logg = new Logger("TCDB.Code.ActionItemDB"); public static bool SendNewActionItemMail(int id) { @@ -250,7 +250,7 @@ public class WorkOrderDB : Page { - private static Logger m_logg = new Logger("TCDB.Assignments.WorkOrderDB"); + private static Logger m_logg = new Logger("TCDB.Code.WorkOrderDB"); public static WorkOrder TCDB_GetWorkOrder(int id) { @@ -283,7 +283,7 @@ public class Assignment { - private static Logger m_logg = new Logger("TCDB.Assignments.Assignment"); + private static Logger m_logg = new Logger("TCDB.Code.Assignment"); private int p_id; private string p_name; @@ -469,7 +469,7 @@ public class ActionItem { - private static Logger m_logg = new Logger("TCDB.Assignments.ActionItem"); + private static Logger m_logg = new Logger("TCDB.Code.ActionItem"); private int p_id; private string p_name; @@ -544,7 +544,7 @@ public class WorkOrder { - private static Logger m_logg = new Logger("TCDB.Assignments.WorkOrder"); + private static Logger m_logg = new Logger("TCDB.Code.WorkOrder"); private int p_id; private string p_name; Modified: Website/App_Code/Common.cs =================================================================== --- Website/App_Code/Common.cs 2006-08-08 21:26:55 UTC (rev 284) +++ Website/App_Code/Common.cs 2006-08-09 04:47:23 UTC (rev 285) @@ -42,13 +42,13 @@ m_logg.Fatal(Prefix() + message, ex); } - public void Error(string message) + public new void Error(string message) { if (m_logg.IsErrorEnabled) m_logg.Error(Prefix() + message); } - public void Error(string message, Exception ex) + public new void Error(string message, Exception ex) { if (m_logg.IsErrorEnabled) m_logg.Error(Prefix() + message, ex); @@ -97,24 +97,27 @@ bool hn = false; bool ha = false; - try { + try + { if (m_user != null) u = true; } - catch {} + catch { } - try { + try + { if (m_request.UserHostName != null) hn = true; } - catch {} + catch { } - try { + try + { if (m_request.UserHostAddress != null) { if (hn && m_request.UserHostName != m_request.UserHostAddress) ha = true; } } - catch {} + catch { } if (u || hn || ha) result = "["; if (u) result = result + m_user.ToString(); @@ -1164,23 +1167,30 @@ // TODO: Look for data in the cache and return it if it exists // TODO: Look for data in the config file, save it to the cache, and return it + try + { + tcdbDataSet ds = new tcdbDataSet(); + tcdbDataSetTableAdapters.db_configTableAdapter ta = new tcdbDataSetTableAdapters.db_configTableAdapter(); + ta.GetData(userID, name); + ta.Fill(ds.db_config, userID, name); - tcdbDataSet ds = new tcdbDataSet(); - tcdbDataSetTableAdapters.db_configTableAdapter ta = new tcdbDataSetTableAdapters.db_configTableAdapter(); - ta.GetData(userID, name); - ta.Fill(ds.db_config, userID, name); + DataTableReader dr = ds.db_config.CreateDataReader(); + if (dr.HasRows && dr.Read()) + { + value = Help.DB_StringParse(dr["value"]); + } - DataTableReader dr = ds.db_config.CreateDataReader(); - if (dr.HasRows && dr.Read()) - { - value = Help.DB_StringParse(dr["value"]); + if (value == null && userID != Constants.ANONYMOUSUSERID) + { + value = GetConfigString(Constants.ANONYMOUSUSERID, name); + } + + m_logg.Debug("Loaded config data [" + name + " = " + value.ToString() + "] for userID [" + userID + "]"); } - - if (value == null && userID != Constants.ANONYMOUSUSERID) + catch { - value = GetConfigString(Constants.ANONYMOUSUSERID, name); + m_logg.Debug("Error loading config data [" + name + "] for userID [" + userID + "]"); } - // TODO: Save this value to the cache return value; @@ -1189,45 +1199,62 @@ public static int GetConfigID(int userID, String name) { int id = -1; + try + { + tcdbDataSet ds = new tcdbDataSet(); + tcdbDataSetTableAdapters.db_configTableAdapter ta = new tcdbDataSetTableAdapters.db_configTableAdapter(); + ta.GetData(userID, name); + ta.Fill(ds.db_config, userID, name); - tcdbDataSet ds = new tcdbDataSet(); - tcdbDataSetTableAdapters.db_configTableAdapter ta = new tcdbDataSetTableAdapters.db_configTableAdapter(); - ta.GetData(userID, name); - ta.Fill(ds.db_config, userID, name); - - DataTableReader dr = ds.db_config.CreateDataReader(); - if (dr.HasRows && dr.Read()) + DataTableReader dr = ds.db_config.CreateDataReader(); + if (dr.HasRows && dr.Read()) + { + id = Help.DB_IntParse(dr["id"]); + } + } + catch { - id = Help.DB_IntParse(dr["id"]); + m_logg.Debug("Error locating ConfigID for config value [" + name + "] and userID [" + userID.ToString() + "]"); } - return id; } public static void DeleteConfig(int userID, String name) { - + m_logg.Debug("Attempting to delete config [" + name + "] data for userID [" + userID + "]"); try { int id = GetConfigID(userID, name); DeleteConfig(id); + m_logg.Debug("Config [" + name + "] data for userID [" + userID + "] successfully deleted"); } - catch { } + catch (Exception ex) + { + m_logg.Debug("Unable to delete config [" + name + "] data for userID [" + userID + "]. Does it really exist?", ex); + } } public static void DeleteConfig(int id) { // TODO: Make sure to remove the config value from the cache. Don't remove // it from the config file though. - - tcdbDataSet ds = new tcdbDataSet(); - tcdbDataSetTableAdapters.db_configTableAdapter ta = new tcdbDataSetTableAdapters.db_configTableAdapter(); - ta.Delete(id); + try + { + m_logg.Debug("Removing config data [" + id + "]"); + tcdbDataSet ds = new tcdbDataSet(); + tcdbDataSetTableAdapters.db_configTableAdapter ta = new tcdbDataSetTableAdapters.db_configTableAdapter(); + ta.Delete(id); + } + catch (Exception ex) + { + m_logg.Debug("Unable to remove config data [" + id + "]", ex); + } } public static void SaveConfigString(int userID, String name, String value) { - if (Constants.IS_DEV_ENV) + m_logg.Debug("Saving config data [" + name + " = " + value + "] for userID [" + userID.ToString() + "]"); + try { tcdbDataSetTableAdapters.db_configTableAdapter configAdapter = new tcdbDataSetTableAdapters.db_configTableAdapter(); tcdbDataSet.db_configDataTable configTable = configAdapter.GetData(userID, name); @@ -1242,6 +1269,11 @@ configAdapter.Insert(userID, name, value, "u"); } } + catch (Exception ex) + { + m_logg.Debug("Error saving config string [" + name + " = " + value + "] for userID [" + userID.ToString() + "]", ex); + } + } public static void SaveConfigBool(int userID, String name, Boolean value) { @@ -1371,6 +1403,8 @@ public static string CODE_VERSION = "v"; public static string CODE_RIGHT = "rt"; public static string CODE_ROLE = "r"; + public static string CODE_MODE = "m"; + public static string CODE_CREATED = "created"; // TODO: figure this one out //public static bool ASSIGNMENT_PRIORITY_ALL = null; @@ -1388,31 +1422,37 @@ public static string RIGHTS_SITEADMIN = "siteAdmin"; public static string RIGHTS_ASSIGNASSIGNMENT = "assignAssignment"; + + public static string ASSIGNMENT_MINE = "My Assignments"; + public static string ASSIGNMENT_CREATED = "My Created Assignments"; } public static class Help { - private static Logger m_logg = new Logger("TCDB.Common.Help"); + private static Logger m_logg = new Logger("TCDB.Code.Help"); //protected void SendMail(int type, int id) public static bool SendMail(string subject, string body, bool html, User to) { + m_logg.Debug("Attempting to send mail message from TCDB site to [" + to.ToString() + "]"); string site_email = ConfigDB.GetConfigString("site_email"); string site_name = ConfigDB.GetConfigString("site_name"); - User from = new User(0, site_name, "", site_name, site_email, "", "", "", true); try { + User from = new User(0, site_name, "", site_name, site_email, "", "", "", true); return SendMail(subject, body, html, to, from); } catch (Exception ex) { - throw ex; + m_logg.Error("Error sending mail message from TCDB site to [" + to.ToString() + "]", ex); } + + return false; } public static bool SendMail(string subject, string body, bool html, User to, User from) { - m_logg.Debug("Attempting to send email"); + m_logg.Debug("Attempting to send email from [" + from.ToString() + "] to [" + to.ToString() + "] with subject [" + subject + "]"); if (!ConfigDB.GetConfigBool("enable_email")) { m_logg.Debug("Email notifications are disabled site-wide, unable to send mail"); @@ -1425,30 +1465,40 @@ } //create the mail message - MailAddress fromAddr = new MailAddress(from.EMAIL, to.FULLNAME); - MailAddress toAddr = new MailAddress(to.EMAIL, to.FULLNAME); - MailMessage mail = new MailMessage(fromAddr, toAddr); + try + { + MailAddress fromAddr = new MailAddress(from.EMAIL, to.FULLNAME); + MailAddress toAddr = new MailAddress(to.EMAIL, to.FULLNAME); + MailMessage mail = new MailMessage(fromAddr, toAddr); - //set the content - mail.Subject = subject; - mail.Body = body; - mail.IsBodyHtml = html; + //set the content + mail.Subject = subject; + mail.Body = body; + mail.IsBodyHtml = html; - //send the message - SmtpClient smtp = new SmtpClient(ConfigDB.GetConfigString("smtp_server"), ConfigDB.GetConfigInt("smtp_port")); - // TODO: allow for SMTP authentication and for SSL - try - { - smtp.Send(mail); - m_logg.Debug("Email sent to [" + to.EMAIL + "(" + to.ToString() + ")]: " + mail.Subject); + //send the message + try + { + SmtpClient smtp = new SmtpClient(ConfigDB.GetConfigString("smtp_server"), ConfigDB.GetConfigInt("smtp_port")); + // TODO: allow for SMTP authentication and for SSL + + smtp.Send(mail); + m_logg.Debug("Email sent to [" + to.EMAIL + "(" + to.ToString() + ")]: " + mail.Subject); + } + catch (Exception ex) + { + m_logg.Error("Failed to send email to [" + to.EMAIL + "(" + to.ToString() + ")]: " + mail.Subject, ex); + return false; + } } catch (Exception ex) { - m_logg.Error("Failed to send email to [" + to.EMAIL + "(" + to.ToString() + ")]: " + mail.Subject, ex); - throw ex; + m_logg.Error("Error creating the message", ex); + return false; } + m_logg.Debug("Message successfully sent"); return true; } Modified: Website/App_Code/Right.cs =================================================================== --- Website/App_Code/Right.cs 2006-08-08 21:26:55 UTC (rev 284) +++ Website/App_Code/Right.cs 2006-08-09 04:47:23 UTC (rev 285) @@ -14,7 +14,6 @@ using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; -using TCDB.Plugins.AD; using System.Web.SessionState; Added: Website/App_Themes/Python/Images/product_add_48.png =================================================================== (Binary files differ) Property changes on: Website/App_Themes/Python/Images/product_add_48.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: Website/Includes/Assignments.ascx.cs =================================================================== --- Website/Includes/Assignments.ascx.cs 2006-08-08 21:26:55 UTC (rev 284) +++ Website/Includes/Assignments.ascx.cs 2006-08-09 04:47:23 UTC (rev 285) @@ -21,9 +21,10 @@ public partial class Assignments : SiteUserControl { private static Logger m_logg = new Logger("TCDB.Assignments"); - private String uid = HttpContext.Current.Request.QueryString[Constants.CODE_USER]; - private String mode = HttpContext.Current.Request.QueryString["mode"]; - private int productID = Convert.ToInt32(HttpContext.Current.Request.QueryString[Constants.CODE_PRODUCT]); + + private String uid = null; + private String mode = null; + private int productID = 0; private const int MAX_NAME_LENGTH = 30; protected void Page_Load(object sender, EventArgs e) @@ -33,12 +34,30 @@ return; } m_logg.Debug("Loading assignments for [" + m_user.ToString() + "]"); + + // Load session data + try + { + uid = (String)Session[Constants.CODE_USER]; + } + catch { } + try + { + mode = (String)Session["mode"]; + } + catch { } + try + { + productID = (int)Session[Constants.CODE_PRODUCT]; + } + catch { } + if (productID == 0) productID = Constants.PRODUCT_ANYID; if (uid == null) { - m_logg.Debug("UserID not specified in the url, checking for permissions to view multiple users assignments"); + m_logg.Debug("UserID not specified in the session data, checking for permissions to view multiple users assignments"); if (m_user.HasRight("view_other_ai", productID) || m_user.HasRight("view_created_ai", productID) || m_user.HasRight("view_other_wo", productID) || m_user.HasRight("view_created_wo", productID)) { @@ -91,7 +110,7 @@ header.Text = name + "'s Assignments"; } } - if (mode == "created") + if (mode == Constants.ASSIGNMENT_CREATED) Session.Add("myID", m_user.ID); Session.Add("uid", uid); @@ -283,6 +302,7 @@ Session.Add("refresh", true); AssignmentsGridView.DataBind(); } + protected String getURL(int cid, String type, String name) { String displayName; @@ -290,7 +310,7 @@ displayName = name.Substring(0, MAX_NAME_LENGTH) + "..."; else displayName = name; - + if (type == Constants.CODE_AI) return "<a href=\"ActionItem.aspx?" + Constants.CODE_PRODUCT + "=" + productID + "&" + Constants.CODE_AI + "=" + cid + "\">" + displayName + "</a>"; else if (type == Constants.CODE_WO) Modified: Website/Includes/AssignmentsTree.ascx =================================================================== --- Website/Includes/AssignmentsTree.ascx 2006-08-08 21:26:55 UTC (rev 284) +++ Website/Includes/AssignmentsTree.ascx 2006-08-09 04:47:23 UTC (rev 285) @@ -1,10 +1,12 @@ -<%@ Control Language="C#" AutoEventWireup="true" CodeFile="AssignmentsTree.ascx.cs" Inherits="TCDB.AssignmentsTree" %> - -<asp:CheckBox ID="statusComplete" runat="server" Text="Show Completed" AutoPostBack="True" OnCheckedChanged="statusComplete_CheckedChanged" OnLoad="statusComplete_Load" Visible="false"/> +<%@ Control Language="C#" AutoEventWireup="true" CodeFile="AssignmentsTree.ascx.cs" + Inherits="TCDB.AssignmentsTree" %> +<asp:CheckBox ID="statusComplete" runat="server" Text="Show Completed" AutoPostBack="True" + OnCheckedChanged="statusComplete_CheckedChanged" OnLoad="statusComplete_Load" + Visible="false" /> <asp:TreeView ID="AssignmentTree" runat="server" SelectedNodeStyle-CssClass="selectednode" - OnTreeNodePopulate="AssignmentTree_TreeNodePopulate" - OnTreeNodeCollapsed="AssignmentTree_TreeNodeCollapsed" - OnTreeNodeExpanded="AssignmentTree_TreeNodeExpanded" OnInit="AssignmentTree_Init" OnSelectedNodeChanged="AssignmentTree_SelectedNodeChanged" ExpandDepth="1"> + OnTreeNodePopulate="AssignmentTree_TreeNodePopulate" OnTreeNodeCollapsed="AssignmentTree_TreeNodeCollapsed" + OnTreeNodeExpanded="AssignmentTree_TreeNodeExpanded" OnInit="AssignmentTree_Init" + OnSelectedNodeChanged="AssignmentTree_SelectedNodeChanged" ExpandDepth="1"> <Nodes> <asp:TreeNode Text="All Assignments" Value="Users" PopulateOnDemand="True" /> </Nodes> Modified: Website/Includes/AssignmentsTree.ascx.cs =================================================================== --- Website/Includes/AssignmentsTree.ascx.cs 2006-08-08 21:26:55 UTC (rev 284) +++ Website/Includes/AssignmentsTree.ascx.cs 2006-08-09 04:47:23 UTC (rev 285) @@ -16,6 +16,32 @@ { public partial class AssignmentsTree : SiteUserControl { + private void SetValue(TreeNode n, string key, string value) + { + string encodedValues = n.Value; + encodedValues = encodedValues + "|" + key + ":" + value; + n.Value = encodedValues; + } + + private string GetValue(TreeNode n, string key) + { + string encodedValues = n.Value; + char[] delim = "|".ToCharArray(); + string[] split = null; + split = encodedValues.Split(delim); + delim = ":".ToCharArray(); + string[] kvPair = null; + foreach (string s in split) + { + kvPair = s.Split(delim); + if (kvPair[0] == key) + return kvPair[1]; + } + + return null; + } + + private const string PREFIX = "assignmentsTree_"; private static Logger m_logg = new Logger("TCDB.AssignmentsTree"); private const int MAX_NAME_LENGTH = 30; @@ -37,6 +63,7 @@ AssignmentTree.Visible = false; } } + protected void AssignmentTree_TreeNodeCollapsed(object sender, TreeNodeEventArgs e) { ArrayList nodes = (ArrayList)Session["AssignmentNodes"]; @@ -51,22 +78,55 @@ if (e.Node.Selected && AssignmentTree.ShowExpandCollapse == false) { e.Node.Selected = false; - switch (e.Node.Depth) + String nodeType = GetValue(e.Node, "NodeType"); + if (nodeType == null) nodeType = "Root"; + String nodeValue = GetValue(e.Node, "Value"); + switch (nodeType) { - case 0: + case "Root": + Session.Remove(PREFIX + Constants.CODE_USER); + Session.Remove(PREFIX + Constants.CODE_PRODUCT); Response.Redirect("~/Assignments.aspx"); break; - case 1: - Response.Redirect("~/Assignments.aspx?" + Constants.CODE_PRODUCT + "=" + e.Node.Value); + case "Product": + Session.Remove(PREFIX + Constants.CODE_USER); + Session[PREFIX + Constants.CODE_PRODUCT] = nodeValue; + Response.Redirect("~/Assignments.aspx"); break; - case 2: - Response.Redirect("~/Assignments.aspx?" + Constants.CODE_PRODUCT + "=" + e.Node.Parent.Value + "&" + Constants.CODE_USER + "=" + e.Node.Value); + case "User": + Session[PREFIX + Constants.CODE_USER] = nodeValue; + Session[PREFIX + Constants.CODE_PRODUCT] = GetValue(e.Node.Parent, "Value"); + try + { + if (bool.Parse(GetValue(e.Node, "IsCreated"))) + { + Session.Remove(Constants.CODE_PRODUCT); + Session[Constants.CODE_CREATED] = true; + } + } + catch { } + Response.Redirect("~/Assignments.aspx"); break; + case "Created": + Session.Remove(Constants.CODE_USER); + Session.Remove(Constants.CODE_PRODUCT); + Session[Constants.CODE_CREATED] = true; + Response.Redirect("~/Assignments.aspx"); + break; + case "ActionItem": + Session[Constants.CODE_AI] = nodeValue; + Response.Redirect("~/ActionItem.aspx"); + break; + case "WorkOrer": + Session[Constants.CODE_WO] = nodeValue; + Response.Redirect("~/WorkOrder.aspx"); + break; default: break; } } } + protected void AssignmentTree_TreeNodeExpanded(object sender, TreeNodeEventArgs e) { ArrayList nodes = (ArrayList)Session["AssignmentNodes"]; @@ -80,22 +140,55 @@ if (e.Node.Selected && AssignmentTree.ShowExpandCollapse == false) { e.Node.Selected = false; - switch (e.Node.Depth) + String nodeType = GetValue(e.Node, "NodeType"); + if (nodeType == null) nodeType = "Root"; + String nodeValue = GetValue(e.Node, "Value"); + switch (nodeType) { - case 0: + case "Root": + Session.Remove(PREFIX + Constants.CODE_USER); + Session.Remove(PREFIX + Constants.CODE_PRODUCT); Response.Redirect("~/Assignments.aspx"); break; - case 1: - Response.Redirect("~/Assignments.aspx?" + Constants.CODE_PRODUCT + "=" + e.Node.Value); + case "Product": + Session.Remove(PREFIX + Constants.CODE_USER); + Session[PREFIX + Constants.CODE_PRODUCT] = nodeValue; + Response.Redirect("~/Assignments.aspx"); break; - case 2: - Response.Redirect("~/Assignments.aspx?" + Constants.CODE_USER + "=" + e.Node.Value); + case "User": + Session[PREFIX + Constants.CODE_USER] = nodeValue; + Session[PREFIX + Constants.CODE_PRODUCT] = GetValue(e.Node.Parent, "Value"); + try + { + if (bool.Parse(GetValue(e.Node, "IsCreated"))) + { + Session.Remove(Constants.CODE_PRODUCT); + Session[Constants.CODE_CREATED] = true; + } + } + catch { } + Response.Redirect("~/Assignments.aspx"); break; + case "Created": + Session.Remove(Constants.CODE_USER); + Session.Remove(Constants.CODE_PRODUCT); + Session[Constants.CODE_CREATED] = true; + Response.Redirect("~/Assignments.aspx"); + break; + case "ActionItem": + Session[Constants.CODE_AI] = nodeValue; + Response.Redirect("~/ActionItem.aspx"); + break; + case "WorkOrer": + Session[Constants.CODE_WO] = nodeValue; + Response.Redirect("~/WorkOrder.aspx"); + break; default: break; } } } + protected void AssignmentTree_SelectedNodeChanged(object sender, EventArgs e) { TreeNode node = AssignmentTree.SelectedNode; @@ -110,22 +203,55 @@ }/* else {*/ - switch (node.Depth) + String nodeType = GetValue(node, "NodeType"); + if (nodeType == null) nodeType = "Root"; + String nodeValue = GetValue(node, "Value"); + switch (nodeType) { - case 0: + case "Root": + Session.Remove(Constants.CODE_USER); + Session.Remove(Constants.CODE_PRODUCT); Response.Redirect("~/Assignments.aspx"); break; - case 1: - Response.Redirect("~/Assignments.aspx?" + Constants.CODE_PRODUCT + "=" + node.Value); + case "Product": + Session.Remove(Constants.CODE_USER); + Session[Constants.CODE_PRODUCT] = nodeValue; + Response.Redirect("~/Assignments.aspx"); break; - case 2: - Response.Redirect("~/Assignments.aspx?" + Constants.CODE_PRODUCT + "=" + node.Parent.Value + "&" + Constants.CODE_USER + "=" + node.Value); + case "User": + Session[Constants.CODE_USER] = nodeValue; + Session[Constants.CODE_PRODUCT] = GetValue(node.Parent, "Value"); + try + { + if (bool.Parse(GetValue(node, "IsCreated"))) + { + Session.Remove(Constants.CODE_PRODUCT); + Session[Constants.CODE_CREATED] = true; + } + } + catch { } + Response.Redirect("~/Assignments.aspx"); break; + case "Created": + Session.Remove(Constants.CODE_USER); + Session.Remove(Constants.CODE_PRODUCT); + Session[Constants.CODE_CREATED] = true; + Response.Redirect("~/Assignments.aspx"); + break; + case "ActionItem": + Session[Constants.CODE_AI] = nodeValue; + Response.Redirect("~/ActionItem.aspx"); + break; + case "WorkOrer": + Session[Constants.CODE_WO] = nodeValue; + Response.Redirect("~/WorkOrder.aspx"); + break; default: break; } // } } + protected void AssignmentTree_TreeNodePopulate(object sender, TreeNodeEventArgs e) { m_logg.Debug("Populating tree"); @@ -133,44 +259,53 @@ return; // Call the appropriate method to populate a node at a particular level. - switch (e.Node.Depth) + try { - case 0: - BuildProductList(e.Node); - break; - case 1: - if (e.Node.NavigateUrl.Contains("mode=created")) + String nodeType = GetValue(e.Node, "NodeType"); + if (nodeType == null) nodeType = "Root"; + switch (nodeType) + { + case "Root": + BuildProductList(e.Node); + break; + case "Product": + BuildUserList(e.Node); + break; + case "User": + BuildAssignmentList(e.Node); + break; + case "Created": BuildCreatedUserList(e.Node); - else if (e.Node.NavigateUrl.Contains("mode=mine")) - BuildAssignmentList(e.Node); - else - BuildUserList(e.Node); - break; - case 2: - BuildAssignmentList(e.Node); - break; - default: - break; + break; + default: + break; + } } + catch + { + BuildProductList(e.Node); + } } + private void BuildProductList(TreeNode parent) { ArrayList nodes = (ArrayList)Session["AssignmentNodes"]; tcdbDataSetTableAdapters.db_productsTableAdapter pAdapter = new tcdbDataSetTableAdapters.db_productsTableAdapter(); - List<Product> products = ProductDB.GetProductList(active); + List<Product> products = ProductDB.GetProductList(active); - foreach (Product product in products) + foreach (Product product in products) { - if (product.ID == Constants.PRODUCT_SITEID && !m_user.HasRight("view_admin")) + if (product.ID == Constants.PRODUCT_SITEID && !m_user.HasRight("view_admin")) continue; TreeNode child = new TreeNode(); - child.Text = product.NAME; - child.Value = product.ID.ToString(); + SetValue(child, "NodeType", "Product"); + child.Text = product.NAME; + SetValue(child, "Value", product.ID.ToString()); child.PopulateOnDemand = true; child.SelectAction = TreeNodeSelectAction.Select; - if (!product.ACTIVE) - child.Text = "<font class='deleted'>" + child.Text + "</font>"; + if (!product.ACTIVE) + child.Text = "<span class='deleted'>" + child.Text + "</span>"; parent.ChildNodes.Add(child); if (nodes.Contains(child.ValuePath)) @@ -185,15 +320,19 @@ if (m_user.HasRight("view_my_ai", Constants.PRODUCT_ANYID) || m_user.HasRight("view_my_wo", Constants.PRODUCT_ANYID)) { TreeNode mine = new TreeNode(); - mine.Text = "My Assignments"; - mine.Value = m_user.ID.ToString(); + SetValue(mine, "NodeType", "User"); + mine.Text = Constants.ASSIGNMENT_MINE; + SetValue(mine, "Value", m_user.ID.ToString()); mine.SelectAction = TreeNodeSelectAction.Select; mine.PopulateOnDemand = true; - mine.NavigateUrl = "~/Assignments.aspx?mode=mine&" + Constants.CODE_USER + "=" + m_user.ID; - parent.ChildNodes.Add(mine); if (nodes.Contains(mine.ValuePath)) mine.Expand(); + else + { + Session[PREFIX + Constants.CODE_MODE] = Constants.ASSIGNMENT_MINE; + AssignmentTree_TreeNodePopulate(AssignmentTree, new TreeNodeEventArgs(mine)); + } } // *************************** @@ -202,20 +341,21 @@ if (m_user.HasRight("view_created_ai", Constants.PRODUCT_ANYID) || m_user.HasRight("view_created_wo", Constants.PRODUCT_ANYID)) { TreeNode created = new TreeNode(); - created.Text = "My Created Assignments"; - created.Value = Constants.PRODUCT_CREATED.ToString(); + SetValue(created, "NodeType", "Created"); + created.Text = Constants.ASSIGNMENT_CREATED; + SetValue(created, "Value", Constants.PRODUCT_CREATED.ToString()); created.SelectAction = TreeNodeSelectAction.Select; created.PopulateOnDemand = true; - created.NavigateUrl = "~/Assignments.aspx?mode=created"; - parent.ChildNodes.Add(created); if (nodes.Contains(created.ValuePath)) created.Expand(); + else + AssignmentTree_TreeNodePopulate(AssignmentTree, new TreeNodeEventArgs(created)); } } private void BuildCreatedUserList(TreeNode parent) { - m_logg.Debug("Building my user list"); + m_logg.Debug("Building my created user list"); ArrayList nodes = (ArrayList)Session["AssignmentNodes"]; tcdbDataSetTableAdapters.db_usersTableAdapter uAdapter = new tcdbDataSetTableAdapters.db_usersTableAdapter(); tcdbDataSet.db_usersDataTable uTable = uAdapter.GetData(null, null); @@ -231,15 +371,20 @@ continue; // User name + m_logg.Debug("Adding user [" + row.fullName + "]"); TreeNode user = new TreeNode(); + SetValue(user, "NodeType", "User"); + SetValue(user, "IsCreated", "true"); user.Text = row.fullName; - user.Value = row.userID.ToString(); + SetValue(user, "Value", row.userID.ToString()); + user.Checked = true; user.PopulateOnDemand = true; user.SelectAction = TreeNodeSelectAction.Select; - user.NavigateUrl = "~/Assignments.aspx?mode=created&" + Constants.CODE_USER + "=" + user.Value; parent.ChildNodes.Add(user); if (nodes.Contains(user.ValuePath)) user.Expand(); + else + AssignmentTree_TreeNodePopulate(AssignmentTree, new TreeNodeEventArgs(user)); } } private void BuildUserList(TreeNode parent) @@ -247,7 +392,7 @@ m_logg.Debug("Building user list"); ArrayList nodes = (ArrayList)Session["AssignmentNodes"]; tcdbDataSetTableAdapters.db_roleProductUserTableAdapter rpuAdapter = new tcdbDataSetTableAdapters.db_roleProductUserTableAdapter(); - tcdbDataSet.db_roleProductUserDataTable rpuTable = rpuAdapter.GetData(null, Convert.ToInt32(parent.Value), true); + tcdbDataSet.db_roleProductUserDataTable rpuTable = rpuAdapter.GetData(null, Convert.ToInt32(GetValue(parent, "Value")), true); m_logg.Debug("There are currently [" + rpuTable.Count.ToString() + "] users"); // Assignment status @@ -268,8 +413,9 @@ // Create the new child node. TreeNode child = new TreeNode(); + SetValue(child, "NodeType", "User"); child.Text = row.fullName; - child.Value = row.userID.ToString(); + SetValue(child, "Value", row.userID.ToString()); child.PopulateOnDemand = true; child.SelectAction = TreeNodeSelectAction.Select; parent.ChildNodes.Add(child); @@ -280,7 +426,7 @@ } // if there are no users or only the current user - if (parent.ChildNodes.Count == 0 || (parent.ChildNodes.Count == 1 && parent.ChildNodes[0].Value == m_user.ID.ToString())) + if (parent.ChildNodes.Count == 0 || (parent.ChildNodes.Count == 1 && GetValue(parent.ChildNodes[0], "Value") == m_user.ID.ToString())) parent.Parent.ChildNodes.Remove(parent); } private void BuildAssignmentList(TreeNode parent) @@ -288,20 +434,20 @@ m_logg.Debug("Building created assignment list"); // Populate the second-level nodes with assignments int status = Constants.ASSIGNMENT_UNFINISHED; - int userID = Convert.ToInt32(parent.Value); + int userID = Convert.ToInt32(GetValue(parent, "Value")); int productID = Constants.PRODUCT_ANYID; // try and get the product id (should only fail if in "My Assignments" try { - productID = Convert.ToInt32(parent.Parent.Value); + productID = Convert.ToInt32(GetValue(parent.Parent, "Value")); } catch { } // Set status and get assignment list if (statusComplete.Checked) status = Constants.ASSIGNMENT_FINISHEDANDUNFINISHED; - List<Assignment> assignmentList = UserDB.GetUserInfo(Convert.ToInt32(parent.Value)).GetAssignments(false, status, active); + List<Assignment> assignmentList = UserDB.GetUserInfo(Convert.ToInt32(GetValue(parent, "Value"))).GetAssignments(false, status, active); m_logg.Debug("There are currently [" + assignmentList.Count.ToString() + "] assignments"); if (assignmentList.Count > 0) @@ -309,7 +455,13 @@ foreach (Assignment a in assignmentList) { // created list - if (parent.NavigateUrl.Contains("mode=created") && a.CREATOR.ID != m_user.ID) + bool p = false; + try + { + p = bool.Parse(GetValue(parent, "IsCreated")); + } + catch { } + if (p && a.CREATOR.ID != m_user.ID) continue; // Create the new child node. @@ -323,37 +475,37 @@ child.Text = a.NAME; if (a.ISACTIONITEM) { + SetValue(child, "NodeType", "ActionItem"); if ((m_user.HasRight("view_other_ai", productID)) || ((userID == m_user.ID) && m_user.HasRight("view_my_ai", productID)) || ((a.ACTIONITEM.CREATOR.ID == m_user.ID) && m_user.HasRight("view_created_ai", productID))) { - child.Value = a.ACTIONITEM.ID.ToString(); - child.NavigateUrl = "~/ActionItem.aspx?" + Constants.CODE_PRODUCT + "=" + productID + "&" + Constants.CODE_AI + "=" + child.Value; + SetValue(child, "Value", a.ACTIONITEM.ID.ToString()); } else continue; } else { + SetValue(child, "NodeType", "WorkOrder"); if ((m_user.HasRight("view_other_wo", productID)) || ((userID == m_user.ID) && m_user.HasRight("view_my_ai", productID)) || ((a.WORKORDER.CREATOR.ID == m_user.ID) && m_user.HasRight("view_created_ai", productID))) { - child.Value = a.WORKORDER.ID.ToString(); - child.NavigateUrl = "~/WorkOrder.aspx?" + Constants.CODE_PRODUCT + "=" + productID + "&" + Constants.CODE_WO + "=" + child.Value; + SetValue(child, "Value", a.WORKORDER.ID.ToString()); } else continue; } if (a.DELETED) - child.Text = "<font class='deleted'>" + child.Text + "</font>"; + child.Text = "<span class='deleted'>" + child.Text + "</span>"; else if (a.DATEFINISHED != null) - child.Text = "<font class='finished'>" + child.Text + "</font>"; + child.Text = "<span class='finished'>" + child.Text + "</span>"; else if (a.DATEDUE < DateTime.Today) - child.Text = "<font class='overdue'>" + child.Text + "</font>"; + child.Text = "<span class='overdue'>" + child.Text + "</span>"; // Add the new child node to the ChildNodes collection of the parent node. parent.ChildNodes.Add(child); } - + // if there are no assignments if (parent.ChildNodes.Count == 0) parent.Parent.ChildNodes.Remove(parent); Modified: Website/Includes/Footer.ascx.cs =================================================================== --- Website/Includes/Footer.ascx.cs 2006-08-08 21:26:55 UTC (rev 284) +++ Website/Includes/Footer.ascx.cs 2006-08-09 04:47:23 UTC (rev 285) @@ -33,7 +33,7 @@ result = loadtime.TotalSeconds.ToString("F") + " seconds"; } - m_logg.Debug("Page load for user [" + m_user.ToString() + "] from [" + Request.UserHostName + " (" + Request.UserHostAddress + ")] took [" + result + "]"); + m_logg.Debug("Page load took [" + result + "]"); return result; } Modified: Website/Includes/Header.ascx =================================================================== --- Website/Includes/Header.ascx 2006-08-08 21:26:55 UTC (rev 284) +++ Website/Includes/Header.ascx 2006-08-09 04:47:23 UTC (rev 285) @@ -1,4 +1,4 @@ -<%@ Control Language="C#" AutoEventWireup="true" Inherits="TCDB.SiteUserControl" %> +<%@ Control Language="C#" AutoEventWireup="true" Inherits="TCDB.Header" CodeFile="Header.ascx.cs" %> <%@ Register TagPrefix="TCDB" TagName="User" Src="~/Includes/Header_User.ascx" %> <%@ Register TagPrefix="TCDB" TagName="CurrentInfo" Src="~/Includes/Header_CurrentInfo.ascx" %> <%@ Register TagPrefix="TCDB" TagName="Menu" Src="~/Includes/Header_Menu.ascx" %> @@ -6,7 +6,7 @@ <div id="Logo"> </div> <% - if (m_user.ID > Constants.ANONYMOUSUSERID) + if (m_user.ID > Constants.ANONYMOUSUSERID && !m_user.AUTOMATION) { %> <div id="MainMenu"> @@ -26,7 +26,6 @@ else { // If the user doesn't exist, signout + m_logg.Debug("User is either not logged in or is an automation user, denying access"); FormsAuthentication.SignOut(); - } %> -<div id="Error"> - <asp:Label ID="ErrorControl" Text="" runat="server"></asp:Label></div> + } %> \ No newline at end of file Added: Website/Includes/Header.ascx.cs =================================================================== --- Website/Includes/Header.ascx.cs (rev 0) +++ Website/Includes/Header.ascx.cs 2006-08-09 04:47:23 UTC (rev 285) @@ -0,0 +1,22 @@ +using System; +using System.Data; +using System.Configuration; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using TCDB.Code; + + +namespace TCDB +{ + /// <summary> + /// Summary description for Header + /// </summary> + public partial class Header : SiteUserControl + { + protected Logger m_logg = new Logger("TCDB.Header"); + } +} \ No newline at end of file Modified: Website/Includes/Header_Menu.ascx =================================================================== --- Website/Includes/Header_Menu.ascx 2006-08-08 21:26:55 UTC (rev 284) +++ Website/Includes/Header_Menu.ascx 2006-08-09 04:47:23 UTC (rev 285) @@ -1,7 +1,6 @@ -<%@ Control Language="C#" AutoEventWireup="true" Inherits="TCDB.SiteUserControl" %> +<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Header_Menu.ascx.cs" Inherits="TCDB.Header_Menu" %> <%@ Import Namespace="TCDB.Code" %> -<a href="Assignments.aspx?<% Response.Write(Constants.CODE_USER+"="+m_user.ID); %>"> - Assignments</a> +<asp:LinkButton runat="server" id="load" OnCommand="LoadAssignments" Text="Assignments" /> <% if (Constants.IS_DEV_ENV) { %> | Execute Added: Website/Includes/Header_Menu.ascx.cs =================================================================== --- Website/Includes/Header_Menu.ascx.cs (rev 0) +++ Website/Includes/Header_Menu.ascx.cs 2006-08-09 04:47:23 UTC (rev 285) @@ -0,0 +1,28 @@ +using System; +using System.Data; +using System.Configuration; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using TCDB.Code; + + +namespace TCDB +{ + /// <summary> + /// Summary description for Header_Menu + /// </summary> + public partial class Header_Menu : SiteUserControl + { + private Logger m_logg = new Logger("TCDB.Header_Menu"); + + protected void LoadAssignments(object sender, CommandEventArgs e) + { + Session[Constants.CODE_USER] = m_user.ID; + Response.Redirect("Assignments.aspx"); + } + } +} \ No newline at end of file Modified: Website/Includes/Header_User.ascx =================================================================== --- Website/Includes/Header_User.ascx 2006-08-08 21:26:55 UTC (rev 284) +++ Website/Includes/Header_User.ascx 2006-08-09 04:47:23 UTC (rev 285) @@ -10,4 +10,4 @@ <% if (m_user.HasRight("view_admin", Constants.PRODUCT_ANYID)) { %> | <a href="Administration.aspx">Admin</a> -<% } %> +<% } %> \ No newline at end of file Deleted: Website/Includes/Roles.ascx =================================================================== --- Website/Includes/Roles.ascx 2006-08-08 21:26:55 UTC (rev 284) +++ Website/Includes/Roles.ascx 2006-08-09 04:47:23 UTC (rev 285) @@ -1,226 +0,0 @@ -<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Roles.ascx.cs" Inherits="TCDB.TCDBRoles" %> -<%@ Register Assembly="FreeTextBox" Namespace="FreeTextBoxControls" TagPrefix="FTB" %> -<asp:FormView ID="FormView1" runat="server" DataKeyNames="roleID" DataSourceID="RoleDataSource" - OnItemInserted="FormView1_ItemInserted" OnItemUpdated="FormView1_ItemUpdated" - OnItemCommand="FormView1_ItemCommand" OnDataBound="FormView1_DataBound"> - <HeaderTemplate> - <div align="left"> - <h2> - User Role</h2> - </div> - <div align="right"> - <asp:Label ID="activeLbl" runat="server" Text="Active"></asp:Label> - <asp:CheckBox ID="activeBox" runat="server" AutoPostBack="True" OnCheckedChanged="activeBox_CheckedChanged" - OnInit="activeBox_Init" /></div> - </HeaderTemplate> - <ItemTemplate> - <div class="xsnazzy"> - <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"> - </b></b> - <div class="xboxcontent"> - <table width="700"> - <tr> - <td colspan="6" align="left"> - <strong>Name:</strong> - <asp:Label ID="nameLabel" runat="server" Text='<%# Eval("roleName") %>'></asp:Label></td> - </tr> - <tr> - <td class="hr" colspan="6"> - </td> - </tr> - <tr> - <td align="left" colspan="6" valign="top"> - <strong>Description:</strong><br /> - <asp:Label ID="descriptionLbl" runat="server" Text='<%# Eval("roleDescription") %>'></asp:Label></td> - </tr> - <tr> - <td class="hr" colspan="6"> - </td> - </tr> - <tr> - <td colspan="4" align="left" valign="top" width="33%" style="height: 132px"> - <asp:Panel ID="ProductUserPanel" runat="server" Height="100%" Width="100%" OnInit="ProductUserPanel_Init" - ScrollBars="Horizontal" Wrap="False"> - </asp:Panel> - <br /> - <asp:LinkButton ID="editAssignments" runat="server" CommandName="editAssignments" - OnCommand="editAssignments_Command">Edit Role Assignments</asp:LinkButton> - </td> - <td colspan="2" align="left" valign="top" width="34%" style="height: 132px"> - <strong>Rights:</strong><br /> - <asp:ListBox ID="rightsList" runat="server" Height="150px" Width="150px" OnInit="rightsList_Init1"> - </asp:ListBox> - </td> - </tr> - <tr> - <td colspan="6" class="hr"> - </td> - </tr> - <tr> - <td align="left" colspan="6"> - <asp:LinkButton ID="New" runat="server" CommandName="new" OnInit="New_Init">New</asp:LinkButton><asp:Label - ID="newLbl" runat="server" Text=" | "></asp:Label><asp:LinkButton ID="Edit" - runat="server" CommandName="edit" OnInit="Edit_Init">Edit</asp:LinkButton><asp:Label - ID="deleteLbl" runat="server" Text=" | "></asp:Label><asp:LinkButton ID="Delete" - runat="server" CommandName="deleteCmd" OnCommand="deleteCmd" OnLoad="Delete_Load">Delete</asp:LinkButton></td> - </tr> - </table> - </div> - <b class="xbottom"><b class="xb4"></b><b class="xb3"></b><b class="xb2"></b><b class="xb1"> - </b></b> - </div> - </ItemTemplate> - <EditItemTemplate> - <asp:RequiredFieldValidator ID="nameValidator" runat="server" ErrorMessage="You must enter a role name." - ControlToValidate="nameBox"></asp:RequiredFieldValidator> - <div class="xsnazzy"> - <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"> - </b></b> - <div class="xboxcontent"> - <table width="700"> - <tr> - <td align="left" colspan="6"> - <strong>Name:</strong> - <asp:TextBox ID="nameBox" runat="server" Text='<%# Bind("roleName") %>' Width="70%"></asp:TextBox> - </td> - </tr> - <tr> - <td class="hr" colspan="6"> - </td> - </tr> - <tr> - <td align="left" colspan="6" valign="top"> - <strong>Description:</strong><br /> - <FTB:FreeTextBox ID="descriptionBox" runat="server" SupportFolder="~/aspnet_client/FreeTextBox/" - Width="100%" Text='<%# Bind("roleDescription") %>' Height="200px" EnableHtmlMode="true" - DisableIEBackButton="False"> - </FTB:FreeTextBox> - </td> - </tr> - <tr> - <td class="hr" colspan="6"> - </td> - </tr> - <tr> - <td colspan="2" align="left" valign="top" width="33%"> - </td> - <td colspan="2" align="left" valign="top" width="33%"> - </td> - <td colspan="2" align="left" valign="top" width="34%"> - <strong>Rights:<br /> - <asp:LinkButton ID="newRight" runat="server" CommandName="newRight" OnCommand="newRight">New Right</asp:LinkButton><br /> - </strong> <asp:ListBox ID="rightsList" runat="server" DataSourceID="RightsDataSource" - DataTextField="rightsName" DataValueField="rightsID" SelectionMode="Multiple" - Height="150px" OnDataBound="rightsList_DataBound" Width="150px"> - </asp:ListBox> </td> - </tr> - <tr> - <td class="hr" colspan="6"> - </td> - </tr> - <tr> - <td align="left" colspan="6"> - <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" - Text="Update"> - </asp:LinkButton> - | - <asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" - Text="Cancel"> - </asp:LinkButton></td> - </tr> - </table> - </div> - <b class="xbottom"><b class="xb4"></b><b class="xb3"></b><b class="xb2"></b><b class="xb1"> - </b></b> - </div> - </EditItemTemplate> - <InsertItemTemplate> - <asp:RequiredFieldValidator ID="nameValidator" runat="server" ErrorMessage="You must enter a role name." - ControlToValidate="nameBox"></asp:RequiredFieldValidator> - <div class="xsnazzy"> - <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"> - </b></b> - <div class="xboxcontent"> - <table width="700"> - <tr> - <td align="left" colspan="6"> - <strong>Name:</strong> - <asp:TextBox ID="nameBox" runat="server" Text='<%# Bind("roleName") %>' Width="70%"></asp:TextBox></td> - </tr> - <tr> - <td class="hr" colspan="6"> - </td> - </tr> - <tr> - <td align="left" colspan="6" valign="top"> - <strong>Description:</strong><br /> - <FTB:FreeTextBox ID="descriptionBox" runat="server" SupportFolder="~/aspnet_client/FreeTextBox/" - Width="100%" Text='<%# Bind("roleDescription") %>' Height="200px" EnableHtmlMode="true"> - </FTB:FreeTextBox> - </td> - </tr> - <tr> - <td class="hr" colspan="6"> - </td> - </tr> - <tr> - <td colspan="2" align="left" valign="top" width="33%"> - </td> - <td colspan="2" align="left" valign="top" width="33%"> - </td> - <td colspan="2" align="left" valign="top" width="34%"> - <strong>Rights: - <asp:LinkButton ID="newRight" runat="server" CommandName="newRight" OnCommand="newRight">New Right</asp:LinkButton><br /> - </strong> <asp:ListBox ID="rightsList" runat="server" DataSourceID="RightsDataSource" - DataTextField="rightsName" DataValueField="rightsID" SelectionMode="Multiple" - Height="150px" Width="150px"></asp:ListBox> - </td> - </tr> - <tr> - <td class="hr" colspan="6"> - </td> - </tr> - <tr> - <td align="left" colspan="6"> - <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert" - Text="Insert"></asp:LinkButton> - | - <asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" - Text="Cancel"> - </asp:LinkButton></td> - </tr> - </table> - </div> - <b class="xbottom"><b class="xb4"></b><b class="xb3"></b><b class="xb2"></b><b class="xb1"> - </b></b> - </div> - </InsertItemTemplate> -</asp:FormView> -<asp:ObjectDataSource ID="RoleDataSource" runat="server" InsertMethod="Insert" SelectMethod="GetData" - TypeName="tcdbDataSetTableAdapters.db_roleTableAdapter" UpdateMethod="Update" - OldValuesParameterFormatString="original_{0}"> - <UpdateParameters> - <asp:Parameter Name="roleID" Type="Int32" /> - <asp:Parameter Name="roleName" Type="String" /> - <asp:Parameter Name="roleDescription" Type="String" /> - <asp:Parameter Name="active" Typ... [truncated message content] |
From: <ro...@us...> - 2006-08-09 16:53:50
|
Revision: 288 Author: rouquin Date: 2006-08-09 09:53:30 -0700 (Wed, 09 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=288&view=rev Log Message: ----------- Added some supporting pages (not functional). Also, updated version page a little and updated code for some bug fixes that Jon put in. Modified Paths: -------------- Website/App_Code/Common.cs Website/App_Code/Right.cs Website/App_Code/Versions.cs Website/App_Code/tcdbDataSet.xsd Website/App_Code/tcdbDataSet.xss Website/Includes/AdministrationTree.ascx.cs Website/Includes/Builds.ascx Website/Includes/FeaturesTree.ascx.cs Website/Includes/Platforms.ascx Website/Includes/Rights.ascx.cs Website/Includes/UserRoles.ascx.cs Website/Includes/Versions.ascx Added Paths: ----------- Website/Build.aspx Website/Includes/Builds.ascx.cs Website/Includes/Platforms.ascx.cs Website/Includes/TestPasses.ascx Website/Includes/TestPasses.ascx.cs Website/Platform.aspx Website/TestPass.aspx Modified: Website/App_Code/Common.cs =================================================================== --- Website/App_Code/Common.cs 2006-08-09 15:47:18 UTC (rev 287) +++ Website/App_Code/Common.cs 2006-08-09 16:53:30 UTC (rev 288) @@ -659,7 +659,7 @@ Dictionary<String, List<Config>> settings = new Dictionary<string, List<Config>>(); Dictionary<String, String> values; List<Config> group; - + // Start clean settings.Clear(); Modified: Website/App_Code/Right.cs =================================================================== --- Website/App_Code/Right.cs 2006-08-09 15:47:18 UTC (rev 287) +++ Website/App_Code/Right.cs 2006-08-09 16:53:30 UTC (rev 288) @@ -173,15 +173,15 @@ List<String> rightsList = new List<String>(); foreach (tcdbDataSet.db_userRightsRow row in userRightsTable) - rightsList.Add(row.rightsName); + rightsList.Add(row.rightsCode); return rightsList; } - public static Right TCDB_GetUserRight(int productID, int userID, String rightsName, Nullable<bool> active) + public static Right TCDB_GetUserRight(int productID, int userID, String rightsCode, Nullable<bool> active) { tcdbDataSetTableAdapters.db_userRightsTableAdapter userRightsAdapter = new tcdbDataSetTableAdapters.db_userRightsTableAdapter(); - tcdbDataSet.db_userRightsDataTable userRightsTable = userRightsAdapter.GetData(userID, productID, null, rightsName, active); + tcdbDataSet.db_userRightsDataTable userRightsTable = userRightsAdapter.GetData(userID, productID, null, rightsCode, active); if (userRightsTable.Count > 0) { Modified: Website/App_Code/Versions.cs =================================================================== --- Website/App_Code/Versions.cs 2006-08-09 15:47:18 UTC (rev 287) +++ Website/App_Code/Versions.cs 2006-08-09 16:53:30 UTC (rev 288) @@ -16,53 +16,52 @@ /// </summary> public class VersionDB : Page { - public static Version GetVersion(int VersionID) + public static ProductVersion GetVersion(int VersionID) { tcdbDataSetTableAdapters.db_versionTableAdapter versionAdapter = new tcdbDataSetTableAdapters.db_versionTableAdapter(); tcdbDataSet.db_versionDataTable versionTable = versionAdapter.GetData(VersionID, null, true); - Version version = new Version(); + ProductVersion version = new ProductVersion(); if (versionTable.Count > 0) - version = new Version(versionTable[0]); + version = new ProductVersion(versionTable[0]); return version; } - public static List<Version> GetVersionList(int ProductID) + public static List<ProductVersion> GetVersionList(Nullable<int> ProductID, Nullable<bool> active) { tcdbDataSetTableAdapters.db_versionTableAdapter versionAdapter = new tcdbDataSetTableAdapters.db_versionTableAdapter(); - tcdbDataSet.db_versionDataTable versionTable = versionAdapter.GetData(null, ProductID, true); - List<Version> versionList = new List<Version>(); + tcdbDataSet.db_versionDataTable versionTable = versionAdapter.GetData(null, ProductID, active); + List<ProductVersion> versionList = new List<ProductVersion>(); foreach (tcdbDataSet.db_versionRow row in versionTable) - versionList.Add(new Version(row)); + versionList.Add(new ProductVersion(row)); return versionList; } } - public class Version + public class ProductVersion { private int p_versionid; private Product p_product; private string p_number; private string p_code; private bool p_active; - private Nullable<DateTime> p_datecreated; + private DateTime p_datecreated; // TODO: Implement these as the time is right //private List<Platform> platforms; - public Version() + public ProductVersion() { p_versionid = 0; p_product = null; p_number = null; p_code = null; p_active = false; - p_datecreated = null; } - public Version(int versionID, int productID, string number, string code, bool active, DateTime dateCreated) + public ProductVersion(int versionID, int productID, string number, string code, bool active, DateTime dateCreated) { p_versionid = versionID; p_product = ProductDB.GetProduct(true,productID,null); @@ -72,12 +71,18 @@ p_datecreated = dateCreated; } - public Version(tcdbDataSet.db_versionRow row) + public ProductVersion(tcdbDataSet.db_versionRow row) { p_versionid = row.versionID; p_product = ProductDB.GetProduct(true, row.productID, null); p_number = row.number; - p_code = row.code; + + try + { + p_code = row.code; + } + catch { p_code = ""; } + p_active = row.active; p_datecreated = row.dateCreated; } @@ -112,7 +117,7 @@ set { p_active = value; } } - public Nullable<DateTime> DATECREATED + public DateTime DATECREATED { get { return p_datecreated; } set { p_datecreated = value; } Modified: Website/App_Code/tcdbDataSet.xsd =================================================================== --- Website/App_Code/tcdbDataSet.xsd 2006-08-09 15:47:18 UTC (rev 287) +++ Website/App_Code/tcdbDataSet.xsd 2006-08-09 16:53:30 UTC (rev 288) @@ -688,7 +688,7 @@ </Parameter> <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@rightsID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> </Parameter> - <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@rightsName" Precision="0" ProviderType="VarChar" Scale="0" Size="255" SourceColumnNullMapping="False" SourceVersion="Current"> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@rightsCode" Precision="0" ProviderType="VarChar" Scale="0" Size="255" SourceColumnNullMapping="False" SourceVersion="Current"> </Parameter> <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@active" Precision="1" ProviderType="Bit" Scale="0" Size="1" SourceColumnNullMapping="False" SourceVersion="Current"> </Parameter> @@ -705,6 +705,7 @@ <Mapping SourceColumn="rightsID" DataSetColumn="rightsID" /> <Mapping SourceColumn="rightsName" DataSetColumn="rightsName" /> <Mapping SourceColumn="rightDescription" DataSetColumn="rightDescription" /> + <Mapping SourceColumn="rightsCode" DataSetColumn="rightsCode" /> </Mappings> <Sources> </Sources> @@ -965,108 +966,108 @@ <xs:element name="db_products" msprop:Generator_UserTableName="db_products" msprop:Generator_RowDeletedName="db_productsRowDeleted" msprop:Generator_RowChangedName="db_productsRowChanged" msprop:Generator_RowClassName="db_productsRow" msprop:Generator_RowChangingName="db_productsRowChanging" msprop:Generator_RowEvArgName="db_productsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_productsRowChangeEventHandler" msprop:Generator_TableClassName="db_productsDataTable" msprop:Generator_TableVarName="tabledb_products" msprop:Generator_RowDeletingName="db_productsRowDeleting" msprop:Generator_TablePropName="db_products"> <xs:complexType> <xs:sequence> - <xs:element name="productID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="productID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> + <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="devManager" msprop:Generator_UserColumnName="devManager" msprop:Generator_ColumnVarNameInTable="columndevManager" msprop:Generator_ColumnPropNameInRow="devManager" msprop:Generator_ColumnPropNameInTable="devManagerColumn" type="xs:int" minOccurs="0" /> - <xs:element name="qaManager" msprop:Generator_UserColumnName="qaManager" msprop:Generator_ColumnVarNameInTable="columnqaManager" msprop:Generator_ColumnPropNameInRow="qaManager" msprop:Generator_ColumnPropNameInTable="qaManagerColumn" type="xs:int" minOccurs="0" /> - <xs:element name="devLead" msprop:Generator_UserColumnName="devLead" msprop:Generator_ColumnVarNameInTable="columndevLead" msprop:Generator_ColumnPropNameInRow="devLead" msprop:Generator_ColumnPropNameInTable="devLeadColumn" type="xs:int" minOccurs="0" /> - <xs:element name="qaLead" msprop:Generator_UserColumnName="qaLead" msprop:Generator_ColumnVarNameInTable="columnqaLead" msprop:Generator_ColumnPropNameInRow="qaLead" msprop:Generator_ColumnPropNameInTable="qaLeadColumn" type="xs:int" minOccurs="0" /> - <xs:element name="pm" msprop:Generator_UserColumnName="pm" msprop:Generator_ColumnVarNameInTable="columnpm" msprop:Generator_ColumnPropNameInRow="pm" msprop:Generator_ColumnPropNameInTable="pmColumn" type="xs:int" minOccurs="0" /> - <xs:element name="codeName" msprop:Generator_UserColumnName="codeName" msprop:Generator_ColumnVarNameInTable="columncodeName" msprop:Generator_ColumnPropNameInRow="codeName" msprop:Generator_ColumnPropNameInTable="codeNameColumn" minOccurs="0"> + <xs:element name="devManager" msprop:Generator_UserColumnName="devManager" msprop:Generator_ColumnPropNameInRow="devManager" msprop:Generator_ColumnVarNameInTable="columndevManager" msprop:Generator_ColumnPropNameInTable="devManagerColumn" type="xs:int" minOccurs="0" /> + <xs:element name="qaManager" msprop:Generator_UserColumnName="qaManager" msprop:Generator_ColumnPropNameInRow="qaManager" msprop:Generator_ColumnVarNameInTable="columnqaManager" msprop:Generator_ColumnPropNameInTable="qaManagerColumn" type="xs:int" minOccurs="0" /> + <xs:element name="devLead" msprop:Generator_UserColumnName="devLead" msprop:Generator_ColumnPropNameInRow="devLead" msprop:Generator_ColumnVarNameInTable="columndevLead" msprop:Generator_ColumnPropNameInTable="devLeadColumn" type="xs:int" minOccurs="0" /> + <xs:element name="qaLead" msprop:Generator_UserColumnName="qaLead" msprop:Generator_ColumnPropNameInRow="qaLead" msprop:Generator_ColumnVarNameInTable="columnqaLead" msprop:Generator_ColumnPropNameInTable="qaLeadColumn" type="xs:int" minOccurs="0" /> + <xs:element name="pm" msprop:Generator_UserColumnName="pm" msprop:Generator_ColumnPropNameInRow="pm" msprop:Generator_ColumnVarNameInTable="columnpm" msprop:Generator_ColumnPropNameInTable="pmColumn" type="xs:int" minOccurs="0" /> + <xs:element name="codeName" msprop:Generator_UserColumnName="codeName" msprop:Generator_ColumnPropNameInRow="codeName" msprop:Generator_ColumnVarNameInTable="columncodeName" msprop:Generator_ColumnPropNameInTable="codeNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="10" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_actionItems" msprop:Generator_UserTableName="db_actionItems" msprop:Generator_RowDeletedName="db_actionItemsRowDeleted" msprop:Generator_RowChangedName="db_actionItemsRowChanged" msprop:Generator_RowClassName="db_actionItemsRow" msprop:Generator_RowChangingName="db_actionItemsRowChanging" msprop:Generator_RowEvArgName="db_actionItemsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_actionItemsRowChangeEventHandler" msprop:Generator_TableClassName="db_actionItemsDataTable" msprop:Generator_TableVarName="tabledb_actionItems" msprop:Generator_RowDeletingName="db_actionItemsRowDeleting" msprop:Generator_TablePropName="db_actionItems"> <xs:complexType> <xs:sequence> - <xs:element name="actionItemID" msprop:Generator_UserColumnName="actionItemID" msprop:Generator_ColumnPropNameInRow="actionItemID" msprop:Generator_ColumnVarNameInTable="columnactionItemID" msprop:Generator_ColumnPropNameInTable="actionItemIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="actionItemID" msprop:Generator_UserColumnName="actionItemID" msprop:Generator_ColumnVarNameInTable="columnactionItemID" msprop:Generator_ColumnPropNameInRow="actionItemID" msprop:Generator_ColumnPropNameInTable="actionItemIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> + <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="percentComplete" msprop:Generator_UserColumnName="percentComplete" msprop:Generator_ColumnPropNameInRow="percentComplete" msprop:Generator_ColumnVarNameInTable="columnpercentComplete" msprop:Generator_ColumnPropNameInTable="percentCompleteColumn" type="xs:int" minOccurs="0" /> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="percentComplete" msprop:Generator_UserColumnName="percentComplete" msprop:Generator_ColumnVarNameInTable="columnpercentComplete" msprop:Generator_ColumnPropNameInRow="percentComplete" msprop:Generator_ColumnPropNameInTable="percentCompleteColumn" type="xs:int" minOccurs="0" /> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="createdBy" msdata:ReadOnly="true" msprop:Generator_UserColumnName="createdBy" msprop:Generator_ColumnPropNameInRow="createdBy" msprop:Generator_ColumnVarNameInTable="columncreatedBy" msprop:Generator_ColumnPropNameInTable="createdByColumn" minOccurs="0"> + <xs:element name="createdBy" msdata:ReadOnly="true" msprop:Generator_UserColumnName="createdBy" msprop:Generator_ColumnVarNameInTable="columncreatedBy" msprop:Generator_ColumnPropNameInRow="createdBy" msprop:Generator_ColumnPropNameInTable="createdByColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> - <xs:element name="testPass" msprop:Generator_UserColumnName="testPass" msprop:Generator_ColumnVarNameInTable="columntestPass" msprop:Generator_ColumnPropNameInRow="testPass" msprop:Generator_ColumnPropNameInTable="testPassColumn" minOccurs="0"> + <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> + <xs:element name="testPass" msprop:Generator_UserColumnName="testPass" msprop:Generator_ColumnPropNameInRow="testPass" msprop:Generator_ColumnVarNameInTable="columntestPass" msprop:Generator_ColumnPropNameInTable="testPassColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> + <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="statusID" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="testPassID" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> - <xs:element name="creatorID" msprop:Generator_UserColumnName="creatorID" msprop:Generator_ColumnPropNameInRow="creatorID" msprop:Generator_ColumnVarNameInTable="columncreatorID" msprop:Generator_ColumnPropNameInTable="creatorIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="statusID" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="testPassID" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="creatorID" msprop:Generator_UserColumnName="creatorID" msprop:Generator_ColumnVarNameInTable="columncreatorID" msprop:Generator_ColumnPropNameInRow="creatorID" msprop:Generator_ColumnPropNameInTable="creatorIDColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_status" msprop:Generator_UserTableName="db_status" msprop:Generator_RowDeletedName="db_statusRowDeleted" msprop:Generator_RowChangedName="db_statusRowChanged" msprop:Generator_RowClassName="db_statusRow" msprop:Generator_RowChangingName="db_statusRowChanging" msprop:Generator_RowEvArgName="db_statusRowChangeEvent" msprop:Generator_RowEvHandlerName="db_statusRowChangeEventHandler" msprop:Generator_TableClassName="db_statusDataTable" msprop:Generator_TableVarName="tabledb_status" msprop:Generator_RowDeletingName="db_statusRowDeleting" msprop:Generator_TablePropName="db_status"> <xs:complexType> <xs:sequence> - <xs:element name="statusID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" /> - <xs:element name="Description" msprop:Generator_UserColumnName="Description" msprop:Generator_ColumnVarNameInTable="columnDescription" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" minOccurs="0"> + <xs:element name="statusID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" /> + <xs:element name="Description" msprop:Generator_UserColumnName="Description" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnVarNameInTable="columnDescription" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> @@ -1079,17 +1080,17 @@ <xs:element name="db_notes" msprop:Generator_UserTableName="db_notes" msprop:Generator_RowDeletedName="db_notesRowDeleted" msprop:Generator_RowChangedName="db_notesRowChanged" msprop:Generator_RowClassName="db_notesRow" msprop:Generator_RowChangingName="db_notesRowChanging" msprop:Generator_RowEvArgName="db_notesRowChangeEvent" msprop:Generator_RowEvHandlerName="db_notesRowChangeEventHandler" msprop:Generator_TableClassName="db_notesDataTable" msprop:Generator_TableVarName="tabledb_notes" msprop:Generator_RowDeletingName="db_notesRowDeleting" msprop:Generator_TablePropName="db_notes"> <xs:complexType> <xs:sequence> - <xs:element name="noteID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="noteID" msprop:Generator_ColumnVarNameInTable="columnnoteID" msprop:Generator_ColumnPropNameInRow="noteID" msprop:Generator_ColumnPropNameInTable="noteIDColumn" type="xs:int" /> - <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="noteField" msprop:Generator_UserColumnName="noteField" msprop:Generator_ColumnVarNameInTable="columnnoteField" msprop:Generator_ColumnPropNameInRow="noteField" msprop:Generator_ColumnPropNameInTable="noteFieldColumn" minOccurs="0"> + <xs:element name="noteID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="noteID" msprop:Generator_ColumnPropNameInRow="noteID" msprop:Generator_ColumnVarNameInTable="columnnoteID" msprop:Generator_ColumnPropNameInTable="noteIDColumn" type="xs:int" /> + <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="noteField" msprop:Generator_UserColumnName="noteField" msprop:Generator_ColumnPropNameInRow="noteField" msprop:Generator_ColumnVarNameInTable="columnnoteField" msprop:Generator_ColumnPropNameInTable="noteFieldColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="noteAuthor" msprop:Generator_UserColumnName="noteAuthor" msprop:Generator_ColumnVarNameInTable="columnnoteAuthor" msprop:Generator_ColumnPropNameInRow="noteAuthor" msprop:Generator_ColumnPropNameInTable="noteAuthorColumn" type="xs:int" minOccurs="0" /> - <xs:element name="noteAuthorName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="noteAuthorName" msprop:Generator_ColumnPropNameInRow="noteAuthorName" msprop:Generator_ColumnVarNameInTable="columnnoteAuthorName" msprop:Generator_ColumnPropNameInTable="noteAuthorNameColumn" minOccurs="0"> + <xs:element name="noteAuthor" msprop:Generator_UserColumnName="noteAuthor" msprop:Generator_ColumnPropNameInRow="noteAuthor" msprop:Generator_ColumnVarNameInTable="columnnoteAuthor" msprop:Generator_ColumnPropNameInTable="noteAuthorColumn" type="xs:int" minOccurs="0" /> + <xs:element name="noteAuthorName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="noteAuthorName" msprop:Generator_ColumnVarNameInTable="columnnoteAuthorName" msprop:Generator_ColumnPropNameInRow="noteAuthorName" msprop:Generator_ColumnPropNameInTable="noteAuthorNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> @@ -1102,102 +1103,102 @@ <xs:element name="db_assignments" msprop:Generator_UserTableName="db_assignments" msprop:Generator_RowDeletedName="db_assignmentsRowDeleted" msprop:Generator_RowChangedName="db_assignmentsRowChanged" msprop:Generator_RowClassName="db_assignmentsRow" msprop:Generator_RowChangingName="db_assignmentsRowChanging" msprop:Generator_RowEvArgName="db_assignmentsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_assignmentsRowChangeEventHandler" msprop:Generator_TableClassName="db_assignmentsDataTable" msprop:Generator_TableVarName="tabledb_assignments" msprop:Generator_RowDeletingName="db_assignmentsRowDeleting" msprop:Generator_TablePropName="db_assignments"> <xs:complexType> <xs:sequence> - <xs:element name="aType" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aType" msprop:Generator_ColumnVarNameInTable="columnaType" msprop:Generator_ColumnPropNameInRow="aType" msprop:Generator_ColumnPropNameInTable="aTypeColumn" minOccurs="0"> + <xs:element name="aType" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aType" msprop:Generator_ColumnPropNameInRow="aType" msprop:Generator_ColumnVarNameInTable="columnaType" msprop:Generator_ColumnPropNameInTable="aTypeColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="childID" msdata:ReadOnly="true" msprop:Generator_UserColumnName="childID" msprop:Generator_ColumnVarNameInTable="columnchildID" msprop:Generator_ColumnPropNameInRow="childID" msprop:Generator_ColumnPropNameInTable="childIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="creator" msdata:ReadOnly="true" msprop:Generator_UserColumnName="creator" msprop:Generator_ColumnVarNameInTable="columncreator" msprop:Generator_ColumnPropNameInRow="creator" msprop:Generator_ColumnPropNameInTable="creatorColumn" minOccurs="0"> + <xs:element name="childID" msdata:ReadOnly="true" msprop:Generator_UserColumnName="childID" msprop:Generator_ColumnPropNameInRow="childID" msprop:Generator_ColumnVarNameInTable="columnchildID" msprop:Generator_ColumnPropNameInTable="childIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="creator" msdata:ReadOnly="true" msprop:Generator_UserColumnName="creator" msprop:Generator_ColumnPropNameInRow="creator" msprop:Generator_ColumnVarNameInTable="columncreator" msprop:Generator_ColumnPropNameInTable="creatorColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> + <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="WOTotalTest" msprop:Generator_UserColumnName="WOTotalTest" msprop:Generator_ColumnVarNameInTable="columnWOTotalTest" msprop:Generator_ColumnPropNameInRow="WOTotalTest" msprop:Generator_ColumnPropNameInTable="WOTotalTestColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOPassRate" msdata:ReadOnly="true" msprop:Generator_UserColumnName="WOPassRate" msprop:Generator_ColumnVarNameInTable="columnWOPassRate" msprop:Generator_ColumnPropNameInRow="WOPassRate" msprop:Generator_ColumnPropNameInTable="WOPassRateColumn" minOccurs="0"> + <xs:element name="WOTotalTest" msprop:Generator_UserColumnName="WOTotalTest" msprop:Generator_ColumnPropNameInRow="WOTotalTest" msprop:Generator_ColumnVarNameInTable="columnWOTotalTest" msprop:Generator_ColumnPropNameInTable="WOTotalTestColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOPassRate" msdata:ReadOnly="true" msprop:Generator_UserColumnName="WOPassRate" msprop:Generator_ColumnPropNameInRow="WOPassRate" msprop:Generator_ColumnVarNameInTable="columnWOPassRate" msprop:Generator_ColumnPropNameInTable="WOPassRateColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="31" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="WOPass" msprop:Generator_UserColumnName="WOPass" msprop:Generator_ColumnVarNameInTable="columnWOPass" msprop:Generator_ColumnPropNameInRow="WOPass" msprop:Generator_ColumnPropNameInTable="WOPassColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOFail" msprop:Generator_UserColumnName="WOFail" msprop:Generator_ColumnVarNameInTable="columnWOFail" msprop:Generator_ColumnPropNameInRow="WOFail" msprop:Generator_ColumnPropNameInTable="WOFailColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOError" msprop:Generator_UserColumnName="WOError" msprop:Generator_ColumnVarNameInTable="columnWOError" msprop:Generator_ColumnPropNameInRow="WOError" msprop:Generator_ColumnPropNameInTable="WOErrorColumn" type="xs:int" minOccurs="0" /> - <xs:element name="aName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aName" msprop:Generator_ColumnVarNameInTable="columnaName" msprop:Generator_ColumnPropNameInRow="aName" msprop:Generator_ColumnPropNameInTable="aNameColumn" minOccurs="0"> + <xs:element name="WOPass" msprop:Generator_UserColumnName="WOPass" msprop:Generator_ColumnPropNameInRow="WOPass" msprop:Generator_ColumnVarNameInTable="columnWOPass" msprop:Generator_ColumnPropNameInTable="WOPassColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOFail" msprop:Generator_UserColumnName="WOFail" msprop:Generator_ColumnPropNameInRow="WOFail" msprop:Generator_ColumnVarNameInTable="columnWOFail" msprop:Generator_ColumnPropNameInTable="WOFailColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOError" msprop:Generator_UserColumnName="WOError" msprop:Generator_ColumnPropNameInRow="WOError" msprop:Generator_ColumnVarNameInTable="columnWOError" msprop:Generator_ColumnPropNameInTable="WOErrorColumn" type="xs:int" minOccurs="0" /> + <xs:element name="aName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aName" msprop:Generator_ColumnPropNameInRow="aName" msprop:Generator_ColumnVarNameInTable="columnaName" msprop:Generator_ColumnPropNameInTable="aNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> - <xs:element name="creatorID" msprop:Generator_UserColumnName="creatorID" msprop:Generator_ColumnVarNameInTable="columncreatorID" msprop:Generator_ColumnPropNameInRow="creatorID" msprop:Generator_ColumnPropNameInTable="creatorIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="numAI" msdata:ReadOnly="true" msprop:Generator_UserColumnName="numAI" msprop:Generator_ColumnVarNameInTable="columnnumAI" msprop:Generator_ColumnPropNameInRow="numAI" msprop:Generator_ColumnPropNameInTable="numAIColumn" type="xs:int" minOccurs="0" /> - <xs:element name="numWO" msdata:ReadOnly="true" msprop:Generator_UserColumnName="numWO" msprop:Generator_ColumnVarNameInTable="columnnumWO" msprop:Generator_ColumnPropNameInRow="numWO" msprop:Generator_ColumnPropNameInTable="numWOColumn" type="xs:int" minOccurs="0" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="creatorID" msprop:Generator_UserColumnName="creatorID" msprop:Generator_ColumnPropNameInRow="creatorID" msprop:Generator_ColumnVarNameInTable="columncreatorID" msprop:Generator_ColumnPropNameInTable="creatorIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="numAI" msdata:ReadOnly="true" msprop:Generator_UserColumnName="numAI" msprop:Generator_ColumnPropNameInRow="numAI" msprop:Generator_ColumnVarNameInTable="columnnumAI" msprop:Generator_ColumnPropNameInTable="numAIColumn" type="xs:int" minOccurs="0" /> + <xs:element name="numWO" msdata:ReadOnly="true" msprop:Generator_UserColumnName="numWO" msprop:Generator_ColumnPropNameInRow="numWO" msprop:Generator_ColumnVarNameInTable="columnnumWO" msprop:Generator_ColumnPropNameInTable="numWOColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_testPass" msprop:Generator_UserTableName="db_testPass" msprop:Generator_RowDeletedName="db_testPassRowDeleted" msprop:Generator_RowChangedName="db_testPassRowChanged" msprop:Generator_RowClassName="db_testPassRow" msprop:Generator_RowChangingName="db_testPassRowChanging" msprop:Generator_RowEvArgName="db_testPassRowChangeEvent" msprop:Generator_RowEvHandlerName="db_testPassRowChangeEventHandler" msprop:Generator_TableClassName="db_testPassDataTable" msprop:Generator_TableVarName="tabledb_testPass" msprop:Generator_RowDeletingName="db_testPassRowDeleting" msprop:Generator_TablePropName="db_testPass"> <xs:complexType> <xs:sequence> - <xs:element name="testPassID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="testPassID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="versionID" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="versionID" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_version" msprop:Generator_UserTableName="db_version" msprop:Generator_RowDeletedName="db_versionRowDeleted" msprop:Generator_RowChangedName="db_versionRowChanged" msprop:Generator_RowClassName="db_versionRow" msprop:Generator_RowChangingName="db_versionRowChanging" msprop:Generator_RowEvArgName="db_versionRowChangeEvent" msprop:Generator_RowEvHandlerName="db_versionRowChangeEventHandler" msprop:Generator_TableClassName="db_versionDataTable" msprop:Generator_TableVarName="tabledb_version" msprop:Generator_RowDeletingName="db_versionRowDeleting" msprop:Generator_TablePropName="db_version"> <xs:complexType> <xs:sequence> - <xs:element name="versionID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" /> - <xs:element name="productID" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="number" msprop:Generator_UserColumnName="number" msprop:Generator_ColumnPropNameInRow="number" msprop:Generator_ColumnVarNameInTable="columnnumber" msprop:Generator_ColumnPropNameInTable="numberColumn" minOccurs="0"> + <xs:element name="versionID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" /> + <xs:element name="productID" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="number" msprop:Generator_UserColumnName="number" msprop:Generator_ColumnVarNameInTable="columnnumber" msprop:Generator_ColumnPropNameInRow="number" msprop:Generator_ColumnPropNameInTable="numberColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="code" msprop:Generator_UserColumnName="code" msprop:Generator_ColumnPropNameInRow="code" msprop:Generator_ColumnVarNameInTable="columncode" msprop:Generator_ColumnPropNameInTable="codeColumn" minOccurs="0"> + <xs:element name="code" msprop:Generator_UserColumnName="code" msprop:Generator_ColumnVarNameInTable="columncode" msprop:Generator_ColumnPropNameInRow="code" msprop:Generator_ColumnPropNameInTable="codeColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" minOccurs="0" /> - <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="productName" msprop:Generator_UserColumnName="productName" msprop:Generator_ColumnPropNameInRow="productName" msprop:Generator_ColumnVarNameInTable="columnproductName" msprop:Generator_ColumnPropNameInTable="productNameColumn" minOccurs="0"> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" minOccurs="0" /> + <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="productName" msprop:Generator_UserColumnName="productName" msprop:Generator_ColumnVarNameInTable="columnproductName" msprop:Generator_ColumnPropNameInRow="productName" msprop:Generator_ColumnPropNameInTable="productNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> @@ -1210,30 +1211,30 @@ <xs:element name="db_rights" msprop:Generator_UserTableName="db_rights" msprop:Generator_RowDeletedName="db_rightsRowDeleted" msprop:Generator_RowChangedName="db_rightsRowChanged" msprop:Generator_RowClassName="db_rightsRow" msprop:Generator_RowChangingName="db_rightsRowChanging" msprop:Generator_RowEvArgName="db_rightsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_rightsRowChangeEventHandler" msprop:Generator_TableClassName="db_rightsDataTable" msprop:Generator_TableVarName="tabledb_rights" msprop:Generator_RowDeletingName="db_rightsRowDeleting" msprop:Generator_TablePropName="db_rights"> <xs:complexType> <xs:sequence> - <xs:element name="rightsID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="rightsID" msprop:Generator_ColumnVarNameInTable="columnrightsID" msprop:Generator_ColumnPropNameInRow="rightsID" msprop:Generator_ColumnPropNameInTable="rightsIDColumn" type="xs:int" /> - <xs:element name="rightsName" msprop:Generator_UserColumnName="rightsName" msprop:Generator_ColumnVarNameInTable="columnrightsName" msprop:Generator_ColumnPropNameInRow="rightsName" msprop:Generator_ColumnPropNameInTable="rightsNameColumn" minOccurs="0"> + <xs:element name="rightsID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="rightsID" msprop:Generator_ColumnPropNameInRow="rightsID" msprop:Generator_ColumnVarNameInTable="columnrightsID" msprop:Generator_ColumnPropNameInTable="rightsIDColumn" type="xs:int" /> + <xs:element name="rightsName" msprop:Generator_UserColumnName="rightsName" msprop:Generator_ColumnPropNameInRow="rightsName" msprop:Generator_ColumnVarNameInTable="columnrightsName" msprop:Generator_ColumnPropNameInTable="rightsNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="rightDescription" msprop:Generator_UserColumnName="rightDescription" msprop:Generator_ColumnVarNameInTable="columnrightDescription" msprop:Generator_ColumnPropNameInRow="rightDescription" msprop:Generator_ColumnPropNameInTable="rightDescriptionColumn" minOccurs="0"> + <xs:element name="rightDescription" msprop:Generator_UserColumnName="rightDescription" msprop:Generator_ColumnPropNameInRow="rightDescription" msprop:Generator_ColumnVarNameInTable="columnrightDescription" msprop:Generator_ColumnPropNameInTable="rightDescriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> - <xs:element name="rightsDescription" msprop:Generator_UserColumnName="rightsDescription" msprop:Generator_ColumnVarNameInTable="columnrightsDescription" msprop:Generator_ColumnPropNameInRow="rightsDescription" msprop:Generator_ColumnPropNameInTable="rightsDescriptionColumn" minOccurs="0"> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="rightsDescription" msprop:Generator_UserColumnName="rightsDescription" msprop:Generator_ColumnPropNameInRow="rightsDescription" msprop:Generator_ColumnVarNameInTable="columnrightsDescription" msprop:Generator_ColumnPropNameInTable="rightsDescriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="rightsCode" msprop:Generator_UserColumnName="rightsCode" msprop:Generator_ColumnVarNameInTable="columnrightsCode" msprop:Generator_ColumnPropNameInRow="rightsCode" msprop:Generator_ColumnPropNameInTable="rightsCodeColumn" minOccurs="0"> + <xs:element name="rightsCode" msprop:Generator_UserColumnName="rightsCode" msprop:Generator_ColumnPropNameInRow="rightsCode" msprop:Generator_ColumnVarNameInTable="columnrightsCode" msprop:Generator_ColumnPropNameInTable="rightsCodeColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> @@ -1246,25 +1247,25 @@ <xs:element name="db_roleProductUser" msprop:Generator_UserTableName="db_roleProductUser" msprop:Generator_RowDeletedName="db_roleProductUserRowDeleted" msprop:Generator_RowChangedName="db_roleProductUserRowChanged" msprop:Generator_RowClassName="db_roleProductUserRow" msprop:Generator_RowChangingName="db_roleProductUserRowChanging" msprop:Generator_RowEvArgName="db_roleProductUserRowChangeEvent" msprop:Generator_RowEvHandl... [truncated message content] |
From: <ro...@us...> - 2006-08-10 17:29:05
|
Revision: 298 Author: rouquin Date: 2006-08-10 09:22:36 -0700 (Thu, 10 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=298&view=rev Log Message: ----------- Modified Paths: -------------- Website/App_Code/Common.cs Website/App_Code/SiteUserControl.cs Website/Includes/ActionItems.ascx.cs Website/Includes/Administration.ascx.cs Website/Includes/AdministrationTree.ascx.cs Website/Includes/Assignments.ascx.cs Website/Includes/AssignmentsTree.ascx.cs Website/Includes/Builds.ascx.cs Website/Includes/FeaturesTree.ascx.cs Website/Includes/Header_Menu.ascx Website/Includes/Header_User.ascx Website/Includes/Platforms.ascx.cs Website/Includes/Products.ascx.cs Website/Includes/Rights.ascx.cs Website/Includes/RoleAdmin.ascx.cs Website/Includes/RoleAssignments.ascx.cs Website/Includes/TestPasses.ascx.cs Website/Includes/UserConfig.ascx.cs Website/Includes/UserRoles.ascx.cs Website/Includes/UserSettings.ascx.cs Property Changed: ---------------- Website/ Property changes on: Website ___________________________________________________________________ Name: svn:ignore - App_Data tcdb2006.log licenses.licx tcdb2006.log.3 tcdb2006.log.1 + App_Data tcdb2006.log licenses.licx tcdb2006.log.3 Modified: Website/App_Code/Common.cs =================================================================== --- Website/App_Code/Common.cs 2006-08-10 15:36:41 UTC (rev 297) +++ Website/App_Code/Common.cs 2006-08-10 16:22:36 UTC (rev 298) @@ -1417,17 +1417,74 @@ public static int ASSIGNMENT_FINISHED = 1; public static int ASSIGNMENT_UNFINISHED = 0; public static int ASSIGNMENT_NEW = 3; + public static string ASSIGNMENT_MINE = "My Assignments"; + public static string ASSIGNMENT_CREATED = "My Created Assignments"; public static string TCDB_VERSION = "1.0.0 Alpha 3"; public static bool IS_DEV_ENV = true; - public static string RIGHTS_ASSIGNPERMISSION = "assignPermission"; - public static string RIGHTS_SITEADMIN = "siteAdmin"; - public static string RIGHTS_ASSIGNASSIGNMENT = "assignAssignment"; + // Rights + public static string RIGHTS_DEV_ACCESS = "dev_access"; + public static string RIGHTS_ADMIN_VIEW = "admin_view"; - public static string ASSIGNMENT_MINE = "My Assignments"; - public static string ASSIGNMENT_CREATED = "My Created Assignments"; + public static string RIGHTS_AI_VIEW_MY = "ai_view_my"; + public static string RIGHTS_AI_VIEW_CREATED = "ai_view_created"; + public static string RIGHTS_AI_VIEW_OTHER = "ai_view_other"; + public static string RIGHTS_AI_EDIT_MY = "ai_edit_my"; + public static string RIGHTS_AI_EDIT_CREATED = "ai_edit_created"; + public static string RIGHTS_AI_EDIT_OTHER = "ai_edit_other"; + public static string RIGHTS_AI_CREATE_MY = "ai_create_my"; + public static string RIGHTS_AI_CREATE_OTHER = "ai_create_other"; + public static string RIGHTS_AI_STATUS_MY = "ai_status_my"; + public static string RIGHTS_AI_STATUS_CREATED = "ai_status_created"; + public static string RIGHTS_AI_STATUS_OTHER = "ai_status_other"; + public static string RIGHTS_AI_DELETE_MY = "ai_delete_my"; + public static string RIGHTS_AI_DELETE_CREATED = "ai_delete_created"; + public static string RIGHTS_AI_DELETE_OTHER = "ai_delete_other"; + public static string RIGHTS_AI_REASSIGN_OTHER = "ai_reassign_other"; + + public static string RIGHTS_WO_VIEW_MY = "wo_view_my"; + public static string RIGHTS_WO_VIEW_CREATED = "wo_view_created"; + public static string RIGHTS_WO_VIEW_OTHER = "wo_view_other"; + public static string RIGHTS_WO_EDIT_MY = "wo_edit_my"; + public static string RIGHTS_WO_EDIT_CREATED = "wo_edit_created"; + public static string RIGHTS_WO_EDIT_OTHER = "wo_edit_other"; + public static string RIGHTS_WO_CREATE_MY = "wo_create_my"; + public static string RIGHTS_WO_CREATE_OTHER = "wo_create_other"; + public static string RIGHTS_WO_STATUS_MY = "wo_status_my"; + public static string RIGHTS_WO_STATUS_CREATED = "wo_status_created"; + public static string RIGHTS_WO_STATUS_OTHER = "wo_status_other"; + public static string RIGHTS_WO_DELETE_MY = "wo_delete_my"; + public static string RIGHTS_WO_DELETE_CREATED = "wo_delete_created"; + public static string RIGHTS_WO_DELETE_OTHER = "wo_delete_other"; + public static string RIGHTS_WO_REASSIGN_OTHER = "wo_reassign_other"; + + public static string RIGHTS_USER_VIEW_MY = "user_view_my"; + public static string RIGHTS_USER_VIEW_OTHER = "user_view_other"; + public static string RIGHTS_USER_EDIT_MY = "user_edit_my"; + public static string RIGHTS_USER_EDIT_OTHER = "user_edit_other"; + public static string RIGHTS_USER_CREATE = "user_create"; + public static string RIGHTS_USER_DELETE = "user_delete"; + + public static string RIGHTS_PREFERENCE_VIEW_MY = "preference_view_my"; + public static string RIGHTS_PREFERENCE_VIEW_OTHER = "preference_view_other"; + public static string RIGHTS_PREFERENCE_EDIT_MY = "preference_edit_my"; + public static string RIGHTS_PREFERENCE_EDIT_OTHER = "preference_edit_other"; + + public static string RIGHTS_ROLE_VIEW_MY = "role_view_my"; + public static string RIGHTS_ROLE_VIEW_OTHER = "role_view_other"; + public static string RIGHTS_ROLE_EDIT = "role_edit"; + public static string RIGHTS_ROLE_EDIT_USERS = "role_edit_users"; + public static string RIGHTS_ROLE_CREATE = "role_create"; + public static string RIGHTS_ROLE_DELETE = "role_delete"; + + public static string RIGHTS_RIGHTS_VIEW = "rights_view"; + + public static string RIGHTS_PRODUCT_VIEW = "product_view"; + public static string RIGHTS_PRODUCT_EDIT = "product_edit"; + public static string RIGHTS_PRODUCT_CREATE = "product_create"; + public static string RIGHTS_PRODUCT_DELETE = "product_delete"; } public static class Help Modified: Website/App_Code/SiteUserControl.cs =================================================================== --- Website/App_Code/SiteUserControl.cs 2006-08-10 15:36:41 UTC (rev 297) +++ Website/App_Code/SiteUserControl.cs 2006-08-10 16:22:36 UTC (rev 298) @@ -51,7 +51,7 @@ m_logg.Debug("Unable to load request start time", ex); } - if (m_user.HasRight("dev_access")) + if (m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) { m_logg.Debug("User has developer access right, setting 'active' to 'null'"); active = null; Modified: Website/Includes/ActionItems.ascx.cs =================================================================== --- Website/Includes/ActionItems.ascx.cs 2006-08-10 15:36:41 UTC (rev 297) +++ Website/Includes/ActionItems.ascx.cs 2006-08-10 16:22:36 UTC (rev 298) @@ -62,9 +62,9 @@ ai = ActionItemDB.GetActionItem(Convert.ToInt32(item_id), active); if (ai != null && - (!m_user.HasRight("view_other_ai", productID) && - !(ai.ASSIGNED.ID == m_user.ID && m_user.HasRight("view_my_ai", productID)) && - !(ai.CREATOR.ID == m_user.ID && m_user.HasRight("view_created_ai", productID)))) + (!m_user.HasRight(Constants.RIGHTS_AI_VIEW_OTHER, productID) && + !(ai.ASSIGNED.ID == m_user.ID && m_user.HasRight(Constants.RIGHTS_AI_VIEW_MY, productID)) && + !(ai.CREATOR.ID == m_user.ID && m_user.HasRight(Constants.RIGHTS_AI_VIEW_CREATED, productID)))) Response.Redirect("~/Assignments.aspx?" + Constants.CODE_USER + "=" + m_user.ID); } @@ -72,7 +72,7 @@ Session.Add("productID", productID); Session.Add("tableName", "tcdb_actionItem"); - if (mode == "new" && (m_user.HasRight("create_my_ai") || m_user.HasRight("create_other_ai"))) + if (mode == "new" && (m_user.HasRight(Constants.RIGHTS_AI_CREATE_MY) || m_user.HasRight(Constants.RIGHTS_AI_CREATE_OTHER))) ActionItemsView.ChangeMode(FormViewMode.Insert); } @@ -378,9 +378,9 @@ DropDownList statusList = (DropDownList)sender; if (ai != null && - (!m_user.HasRight("status_other_ai", productID) && - !(ai.ASSIGNED.ID == m_user.ID && m_user.HasRight("status_my_ai", productID)) && - !(ai.CREATOR.ID == m_user.ID && m_user.HasRight("status_created_ai", productID)))) + (!m_user.HasRight(Constants.RIGHTS_AI_STATUS_OTHER, productID) && + !(ai.ASSIGNED.ID == m_user.ID && m_user.HasRight(Constants.RIGHTS_AI_STATUS_MY, productID)) && + !(ai.CREATOR.ID == m_user.ID && m_user.HasRight(Constants.RIGHTS_AI_STATUS_CREATED, productID)))) statusList.Enabled = false; } protected void percentList_Init(object sender, EventArgs e) @@ -388,9 +388,9 @@ RadioButtonList percentList = (RadioButtonList)sender; if (ai != null && - (!m_user.HasRight("status_other_ai", productID) && - !(ai.ASSIGNED.ID == m_user.ID && m_user.HasRight("status_my_ai", productID)) && - !(ai.CREATOR.ID == m_user.ID && m_user.HasRight("status_created_ai", productID)))) + (!m_user.HasRight(Constants.RIGHTS_AI_STATUS_OTHER, productID) && + !(ai.ASSIGNED.ID == m_user.ID && m_user.HasRight(Constants.RIGHTS_AI_STATUS_MY, productID)) && + !(ai.CREATOR.ID == m_user.ID && m_user.HasRight(Constants.RIGHTS_AI_STATUS_CREATED, productID)))) percentList.Enabled = false; } protected void dateFinished_Init(object sender, EventArgs e) @@ -398,9 +398,9 @@ CalendarPopup dateFinished = (CalendarPopup)sender; if (ai != null && - (!m_user.HasRight("status_other_ai", productID) && - !(ai.ASSIGNED.ID == m_user.ID && m_user.HasRight("status_my_ai", productID)) && - !(ai.CREATOR.ID == m_user.ID && m_user.HasRight("status_created_ai", productID)))) + (!m_user.HasRight(Constants.RIGHTS_AI_STATUS_OTHER, productID) && + !(ai.ASSIGNED.ID == m_user.ID && m_user.HasRight(Constants.RIGHTS_AI_STATUS_MY, productID)) && + !(ai.CREATOR.ID == m_user.ID && m_user.HasRight(Constants.RIGHTS_AI_STATUS_CREATED, productID)))) dateFinished.Enabled = false; } protected void NewButton_Init(object sender, EventArgs e) @@ -409,7 +409,7 @@ Label newLbl = (Label)ActionItemsView.FindControl("newLbl"); if (ai != null && - !m_user.HasRight("create_my_ai", Constants.PRODUCT_ANYID) && !m_user.HasRight("create_other_ai", Constants.PRODUCT_ANYID)) + !m_user.HasRight(Constants.RIGHTS_AI_CREATE_MY, Constants.PRODUCT_ANYID) && !m_user.HasRight(Constants.RIGHTS_AI_CREATE_OTHER, Constants.PRODUCT_ANYID)) { newBtn.Visible = false; newLbl.Visible = false; @@ -420,9 +420,9 @@ LinkButton editBtn = (LinkButton)sender; if (ai != null && - !m_user.HasRight("edit_other_ai", productID) && - !(ai.ASSIGNED.ID == m_user.ID && m_user.HasRight("edit_my_ai", productID)) && - !(ai.CREATOR.ID == m_user.ID && m_user.HasRight("edit_created_ai", productID))) + !m_user.HasRight(Constants.RIGHTS_AI_EDIT_OTHER, productID) && + !(ai.ASSIGNED.ID == m_user.ID && m_user.HasRight(Constants.RIGHTS_AI_EDIT_MY, productID)) && + !(ai.CREATOR.ID == m_user.ID && m_user.HasRight(Constants.RIGHTS_AI_EDIT_CREATED, productID))) editBtn.Visible = false; } protected void DeleteButton_Init(object sender, EventArgs e) @@ -432,9 +432,9 @@ Label deletedLbl = (Label)ActionItemsView.FindControl("deletedLbl"); if (deletedLbl.Visible || (ai != null && - !m_user.HasRight("delete_other_ai", productID) && - !(ai.ASSIGNED.ID == m_user.ID && m_user.HasRight("delete_my_ai", productID)) && - !(ai.CREATOR.ID == m_user.ID && m_user.HasRight("delete_created_ai", productID)))) + !m_user.HasRight(Constants.RIGHTS_AI_DELETE_OTHER, productID) && + !(ai.ASSIGNED.ID == m_user.ID && m_user.HasRight(Constants.RIGHTS_AI_DELETE_MY, productID)) && + !(ai.CREATOR.ID == m_user.ID && m_user.HasRight(Constants.RIGHTS_AI_DELETE_CREATED, productID)))) { deleteBtn.Visible = false; deleteLbl.Visible = false; @@ -445,8 +445,8 @@ DropDownList assignedTo = (DropDownList)sender; if (ai == null) ai = ActionItemDB.GetActionItem(Convert.ToInt32(item_id), active); - if (!(ActionItemsView.CurrentMode == FormViewMode.Insert && m_user.HasRight("create_other_ai", Constants.PRODUCT_ANYID)) && - !(ActionItemsView.CurrentMode == FormViewMode.Edit && m_user.HasRight("reassign_other_ai", ai.CREATOR, Constants.PRODUCT_ANYID))) + if (!(ActionItemsView.CurrentMode == FormViewMode.Insert && m_user.HasRight(Constants.RIGHTS_AI_CREATE_OTHER, Constants.PRODUCT_ANYID)) && + !(ActionItemsView.CurrentMode == FormViewMode.Edit && m_user.HasRight(Constants.RIGHTS_AI_REASSIGN_OTHER, ai.CREATOR, Constants.PRODUCT_ANYID))) { assignedTo.Enabled = false; if (ActionItemsView.CurrentMode == FormViewMode.Edit) @@ -463,8 +463,8 @@ foreach (Product product in products) { - if ((ActionItemsView.CurrentMode == FormViewMode.Insert && m_user.HasRight("create_other_ai", product.ID)) || - (ActionItemsView.CurrentMode == FormViewMode.Edit && m_user.HasRight("reassign_other_ai", ai.CREATOR, product.ID))) + if ((ActionItemsView.CurrentMode == FormViewMode.Insert && m_user.HasRight(Constants.RIGHTS_AI_CREATE_OTHER, product.ID)) || + (ActionItemsView.CurrentMode == FormViewMode.Edit && m_user.HasRight(Constants.RIGHTS_AI_REASSIGN_OTHER, ai.CREATOR, product.ID))) { tcdbDataSet.db_roleProductUserDataTable rpuTable = rpuAdapter.GetData(null, product.ID, true); @@ -487,7 +487,7 @@ CheckBox activeBox = (CheckBox)sender; Label deletedLbl = (Label)ActionItemsView.FindControl("deletedLbl"); - if (!m_user.HasRight("dev_access")) + if (!m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) { activeBox.Visible = false; deletedLbl.Visible = false; Modified: Website/Includes/Administration.ascx.cs =================================================================== --- Website/Includes/Administration.ascx.cs 2006-08-10 15:36:41 UTC (rev 297) +++ Website/Includes/Administration.ascx.cs 2006-08-10 16:22:36 UTC (rev 298) @@ -24,17 +24,17 @@ protected void newProduct_Init(object sender, EventArgs e) { - if (!m_user.HasRight("create_product", Constants.PRODUCT_ANYID)) + if (!m_user.HasRight(Constants.RIGHTS_PRODUCT_CREATE, Constants.PRODUCT_ANYID)) newProduct.Visible = false; } protected void newUser_Init(object sender, EventArgs e) { - if (!m_user.HasRight("create_user", Constants.PRODUCT_ANYID)) + if (!m_user.HasRight(Constants.RIGHTS_USER_CREATE, Constants.PRODUCT_ANYID)) newUser.Visible = false; } protected void userRole_Init(object sender, EventArgs e) { - if (!m_user.HasRight("view_my_roles", Constants.PRODUCT_ANYID) && !m_user.HasRight("view_other_roles", Constants.PRODUCT_ANYID)) + if (!m_user.HasRight(Constants.RIGHTS_ROLE_VIEW_MY, Constants.PRODUCT_ANYID) && !m_user.HasRight(Constants.RIGHTS_ROLE_VIEW_OTHER, Constants.PRODUCT_ANYID)) userRole.Visible = false; } @@ -45,7 +45,7 @@ foreach (Product product in products) { - if (!m_user.HasRight("view_product", product.ID)) continue; + if (!m_user.HasRight(Constants.RIGHTS_PRODUCT_VIEW, product.ID)) continue; ListItem item = new ListItem(product.NAME, product.ID.ToString()); if (!product.ACTIVE) @@ -60,15 +60,15 @@ { int productID = Convert.ToInt32(productList.SelectedValue); - if (!m_user.HasRight("view_product", productID)) + if (!m_user.HasRight(Constants.RIGHTS_PRODUCT_VIEW, productID)) viewProduct.Visible = false; else viewProduct.Visible = true; - if (!m_user.HasRight("edit_product", productID)) + if (!m_user.HasRight(Constants.RIGHTS_PRODUCT_EDIT, productID)) editProduct.Visible = false; else editProduct.Visible = true; - if (!m_user.HasRight("delete_product", productID)) + if (!m_user.HasRight(Constants.RIGHTS_PRODUCT_DELETE, productID)) deleteProduct.Visible = false; else deleteProduct.Visible = true; @@ -84,9 +84,9 @@ { foreach (Product product in products) { - if (!(m_user.HasRight("view_other_settings")) && - !(user.ID == m_user.ID && m_user.HasRight("view_my_settings", product.ID)) && - !(m_user.HasRight("view_other_settings", user, product.ID))) + if (!(m_user.HasRight(Constants.RIGHTS_USER_VIEW_OTHER)) && + !(user.ID == m_user.ID && m_user.HasRight(Constants.RIGHTS_USER_VIEW_MY, product.ID)) && + !(m_user.HasRight(Constants.RIGHTS_USER_VIEW_OTHER, user, product.ID))) continue; ListItem item = new ListItem(user.FULLNAME, user.ID.ToString()); @@ -112,9 +112,9 @@ userDelete.Visible = false; foreach (Product product in products) { - if (!userView.Visible && m_user.HasRight("view_my_settings", product.ID)) + if (!userView.Visible && m_user.HasRight(Constants.RIGHTS_USER_VIEW_MY, product.ID)) userView.Visible = true; - if (!userEdit.Visible && m_user.HasRight("edit_my_settings", product.ID)) + if (!userEdit.Visible && m_user.HasRight(Constants.RIGHTS_USER_EDIT_MY, product.ID)) userEdit.Visible = true; } } @@ -125,13 +125,13 @@ userDelete.Visible = true; foreach (Product product in products) { - if (!userView.Visible && m_user.HasRight("view_other_settings", user, product.ID)) + if (!userView.Visible && m_user.HasRight(Constants.RIGHTS_USER_VIEW_OTHER, user, product.ID)) userView.Visible = true; - if (!userEdit.Visible && m_user.HasRight("edit_other_settings", user, product.ID)) + if (!userEdit.Visible && m_user.HasRight(Constants.RIGHTS_USER_EDIT_OTHER, user, product.ID)) userEdit.Visible = true; if (product.ID != Constants.PRODUCT_SITEID && user.HasRights(product.ID)) { - if (userDelete.Visible && !m_user.HasRight("delete_user", product.ID)) + if (userDelete.Visible && !m_user.HasRight(Constants.RIGHTS_USER_DELETE, product.ID)) userDelete.Visible = false; } } Modified: Website/Includes/AdministrationTree.ascx.cs =================================================================== --- Website/Includes/AdministrationTree.ascx.cs 2006-08-10 15:36:41 UTC (rev 297) +++ Website/Includes/AdministrationTree.ascx.cs 2006-08-10 16:22:36 UTC (rev 298) @@ -20,7 +20,7 @@ protected void Page_Load(object sender, EventArgs e) { if (!m_user.ISAUTHENTICATED) { return; } - if (this.Visible && !m_user.HasRight("view_admin", Constants.PRODUCT_ANYID)) + if (this.Visible && !m_user.HasRight(Constants.RIGHTS_ADMIN_VIEW, Constants.PRODUCT_ANYID)) Response.Redirect("~/Assignments.aspx?" + Constants.CODE_USER + "=" + m_user.ID); } @@ -52,7 +52,7 @@ foreach (Product product in products) { - if (m_user.HasRight("view_product", product.ID)) + if (m_user.HasRight(Constants.RIGHTS_PRODUCT_VIEW, product.ID)) { // Create the new node. TreeNode newNode = new TreeNode(); @@ -118,7 +118,7 @@ newNode.Expand(); // Rights - if (m_user.HasRight("dev_access")) + if (m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) { newNode = new TreeNode(); newNode.Text = "User Rights"; @@ -220,7 +220,7 @@ TreeNode newNode; // Versions - if (m_user.HasRight("dev_access")) + if (m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) { newNode = new TreeNode(); newNode.Text = "Releases"; @@ -369,7 +369,7 @@ else lastID = row.userID; - if (m_user.HasRight("view_other_settings", productID)) + if (m_user.HasRight(Constants.RIGHTS_USER_VIEW_OTHER, productID)) { // Create the new node. TreeNode newNode = new TreeNode(); @@ -391,7 +391,7 @@ foreach (tcdbDataSet.db_usersRow row in uTable) { - if (m_user.HasRight("view_other_settings", productID)) + if (m_user.HasRight(Constants.RIGHTS_USER_VIEW_OTHER, productID)) { TreeNode child = new TreeNode(); child.Text = row.fullName; Modified: Website/Includes/Assignments.ascx.cs =================================================================== --- Website/Includes/Assignments.ascx.cs 2006-08-10 15:36:41 UTC (rev 297) +++ Website/Includes/Assignments.ascx.cs 2006-08-10 16:22:36 UTC (rev 298) @@ -56,8 +56,8 @@ if (uid == 0) { m_logg.Debug("UserID not specified in the session data, checking for permissions to view multiple users assignments"); - if (m_user.HasRight("view_other_ai", productID) || m_user.HasRight("view_created_ai", productID) || - m_user.HasRight("view_other_wo", productID) || m_user.HasRight("view_created_wo", productID)) + if (m_user.HasRight(Constants.RIGHTS_AI_VIEW_OTHER, productID) || m_user.HasRight(Constants.RIGHTS_AI_VIEW_CREATED, productID) || + m_user.HasRight(Constants.RIGHTS_WO_VIEW_OTHER, productID) || m_user.HasRight(Constants.RIGHTS_WO_VIEW_CREATED, productID)) { Product product = ProductDB.GetProduct(true, Convert.ToInt32(productID), null); @@ -72,7 +72,7 @@ } else { - if (m_user.HasRight("view_my_ai") || m_user.HasRight("view_my_wo")) + if (m_user.HasRight(Constants.RIGHTS_AI_VIEW_MY) || m_user.HasRight(Constants.RIGHTS_WO_VIEW_MY)) { m_logg.Debug("User has no special privledges, only display own assignments"); uid = m_user.ID; @@ -85,7 +85,7 @@ } else if (uid == m_user.ID) { - if (m_user.HasRight("view_my_ai") || m_user.HasRight("view_my_wo")) + if (m_user.HasRight(Constants.RIGHTS_AI_VIEW_MY) || m_user.HasRight(Constants.RIGHTS_WO_VIEW_MY)) { m_logg.Debug("The current user's assignments have been requested, only displaying those"); Page.Title = "TCDB: My Assignments"; @@ -99,8 +99,8 @@ User user = UserDB.GetUserInfo(uid); if (user.HasRights(productID) && - (m_user.HasRight("view_other_ai", productID) || m_user.HasRight("view_other_wo", productID) || - m_user.HasRight("view_created_ai", productID) || m_user.HasRight("view_created_wo", productID))) + (m_user.HasRight(Constants.RIGHTS_AI_VIEW_OTHER, productID) || m_user.HasRight(Constants.RIGHTS_WO_VIEW_OTHER, productID) || + m_user.HasRight(Constants.RIGHTS_AI_VIEW_CREATED, productID) || m_user.HasRight(Constants.RIGHTS_WO_VIEW_CREATED, productID))) { String name = user.FULLNAME; m_logg.Debug("User requested assignments for [" + name + "]"); @@ -147,13 +147,13 @@ if (ai.ID != 0 && // It's not mine, the assignee doesn't belong to this product group, or I don't have rights to see other users' Action Items - !(ai.ASSIGNED.ID != m_user.ID && m_user.HasRight("view_other_ai", ai.ASSIGNED, productID)) && + !(ai.ASSIGNED.ID != m_user.ID && m_user.HasRight(Constants.RIGHTS_AI_VIEW_OTHER, ai.ASSIGNED, productID)) && // It's not mine, I don't have any product rights, or I can't view my own - !(ai.ASSIGNED.ID == m_user.ID && m_user.HasRights(productID) && m_user.HasRight("view_my_ai", productID)) && + !(ai.ASSIGNED.ID == m_user.ID && m_user.HasRights(productID) && m_user.HasRight(Constants.RIGHTS_AI_VIEW_MY, productID)) && // It's mine, the assignee doesn't belong to this product group, I didn't create it, or I don't have rights to look at it - !(ai.ASSIGNED.ID != m_user.ID && ai.CREATOR.ID == m_user.ID && m_user.HasRight("view_created_ai", ai.ASSIGNED, productID)) + !(ai.ASSIGNED.ID != m_user.ID && ai.CREATOR.ID == m_user.ID && m_user.HasRight(Constants.RIGHTS_AI_VIEW_CREATED, ai.ASSIGNED, productID)) ) return false; @@ -171,13 +171,13 @@ if (wo.ID != 0 && // It's not mine, the assignee doesn't belong to this product group, or I don't have rights to see other users' work orders - !(wo.ASSIGNED.ID != m_user.ID && m_user.HasRight("view_other_wo", wo.ASSIGNED, productID)) && + !(wo.ASSIGNED.ID != m_user.ID && m_user.HasRight(Constants.RIGHTS_WO_VIEW_OTHER, wo.ASSIGNED, productID)) && // It's not mine, I don't have any product rights, or I can't view my own - !(wo.ASSIGNED.ID == m_user.ID && m_user.HasRight("view_my_wo", m_user, productID)) && + !(wo.ASSIGNED.ID == m_user.ID && m_user.HasRight(Constants.RIGHTS_WO_VIEW_MY, m_user, productID)) && // It's mine, the assignee doesn't belong to this product group, I didn't create it, or I don't have rights to look at it - !(wo.ASSIGNED.ID != m_user.ID && wo.CREATOR.ID == m_user.ID && m_user.HasRight("view_created_wo", wo.ASSIGNED, productID)) + !(wo.ASSIGNED.ID != m_user.ID && wo.CREATOR.ID == m_user.ID && m_user.HasRight(Constants.RIGHTS_WO_VIEW_CREATED, wo.ASSIGNED, productID)) ) return false; @@ -817,14 +817,14 @@ { LinkButton newAI = (LinkButton)sender; - if (!m_user.HasRight("create_my_ai", Constants.PRODUCT_ANYID) && !m_user.HasRight("create_other_ai", Constants.PRODUCT_ANYID)) + if (!m_user.HasRight(Constants.RIGHTS_AI_CREATE_MY, Constants.PRODUCT_ANYID) && !m_user.HasRight(Constants.RIGHTS_AI_CREATE_OTHER, Constants.PRODUCT_ANYID)) newAI.Visible = false; } protected void newWorkOrder_Init(object sender, EventArgs e) { LinkButton newWorkOrder = (LinkButton)sender; - if (!m_user.HasRight("dev_access")) + if (!m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) newWorkOrder.Visible = false; } protected void newActionItem_Command(object sender, EventArgs e) Modified: Website/Includes/AssignmentsTree.ascx.cs =================================================================== --- Website/Includes/AssignmentsTree.ascx.cs 2006-08-10 15:36:41 UTC (rev 297) +++ Website/Includes/AssignmentsTree.ascx.cs 2006-08-10 16:22:36 UTC (rev 298) @@ -57,8 +57,8 @@ if (Session["AssignmentNodes"] == null) Session.Add("AssignmentNodes", new ArrayList()); - if (!m_user.HasRight("view_other_ai", Constants.PRODUCT_ANYID) && !m_user.HasRight("view_created_ai", Constants.PRODUCT_ANYID) && - !m_user.HasRight("view_other_wo", Constants.PRODUCT_ANYID) && !m_user.HasRight("view_created_wo", Constants.PRODUCT_ANYID)) + if (!m_user.HasRight(Constants.RIGHTS_AI_VIEW_OTHER, Constants.PRODUCT_ANYID) && !m_user.HasRight(Constants.RIGHTS_AI_VIEW_CREATED, Constants.PRODUCT_ANYID) && + !m_user.HasRight(Constants.RIGHTS_WO_VIEW_OTHER, Constants.PRODUCT_ANYID) && !m_user.HasRight(Constants.RIGHTS_WO_VIEW_CREATED, Constants.PRODUCT_ANYID)) { AssignmentTree.Visible = false; } @@ -181,7 +181,7 @@ foreach (Product product in products) { - if (product.ID == Constants.PRODUCT_SITEID && !m_user.HasRight("view_admin")) + if (product.ID == Constants.PRODUCT_SITEID && !m_user.HasRight(Constants.RIGHTS_ADMIN_VIEW)) continue; TreeNode child = new TreeNode(); @@ -203,7 +203,7 @@ // *************************** // My assignments node // *************************** - if (m_user.HasRight("view_my_ai", Constants.PRODUCT_ANYID) || m_user.HasRight("view_my_wo", Constants.PRODUCT_ANYID)) + if (m_user.HasRight(Constants.RIGHTS_AI_VIEW_MY, Constants.PRODUCT_ANYID) || m_user.HasRight(Constants.RIGHTS_WO_VIEW_MY, Constants.PRODUCT_ANYID)) { TreeNode mine = new TreeNode(); SetValue(mine, "NodeType", "User"); @@ -224,7 +224,7 @@ // *************************** // My Created assignments node // *************************** - if (m_user.HasRight("view_created_ai", Constants.PRODUCT_ANYID) || m_user.HasRight("view_created_wo", Constants.PRODUCT_ANYID)) + if (m_user.HasRight(Constants.RIGHTS_AI_VIEW_CREATED, Constants.PRODUCT_ANYID) || m_user.HasRight(Constants.RIGHTS_WO_VIEW_CREATED, Constants.PRODUCT_ANYID)) { TreeNode created = new TreeNode(); SetValue(created, "NodeType", "Created"); @@ -362,9 +362,9 @@ if (a.ISACTIONITEM) { SetValue(child, "NodeType", "ActionItem"); - if ((m_user.HasRight("view_other_ai", productID)) || - ((userID == m_user.ID) && m_user.HasRight("view_my_ai", productID)) || - ((a.ACTIONITEM.CREATOR.ID == m_user.ID) && m_user.HasRight("view_created_ai", productID))) + if ((m_user.HasRight(Constants.RIGHTS_AI_VIEW_OTHER, productID)) || + ((userID == m_user.ID) && m_user.HasRight(Constants.RIGHTS_AI_VIEW_MY, productID)) || + ((a.ACTIONITEM.CREATOR.ID == m_user.ID) && m_user.HasRight(Constants.RIGHTS_AI_VIEW_CREATED, productID))) { SetValue(child, "Value", a.ACTIONITEM.ID.ToString()); } @@ -373,9 +373,9 @@ else { SetValue(child, "NodeType", "WorkOrder"); - if ((m_user.HasRight("view_other_wo", productID)) || - ((userID == m_user.ID) && m_user.HasRight("view_my_ai", productID)) || - ((a.WORKORDER.CREATOR.ID == m_user.ID) && m_user.HasRight("view_created_ai", productID))) + if ((m_user.HasRight(Constants.RIGHTS_WO_VIEW_OTHER, productID)) || + ((userID == m_user.ID) && m_user.HasRight(Constants.RIGHTS_AI_VIEW_MY, productID)) || + ((a.WORKORDER.CREATOR.ID == m_user.ID) && m_user.HasRight(Constants.RIGHTS_AI_VIEW_CREATED, productID))) { SetValue(child, "Value", a.WORKORDER.ID.ToString()); } Modified: Website/Includes/Builds.ascx.cs =================================================================== --- Website/Includes/Builds.ascx.cs 2006-08-10 15:36:41 UTC (rev 297) +++ Website/Includes/Builds.ascx.cs 2006-08-10 16:22:36 UTC (rev 298) @@ -19,7 +19,7 @@ void Page_Load(Object sender, EventArgs e) { - if (!m_user.HasRight("dev_access")) + if (!m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) Response.Redirect("~/Administration.aspx"); } } Modified: Website/Includes/FeaturesTree.ascx.cs =================================================================== --- Website/Includes/FeaturesTree.ascx.cs 2006-08-10 15:36:41 UTC (rev 297) +++ Website/Includes/FeaturesTree.ascx.cs 2006-08-10 16:22:36 UTC (rev 298) @@ -47,7 +47,7 @@ foreach (Product product in products) { - if (!m_user.HasRight("view_product", product.ID)) + if (!m_user.HasRight(Constants.RIGHTS_PRODUCT_VIEW, product.ID)) continue; // Create the new node. @@ -210,7 +210,7 @@ BuildProductList(e.Node); break; case 1: - if (m_user.HasRight("dev_access")) + if (m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) BuildVersionList(e.Node); break; case 2: Modified: Website/Includes/Header_Menu.ascx =================================================================== --- Website/Includes/Header_Menu.ascx 2006-08-10 15:36:41 UTC (rev 297) +++ Website/Includes/Header_Menu.ascx 2006-08-10 16:22:36 UTC (rev 298) @@ -4,7 +4,7 @@ <% if (Constants.IS_DEV_ENV) { %> | Execute -<% } if (m_user.HasRight("dev_access")) +<% } if (m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) { %> | <a href="TestManagement.aspx">Management</a> <% } %> Modified: Website/Includes/Header_User.ascx =================================================================== --- Website/Includes/Header_User.ascx 2006-08-10 15:36:41 UTC (rev 297) +++ Website/Includes/Header_User.ascx 2006-08-10 16:22:36 UTC (rev 298) @@ -2,12 +2,12 @@ <%@ Import Namespace="TCDB.Code" %> Welcome <div class="username"><%= m_user.FIRSTNAME %> <%= m_user.LASTNAME %></div> (<asp:LoginStatus ID="LoginStatus" runat="server" OnLoggingOut="LoginStatus_LoggingOut" CssClass="username" />) -<% if (m_user.HasRight("view_my_settings", Constants.PRODUCT_ANYID)) +<% if (m_user.HasRight(Constants.RIGHTS_USER_VIEW_MY, Constants.PRODUCT_ANYID)) { %> | <a href="UserSettings.aspx?mode=read&<%= Constants.CODE_USER %>=<%= m_user.ID %>" >Settings</a> <% }%> -<% if (m_user.HasRight("view_admin", Constants.PRODUCT_ANYID)) +<% if (m_user.HasRight(Constants.RIGHTS_ADMIN_VIEW, Constants.PRODUCT_ANYID)) { %> | <a href="Administration.aspx">Admin</a> <% } %> \ No newline at end of file Modified: Website/Includes/Platforms.ascx.cs =================================================================== --- Website/Includes/Platforms.ascx.cs 2006-08-10 15:36:41 UTC (rev 297) +++ Website/Includes/Platforms.ascx.cs 2006-08-10 16:22:36 UTC (rev 298) @@ -19,7 +19,7 @@ void Page_Load(Object sender, EventArgs e) { - if (!m_user.HasRight("dev_access")) + if (!m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) Response.Redirect("~/Administration.aspx"); } } Modified: Website/Includes/Products.ascx.cs =================================================================== --- Website/Includes/Products.ascx.cs 2006-08-10 15:36:41 UTC (rev 297) +++ Website/Includes/Products.ascx.cs 2006-08-10 16:22:36 UTC (rev 298) @@ -40,14 +40,14 @@ productID = Constants.PRODUCT_ANYID; // Insert shortcut - if (mode == "new" && m_user.HasRight("create_product", Constants.PRODUCT_ANYID)) + if (mode == "new" && m_user.HasRight(Constants.RIGHTS_PRODUCT_CREATE, Constants.PRODUCT_ANYID)) ProductsView.ChangeMode(FormViewMode.Insert); - else if (mode == "edit" && m_user.HasRight("edit_product", productID)) + else if (mode == "edit" && m_user.HasRight(Constants.RIGHTS_PRODUCT_EDIT, productID)) ProductsView.ChangeMode(FormViewMode.Edit); else { // Check viewing rights - if (!m_user.HasRight("view_product", productID)) + if (!m_user.HasRight(Constants.RIGHTS_PRODUCT_VIEW, productID)) Response.Redirect("~/TestManagement.aspx"); } @@ -174,7 +174,7 @@ LinkButton newBtn = (LinkButton)sender; Label newLbl = (Label)ProductsView.FindControl("newLbl"); - if (mode == "read" || (!m_user.HasRight("create_product", Constants.PRODUCT_ANYID))) + if (mode == "read" || (!m_user.HasRight(Constants.RIGHTS_PRODUCT_CREATE, Constants.PRODUCT_ANYID))) { newBtn.Visible = false; newLbl.Visible = false; @@ -186,7 +186,7 @@ Label deleteLbl = (Label)ProductsView.FindControl("deleteLbl"); Label activeLbl = (Label)ProductsView.FindControl("activeLbl"); - if (mode == "read" || activeLbl.Visible || (!m_user.HasRight("delete_product",productID))) + if (mode == "read" || activeLbl.Visible || (!m_user.HasRight(Constants.RIGHTS_PRODUCT_DELETE,productID))) { deleteBtn.Visible = false; deleteLbl.Visible = false; @@ -196,7 +196,7 @@ { LinkButton editBtn = (LinkButton)sender; - if (mode == "read" || (!m_user.HasRight("editProduct", productID) && !m_user.HasRight("edit_role_users", productID))) + if (mode == "read" || (!m_user.HasRight("editProduct", productID) && !m_user.HasRight(Constants.RIGHTS_ROLE_EDIT_USERS, productID))) { editBtn.Visible = false; } @@ -212,7 +212,7 @@ Label codeLbl = (Label)ProductsView.FindControl("codeLbl"); Label descriptionLbl = (Label)ProductsView.FindControl("descriptionLbl"); - if (!m_user.HasRight("edit_product", productID)) + if (!m_user.HasRight(Constants.RIGHTS_PRODUCT_EDIT, productID)) { nameBox.Visible = false; codeBox.Visible = false; @@ -229,7 +229,7 @@ CheckBox activeBox = (CheckBox)sender; Label activeLbl = (Label)ProductsView.FindControl("activeLbl"); - if (!m_user.HasRight("dev_access")) + if (!m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) { activeBox.Visible = false; activeLbl.Visible = false; Modified: Website/Includes/Rights.ascx.cs =================================================================== --- Website/Includes/Rights.ascx.cs 2006-08-10 15:36:41 UTC (rev 297) +++ Website/Includes/Rights.ascx.cs 2006-08-10 16:22:36 UTC (rev 298) @@ -33,16 +33,16 @@ Response.Redirect("~/Administration.aspx"); } } - if (!m_user.HasRight("view_rights", Constants.PRODUCT_ANYID)) + if (!m_user.HasRight(Constants.RIGHTS_RIGHTS_VIEW, Constants.PRODUCT_ANYID)) Response.Redirect("~/Administration.aspx"); Session.Add("rightsID", rightsID); right = RightDB.GetRightInfo(rightsID); Session.Add("tableName", "tcdb_rights"); - if (mode == "new" && m_user.HasRight("dev_access")) + if (mode == "new" && m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) FormView1.ChangeMode(FormViewMode.Insert); - else if (mode == "edit" && (m_user.HasRight("dev_access") || m_user.HasRight("edit_role", Constants.PRODUCT_ANYID))) + else if (mode == "edit" && (m_user.HasRight(Constants.RIGHTS_DEV_ACCESS) || m_user.HasRight(Constants.RIGHTS_ROLE_EDIT, Constants.PRODUCT_ANYID))) FormView1.ChangeMode(FormViewMode.Edit); } @@ -78,7 +78,7 @@ LinkButton editBtn = (LinkButton)FormView1.FindControl("Edit"); Label newLbl = (Label)FormView1.FindControl("newLbl"); - if (!m_user.HasRight("dev_access")) + if (!m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) { newBtn.Visible = false; newLbl.Visible = false; @@ -92,7 +92,7 @@ Label nameLbl = (Label)FormView1.FindControl("nameLbl"); Label descriptionLbl = (Label)FormView1.FindControl("descriptionLbl"); - if (!m_user.HasRight("dev_access")) + if (!m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) { nameBox.Visible = false; descriptionBox.Visible = false; @@ -106,7 +106,7 @@ CheckBox activeBox = (CheckBox)sender; Label activeLbl = (Label)FormView1.FindControl("activeLbl"); - if (!m_user.HasRight("dev_access")) + if (!m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) { activeBox.Visible = false; activeLbl.Visible = false; Modified: Website/Includes/RoleAdmin.ascx.cs =================================================================== --- Website/Includes/RoleAdmin.ascx.cs 2006-08-10 15:36:41 UTC (rev 297) +++ Website/Includes/RoleAdmin.ascx.cs 2006-08-10 16:22:36 UTC (rev 298) @@ -53,12 +53,12 @@ protected void newRole_Init(object sender, EventArgs e) { - if (!m_user.HasRight("create_role", Constants.PRODUCT_ANYID)) + if (!m_user.HasRight(Constants.RIGHTS_ROLE_CREATE, Constants.PRODUCT_ANYID)) newRoleBtn.Visible = false; } protected void newRight_Init(object sender, EventArgs e) { - if (!m_user.HasRight("dev_access")) + if (!m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) newRightBtn.Visible = false; } @@ -78,7 +78,7 @@ } protected void rightsList_Init(object sender, EventArgs e) { - if (!m_user.HasRight("view_rights", Constants.PRODUCT_ANYID)) + if (!m_user.HasRight(Constants.RIGHTS_RIGHTS_VIEW, Constants.PRODUCT_ANYID)) { rightsList.Visible = false; viewRightBtn.Visible = false; @@ -86,7 +86,7 @@ return; } - if (!m_user.HasRight("dev_access")) + if (!m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) editRightsBtn.Visible = false; List<Right> rights = RightDB.TCDB_GetRightList(active); @@ -105,15 +105,15 @@ { String role = roleList.SelectedItem.Text; - if (!m_user.HasRight("edit_role_users", productID)) + if (!m_user.HasRight(Constants.RIGHTS_ROLE_EDIT_USERS, productID)) addRoleBtn.Visible = false; } protected void viewRoleBtn_Load(object sender, EventArgs e) { String role = roleList.SelectedItem.Text; - if (!(m_user.HasRole(role, productID) && m_user.HasRight("view_my_roles", productID)) && - !m_user.HasRight("view_other_roles", productID)) + if (!(m_user.HasRole(role, productID) && m_user.HasRight(Constants.RIGHTS_ROLE_VIEW_MY, productID)) && + !m_user.HasRight(Constants.RIGHTS_ROLE_VIEW_OTHER, productID)) viewRoleBtn.Visible = false; } } Modified: Website/Includes/RoleAssignments.ascx.cs =================================================================== --- Website/Includes/RoleAssignments.ascx.cs 2006-08-10 15:36:41 UTC (rev 297) +++ Website/Includes/RoleAssignments.ascx.cs 2006-08-10 16:22:36 UTC (rev 298) @@ -31,7 +31,7 @@ role = RightDB.GetRoleInfo(roleID); // Check rights - if (!m_user.HasRight("edit_role_users",Constants.PRODUCT_ANYID)) + if (!m_user.HasRight(Constants.RIGHTS_ROLE_EDIT_USERS,Constants.PRODUCT_ANYID)) Response.Redirect("~/Administration.aspx"); roleNameBtn.Text = role.NAME; @@ -104,11 +104,11 @@ { List<Product> products = ProductDB.GetProductList(active); foreach (Product product in products) - if (m_user.HasRight("edit_role_users", product.ID)) + if (m_user.HasRight(Constants.RIGHTS_ROLE_EDIT_USERS, product.ID)) productList.Items.Add(new ListItem(product.NAME, product.ID.ToString())); // Set selected value - if (productList.Items.FindByValue(productID.ToString()) != null && m_user.HasRight("edit_role_users", productID)) + if (productList.Items.FindByValue(productID.ToString()) != null && m_user.HasRight(Constants.RIGHTS_ROLE_EDIT_USERS, productID)) productList.SelectedValue = productID.ToString(); Session["product"] = productList.SelectedValue; Modified: Website/Includes/TestPasses.ascx.cs =================================================================== --- Website/Includes/TestPasses.ascx.cs 2006-08-10 15:36:41 UTC (rev 297) +++ Website/Includes/TestPasses.ascx.cs 2006-08-10 16:22:36 UTC (rev 298) @@ -19,7 +19,7 @@ void Page_Load(Object sender, EventArgs e) { - if (!m_user.HasRight("dev_access")) + if (!m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) Response.Redirect("~/Administration.aspx"); } } Modified: Website/Includes/UserConfig.ascx.cs =================================================================== --- Website/Includes/UserConfig.ascx.cs 2006-08-10 15:36:41 UTC (rev 297) +++ Website/Includes/UserConfig.ascx.cs 2006-08-10 16:22:36 UTC (rev 298) @@ -25,7 +25,7 @@ { if (!m_user.ISAUTHENTICATED) { return; } - if (!m_user.HasRight("view_my_preferences", Constants.PRODUCT_ANYID)) + if (!m_user.HasRight(Constants.RIGHTS_PREFERENCE_VIEW_MY, Constants.PRODUCT_ANYID)) Response.Redirect("~/UserSettings.aspx?" + Constants.CODE_USER + "=" + m_user.ID); m_logg.Debug("Loading page UserConfig"); @@ -34,7 +34,7 @@ m_logg.Debug("Unable to locate user ID in query string. Default to current user"); userID = m_user.ID; } - bool enabled = m_user.HasRight("edit_my_preferences", Constants.PRODUCT_ANYID); + bool enabled = m_user.HasRight(Constants.RIGHTS_PREFERENCE_EDIT_MY, Constants.PRODUCT_ANYID); Dictionary<String, List<Config>> settings = ConfigDB.GetUserSettings(); Modified: Website/Includes/UserRoles.ascx.cs =================================================================== --- Website/Includes/UserRoles.ascx.cs 2006-08-10 15:36:41 UTC (rev 297) +++ Website/Includes/UserRoles.ascx.cs 2006-08-10 16:22:36 UTC (rev 298) @@ -40,16 +40,16 @@ Session.Add("roleID", roleID); // Check rights - if (!(m_user.HasRole(role.NAME) && m_user.HasRight("view_my_roles", Constants.PRODUCT_ANYID)) && - !m_user.HasRight("view_other_roles", Constants.PRODUCT_ANYID)) + if (!(m_user.HasRole(role.NAME) && m_user.HasRight(Constants.RIGHTS_ROLE_VIEW_MY, Constants.PRODUCT_ANYID)) && + !m_user.HasRight(Constants.RIGHTS_ROLE_VIEW_OTHER, Constants.PRODUCT_ANYID)) Response.Redirect("~/Administration.aspx"); // Setup notes //Session.Add("tableName", "tcdb_role"); - if (mode == "new" && m_user.HasRight("create_role", Constants.PRODUCT_ANYID)) + if (mode == "new" && m_user.HasRight(Constants.RIGHTS_ROLE_CREATE, Constants.PRODUCT_ANYID)) UserRoleView.ChangeMode(FormViewMode.Insert); - else if (mode == "edit" && (m_user.HasRight("edit_role", Constants.PRODUCT_ANYID) || m_user.HasRight("edit_role_users", Constants.PRODUCT_ANYID))) + else if (mode == "edit" && (m_user.HasRight(Constants.RIGHTS_ROLE_EDIT, Constants.PRODUCT_ANYID) || m_user.HasRight(Constants.RIGHTS_ROLE_EDIT_USERS, Constants.PRODUCT_ANYID))) UserRoleView.ChangeMode(FormViewMode.Edit); } @@ -185,7 +185,7 @@ { LinkButton btn = (LinkButton)sender; - if (!m_user.HasRight("dev_access")) + if (!m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) btn.Visible = false; } @@ -194,7 +194,7 @@ LinkButton newBtn = (LinkButton)sender; Label newLbl = (Label)UserRoleView.FindControl("NewLbl"); - if (!m_user.HasRight("create_role", Constants.PRODUCT_ANYID)) + if (!m_user.HasRight(Constants.RIGHTS_ROLE_CREATE, Constants.PRODUCT_ANYID)) { newBtn.Visible = false; newLbl.Visible = false; @@ -206,7 +206,7 @@ LinkButton editBtn = (LinkButton)sender; Label editLbl = (Label)UserRoleView.FindControl("NewLbl"); - if (!m_user.HasRight("edit_role", Constants.PRODUCT_ANYID) && !m_user.HasRight("edit_role_users", Constants.PRODUCT_ANYID)) + if (!m_user.HasRight(Constants.RIGHTS_ROLE_EDIT, Constants.PRODUCT_ANYID) && !m_user.HasRight(Constants.RIGHTS_ROLE_EDIT_USERS, Constants.PRODUCT_ANYID)) { editBtn.Visible = false; editLbl.Visible = false; @@ -225,12 +225,12 @@ foreach (int productID in ProductUsers.Keys) { - if (activeLbl.Visible == true || ((ProductUsers[productID].Count > 0) && !m_user.HasRight("delete_role", productID))) + if (activeLbl.Visible == true || ((ProductUsers[productID].Count > 0) && !m_user.HasRight(Constants.RIGHTS_ROLE_DELETE, productID))) { deleteBtn.Visible = false; deleteLbl.Visible = false; } - if ((ProductUsers[productID].Count > 0) && !m_user.HasRight("edit_role", productID)) + if ((ProductUsers[productID].Count > 0) && !m_user.HasRight(Constants.RIGHTS_ROLE_EDIT, productID)) { editBtn.Visible = false; newLbl.Visible = false; @@ -243,7 +243,7 @@ CheckBox activeBox = (CheckBox)sender; Label activeLbl = (Label)UserRoleView.FindControl("ActiveLbl"); - if (!m_user.HasRight("dev_access")) + if (!m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) { activeBox.Visible = false; activeLbl.Visible = false; Modified: Website/Includes/UserSettings.ascx.cs =================================================================== --- Website/Includes/UserSettings.ascx.cs 2006-08-10 15:36:41 UTC (rev 297) +++ Website/Includes/UserSettings.ascx.cs 2006-08-10 16:22:36 UTC (rev 298) @@ -41,9 +41,9 @@ // Rights check if (mode == "read" && userID != m_user.ID) Response.Redirect("~/UserSettings.aspx?" + Constants.CODE_USER + "=" + m_user.ID); - if (userID == m_user.ID && !m_user.HasRight("view_my_settings", productID)) + if (userID == m_user.ID && !m_user.HasRight(Constants.RIGHTS_USER_VIEW_MY, productID)) Response.Redirect("~/Assignments.aspx?" + Constants.CODE_USER + "=" + m_user.ID); - if (userID != m_user.ID && !(m_user.HasRight("view_other_settings", user, productID))) + if (userID != m_user.ID && !(m_user.HasRight(Constants.RIGHTS_USER_VIEW_OTHER, user, productID))) Response.Redirect("~/UserSettings.aspx?" + Constants.CODE_USER + "=" + m_user.ID); // Settings init @@ -51,10 +51,10 @@ Session.Add("userID", userID); Session.Add("tableName", "tcdb_user"); - if (mode == "new" && m_user.HasRight("create_user", Constants.PRODUCT_ANYID)) + if (mode == "new" && m_user.HasRight(Constants.RIGHTS_USER_CREATE, Constants.PRODUCT_ANYID)) UserSettingsView.ChangeMode(FormViewMode.Insert); else if (mode == "edit" && ((user.ID==m_user.ID && - m_user.HasRight("edit_my_settings",productID)) || (m_user.HasRight("edit_other_settings", user, productID)))) + m_user.HasRight(Constants.RIGHTS_USER_EDIT_MY,productID)) || (m_user.HasRight(Constants.RIGHTS_USER_EDIT_OTHER, user, productID)))) UserSettingsView.ChangeMode(FormViewMode.Edit); } @@ -67,7 +67,7 @@ if ((mode == "read") || (userID == m_user.ID) || !user.HasRights(productID) || - !m_user.HasRight("delete_user", productID)) + !m_user.HasRight(Constants.RIGHTS_USER_DELETE, productID)) deleteButton.Visible = false; } protected void deleteLabel_Load(object sender, EventArgs e) @@ -78,7 +78,7 @@ if ((mode == "read") || (userID == m_user.ID) || !user.HasRights(productID) || - !m_user.HasRight("delete_user", productID)) + !m_user.HasRight(Constants.RIGHTS_USER_DELETE, productID)) deleteLabel.Visible = false; } protected void newButton_Load(object sender, EventArgs e) @@ -88,7 +88,7 @@ if ((mode == "read") || !user.HasRights(productID) || - !m_user.HasRight("create_user", Constants.PRODUCT_ANYID)) + !m_user.HasRight(Constants.RIGHTS_USER_CREATE, Constants.PRODUCT_ANYID)) newButton.Visible = false; } protected void newLabel_Load(object sender, EventArgs e) @@ -98,7 +98,7 @@ if ((mode == "read") || !user.HasRights(productID) || - !m_user.HasRight("create_user", Constants.PRODUCT_ANYID)) + !m_user.HasRight(Constants.RIGHTS_USER_CREATE, Constants.PRODUCT_ANYID)) newLabel.Visible = false; } protected void Edit_Init(object sender, EventArgs e) @@ -106,8 +106,8 @@ LinkButton editBtn = (LinkButton)sender; if (user == null) user = UserDB.GetUserInfo(userID); - if (!(userID == m_user.ID && m_user.HasRight("edit_my_settings", Constants.PRODUCT_ANYID)) && - !(userID != m_user.ID && user.HasRights(productID) && m_user.HasRight("edit_other_settings", productID))) + if (!(userID == m_user.ID && m_user.HasRight(Constants.RIGHTS_USER_EDIT_MY, Constants.PRODUCT_ANYID)) && + !(userID != m_user.ID && user.HasRights(productID) && m_user.HasRight(Constants.RIGHTS_USER_EDIT_OTHER, productID))) editBtn.Visible = false; } protected void editConfig_Init(object sender, EventArgs e) @@ -115,8 +115,8 @@ LinkButton editConfigBtn = (LinkButton)sender; if (user == null) user = UserDB.GetUserInfo(userID); - if (!(userID == m_user.ID && m_user.HasRight("view_my_preferences", Constants.PRODUCT_ANYID)) && - !(userID != m_user.ID && user.HasRights(productID) && m_user.HasRight("view_other_preferences", productID))) + if (!(userID == m_user.ID && m_user.HasRight(Constants.RIGHTS_PREFERENCE_VIEW_MY, Constants.PRODUCT_ANYID)) && + !(userID != m_user.ID && user.HasRights(productID) && m_user.HasRight(Constants.RIGHTS_PREFERENCE_VIEW_OTHER, productID))) editConfigBtn.Visible = false; } protected void editLabel_Load(object sender, EventArgs e) @@ -124,8 +124,8 @@ Label editLabel = (Label)sender; if (user == null) user = UserDB.GetUserInfo(userID); - if (!(userID == m_user.ID && m_user.HasRight("view_my_preferences", Constants.PRODUCT_ANYID)) && - !(userID != m_user.ID && user.HasRights(productID) && m_user.HasRight("view_other_preferences", productID))) + if (!(userID == m_user.ID && m_user.HasRight(Constants.RIGHTS_PREFERENCE_VIEW_MY, Constants.PRODUCT_ANYID)) && + !(userID != m_user.ID && user.HasRights(productID) && m_user.HasRight(Constants.RIGHTS_PREFERENCE_VIEW_OTHER, productID))) editLabel.Visible = false; } @@ -293,8 +293,8 @@ { Literal roleTree = (Literal)sender; - if ((userID == m_user.ID && m_user.HasRight("view_my_roles", Constants.PRODUCT_ANYID)) || - (userID != m_user.ID && m_user.HasRight("view_other_roles", Constants.PRODUCT_ANYID))) + if ((userID == m_user.ID && m_user.HasRight(Constants.RIGHTS_ROLE_VIEW_MY, Constants.PRODUCT_ANYID)) || + (userID != m_user.ID && m_user.HasRight(Constants.RIGHTS_ROLE_VIEW_OTHER, Constants.PRODUCT_ANYID))) { roleTree.Visible = true; roleTree.ID = "roleTree"; @@ -311,8 +311,8 @@ foreach (Product product in products) { - if ((userID == m_user.ID && m_user.HasRight("view_my_roles", product.ID)) || - (userID != m_user.ID && m_user.HasRight("view_other_roles", product.ID))) + if ((userID == m_user.ID && m_user.HasRight(Constants.RIGHTS_ROLE_VIEW_MY, product.ID)) || + (userID != m_user.ID && m_user.HasRight(Constants.RIGHTS_ROLE_VIEW_OTHER, product.ID))) { // Get Roles tcdbDataSetTableAdapters.db_roleUserProductTableAdapter rupAdapter = new tcdbDataSetTableAdapters.db_roleUserProductTableAdapter(); @@ -352,7 +352,7 @@ TreeView roleTree = (TreeView)sender; // Only display the rights tree if the user has permissions to access this - if (!m_user.HasRight("view_my_roles", Constants.PRODUCT_ANYID)) + if (!m_user.HasRight(Constants.RIGHTS_ROLE_VIEW_MY, Constants.PRODUCT_ANYID)) roleTree.Visible = false; if (!m_user.HasRight("edit_my_roles", Constants.PRODUCT_ANYID)) @@ -388,7 +388,7 @@ foreach (Product product in products) { - if (m_user.HasRight("edit_role_users", product.ID)) + if (m_user.HasRight(Constants.RIGHTS_ROLE_EDIT_USERS, product.ID)) { TreeNode child = new TreeNode(); child.Text = "<label>" + product.NAME + "</label>"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <m_h...@us...> - 2006-08-10 19:19:34
|
Revision: 303 Author: m_hildebrand Date: 2006-08-10 12:18:40 -0700 (Thu, 10 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=303&view=rev Log Message: ----------- Added lots of new graphics to the administration page Fixed some CSS problems Modified Paths: -------------- Website/App_Themes/Python/Images/product_add_48.png Website/App_Themes/Python/Images/product_edit_48.png Website/App_Themes/Python/Images/user_delete_48.png Website/App_Themes/Python/Images/user_edit_48.png Website/App_Themes/Python/Images/user_role_48.png Website/App_Themes/Python/Python.skin Website/App_Themes/Python/python.css Website/Includes/Administration.ascx Website/Includes/Administration.ascx.cs Website/TCDB.master Added Paths: ----------- Graphics/Python/Processed/ Graphics/Python/Processed/ArrowDown.gif Graphics/Python/Processed/ArrowUp.gif Graphics/Python/Processed/Header-Background.gif Graphics/Python/Processed/TCDB-2006-Logo-on-Blue.gif Graphics/Python/Processed/TCDB-2006-Logo-on-White.gif Graphics/Python/Processed/Thumbs.db Graphics/Python/Processed/important.png Graphics/Python/Processed/important_large.png Graphics/Python/Processed/product_add_48.png Graphics/Python/Processed/product_delete_48.png Graphics/Python/Processed/product_edit_48.png Graphics/Python/Processed/product_view_48.png Graphics/Python/Processed/reddot.gif Graphics/Python/Processed/role_add_48.png Graphics/Python/Processed/role_delete_48.png Graphics/Python/Processed/role_edit_48.png Graphics/Python/Processed/role_view_48.png Graphics/Python/Processed/toolbar_calendar_48.png Graphics/Python/Processed/user_add_48.png Graphics/Python/Processed/user_delete_48.png Graphics/Python/Processed/user_edit_48.png Graphics/Python/Processed/user_role_48.png Graphics/Python/Processed/user_view_48.png Graphics/Python/Raw PSD/ Graphics/Python/Raw PSD/Delete Overlay.psd Graphics/Python/Raw PSD/Edit Overlay.psd Graphics/Python/Raw PSD/New Overlay.psd Graphics/Python/Raw PSD/TCDB 2006 Logo.psd Graphics/Python/Raw PSD/product_add_48.psd Graphics/Python/Raw PSD/product_delete_48.psd Graphics/Python/Raw PSD/product_edit_48.psd Graphics/Python/Raw PSD/product_view_48.psd Graphics/Python/Raw PSD/role_add_48.psd Graphics/Python/Raw PSD/role_delete_48.psd Graphics/Python/Raw PSD/role_edit_48.psd Graphics/Python/Raw PSD/role_view_48.psd Graphics/Python/Raw PSD/user_add_48.psd Graphics/Python/Raw PSD/user_delete_48.psd Graphics/Python/Raw PSD/user_edit_48.psd Graphics/Python/Raw PSD/user_role_48.psd Graphics/Python/Raw PSD/user_view_48.psd Website/App_Themes/Python/Images/important.png Website/App_Themes/Python/Images/important_large.png Website/App_Themes/Python/Images/role_add_48.png Website/App_Themes/Python/Images/role_delete_48.png Website/App_Themes/Python/Images/role_edit_48.png Website/App_Themes/Python/Images/role_view_48.png Website/App_Themes/Python/style-ie.style Removed Paths: ------------- Graphics/Python/ArrowDown.gif Graphics/Python/ArrowUp.gif Graphics/Python/Header-Background.gif Graphics/Python/TCDB 2006 Logo.psd Graphics/Python/TCDB-2006-Logo-on-Blue.gif Graphics/Python/TCDB-2006-Logo-on-White.gif Graphics/Python/reddot.gif Website/App_Themes/Python/style-ie.css Deleted: Graphics/Python/ArrowDown.gif =================================================================== (Binary files differ) Deleted: Graphics/Python/ArrowUp.gif =================================================================== (Binary files differ) Deleted: Graphics/Python/Header-Background.gif =================================================================== (Binary files differ) Copied: Graphics/Python/Processed/ArrowDown.gif (from rev 299, Graphics/Python/ArrowDown.gif) =================================================================== (Binary files differ) Copied: Graphics/Python/Processed/ArrowUp.gif (from rev 299, Graphics/Python/ArrowUp.gif) =================================================================== (Binary files differ) Copied: Graphics/Python/Processed/Header-Background.gif (from rev 299, Graphics/Python/Header-Background.gif) =================================================================== (Binary files differ) Copied: Graphics/Python/Processed/TCDB-2006-Logo-on-Blue.gif (from rev 299, Graphics/Python/TCDB-2006-Logo-on-Blue.gif) =================================================================== (Binary files differ) Copied: Graphics/Python/Processed/TCDB-2006-Logo-on-White.gif (from rev 299, Graphics/Python/TCDB-2006-Logo-on-White.gif) =================================================================== (Binary files differ) Added: Graphics/Python/Processed/Thumbs.db =================================================================== (Binary files differ) Property changes on: Graphics/Python/Processed/Thumbs.db ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Processed/important.png =================================================================== (Binary files differ) Property changes on: Graphics/Python/Processed/important.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Processed/important_large.png =================================================================== (Binary files differ) Property changes on: Graphics/Python/Processed/important_large.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Processed/product_add_48.png =================================================================== (Binary files differ) Property changes on: Graphics/Python/Processed/product_add_48.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Processed/product_delete_48.png =================================================================== (Binary files differ) Property changes on: Graphics/Python/Processed/product_delete_48.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Processed/product_edit_48.png =================================================================== (Binary files differ) Property changes on: Graphics/Python/Processed/product_edit_48.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Processed/product_view_48.png =================================================================== (Binary files differ) Property changes on: Graphics/Python/Processed/product_view_48.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Copied: Graphics/Python/Processed/reddot.gif (from rev 299, Graphics/Python/reddot.gif) =================================================================== (Binary files differ) Added: Graphics/Python/Processed/role_add_48.png =================================================================== (Binary files differ) Property changes on: Graphics/Python/Processed/role_add_48.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Processed/role_delete_48.png =================================================================== (Binary files differ) Property changes on: Graphics/Python/Processed/role_delete_48.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Processed/role_edit_48.png =================================================================== (Binary files differ) Property changes on: Graphics/Python/Processed/role_edit_48.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Processed/role_view_48.png =================================================================== (Binary files differ) Property changes on: Graphics/Python/Processed/role_view_48.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Processed/toolbar_calendar_48.png =================================================================== (Binary files differ) Property changes on: Graphics/Python/Processed/toolbar_calendar_48.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Processed/user_add_48.png =================================================================== (Binary files differ) Property changes on: Graphics/Python/Processed/user_add_48.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Processed/user_delete_48.png =================================================================== (Binary files differ) Property changes on: Graphics/Python/Processed/user_delete_48.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Processed/user_edit_48.png =================================================================== (Binary files differ) Property changes on: Graphics/Python/Processed/user_edit_48.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Processed/user_role_48.png =================================================================== (Binary files differ) Property changes on: Graphics/Python/Processed/user_role_48.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Processed/user_view_48.png =================================================================== (Binary files differ) Property changes on: Graphics/Python/Processed/user_view_48.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Raw PSD/Delete Overlay.psd =================================================================== (Binary files differ) Property changes on: Graphics/Python/Raw PSD/Delete Overlay.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Raw PSD/Edit Overlay.psd =================================================================== (Binary files differ) Property changes on: Graphics/Python/Raw PSD/Edit Overlay.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Raw PSD/New Overlay.psd =================================================================== (Binary files differ) Property changes on: Graphics/Python/Raw PSD/New Overlay.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Copied: Graphics/Python/Raw PSD/TCDB 2006 Logo.psd (from rev 299, Graphics/Python/TCDB 2006 Logo.psd) =================================================================== (Binary files differ) Added: Graphics/Python/Raw PSD/product_add_48.psd =================================================================== (Binary files differ) Property changes on: Graphics/Python/Raw PSD/product_add_48.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Raw PSD/product_delete_48.psd =================================================================== (Binary files differ) Property changes on: Graphics/Python/Raw PSD/product_delete_48.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Raw PSD/product_edit_48.psd =================================================================== (Binary files differ) Property changes on: Graphics/Python/Raw PSD/product_edit_48.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Raw PSD/product_view_48.psd =================================================================== (Binary files differ) Property changes on: Graphics/Python/Raw PSD/product_view_48.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Raw PSD/role_add_48.psd =================================================================== (Binary files differ) Property changes on: Graphics/Python/Raw PSD/role_add_48.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Raw PSD/role_delete_48.psd =================================================================== (Binary files differ) Property changes on: Graphics/Python/Raw PSD/role_delete_48.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Raw PSD/role_edit_48.psd =================================================================== (Binary files differ) Property changes on: Graphics/Python/Raw PSD/role_edit_48.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Raw PSD/role_view_48.psd =================================================================== (Binary files differ) Property changes on: Graphics/Python/Raw PSD/role_view_48.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Raw PSD/user_add_48.psd =================================================================== (Binary files differ) Property changes on: Graphics/Python/Raw PSD/user_add_48.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Raw PSD/user_delete_48.psd =================================================================== (Binary files differ) Property changes on: Graphics/Python/Raw PSD/user_delete_48.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Raw PSD/user_edit_48.psd =================================================================== (Binary files differ) Property changes on: Graphics/Python/Raw PSD/user_edit_48.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Raw PSD/user_role_48.psd =================================================================== (Binary files differ) Property changes on: Graphics/Python/Raw PSD/user_role_48.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Graphics/Python/Raw PSD/user_view_48.psd =================================================================== (Binary files differ) Property changes on: Graphics/Python/Raw PSD/user_view_48.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Deleted: Graphics/Python/TCDB 2006 Logo.psd =================================================================== (Binary files differ) Deleted: Graphics/Python/TCDB-2006-Logo-on-Blue.gif =================================================================== (Binary files differ) Deleted: Graphics/Python/TCDB-2006-Logo-on-White.gif =================================================================== (Binary files differ) Deleted: Graphics/Python/reddot.gif =================================================================== (Binary files differ) Added: Website/App_Themes/Python/Images/important.png =================================================================== (Binary files differ) Property changes on: Website/App_Themes/Python/Images/important.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Website/App_Themes/Python/Images/important_large.png =================================================================== (Binary files differ) Property changes on: Website/App_Themes/Python/Images/important_large.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: Website/App_Themes/Python/Images/product_add_48.png =================================================================== (Binary files differ) Modified: Website/App_Themes/Python/Images/product_edit_48.png =================================================================== (Binary files differ) Added: Website/App_Themes/Python/Images/role_add_48.png =================================================================== (Binary files differ) Property changes on: Website/App_Themes/Python/Images/role_add_48.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Website/App_Themes/Python/Images/role_delete_48.png =================================================================== (Binary files differ) Property changes on: Website/App_Themes/Python/Images/role_delete_48.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Website/App_Themes/Python/Images/role_edit_48.png =================================================================== (Binary files differ) Property changes on: Website/App_Themes/Python/Images/role_edit_48.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: Website/App_Themes/Python/Images/role_view_48.png =================================================================== (Binary files differ) Property changes on: Website/App_Themes/Python/Images/role_view_48.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: Website/App_Themes/Python/Images/user_delete_48.png =================================================================== (Binary files differ) Modified: Website/App_Themes/Python/Images/user_edit_48.png =================================================================== (Binary files differ) Modified: Website/App_Themes/Python/Images/user_role_48.png =================================================================== (Binary files differ) Modified: Website/App_Themes/Python/Python.skin =================================================================== --- Website/App_Themes/Python/Python.skin 2006-08-10 18:58:26 UTC (rev 302) +++ Website/App_Themes/Python/Python.skin 2006-08-10 19:18:40 UTC (rev 303) @@ -25,7 +25,12 @@ <asp:Image runat="server" SkinId="viewUserImage" ImageUrl="Images/user_view_48.png" /> <asp:Image runat="server" SkinId="editUserImage" ImageUrl="Images/user_edit_48.png" /> <asp:Image runat="server" SkinId="deleteUserImage" ImageUrl="Images/user_delete_48.png" /> + <asp:Image runat="server" SkinId="userRoleImage" ImageUrl="Images/user_role_48.png" /> +<asp:Image runat="server" SkinId="newRoleImage" ImageUrl="Images/role_add_48.png" /> +<asp:Image runat="server" SkinId="viewRoleImage" ImageUrl="Images/role_view_48.png" /> +<asp:Image runat="server" SkinId="editRoleImage" ImageUrl="Images/role_edit_48.png" /> +<asp:Image runat="server" SkinId="deleteRoleImage" ImageUrl="Images/role_delete_48.png" /> <asp:Image runat="server" SkinId="newProductImage" ImageUrl="Images/product_add_48.png" /> <asp:Image runat="server" SkinId="editProductImage" ImageUrl="Images/product_edit_48.png" /> Modified: Website/App_Themes/Python/python.css =================================================================== --- Website/App_Themes/Python/python.css 2006-08-10 18:58:26 UTC (rev 302) +++ Website/App_Themes/Python/python.css 2006-08-10 19:18:40 UTC (rev 303) @@ -149,6 +149,13 @@ text-indent: -5em } +.clean +{ + margin: 0; + padding: 0; + border: none; +} + /********** END Global Classes **********/ /********** BEGIN Calendar Classes **********/ Deleted: Website/App_Themes/Python/style-ie.css =================================================================== --- Website/App_Themes/Python/style-ie.css 2006-08-10 18:58:26 UTC (rev 302) +++ Website/App_Themes/Python/style-ie.css 2006-08-10 19:18:40 UTC (rev 303) @@ -1,59 +0,0 @@ -.body -{ - background: red; -} - -.bottom -{ - position: static; - padding-top: 8px; -} - -.item .checkbox INPUT -{ - position: static; -} - -/* A CSS hack that only applied to IE -- forces the height of NonFooter - to be 100%, something that causes problems in Mozilla */ -#NonFooter -{ - height: 100%; -} - -/* A CSS hack that only applies to IE -- specifies a different height for the footer - and set the position to static so the background displays */ -/* TODO: Figure out a way to keep the footer in IE from overlaping page content */ -/* -#FooterContent -{ - position: static; - margin-top: -2.3em; -} -*/ - -.form .checkbox INPUT -{ - width: 15px; -} - -#fullname input -{ - width: 100px; -} - -.cb -{ - position: static; -} - -.cb .bottom -{ - position: relative; - top: 5px; -} - -.ct H2 -{ - font-size: 16px; -} \ No newline at end of file Copied: Website/App_Themes/Python/style-ie.style (from rev 301, Website/App_Themes/Python/style-ie.css) =================================================================== --- Website/App_Themes/Python/style-ie.style (rev 0) +++ Website/App_Themes/Python/style-ie.style 2006-08-10 19:18:40 UTC (rev 303) @@ -0,0 +1,71 @@ +.bottom +{ + position: static; + padding-top: 8px; +} + +.item .checkbox INPUT +{ + position: static; +} + +/* A CSS hack that only applied to IE -- forces the height of NonFooter + to be 100%, something that causes problems in Mozilla */ +#NonFooter +{ + height: 100%; +} + +/* A CSS hack that only applies to IE -- specifies a different height for the footer + and set the position to static so the background displays */ +/* TODO: Figure out a way to keep the footer in IE from overlaping page content */ +/* +#FooterContent +{ + position: static; + margin-top: -2.3em; +} +*/ + +.form .checkbox INPUT +{ + width: 15px; +} + +#fullname input +{ + width: 100px; +} + +.cb +{ + position: static; +} + +.cb .bottom +{ + position: relative; + top: 5px; +} + +.ct H2 +{ + font-size: 16px; +} + +#Administration .menu +{ + display: block; + margin: 15px; + float: left; + clear: left; + width: 550px; +} + +.button +{ + float: left; + position: relative; + z-index: 50; + margin: 5px 0 5px -10px; +} \ No newline at end of file Modified: Website/Includes/Administration.ascx =================================================================== --- Website/Includes/Administration.ascx 2006-08-10 18:58:26 UTC (rev 302) +++ Website/Includes/Administration.ascx 2006-08-10 19:18:40 UTC (rev 303) @@ -2,20 +2,72 @@ Inherits="TCDB.Administration" %> <!-- TODO: make these pull-downs dynamic --> <div id="Administration"> - <div class="menu"> + <asp:Panel runat="server" ID="ProductAdmin" CssClass="menu"> <label> Product Administration</label> - <div class="pictureMenu" id="ProductAdmin"> + <div class="pictureMenu"> <div class="xsnazzy"> <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"> </b></b> <div class="xboxcontent"> + <!--<asp:Panel runat="server" ID="ProductAdminTop" CssClass="clean">--> + <div class="button"> + <asp:LinkButton ID="newProduct" runat="server" OnInit="newProduct_Init" CommandName="new" + OnCommand="Product_Command"> + <asp:Image ID="newProductIcon" runat="server" SkinID="newProductImage" AlternateText="New Product" />New + Product</asp:LinkButton></div> + <div class="end"> + </div> + <!-- </asp:Panel> + <asp:Panel runat="server" ID="ProductAdminHR" CssClass="clean">--> + <div class="hr"> + </div> + <!-- </asp:Panel>--> + <asp:Panel runat="server" ID="ProductAdminBottom" CssClass="clean"> + <div class="pulldown"> + <label> + For:</label> + <asp:DropDownList runat="server" ID="productList" AutoPostBack="True" OnInit="productList_Init" + OnSelectedIndexChanged="productList_SelectedIndexChanged"> + </asp:DropDownList> + </div> + <div class="button"> + <asp:LinkButton ID="viewProduct" runat="server" CommandName="view" OnCommand="Product_Command"> + <asp:Image ID="viewProductIcon" runat="server" SkinID="viewProductImage" AlternateText="View Product" />View + Product</asp:LinkButton> + </div> + <div class="button"> + <asp:LinkButton ID="editProduct" runat="server" CommandName="edit" OnCommand="Product_Command"> + <asp:Image ID="editProductIcon" runat="server" SkinID="editProductImage" AlternateText="Edit Product" />Edit + Product</asp:LinkButton> + </div> + <div class="button"> + <asp:LinkButton ID="deleteProduct" runat="server" CommandName="delete" OnCommand="Product_Command"> + <asp:Image ID="deleteProductIcon" runat="server" SkinID="deleteProductImage" AlternateText="Delete Product" />Delete + Product</asp:LinkButton> + </div> + <div class="end"> + </div> + </asp:Panel> + </div> + <b class="xbottom"><b class="xb4"></b><b class="xb3"></b><b class="xb2"></b><b class="xb1"> + </b></b> + </div> + </div> + </asp:Panel> + <div class="menu"> + <label> + User Administration</label> + <div class="pictureMenu" id="UserAdmin"> + <div class="xsnazzy"> + <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"> + </b></b> + <div class="xboxcontent"> <div class="button"> - <asp:LinkButton ID="newProduct" runat="server" - OnInit="newProduct_Init" CommandName="new" OnCommand="Product_Command"> - <asp:Image ID="newProductIcon" runat="server" SkinID="newProductImage" AlternateText="New Product" />New - Product</asp:LinkButton> - </div> + <asp:LinkButton ID="newUser" runat="server" OnInit="newUser_Init" CommandName="new" + OnCommand="User_Command"> + <asp:Image ID="newUserIcon" runat="server" SkinID="newUserImage" AlternateText="New User" />New + User</asp:LinkButton></div> <div class="end"> </div> <div class="hr"> @@ -23,47 +75,46 @@ <div class="pulldown"> <label> For:</label> - <asp:DropDownList runat="server" ID="productList" AutoPostBack="True" OnInit="productList_Init" OnSelectedIndexChanged="productList_SelectedIndexChanged"> + <asp:DropDownList runat="server" ID="userList" AutoPostBack="True" OnInit="userList_Init" + OnSelectedIndexChanged="userList_SelectedIndexChanged"> </asp:DropDownList> </div> <div class="button"> - <asp:LinkButton ID="viewProduct" runat="server" CommandName="view" OnCommand="Product_Command"> - <asp:Image ID="viewProductIcon" runat="server" SkinID="viewProductImage" AlternateText="View Product" />View - Product</asp:LinkButton> - </div> + <asp:LinkButton ID="userView" runat="server" CommandName="view" OnCommand="User_Command"> + <asp:Image ID="userViewIcon" runat="server" SkinID="viewUserImage" AlternateText="View User" />View + User</asp:LinkButton></div> <div class="button"> - <asp:LinkButton ID="editProduct" runat="server" CommandName="edit" OnCommand="Product_Command"> - <asp:Image ID="editProductIcon" runat="server" SkinID="editProductImage" AlternateText="Edit Product" />Edit - Product</asp:LinkButton> - </div> + <asp:LinkButton ID="userEdit" runat="server" CommandName="edit" OnCommand="User_Command"> + <asp:Image ID="userEditIcon" runat="server" SkinID="editUserImage" AlternateText="Edit User" />Edit + User</asp:LinkButton></div> <div class="button"> - <asp:LinkButton ID="deleteProduct" runat="server" CommandName="delete" OnCommand="Product_Command"> - <asp:Image ID="deleteProductIcon" runat="server" SkinID="deleteProductImage" AlternateText="Delete Product" />Delete - Product</asp:LinkButton> - </div> + <asp:LinkButton ID="userDelete" runat="server" CommandName="delete" OnCommand="User_Command"> + <asp:Image ID="userDeleteIcon" runat="server" SkinID="deleteUserImage" AlternateText="Delete User" />Delete + User</asp:LinkButton></div> <div class="end"> </div> </div> - <b class="xbottom"><b class="xb4"></b><b class="xb3"></b><b class="xb2"></b></b> - <b class="xb1"></b> + <b class="xbottom"><b class="xb4"></b><b class="xb3"></b><b class="xb2"></b> + <b class="xb1"></b></b> </div> </div> </div> <div class="menu"> <label> - User Administration</label> - <div class="pictureMenu" id="UserAdmin"> + Role Administration</label> + <div class="pictureMenu" id="RoleAdmin"> <div class="xsnazzy"> <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"> </b></b> <div class="xboxcontent"> <div class="button"> - <asp:LinkButton ID="newUser" runat="server" - OnInit="newUser_Init" CommandName="new" OnCommand="User_Command"> - <asp:Image ID="newUserIcon" runat="server" SkinID="newUserImage" AlternateText="New User" />New - User</asp:LinkButton></div> + <asp:LinkButton ID="newRole" runat="server" OnInit="newRole_Init" CommandName="new" + OnCommand="Role_Command"> + <asp:Image ID="newRoleIcon" runat="server" SkinID="newRoleImage" AlternateText="New User" />New + Role</asp:LinkButton></div> <div class="button"> - <asp:LinkButton ID="userRole" runat="server" OnInit="userRole_Init" CommandName="role" OnCommand="User_Command"> + <asp:LinkButton ID="userRole" runat="server" OnInit="userRole_Init" CommandName="role" + OnCommand="Role_Command"> <asp:Image ID="userRoleIcon" runat="server" SkinID="userRoleImage" AlternateText="User Roles" />User Roles</asp:LinkButton></div> <div class="end"> @@ -73,29 +124,27 @@ <div class="pulldown"> <label> For:</label> - <asp:DropDownList runat="server" ID="userList" AutoPostBack="True" OnInit="userList_Init" OnSelectedIndexChanged="userList_SelectedIndexChanged"> + <asp:DropDownList runat="server" ID="roleList" AutoPostBack="True" OnInit="roleList_Init" + OnSelectedIndexChanged="roleList_SelectedIndexChanged"> </asp:DropDownList> </div> <div class="button"> - <asp:LinkButton ID="userView" runat="server" - CommandName="view" OnCommand="User_Command"> - <asp:Image ID="userViewIcon" runat="server" SkinID="viewUserImage" AlternateText="View User" />View - User</asp:LinkButton></div> + <asp:LinkButton ID="roleView" runat="server" CommandName="view" OnCommand="Role_Command"> + <asp:Image ID="roleViewIcon" runat="server" SkinID="viewRoleImage" AlternateText="View Role" />View + Role</asp:LinkButton></div> <div class="button"> - <asp:LinkButton ID="userEdit" runat="server" - CommandName="edit" OnCommand="User_Command"> - <asp:Image ID="userEditIcon" runat="server" SkinID="editUserImage" AlternateText="Edit User" />Edit - User</asp:LinkButton></div> + <asp:LinkButton ID="roleEdit" runat="server" CommandName="edit" OnCommand="Role_Command"> + <asp:Image ID="roleEditIcon" runat="server" SkinID="editRoleImage" AlternateText="Edit Role" />Edit + Role</asp:LinkButton></div> <div class="button"> - <asp:LinkButton ID="userDelete" runat="server" - CommandName="delete" OnCommand="User_Command"> - <asp:Image ID="userDeleteIcon" runat="server" SkinID="deleteUserImage" AlternateText="Delete User" />Delete - User</asp:LinkButton></div> + <asp:LinkButton ID="roleDelete" runat="server" CommandName="delete" OnCommand="Role_Command"> + <asp:Image ID="roleDeleteIcon" runat="server" SkinID="deleteRoleImage" AlternateText="Delete Role" />Delete + Role</asp:LinkButton></div> <div class="end"> </div> </div> - <b class="xbottom"><b class="xb4"></b><b class="xb3"></b><b class="xb2"></b></b> - <b class="xb1"></b> + <b class="xbottom"><b class="xb4"></b><b class="xb3"></b><b class="xb2"></b> + <b class="xb1"></b></b> </div> </div> </div> Modified: Website/Includes/Administration.ascx.cs =================================================================== --- Website/Includes/Administration.ascx.cs 2006-08-10 18:58:26 UTC (rev 302) +++ Website/Includes/Administration.ascx.cs 2006-08-10 19:18:40 UTC (rev 303) @@ -32,12 +32,18 @@ if (!m_user.HasRight(Constants.RIGHTS_USER_CREATE, Constants.PRODUCT_ANYID)) newUser.Visible = false; } + protected void newRole_Init(object sender, EventArgs e) + { + if (!m_user.HasRight(Constants.RIGHTS_ROLE_CREATE, Constants.PRODUCT_ANYID)) + newRole.Visible = false; + } protected void userRole_Init(object sender, EventArgs e) { if (!m_user.HasRight(Constants.RIGHTS_ROLE_VIEW_MY, Constants.PRODUCT_ANYID) && !m_user.HasRight(Constants.RIGHTS_ROLE_VIEW_OTHER, Constants.PRODUCT_ANYID)) userRole.Visible = false; } + protected void productList_Init(object sender, EventArgs e) { @@ -58,20 +64,25 @@ } protected void productList_SelectedIndexChanged(object sender, EventArgs e) { - int productID = Convert.ToInt32(productList.SelectedValue); + try + { + int productID = Convert.ToInt32(productList.SelectedValue); if (!m_user.HasRight(Constants.RIGHTS_PRODUCT_VIEW, productID)) - viewProduct.Visible = false; - else - viewProduct.Visible = true; + viewProduct.Visible = false; + else + viewProduct.Visible = true; if (!m_user.HasRight(Constants.RIGHTS_PRODUCT_EDIT, productID)) - editProduct.Visible = false; - else - editProduct.Visible = true; + editProduct.Visible = false; + else + editProduct.Visible = true; if (!m_user.HasRight(Constants.RIGHTS_PRODUCT_DELETE, productID)) - deleteProduct.Visible = false; - else - deleteProduct.Visible = true; + deleteProduct.Visible = false; + else + deleteProduct.Visible = true; + } + catch { } + } protected void userList_Init(object sender, EventArgs e) @@ -102,7 +113,81 @@ } protected void userList_SelectedIndexChanged(object sender, EventArgs e) { + try + { + List<Product> products = ProductDB.GetProductList(active); + User user = UserDB.GetUserInfo(Convert.ToInt32(userList.SelectedValue)); + + if (user.ID == m_user.ID) + { + userView.Visible = false; + userEdit.Visible = false; + userDelete.Visible = false; + foreach (Product product in products) + { + if (!userView.Visible && m_user.HasRight(Constants.RIGHTS_USER_VIEW_MY, product.ID)) + userView.Visible = true; + if (!userEdit.Visible && m_user.HasRight(Constants.RIGHTS_USER_EDIT_MY, product.ID)) + userEdit.Visible = true; + } + } + else + { + userView.Visible = false; + userEdit.Visible = false; + userDelete.Visible = true; + foreach (Product product in products) + { + if (!userView.Visible && m_user.HasRight(Constants.RIGHTS_USER_VIEW_OTHER, user, product.ID)) + userView.Visible = true; + if (!userEdit.Visible && m_user.HasRight(Constants.RIGHTS_USER_EDIT_OTHER, user, product.ID)) + userEdit.Visible = true; + if (product.ID != Constants.PRODUCT_SITEID && user.HasRights(product.ID)) + { + if (userDelete.Visible && !m_user.HasRight(Constants.RIGHTS_USER_DELETE, product.ID)) + userDelete.Visible = false; + } + } + } + } + catch { } + } + + protected void roleList_Init(object sender, EventArgs e) + { + //TODO: Turn this into stuff for roles! + + /* List<Product> products = ProductDB.GetProductList(active); + List<User> users = UserDB.TCDB_GetUserList(); + + foreach (User user in users) + { + foreach (Product product in products) + { + if (!(m_user.HasRight("view_other_settings")) && + !(user.ID == m_user.ID && m_user.HasRight("view_my_settings", product.ID)) && + !(m_user.HasRight("view_other_settings", user, product.ID))) + continue; + + ListItem item = new ListItem(user.FULLNAME, user.ID.ToString()); + //if (!user.ACTIVE) + //item.Attributes.CssStyle.Add("text-decoration", "line-through"); + + userList.Items.Add(item); + break; + } + } + if (!IsPostBack) + userList_SelectedIndexChanged(sender, e); + */ + } + protected void roleList_SelectedIndexChanged(object sender, EventArgs e) + { + //TODO: Turn this into stuff for roles! + + /* + List<Product> products = ProductDB.GetProductList(active); User user = UserDB.GetUserInfo(Convert.ToInt32(userList.SelectedValue)); if (user.ID == m_user.ID) @@ -112,9 +197,9 @@ userDelete.Visible = false; foreach (Product product in products) { - if (!userView.Visible && m_user.HasRight(Constants.RIGHTS_USER_VIEW_MY, product.ID)) + if (!userView.Visible && m_user.HasRight("view_my_settings", product.ID)) userView.Visible = true; - if (!userEdit.Visible && m_user.HasRight(Constants.RIGHTS_USER_EDIT_MY, product.ID)) + if (!userEdit.Visible && m_user.HasRight("edit_my_settings", product.ID)) userEdit.Visible = true; } } @@ -125,18 +210,20 @@ userDelete.Visible = true; foreach (Product product in products) { - if (!userView.Visible && m_user.HasRight(Constants.RIGHTS_USER_VIEW_OTHER, user, product.ID)) + if (!userView.Visible && m_user.HasRight("view_other_settings", user, product.ID)) userView.Visible = true; - if (!userEdit.Visible && m_user.HasRight(Constants.RIGHTS_USER_EDIT_OTHER, user, product.ID)) + if (!userEdit.Visible && m_user.HasRight("edit_other_settings", user, product.ID)) userEdit.Visible = true; if (product.ID != Constants.PRODUCT_SITEID && user.HasRights(product.ID)) { - if (userDelete.Visible && !m_user.HasRight(Constants.RIGHTS_USER_DELETE, product.ID)) + if (userDelete.Visible && !m_user.HasRight("delete_user", product.ID)) userDelete.Visible = false; } } } + */ } + protected void Product_Command(object sender, CommandEventArgs e) { int productID = Convert.ToInt32(productList.SelectedValue); @@ -180,7 +267,19 @@ case "new": Response.Redirect("~/UserSettings.aspx?" + Constants.CODE_MODE + "=new"); break; - case "role": + default: + m_logg.Error("Invalid Command: " + e.CommandName); + break; + } + } + protected void Role_Command(object sender, CommandEventArgs e) + { + int roleID = Convert.ToInt32(roleList.SelectedValue); + + // TODO: Flush this out completely + switch (e.CommandName) + { + case "new": Response.Redirect("~/AdminRole.aspx"); break; default: @@ -189,4 +288,4 @@ } } } -} \ No newline at end of file +} Modified: Website/TCDB.master =================================================================== --- Website/TCDB.master 2006-08-10 18:58:26 UTC (rev 302) +++ Website/TCDB.master 2006-08-10 19:18:40 UTC (rev 303) @@ -14,10 +14,10 @@ <head runat="server"> <title>TCDB: Test Case DataBase 2006</title> </head> +<body> <!--[if IE]> - <link href="App_Themes/<%= Page.StyleSheetTheme %>/style-ie.css" type="text/css" rel="stylesheet" /> + <link href="App_Themes/<%= Page.StyleSheetTheme %>/style-ie.style" type="text/css" rel="stylesheet" /> <![endif]--> -<body> <!--<div id="NonFooter" style="border: solid thin red;">--> <% if (ConfigDB.GetConfigString("tcdb_version").Equals(Constants.TCDB_VERSION)) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ro...@us...> - 2006-08-11 14:16:44
|
Revision: 307 Author: rouquin Date: 2006-08-11 07:16:29 -0700 (Fri, 11 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=307&view=rev Log Message: ----------- Added content to a lot of pages. They are only accessible with dev_access rights. However, the content is not enabled since most of them don't have stored procedures to back them up. Modified Paths: -------------- Website/App_Code/tcdbDataSet.xsd Website/App_Code/tcdbDataSet.xss Website/Includes/Builds.ascx Website/Includes/Builds.ascx.cs Website/Includes/Features.ascx Website/Includes/Objectives.ascx Website/Includes/Tags.ascx Website/Includes/TestCases.ascx Website/Includes/TestPasses.ascx Website/Includes/TestPasses.ascx.cs Website/Includes/Versions.ascx Website/Includes/Versions.ascx.cs Added Paths: ----------- Website/Includes/Features.ascx.cs Website/Includes/Objectives.ascx.cs Website/Includes/Tags.ascx.cs Website/Includes/TestCases.ascx.cs Website/Tag.aspx Modified: Website/App_Code/tcdbDataSet.xsd =================================================================== --- Website/App_Code/tcdbDataSet.xsd 2006-08-10 23:35:49 UTC (rev 306) +++ Website/App_Code/tcdbDataSet.xsd 2006-08-11 14:16:29 UTC (rev 307) @@ -960,6 +960,118 @@ <Sources> </Sources> </TableAdapter> + <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="db_platformTableAdapter" GeneratorDataComponentClassName="db_platformTableAdapter" Name="db_platform" UserDataComponentName="db_platformTableAdapter"> + <MainSource> + <DbSource ConnectionRef="tcdbConnectionString (Web.config)" DbObjectName="tcdb.dbo.sel_platform" DbObjectType="StoredProcedure" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="True" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="False" UserGetMethodName="GetData" UserSourceName="Fill"> + <InsertCommand> + <DbCommand CommandType="StoredProcedure" ModifiedByUser="False"> + <CommandText>dbo.ins_platform</CommandText> + <Parameters> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@architectureID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumn="archID" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@osID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumn="osID" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + </Parameters> + </DbCommand> + </InsertCommand> + <SelectCommand> + <DbCommand CommandType="StoredProcedure" ModifiedByUser="False"> + <CommandText>dbo.sel_platform</CommandText> + <Parameters> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@platformID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@archID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@archName" Precision="0" ProviderType="VarChar" Scale="0" Size="255" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@osID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@osFriendlyName" Precision="0" ProviderType="VarChar" Scale="0" Size="255" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@osCodeName" Precision="0" ProviderType="VarChar" Scale="0" Size="30" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + </Parameters> + </DbCommand> + </SelectCommand> + </DbSource> + </MainSource> + <Mappings> + <Mapping SourceColumn="platformID" DataSetColumn="platformID" /> + <Mapping SourceColumn="archID" DataSetColumn="archID" /> + <Mapping SourceColumn="archName" DataSetColumn="archName" /> + <Mapping SourceColumn="osID" DataSetColumn="osID" /> + <Mapping SourceColumn="osFriendlyName" DataSetColumn="osFriendlyName" /> + <Mapping SourceColumn="osCodeName" DataSetColumn="osCodeName" /> + </Mappings> + <Sources> + </Sources> + </TableAdapter> + <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="db_buildTableAdapter" GeneratorDataComponentClassName="db_buildTableAdapter" Name="db_build" UserDataComponentName="db_buildTableAdapter"> + <MainSource> + <DbSource ConnectionRef="tcdbConnectionString (Web.config)" DbObjectName="tcdb.dbo.sel_build" DbObjectType="StoredProcedure" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="True" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="False" UserGetMethodName="GetData" UserSourceName="Fill"> + <InsertCommand> + <DbCommand CommandType="StoredProcedure" ModifiedByUser="False"> + <CommandText>dbo.ins_build</CommandText> + <Parameters> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@versionID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumn="versionID" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@number" Precision="0" ProviderType="VarChar" Scale="0" Size="20" SourceColumn="number" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@active" Precision="1" ProviderType="Bit" Scale="0" Size="1" SourceColumn="active" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + </Parameters> + </DbCommand> + </InsertCommand> + <SelectCommand> + <DbCommand CommandType="StoredProcedure" ModifiedByUser="False"> + <CommandText>dbo.sel_build</CommandText> + <Parameters> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@active" Precision="1" ProviderType="Bit" Scale="0" Size="1" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@versionID" Precision="1" ProviderType="Bit" Scale="0" Size="1" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@buildID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + </Parameters> + </DbCommand> + </SelectCommand> + <UpdateCommand> + <DbCommand CommandType="StoredProcedure" ModifiedByUser="False"> + <CommandText>dbo.upd_build</CommandText> + <Parameters> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@buildID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumn="buildID" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@versionID" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumn="versionID" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@number" Precision="0" ProviderType="VarChar" Scale="0" Size="20" SourceColumn="number" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@active" Precision="1" ProviderType="Bit" Scale="0" Size="1" SourceColumn="active" SourceColumnNullMapping="False" SourceVersion="Current"> + </Parameter> + </Parameters> + </DbCommand> + </UpdateCommand> + </DbSource> + </MainSource> + <Mappings> + <Mapping SourceColumn="buildID" DataSetColumn="buildID" /> + <Mapping SourceColumn="versionID" DataSetColumn="versionID" /> + <Mapping SourceColumn="number" DataSetColumn="number" /> + <Mapping SourceColumn="active" DataSetColumn="active" /> + <Mapping SourceColumn="dateCreated" DataSetColumn="dateCreated" /> + </Mappings> + <Sources> + </Sources> + </TableAdapter> </Tables> <Sources> </Sources> @@ -972,108 +1084,108 @@ <xs:element name="db_products" msprop:Generator_UserTableName="db_products" msprop:Generator_RowDeletedName="db_productsRowDeleted" msprop:Generator_RowChangedName="db_productsRowChanged" msprop:Generator_RowClassName="db_productsRow" msprop:Generator_RowChangingName="db_productsRowChanging" msprop:Generator_RowEvArgName="db_productsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_productsRowChangeEventHandler" msprop:Generator_TableClassName="db_productsDataTable" msprop:Generator_TableVarName="tabledb_products" msprop:Generator_RowDeletingName="db_productsRowDeleting" msprop:Generator_TablePropName="db_products"> <xs:complexType> <xs:sequence> - <xs:element name="productID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="productID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> + <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="devManager" msprop:Generator_UserColumnName="devManager" msprop:Generator_ColumnPropNameInRow="devManager" msprop:Generator_ColumnVarNameInTable="columndevManager" msprop:Generator_ColumnPropNameInTable="devManagerColumn" type="xs:int" minOccurs="0" /> - <xs:element name="qaManager" msprop:Generator_UserColumnName="qaManager" msprop:Generator_ColumnPropNameInRow="qaManager" msprop:Generator_ColumnVarNameInTable="columnqaManager" msprop:Generator_ColumnPropNameInTable="qaManagerColumn" type="xs:int" minOccurs="0" /> - <xs:element name="devLead" msprop:Generator_UserColumnName="devLead" msprop:Generator_ColumnPropNameInRow="devLead" msprop:Generator_ColumnVarNameInTable="columndevLead" msprop:Generator_ColumnPropNameInTable="devLeadColumn" type="xs:int" minOccurs="0" /> - <xs:element name="qaLead" msprop:Generator_UserColumnName="qaLead" msprop:Generator_ColumnPropNameInRow="qaLead" msprop:Generator_ColumnVarNameInTable="columnqaLead" msprop:Generator_ColumnPropNameInTable="qaLeadColumn" type="xs:int" minOccurs="0" /> - <xs:element name="pm" msprop:Generator_UserColumnName="pm" msprop:Generator_ColumnPropNameInRow="pm" msprop:Generator_ColumnVarNameInTable="columnpm" msprop:Generator_ColumnPropNameInTable="pmColumn" type="xs:int" minOccurs="0" /> - <xs:element name="codeName" msprop:Generator_UserColumnName="codeName" msprop:Generator_ColumnPropNameInRow="codeName" msprop:Generator_ColumnVarNameInTable="columncodeName" msprop:Generator_ColumnPropNameInTable="codeNameColumn" minOccurs="0"> + <xs:element name="devManager" msprop:Generator_UserColumnName="devManager" msprop:Generator_ColumnVarNameInTable="columndevManager" msprop:Generator_ColumnPropNameInRow="devManager" msprop:Generator_ColumnPropNameInTable="devManagerColumn" type="xs:int" minOccurs="0" /> + <xs:element name="qaManager" msprop:Generator_UserColumnName="qaManager" msprop:Generator_ColumnVarNameInTable="columnqaManager" msprop:Generator_ColumnPropNameInRow="qaManager" msprop:Generator_ColumnPropNameInTable="qaManagerColumn" type="xs:int" minOccurs="0" /> + <xs:element name="devLead" msprop:Generator_UserColumnName="devLead" msprop:Generator_ColumnVarNameInTable="columndevLead" msprop:Generator_ColumnPropNameInRow="devLead" msprop:Generator_ColumnPropNameInTable="devLeadColumn" type="xs:int" minOccurs="0" /> + <xs:element name="qaLead" msprop:Generator_UserColumnName="qaLead" msprop:Generator_ColumnVarNameInTable="columnqaLead" msprop:Generator_ColumnPropNameInRow="qaLead" msprop:Generator_ColumnPropNameInTable="qaLeadColumn" type="xs:int" minOccurs="0" /> + <xs:element name="pm" msprop:Generator_UserColumnName="pm" msprop:Generator_ColumnVarNameInTable="columnpm" msprop:Generator_ColumnPropNameInRow="pm" msprop:Generator_ColumnPropNameInTable="pmColumn" type="xs:int" minOccurs="0" /> + <xs:element name="codeName" msprop:Generator_UserColumnName="codeName" msprop:Generator_ColumnVarNameInTable="columncodeName" msprop:Generator_ColumnPropNameInRow="codeName" msprop:Generator_ColumnPropNameInTable="codeNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="10" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_actionItems" msprop:Generator_UserTableName="db_actionItems" msprop:Generator_RowDeletedName="db_actionItemsRowDeleted" msprop:Generator_RowChangedName="db_actionItemsRowChanged" msprop:Generator_RowClassName="db_actionItemsRow" msprop:Generator_RowChangingName="db_actionItemsRowChanging" msprop:Generator_RowEvArgName="db_actionItemsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_actionItemsRowChangeEventHandler" msprop:Generator_TableClassName="db_actionItemsDataTable" msprop:Generator_TableVarName="tabledb_actionItems" msprop:Generator_RowDeletingName="db_actionItemsRowDeleting" msprop:Generator_TablePropName="db_actionItems"> <xs:complexType> <xs:sequence> - <xs:element name="actionItemID" msprop:Generator_UserColumnName="actionItemID" msprop:Generator_ColumnVarNameInTable="columnactionItemID" msprop:Generator_ColumnPropNameInRow="actionItemID" msprop:Generator_ColumnPropNameInTable="actionItemIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="actionItemID" msprop:Generator_UserColumnName="actionItemID" msprop:Generator_ColumnPropNameInRow="actionItemID" msprop:Generator_ColumnVarNameInTable="columnactionItemID" msprop:Generator_ColumnPropNameInTable="actionItemIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> + <xs:element name="description" msprop:Generator_UserColumnName="description" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInTable="descriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="percentComplete" msprop:Generator_UserColumnName="percentComplete" msprop:Generator_ColumnVarNameInTable="columnpercentComplete" msprop:Generator_ColumnPropNameInRow="percentComplete" msprop:Generator_ColumnPropNameInTable="percentCompleteColumn" type="xs:int" minOccurs="0" /> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="percentComplete" msprop:Generator_UserColumnName="percentComplete" msprop:Generator_ColumnPropNameInRow="percentComplete" msprop:Generator_ColumnVarNameInTable="columnpercentComplete" msprop:Generator_ColumnPropNameInTable="percentCompleteColumn" type="xs:int" minOccurs="0" /> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="createdBy" msdata:ReadOnly="true" msprop:Generator_UserColumnName="createdBy" msprop:Generator_ColumnVarNameInTable="columncreatedBy" msprop:Generator_ColumnPropNameInRow="createdBy" msprop:Generator_ColumnPropNameInTable="createdByColumn" minOccurs="0"> + <xs:element name="createdBy" msdata:ReadOnly="true" msprop:Generator_UserColumnName="createdBy" msprop:Generator_ColumnPropNameInRow="createdBy" msprop:Generator_ColumnVarNameInTable="columncreatedBy" msprop:Generator_ColumnPropNameInTable="createdByColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> - <xs:element name="testPass" msprop:Generator_UserColumnName="testPass" msprop:Generator_ColumnPropNameInRow="testPass" msprop:Generator_ColumnVarNameInTable="columntestPass" msprop:Generator_ColumnPropNameInTable="testPassColumn" minOccurs="0"> + <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> + <xs:element name="testPass" msprop:Generator_UserColumnName="testPass" msprop:Generator_ColumnVarNameInTable="columntestPass" msprop:Generator_ColumnPropNameInRow="testPass" msprop:Generator_ColumnPropNameInTable="testPassColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> + <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="statusID" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="testPassID" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> - <xs:element name="creatorID" msprop:Generator_UserColumnName="creatorID" msprop:Generator_ColumnVarNameInTable="columncreatorID" msprop:Generator_ColumnPropNameInRow="creatorID" msprop:Generator_ColumnPropNameInTable="creatorIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="statusID" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="testPassID" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="creatorID" msprop:Generator_UserColumnName="creatorID" msprop:Generator_ColumnPropNameInRow="creatorID" msprop:Generator_ColumnVarNameInTable="columncreatorID" msprop:Generator_ColumnPropNameInTable="creatorIDColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_status" msprop:Generator_UserTableName="db_status" msprop:Generator_RowDeletedName="db_statusRowDeleted" msprop:Generator_RowChangedName="db_statusRowChanged" msprop:Generator_RowClassName="db_statusRow" msprop:Generator_RowChangingName="db_statusRowChanging" msprop:Generator_RowEvArgName="db_statusRowChangeEvent" msprop:Generator_RowEvHandlerName="db_statusRowChangeEventHandler" msprop:Generator_TableClassName="db_statusDataTable" msprop:Generator_TableVarName="tabledb_status" msprop:Generator_RowDeletingName="db_statusRowDeleting" msprop:Generator_TablePropName="db_status"> <xs:complexType> <xs:sequence> - <xs:element name="statusID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" /> - <xs:element name="Description" msprop:Generator_UserColumnName="Description" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnVarNameInTable="columnDescription" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" minOccurs="0"> + <xs:element name="statusID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="statusID" msprop:Generator_ColumnVarNameInTable="columnstatusID" msprop:Generator_ColumnPropNameInRow="statusID" msprop:Generator_ColumnPropNameInTable="statusIDColumn" type="xs:int" /> + <xs:element name="Description" msprop:Generator_UserColumnName="Description" msprop:Generator_ColumnVarNameInTable="columnDescription" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> @@ -1086,17 +1198,17 @@ <xs:element name="db_notes" msprop:Generator_UserTableName="db_notes" msprop:Generator_RowDeletedName="db_notesRowDeleted" msprop:Generator_RowChangedName="db_notesRowChanged" msprop:Generator_RowClassName="db_notesRow" msprop:Generator_RowChangingName="db_notesRowChanging" msprop:Generator_RowEvArgName="db_notesRowChangeEvent" msprop:Generator_RowEvHandlerName="db_notesRowChangeEventHandler" msprop:Generator_TableClassName="db_notesDataTable" msprop:Generator_TableVarName="tabledb_notes" msprop:Generator_RowDeletingName="db_notesRowDeleting" msprop:Generator_TablePropName="db_notes"> <xs:complexType> <xs:sequence> - <xs:element name="noteID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="noteID" msprop:Generator_ColumnPropNameInRow="noteID" msprop:Generator_ColumnVarNameInTable="columnnoteID" msprop:Generator_ColumnPropNameInTable="noteIDColumn" type="xs:int" /> - <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="noteField" msprop:Generator_UserColumnName="noteField" msprop:Generator_ColumnPropNameInRow="noteField" msprop:Generator_ColumnVarNameInTable="columnnoteField" msprop:Generator_ColumnPropNameInTable="noteFieldColumn" minOccurs="0"> + <xs:element name="noteID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="noteID" msprop:Generator_ColumnVarNameInTable="columnnoteID" msprop:Generator_ColumnPropNameInRow="noteID" msprop:Generator_ColumnPropNameInTable="noteIDColumn" type="xs:int" /> + <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="noteField" msprop:Generator_UserColumnName="noteField" msprop:Generator_ColumnVarNameInTable="columnnoteField" msprop:Generator_ColumnPropNameInRow="noteField" msprop:Generator_ColumnPropNameInTable="noteFieldColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2147483647" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="noteAuthor" msprop:Generator_UserColumnName="noteAuthor" msprop:Generator_ColumnPropNameInRow="noteAuthor" msprop:Generator_ColumnVarNameInTable="columnnoteAuthor" msprop:Generator_ColumnPropNameInTable="noteAuthorColumn" type="xs:int" minOccurs="0" /> - <xs:element name="noteAuthorName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="noteAuthorName" msprop:Generator_ColumnVarNameInTable="columnnoteAuthorName" msprop:Generator_ColumnPropNameInRow="noteAuthorName" msprop:Generator_ColumnPropNameInTable="noteAuthorNameColumn" minOccurs="0"> + <xs:element name="noteAuthor" msprop:Generator_UserColumnName="noteAuthor" msprop:Generator_ColumnVarNameInTable="columnnoteAuthor" msprop:Generator_ColumnPropNameInRow="noteAuthor" msprop:Generator_ColumnPropNameInTable="noteAuthorColumn" type="xs:int" minOccurs="0" /> + <xs:element name="noteAuthorName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="noteAuthorName" msprop:Generator_ColumnPropNameInRow="noteAuthorName" msprop:Generator_ColumnVarNameInTable="columnnoteAuthorName" msprop:Generator_ColumnPropNameInTable="noteAuthorNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> @@ -1109,102 +1221,102 @@ <xs:element name="db_assignments" msprop:Generator_UserTableName="db_assignments" msprop:Generator_RowDeletedName="db_assignmentsRowDeleted" msprop:Generator_RowChangedName="db_assignmentsRowChanged" msprop:Generator_RowClassName="db_assignmentsRow" msprop:Generator_RowChangingName="db_assignmentsRowChanging" msprop:Generator_RowEvArgName="db_assignmentsRowChangeEvent" msprop:Generator_RowEvHandlerName="db_assignmentsRowChangeEventHandler" msprop:Generator_TableClassName="db_assignmentsDataTable" msprop:Generator_TableVarName="tabledb_assignments" msprop:Generator_RowDeletingName="db_assignmentsRowDeleting" msprop:Generator_TablePropName="db_assignments"> <xs:complexType> <xs:sequence> - <xs:element name="aType" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aType" msprop:Generator_ColumnPropNameInRow="aType" msprop:Generator_ColumnVarNameInTable="columnaType" msprop:Generator_ColumnPropNameInTable="aTypeColumn" minOccurs="0"> + <xs:element name="aType" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aType" msprop:Generator_ColumnVarNameInTable="columnaType" msprop:Generator_ColumnPropNameInRow="aType" msprop:Generator_ColumnPropNameInTable="aTypeColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="childID" msdata:ReadOnly="true" msprop:Generator_UserColumnName="childID" msprop:Generator_ColumnPropNameInRow="childID" msprop:Generator_ColumnVarNameInTable="columnchildID" msprop:Generator_ColumnPropNameInTable="childIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="creator" msdata:ReadOnly="true" msprop:Generator_UserColumnName="creator" msprop:Generator_ColumnPropNameInRow="creator" msprop:Generator_ColumnVarNameInTable="columncreator" msprop:Generator_ColumnPropNameInTable="creatorColumn" minOccurs="0"> + <xs:element name="childID" msdata:ReadOnly="true" msprop:Generator_UserColumnName="childID" msprop:Generator_ColumnVarNameInTable="columnchildID" msprop:Generator_ColumnPropNameInRow="childID" msprop:Generator_ColumnPropNameInTable="childIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="creator" msdata:ReadOnly="true" msprop:Generator_UserColumnName="creator" msprop:Generator_ColumnVarNameInTable="columncreator" msprop:Generator_ColumnPropNameInRow="creator" msprop:Generator_ColumnPropNameInTable="creatorColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> + <xs:element name="assigned" msdata:ReadOnly="true" msprop:Generator_UserColumnName="assigned" msprop:Generator_ColumnVarNameInTable="columnassigned" msprop:Generator_ColumnPropNameInRow="assigned" msprop:Generator_ColumnPropNameInTable="assignedColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="49" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> - <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> + <xs:element name="assignedID" msprop:Generator_UserColumnName="assignedID" msprop:Generator_ColumnVarNameInTable="columnassignedID" msprop:Generator_ColumnPropNameInRow="assignedID" msprop:Generator_ColumnPropNameInTable="assignedIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="dateAssigned" msprop:Generator_UserColumnName="dateAssigned" msprop:Generator_ColumnVarNameInTable="columndateAssigned" msprop:Generator_ColumnPropNameInRow="dateAssigned" msprop:Generator_ColumnPropNameInTable="dateAssignedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateDue" msprop:Generator_UserColumnName="dateDue" msprop:Generator_ColumnVarNameInTable="columndateDue" msprop:Generator_ColumnPropNameInRow="dateDue" msprop:Generator_ColumnPropNameInTable="dateDueColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="dateFinished" msprop:Generator_UserColumnName="dateFinished" msprop:Generator_ColumnVarNameInTable="columndateFinished" msprop:Generator_ColumnPropNameInRow="dateFinished" msprop:Generator_ColumnPropNameInTable="dateFinishedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="highPriority" msprop:Generator_UserColumnName="highPriority" msprop:Generator_ColumnVarNameInTable="columnhighPriority" msprop:Generator_ColumnPropNameInRow="highPriority" msprop:Generator_ColumnPropNameInTable="highPriorityColumn" type="xs:boolean" minOccurs="0" /> + <xs:element name="statusName" msprop:Generator_UserColumnName="statusName" msprop:Generator_ColumnVarNameInTable="columnstatusName" msprop:Generator_ColumnPropNameInRow="statusName" msprop:Generator_ColumnPropNameInTable="statusNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="WOTotalTest" msprop:Generator_UserColumnName="WOTotalTest" msprop:Generator_ColumnPropNameInRow="WOTotalTest" msprop:Generator_ColumnVarNameInTable="columnWOTotalTest" msprop:Generator_ColumnPropNameInTable="WOTotalTestColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOPassRate" msdata:ReadOnly="true" msprop:Generator_UserColumnName="WOPassRate" msprop:Generator_ColumnPropNameInRow="WOPassRate" msprop:Generator_ColumnVarNameInTable="columnWOPassRate" msprop:Generator_ColumnPropNameInTable="WOPassRateColumn" minOccurs="0"> + <xs:element name="WOTotalTest" msprop:Generator_UserColumnName="WOTotalTest" msprop:Generator_ColumnVarNameInTable="columnWOTotalTest" msprop:Generator_ColumnPropNameInRow="WOTotalTest" msprop:Generator_ColumnPropNameInTable="WOTotalTestColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOPassRate" msdata:ReadOnly="true" msprop:Generator_UserColumnName="WOPassRate" msprop:Generator_ColumnVarNameInTable="columnWOPassRate" msprop:Generator_ColumnPropNameInRow="WOPassRate" msprop:Generator_ColumnPropNameInTable="WOPassRateColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="31" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="WOPass" msprop:Generator_UserColumnName="WOPass" msprop:Generator_ColumnPropNameInRow="WOPass" msprop:Generator_ColumnVarNameInTable="columnWOPass" msprop:Generator_ColumnPropNameInTable="WOPassColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOFail" msprop:Generator_UserColumnName="WOFail" msprop:Generator_ColumnPropNameInRow="WOFail" msprop:Generator_ColumnVarNameInTable="columnWOFail" msprop:Generator_ColumnPropNameInTable="WOFailColumn" type="xs:int" minOccurs="0" /> - <xs:element name="WOError" msprop:Generator_UserColumnName="WOError" msprop:Generator_ColumnPropNameInRow="WOError" msprop:Generator_ColumnVarNameInTable="columnWOError" msprop:Generator_ColumnPropNameInTable="WOErrorColumn" type="xs:int" minOccurs="0" /> - <xs:element name="aName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aName" msprop:Generator_ColumnPropNameInRow="aName" msprop:Generator_ColumnVarNameInTable="columnaName" msprop:Generator_ColumnPropNameInTable="aNameColumn" minOccurs="0"> + <xs:element name="WOPass" msprop:Generator_UserColumnName="WOPass" msprop:Generator_ColumnVarNameInTable="columnWOPass" msprop:Generator_ColumnPropNameInRow="WOPass" msprop:Generator_ColumnPropNameInTable="WOPassColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOFail" msprop:Generator_UserColumnName="WOFail" msprop:Generator_ColumnVarNameInTable="columnWOFail" msprop:Generator_ColumnPropNameInRow="WOFail" msprop:Generator_ColumnPropNameInTable="WOFailColumn" type="xs:int" minOccurs="0" /> + <xs:element name="WOError" msprop:Generator_UserColumnName="WOError" msprop:Generator_ColumnVarNameInTable="columnWOError" msprop:Generator_ColumnPropNameInRow="WOError" msprop:Generator_ColumnPropNameInTable="WOErrorColumn" type="xs:int" minOccurs="0" /> + <xs:element name="aName" msdata:ReadOnly="true" msprop:Generator_UserColumnName="aName" msprop:Generator_ColumnVarNameInTable="columnaName" msprop:Generator_ColumnPropNameInRow="aName" msprop:Generator_ColumnPropNameInTable="aNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> - <xs:element name="creatorID" msprop:Generator_UserColumnName="creatorID" msprop:Generator_ColumnPropNameInRow="creatorID" msprop:Generator_ColumnVarNameInTable="columncreatorID" msprop:Generator_ColumnPropNameInTable="creatorIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="numAI" msdata:ReadOnly="true" msprop:Generator_UserColumnName="numAI" msprop:Generator_ColumnPropNameInRow="numAI" msprop:Generator_ColumnVarNameInTable="columnnumAI" msprop:Generator_ColumnPropNameInTable="numAIColumn" type="xs:int" minOccurs="0" /> - <xs:element name="numWO" msdata:ReadOnly="true" msprop:Generator_UserColumnName="numWO" msprop:Generator_ColumnPropNameInRow="numWO" msprop:Generator_ColumnVarNameInTable="columnnumWO" msprop:Generator_ColumnPropNameInTable="numWOColumn" type="xs:int" minOccurs="0" /> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" /> + <xs:element name="creatorID" msprop:Generator_UserColumnName="creatorID" msprop:Generator_ColumnVarNameInTable="columncreatorID" msprop:Generator_ColumnPropNameInRow="creatorID" msprop:Generator_ColumnPropNameInTable="creatorIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="numAI" msdata:ReadOnly="true" msprop:Generator_UserColumnName="numAI" msprop:Generator_ColumnVarNameInTable="columnnumAI" msprop:Generator_ColumnPropNameInRow="numAI" msprop:Generator_ColumnPropNameInTable="numAIColumn" type="xs:int" minOccurs="0" /> + <xs:element name="numWO" msdata:ReadOnly="true" msprop:Generator_UserColumnName="numWO" msprop:Generator_ColumnVarNameInTable="columnnumWO" msprop:Generator_ColumnPropNameInRow="numWO" msprop:Generator_ColumnPropNameInTable="numWOColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_testPass" msprop:Generator_UserTableName="db_testPass" msprop:Generator_RowDeletedName="db_testPassRowDeleted" msprop:Generator_RowChangedName="db_testPassRowChanged" msprop:Generator_RowClassName="db_testPassRow" msprop:Generator_RowChangingName="db_testPassRowChanging" msprop:Generator_RowEvArgName="db_testPassRowChangeEvent" msprop:Generator_RowEvHandlerName="db_testPassRowChangeEventHandler" msprop:Generator_TableClassName="db_testPassDataTable" msprop:Generator_TableVarName="tabledb_testPass" msprop:Generator_RowDeletingName="db_testPassRowDeleting" msprop:Generator_TablePropName="db_testPass"> <xs:complexType> <xs:sequence> - <xs:element name="testPassID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" /> - <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> + <xs:element name="testPassID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="testPassID" msprop:Generator_ColumnPropNameInRow="testPassID" msprop:Generator_ColumnVarNameInTable="columntestPassID" msprop:Generator_ColumnPropNameInTable="testPassIDColumn" type="xs:int" /> + <xs:element name="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="versionID" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="versionID" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="db_version" msprop:Generator_UserTableName="db_version" msprop:Generator_RowDeletedName="db_versionRowDeleted" msprop:Generator_RowChangedName="db_versionRowChanged" msprop:Generator_RowClassName="db_versionRow" msprop:Generator_RowChangingName="db_versionRowChanging" msprop:Generator_RowEvArgName="db_versionRowChangeEvent" msprop:Generator_RowEvHandlerName="db_versionRowChangeEventHandler" msprop:Generator_TableClassName="db_versionDataTable" msprop:Generator_TableVarName="tabledb_version" msprop:Generator_RowDeletingName="db_versionRowDeleting" msprop:Generator_TablePropName="db_version"> <xs:complexType> <xs:sequence> - <xs:element name="versionID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" /> - <xs:element name="productID" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" minOccurs="0" /> - <xs:element name="number" msprop:Generator_UserColumnName="number" msprop:Generator_ColumnVarNameInTable="columnnumber" msprop:Generator_ColumnPropNameInRow="number" msprop:Generator_ColumnPropNameInTable="numberColumn" minOccurs="0"> + <xs:element name="versionID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_UserColumnName="versionID" msprop:Generator_ColumnPropNameInRow="versionID" msprop:Generator_ColumnVarNameInTable="columnversionID" msprop:Generator_ColumnPropNameInTable="versionIDColumn" type="xs:int" /> + <xs:element name="productID" msprop:Generator_UserColumnName="productID" msprop:Generator_ColumnPropNameInRow="productID" msprop:Generator_ColumnVarNameInTable="columnproductID" msprop:Generator_ColumnPropNameInTable="productIDColumn" type="xs:int" minOccurs="0" /> + <xs:element name="number" msprop:Generator_UserColumnName="number" msprop:Generator_ColumnPropNameInRow="number" msprop:Generator_ColumnVarNameInTable="columnnumber" msprop:Generator_ColumnPropNameInTable="numberColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="code" msprop:Generator_UserColumnName="code" msprop:Generator_ColumnVarNameInTable="columncode" msprop:Generator_ColumnPropNameInRow="code" msprop:Generator_ColumnPropNameInTable="codeColumn" minOccurs="0"> + <xs:element name="code" msprop:Generator_UserColumnName="code" msprop:Generator_ColumnPropNameInRow="code" msprop:Generator_ColumnVarNameInTable="columncode" msprop:Generator_ColumnPropNameInTable="codeColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> - <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" minOccurs="0" /> - <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> - <xs:element name="productName" msprop:Generator_UserColumnName="productName" msprop:Generator_ColumnVarNameInTable="columnproductName" msprop:Generator_ColumnPropNameInRow="productName" msprop:Generator_ColumnPropNameInTable="productNameColumn" minOccurs="0"> + <xs:element name="active" msprop:Generator_UserColumnName="active" msprop:Generator_ColumnPropNameInRow="active" msprop:Generator_ColumnVarNameInTable="columnactive" msprop:Generator_ColumnPropNameInTable="activeColumn" type="xs:boolean" minOccurs="0" /> + <xs:element name="dateCreated" msprop:Generator_UserColumnName="dateCreated" msprop:Generator_ColumnPropNameInRow="dateCreated" msprop:Generator_ColumnVarNameInTable="columndateCreated" msprop:Generator_ColumnPropNameInTable="dateCreatedColumn" type="xs:dateTime" minOccurs="0" /> + <xs:element name="productName" msprop:Generator_UserColumnName="productName" msprop:Generator_ColumnPropNameInRow="productName" msprop:Generator_ColumnVarNameInTable="columnproductName" msprop:Generator_ColumnPropNameInTable="productNameColumn" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255" /> @@ -1217,25 +1329,25 @@ <xs:element name="db_roleProductUser" msprop:Generator_UserTableName="db_roleProductUser" msprop:Generator_RowDeletedName="db_roleProductUserRowDeleted" msprop:Generator_RowChangedName="db_roleProductUserRowChanged" msprop:Generator_RowClassName="db_roleProductUserRow" msprop:Generator_RowChangingName="db_roleProductUserRowChanging" msprop:Generator_RowEvArgName="db_roleProductUserRowChangeEvent" msprop:Generator_RowEvHandlerName="db_roleProductUserRowChangeEventHandler" msprop:Generator_TableClassName="db_roleProductUserDataTable" msprop:Generator_TableVarName="tabledb_roleProductUser" msprop:Generator_RowDeletingName="db_roleProductUserRowDeleting" msprop:Generator_TablePropName="db_roleProductUser"> <xs:complexType> <xs:sequence> - <xs:element name="userID" msdata:ReadOnly="true" msdata:A... [truncated message content] |
From: <ro...@us...> - 2006-08-11 21:59:23
|
Revision: 311 Author: rouquin Date: 2006-08-11 13:54:32 -0700 (Fri, 11 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=311&view=rev Log Message: ----------- Fixed the admin tree to correctly use Matt's Get/SetValue functions. Modified Paths: -------------- Website/Includes/AdministrationTree.ascx Website/Includes/AdministrationTree.ascx.cs Website/Includes/AssignmentsTree.ascx.cs Removed Paths: ------------- Website/AdminRole.aspx Website/Includes/RoleAdmin.ascx Website/Includes/RoleAdmin.ascx.cs Deleted: Website/AdminRole.aspx =================================================================== --- Website/AdminRole.aspx 2006-08-11 19:48:28 UTC (rev 310) +++ Website/AdminRole.aspx 2006-08-11 20:54:32 UTC (rev 311) @@ -1,12 +0,0 @@ -<%@ Page Language="C#" MasterPageFile="~/TCDB.master" AutoEventWireup="true" Title="TCDB: Administration" %> -<%@ Register Src="~/Includes/AdministrationTree.ascx" TagPrefix="admin" TagName="Tree" %> -<%@ Register Src="~/Includes/RoleAdmin.ascx" TagPrefix="admin" TagName="Role" %> - -<asp:Content ID="TreeContent" ContentPlaceHolderID="TreeContentPlaceHolder" runat="Server"> - <admin:Tree runat="server" ID="Tree" /> -</asp:Content> -<asp:Content ID="MainContent" ContentPlaceHolderID="MainContentPlaceHolder" runat="Server"> - <admin:Role ID="Role" runat="server" /> -</asp:Content> -<asp:Content ID="NotesContent" ContentPlaceHolderID="NotesContentPlaceHolder" runat="Server"> -</asp:Content> Modified: Website/Includes/AdministrationTree.ascx =================================================================== --- Website/Includes/AdministrationTree.ascx 2006-08-11 19:48:28 UTC (rev 310) +++ Website/Includes/AdministrationTree.ascx 2006-08-11 20:54:32 UTC (rev 311) @@ -1,9 +1,11 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeFile="AdministrationTree.ascx.cs" Inherits="TCDB.AdministrationTree" %> +<asp:CheckBox ID="showHidden" runat="server" Text="Show Hidden" AutoPostBack="True" + OnCheckedChanged="showHidden_CheckedChanged" OnLoad="showHidden_Load" OnInit="showHidden_Init" /> <asp:TreeView ID="AdminTree" runat="server" SelectedNodeStyle-CssClass="selectednode" OnTreeNodePopulate="AdminTree_TreeNodePopulate" OnTreeNodeCollapsed="AdminTree_TreeNodeCollapsed" - OnTreeNodeExpanded="AdminTree_TreeNodeExpanded" OnInit="AdminTree_Init" - OnSelectedNodeChanged="AdminTree_SelectedNodeChanged" ExpandDepth="1"> + OnTreeNodeExpanded="AdminTree_TreeNodeExpanded" OnInit="AdminTree_Init" OnSelectedNodeChanged="AdminTree_SelectedNodeChanged" + ExpandDepth="1"> <Nodes> <asp:TreeNode Text="Administration" Value="Admin" PopulateOnDemand="True" SelectAction="Expand" /> </Nodes> Modified: Website/Includes/AdministrationTree.ascx.cs =================================================================== --- Website/Includes/AdministrationTree.ascx.cs 2006-08-11 19:48:28 UTC (rev 310) +++ Website/Includes/AdministrationTree.ascx.cs 2006-08-11 20:54:32 UTC (rev 311) @@ -29,10 +29,9 @@ protected void AdminTree_Init(object sender, EventArgs args) { m_logg.Debug("Initializing admin tree"); - if (Session["AdminNodes"] == null) - Session.Add("AdminNodes", new ArrayList()); + if (Session[PREFIX + "Nodes"] == null) + Session.Add(PREFIX + "Nodes", new ArrayList()); } - protected void AdminTree_SelectedNodeChanged(object sender, EventArgs e) { TreeNode node = AdminTree.SelectedNode; @@ -85,26 +84,25 @@ } // } } - protected void AdminTree_TreeNodeExpanded(object sender, TreeNodeEventArgs e) { - ArrayList nodes = (ArrayList)Session["AdminNodes"]; + ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; if (!nodes.Contains(e.Node.ValuePath)) nodes.Add(e.Node.ValuePath); } protected void AdminTree_TreeNodeCollapsed(object sender, TreeNodeEventArgs e) { - ArrayList nodes = (ArrayList)Session["AdminNodes"]; + ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; int index = nodes.IndexOf(e.Node.ValuePath); if (index >= 0) nodes.RemoveAt(index); } - + protected void BuildProductList(TreeNode parent) { - ArrayList nodes = (ArrayList)Session["AdminNodes"]; + ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; List<Product> products = ProductDB.GetProductList(active); foreach (Product product in products) @@ -115,14 +113,9 @@ TreeNode newNode = new TreeNode(); newNode.Text = "<product>" + product.NAME + "</product>"; Help.Tree_SetValue(newNode, PREFIX + Constants.CODE_PRODUCT, product.ID.ToString()); - - // Set the PopulateOnDemand property to true so that the child nodes can be - // dynamically populated. newNode.PopulateOnDemand = true; - - // Set additional properties for the node. newNode.SelectAction = TreeNodeSelectAction.Expand; - newNode.NavigateUrl = "~/Product.aspx"; + newNode.NavigateUrl = "~/Product.aspx?"+Constants.CODE_PRODUCT + "=" +product.ID; if (!product.ACTIVE) newNode.Text = "<font class='deleted'>" + newNode.Text + "</font>"; @@ -135,7 +128,8 @@ } protected void BuildAdminList(TreeNode parent) { - ArrayList nodes = (ArrayList)Session["AdminNodes"]; + ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; + int productID = Convert.ToInt32(Help.Tree_GetValue(parent, PREFIX + Constants.CODE_PRODUCT)); TreeNode newNode; // Add Admin Settings @@ -173,7 +167,6 @@ newNode.Value = "roles"; newNode.PopulateOnDemand = true; newNode.SelectAction = TreeNodeSelectAction.Expand; - newNode.NavigateUrl = "~/AdminRole.aspx?" + Constants.CODE_PRODUCT + "=" + parent.Value; parent.ChildNodes.Add(newNode); if (nodes.Contains(newNode.ValuePath)) newNode.Expand(); @@ -213,27 +206,28 @@ parent.ChildNodes.Add(newNode); if (nodes.Contains(newNode.ValuePath)) newNode.Expand(); - } + } } protected void BuildReleaseList(TreeNode parent) { - int productID = Convert.ToInt32(parent.Parent.Value); - ArrayList nodes = (ArrayList)Session["AdminNodes"]; - List<Release> versions = VersionDB.GetVersionList(productID, active); + int productID = Convert.ToInt32(Help.Tree_GetValue(parent.Parent, PREFIX + Constants.CODE_PRODUCT)); + ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; + // Show hidden? + Nullable<bool> hidden = true; + if (showHidden.Checked) + hidden = null; + + List<Release> versions = VersionDB.GetVersionList(productID, hidden); foreach (Release version in versions) { // Create the new node. TreeNode newNode = new TreeNode(); newNode.Text = version.NUMBER; - newNode.Value = version.ID.ToString(); - - // Set the PopulateOnDemand property to true so that the child nodes can be dynamically populated. + Help.Tree_SetValue(newNode, PREFIX + Constants.CODE_VERSION, version.ID.ToString()); newNode.PopulateOnDemand = true; - - // Set additional properties for the node. newNode.SelectAction = TreeNodeSelectAction.Expand; - newNode.NavigateUrl = "~/Version.aspx?"+Constants.CODE_PRODUCT+"="+productID+"&" + Constants.CODE_VERSION + "=" + newNode.Value; + newNode.NavigateUrl = "~/Version.aspx?" + Constants.CODE_PRODUCT + "=" + productID + "&" + Constants.CODE_VERSION + "=" + version.ID; if (!version.ACTIVE) newNode.Text = "<font class='deleted'>" + newNode.Text + "</font>"; @@ -245,7 +239,7 @@ } protected void BuildTagList(TreeNode parent) { - ArrayList nodes = (ArrayList)Session["AdminNodes"]; + ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; /* // Populate Tags query = "SELECT * FROM tags WHERE productID="+e.Node.Parent.Value; @@ -278,8 +272,8 @@ } protected void BuildCategoryList(TreeNode parent) { - ArrayList nodes = (ArrayList)Session["AdminNodes"]; - int productID = Convert.ToInt32(parent.Value); + ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; + int productID = Convert.ToInt32(Help.Tree_GetValue(parent, PREFIX + Constants.CODE_PRODUCT)); TreeNode newNode; if (m_user.HasRight(Constants.RIGHTS_VERSION_VIEW, productID)) @@ -336,7 +330,6 @@ newNode.Value = "user"; newNode.PopulateOnDemand = true; newNode.SelectAction = TreeNodeSelectAction.Expand; - newNode.NavigateUrl = "~/AdminRole.aspx?" + Constants.CODE_PRODUCT + "=" + parent.Value; parent.ChildNodes.Add(newNode); if (nodes.Contains(newNode.ValuePath)) newNode.Expand(); @@ -344,7 +337,7 @@ } protected void BuildStatusGroupList(TreeNode parent) { - ArrayList nodes = (ArrayList)Session["AdminNodes"]; + ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; TreeNode newNode; // Action Item @@ -392,7 +385,7 @@ } protected void BuildLabList(TreeNode parent) { - ArrayList nodes = (ArrayList)Session["AdminNodes"]; + ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; /* // Populate Labs query = "SELECT * FROM lab"; @@ -426,27 +419,24 @@ } protected void BuildUserList(TreeNode parent) { - tcdbDataSetTableAdapters.db_roleProductUserTableAdapter userAdapter = new tcdbDataSetTableAdapters.db_roleProductUserTableAdapter(); - tcdbDataSet.db_roleProductUserDataTable userTable = userAdapter.GetData(null, Convert.ToInt32(parent.Parent.Value), true); + int productID = Convert.ToInt32(Help.Tree_GetValue(parent.Parent, PREFIX + Constants.CODE_PRODUCT)); int lastID = -1; - int productID = Convert.ToInt32(parent.Parent.Value); - foreach (tcdbDataSet.db_roleProductUserRow row in userTable) + List<User> users = ProductDB.TCDB_GetProductUsers(productID, null); + foreach (User user in users) { - if (lastID == row.userID) + if (lastID == user.ID) continue; else - lastID = row.userID; + lastID = user.ID; if (m_user.HasRight(Constants.RIGHTS_USER_VIEW_OTHER, productID)) { // Create the new node. TreeNode newNode = new TreeNode(); - newNode.Text = row.fullName; - newNode.Value = row.userID.ToString(); ; - newNode.PopulateOnDemand = true; - newNode.SelectAction = TreeNodeSelectAction.Expand; - newNode.NavigateUrl = "~/UserSettings.aspx?" + Constants.CODE_PRODUCT + "=" + productID + "&" + Constants.CODE_USER + "=" + newNode.Value; + newNode.Text = user.FULLNAME; + Help.Tree_SetValue(newNode, PREFIX + Constants.CODE_USER, user.ID.ToString()); + newNode.NavigateUrl = "~/UserSettings.aspx?" + Constants.CODE_PRODUCT + "=" + productID + "&" + Constants.CODE_USER + "=" + user.ID; parent.ChildNodes.Add(newNode); newNode.Expand(); } @@ -455,18 +445,18 @@ protected void BuildAllUserList(TreeNode parent) { List<User> users = UserDB.TCDB_GetUserList(active); - int productID = Convert.ToInt32(parent.Parent.Value); + int productID = Convert.ToInt32(Help.Tree_GetValue(parent.Parent, PREFIX + Constants.CODE_PRODUCT)); foreach (User user in users) { if (m_user.HasRight(Constants.RIGHTS_USER_VIEW_OTHER, productID)) { - TreeNode child = new TreeNode(); - child.Text = user.FULLNAME; - child.Value = user.ID.ToString(); - child.NavigateUrl = "~/UserSettings.aspx?" + Constants.CODE_PRODUCT + "=" + Constants.PRODUCT_SITEID + "&" + Constants.CODE_USER + "=" + child.Value; + TreeNode newNode = new TreeNode(); + newNode.Text = user.FULLNAME; + Help.Tree_SetValue(newNode, PREFIX + Constants.CODE_USER, user.ID.ToString()); + newNode.NavigateUrl = "~/UserSettings.aspx?" + Constants.CODE_PRODUCT + "=" + Constants.PRODUCT_SITEID + "&" + Constants.CODE_USER + "=" + user.ID; - parent.ChildNodes.Add(child); + parent.ChildNodes.Add(newNode); } } } @@ -506,42 +496,41 @@ } protected void BuildAllRolesList(TreeNode parent) { - tcdbDataSetTableAdapters.db_roleTableAdapter rAdapter = new tcdbDataSetTableAdapters.db_roleTableAdapter(); - tcdbDataSet.db_roleDataTable rTable = rAdapter.GetData(null, null, active); + List<Role> roles = RightDB.TCDB_GetRoleList(active); - foreach (tcdbDataSet.db_roleRow row in rTable) + foreach (Role role in roles) { - TreeNode child = new TreeNode(); - child.Text = row.roleName; - child.Value = row.roleID.ToString(); - child.NavigateUrl = "~/Role.aspx?" + Constants.CODE_ROLE + "=" + child.Value; - if (!row.active) - child.Text = "<font class='deleted'>" + child.Text + "</font>"; + TreeNode newNode = new TreeNode(); + newNode.Text = role.NAME; + Help.Tree_SetValue(newNode, PREFIX + Constants.CODE_ROLE, role.ID.ToString()); + newNode.NavigateUrl = "~/Role.aspx?" + Constants.CODE_ROLE + "=" + role.ID; + if (!role.ACTIVE) + newNode.Text = "<font class='deleted'>" + newNode.Text + "</font>"; - parent.ChildNodes.Add(child); + parent.ChildNodes.Add(newNode); } } protected void BuildAllRightsList(TreeNode parent) { - List<Right> rights = RightDB.TCDB_GetRightList(active); + List<Right> rights = RightDB.TCDB_GetRightList(active); - foreach (Right right in rights) + foreach (Right right in rights) { - TreeNode child = new TreeNode(); - child.Text = right.NAME; - child.Value = right.ID.ToString(); - child.NavigateUrl = "~/Right.aspx?" + Constants.CODE_RIGHT + "=" + child.Value; - if (!right.ACTIVE) - child.Text = "<font class='deleted'>" + child.Text + "</font>"; + TreeNode newNode = new TreeNode(); + newNode.Text = right.NAME; + Help.Tree_SetValue(newNode, PREFIX + Constants.CODE_RIGHT, right.ID.ToString()); + newNode.NavigateUrl = "~/Right.aspx?" + Constants.CODE_RIGHT + "=" + right.ID; + if (!right.ACTIVE) + newNode.Text = "<font class='deleted'>" + newNode.Text + "</font>"; - parent.ChildNodes.Add(child); + parent.ChildNodes.Add(newNode); } } protected void BuildVersionCategories(TreeNode parent) { - ArrayList nodes = (ArrayList)Session["AdminNodes"]; + ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; TreeNode newNode; - int productID = Convert.ToInt32(parent.Parent.Parent.Value); + int productID = Convert.ToInt32(Help.Tree_GetValue(parent.Parent.Parent, PREFIX + Constants.CODE_PRODUCT)); if (m_user.HasRight(Constants.RIGHTS_TESTPASS_VIEW, productID)) { @@ -584,7 +573,7 @@ } protected void BuildStatusList(TreeNode parent) { - ArrayList nodes = (ArrayList)Session["AdminNodes"]; + ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; /* // Populate status query = "SELECT * FROM status where statusGroup='" + e.Node.Value+"'"; @@ -617,7 +606,7 @@ } protected void BuildComputerList(TreeNode parent) { - ArrayList nodes = (ArrayList)Session["AdminNodes"]; + ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; /* // Populate computer query = "SELECT * FROM computer WHERE labID="+e.Node.Value; @@ -648,48 +637,24 @@ } */ } - protected void BuildRightsList(TreeNode parent) - { - ArrayList nodes = (ArrayList)Session["AdminNodes"]; - tcdbDataSetTableAdapters.db_roleRightTableAdapter rightAdapter = new tcdbDataSetTableAdapters.db_roleRightTableAdapter(); - tcdbDataSet.db_roleRightDataTable rightTable = rightAdapter.GetData(Convert.ToInt32(parent.Value), true); - - // Populate Rights - foreach (tcdbDataSet.db_roleRightRow row in rightTable) - { - // Create the new node. - TreeNode newNode = new TreeNode(); - newNode.Text = "Right: " + row.rightName; - newNode.Value = row.rightsID.ToString(); - - // Set the PopulateOnDemand property to true so that the child nodes can be - // dynamically populated. - newNode.PopulateOnDemand = true; - - // Set additional properties for the node. - newNode.SelectAction = TreeNodeSelectAction.Expand; - newNode.NavigateUrl = "~/Right.aspx?" + Constants.CODE_RIGHT + "=" + newNode.Value; - - // Add the new node to the ChildNodes collection of the parent node. - parent.ChildNodes.Add(newNode); - newNode.Expand(); - } - } protected void BuildBuildList(TreeNode parent) { - ArrayList nodes = (ArrayList)Session["AdminNodes"]; - int versionID = Convert.ToInt32(parent.Parent.Value); - List<Build> builds = VersionDB.GetBuildList(versionID, active); + ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; + int versionID = Convert.ToInt32(Help.Tree_GetValue(parent.Parent, PREFIX + Constants.CODE_PRODUCT)); + // Show hidden? + Nullable<bool> hidden = true; + if (showHidden.Checked) + hidden = null; + + List<Build> builds = VersionDB.GetBuildList(versionID, hidden); foreach (Build build in builds) { // Create the new node. TreeNode newNode = new TreeNode(); newNode.Text = build.NUMBER; - newNode.Value = build.ID.ToString(); - newNode.PopulateOnDemand = true; - newNode.SelectAction = TreeNodeSelectAction.Expand; - newNode.NavigateUrl = "~/Build.aspx?"+Constants.CODE_BUILD+"=" + newNode.Value; + Help.Tree_SetValue(newNode, PREFIX + Constants.CODE_BUILD, build.ID.ToString()); + newNode.NavigateUrl = "~/Build.aspx?" + Constants.CODE_BUILD + "=" + build.ID; if (!build.ACTIVE) newNode.Text = "<font class='deleted'>" + newNode.Text + "</font>"; @@ -699,7 +664,7 @@ } protected void BuildTestPassList(TreeNode parent) { - ArrayList nodes = (ArrayList)Session["AdminNodes"]; + ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; /* // Populate TestPass query = "SELECT * FROM testPass where versionID=" + e.Node.Parent.Value; @@ -732,7 +697,7 @@ } protected void BuildPlatformList(TreeNode parent) { - ArrayList nodes = (ArrayList)Session["AdminNodes"]; + ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; /* // Populate Platforms query = "SELECT platform.platformID,os.friendlyName + ' ('+architecture.name+')' AS platformName "+ @@ -770,7 +735,7 @@ } protected void BuildOSList(TreeNode parent) { - ArrayList nodes = (ArrayList)Session["AdminNodes"]; + ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; /* // Populate os query = "SELECT os.friendlyName, os.osID FROM os INNER JOIN platform ON platform.osID=os.osID "+ @@ -804,7 +769,7 @@ } protected void BuildArchitectureList(TreeNode parent) { - ArrayList nodes = (ArrayList)Session["AdminNodes"]; + ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; /* ResultsDataSet.Clear(); // Populate architecture @@ -840,7 +805,7 @@ } protected void AdminTree_TreeNodePopulate(object sender, TreeNodeEventArgs e) { - ArrayList nodes = (ArrayList)Session["AdminNodes"]; + ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; // Call the appropriate method to populate a node at a particular level. switch (e.Node.Depth) @@ -849,7 +814,7 @@ BuildProductList(e.Node); break; case 1: - if (e.Node.Value == Constants.PRODUCT_SITEID.ToString()) + if (Help.Tree_GetValue(e.Node, PREFIX + Constants.CODE_PRODUCT) == Constants.PRODUCT_SITEID.ToString()) BuildAdminList(e.Node); else BuildCategoryList(e.Node); @@ -883,8 +848,6 @@ BuildStatusList(e.Node); else if (e.Node.NavigateUrl.Contains("Lab")) BuildComputerList(e.Node); - else if (e.Node.NavigateUrl.Contains("Role")) - BuildRightsList(e.Node); break; case 4: if (e.Node.Value == "build") @@ -903,5 +866,39 @@ break; } } + + protected void showHidden_Init(object sender, EventArgs e) + { + if (!m_user.HasRight(Constants.RIGHTS_VERSION_VIEW, Constants.PRODUCT_ANYID) || + !m_user.HasRight(Constants.RIGHTS_BUILD_VIEW, Constants.PRODUCT_ANYID) || + !m_user.HasRight(Constants.RIGHTS_TESTPASS_VIEW, Constants.PRODUCT_ANYID)) + showHidden.Visible = false; + } + protected void showHidden_Load(object sender, EventArgs e) + { + if (Session[PREFIX_TAB + "showHidden"] == null) + Session[PREFIX_TAB + "showHidden"] = false; + bool show = Convert.ToBoolean(Session[PREFIX_TAB + "showHidden"]); + + if (showHidden.Checked != show) + { + showHidden.Checked = show; + showHidden_CheckedChanged(sender, e); + } + } + protected void showHidden_CheckedChanged(object sender, EventArgs e) + { + ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; + + foreach (TreeNode node in AdminTree.Nodes) + { + if (nodes.Contains(node.ValuePath)) + { + node.ChildNodes.Clear(); + AdminTree_TreeNodePopulate(AdminTree, new TreeNodeEventArgs(node)); + } + } + Session[PREFIX_TAB + "showHidden"] = showHidden.Checked; + } } } Modified: Website/Includes/AssignmentsTree.ascx.cs =================================================================== --- Website/Includes/AssignmentsTree.ascx.cs 2006-08-11 19:48:28 UTC (rev 310) +++ Website/Includes/AssignmentsTree.ascx.cs 2006-08-11 20:54:32 UTC (rev 311) @@ -39,7 +39,6 @@ AssignmentTree.Visible = false; } } - protected void AssignmentTree_TreeNodeCollapsed(object sender, TreeNodeEventArgs e) { ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; @@ -51,7 +50,6 @@ nodes.RemoveAt(index); } } - protected void AssignmentTree_TreeNodeExpanded(object sender, TreeNodeEventArgs e) { ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; @@ -62,7 +60,6 @@ m_logg.Debug("Expanding node [" + nodes[nodes.IndexOf(e.Node.ValuePath)].ToString() + "]"); } } - protected void AssignmentTree_SelectedNodeChanged(object sender, EventArgs e) { TreeNode node = AssignmentTree.SelectedNode; @@ -129,45 +126,6 @@ } } - protected void AssignmentTree_TreeNodePopulate(object sender, TreeNodeEventArgs e) - { - m_logg.Debug("Populating tree"); - if (AssignmentTree.Visible != true) - return; - - // Call the appropriate method to populate a node at a particular level. - try - { - String nodeType = Help.Tree_GetValue(e.Node, Constants.CODE_TYPE); - if (nodeType == null) nodeType = Constants.CODE_ROOT; - switch (nodeType) - { - case Constants.CODE_ROOT: - BuildMyAssignmentsNode(e.Node); - BuildMyCreatedAssignmentsNode(e.Node); - BuildProductList(e.Node); - break; - case Constants.CODE_PRODUCT: - BuildUserList(e.Node); - break; - case Constants.CODE_USER: - BuildAssignmentList(e.Node); - break; - case Constants.CODE_CREATED: - BuildCreatedUserList(e.Node); - break; - default: - break; - } - } - catch - { - BuildMyAssignmentsNode(e.Node); - BuildMyCreatedAssignmentsNode(e.Node); - BuildProductList(e.Node); - } - } - private void BuildProductList(TreeNode parent) { ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; @@ -195,7 +153,6 @@ AssignmentTree_TreeNodePopulate(AssignmentTree, new TreeNodeEventArgs(child)); } } - private void BuildMyAssignmentsNode(TreeNode parent) { // *************************** @@ -220,7 +177,6 @@ } } } - private void BuildMyCreatedAssignmentsNode(TreeNode parent) { // *************************** @@ -243,7 +199,6 @@ AssignmentTree_TreeNodePopulate(AssignmentTree, new TreeNodeEventArgs(created)); } } - private void BuildCreatedUserList(TreeNode parent) { m_logg.Debug("Building my created user list"); @@ -277,7 +232,6 @@ AssignmentTree_TreeNodePopulate(AssignmentTree, new TreeNodeEventArgs(userNode)); } } - private void BuildUserList(TreeNode parent) { m_logg.Debug("Building user list"); @@ -320,7 +274,6 @@ if (parent.ChildNodes.Count == 0 || (parent.ChildNodes.Count == 1 && Help.Tree_GetValue(parent.ChildNodes[0], Constants.CODE_VALUE) == m_user.ID.ToString())) parent.Parent.ChildNodes.Remove(parent); } - private void BuildAssignmentList(TreeNode parent) { m_logg.Debug("Building created assignment list"); @@ -403,7 +356,45 @@ parent.Parent.ChildNodes.Remove(parent); } } + protected void AssignmentTree_TreeNodePopulate(object sender, TreeNodeEventArgs e) + { + m_logg.Debug("Populating tree"); + if (AssignmentTree.Visible != true) + return; + // Call the appropriate method to populate a node at a particular level. + try + { + String nodeType = Help.Tree_GetValue(e.Node, Constants.CODE_TYPE); + if (nodeType == null) nodeType = Constants.CODE_ROOT; + switch (nodeType) + { + case Constants.CODE_ROOT: + BuildMyAssignmentsNode(e.Node); + BuildMyCreatedAssignmentsNode(e.Node); + BuildProductList(e.Node); + break; + case Constants.CODE_PRODUCT: + BuildUserList(e.Node); + break; + case Constants.CODE_USER: + BuildAssignmentList(e.Node); + break; + case Constants.CODE_CREATED: + BuildCreatedUserList(e.Node); + break; + default: + break; + } + } + catch + { + BuildMyAssignmentsNode(e.Node); + BuildMyCreatedAssignmentsNode(e.Node); + BuildProductList(e.Node); + } + } + protected void statusComplete_CheckedChanged(object sender, EventArgs e) { ArrayList nodes = (ArrayList)Session[PREFIX + "Nodes"]; @@ -421,7 +412,6 @@ Session[PREFIX_TAB + "showAICompleted"] = statusComplete.Checked; Session[PREFIX_TAB + "showAICompleted"] = statusComplete.Checked; } - protected void statusComplete_Load(object sender, EventArgs e) { if (Session[PREFIX_TAB + "showCompleted"] == null) Deleted: Website/Includes/RoleAdmin.ascx =================================================================== --- Website/Includes/RoleAdmin.ascx 2006-08-11 19:48:28 UTC (rev 310) +++ Website/Includes/RoleAdmin.ascx 2006-08-11 20:54:32 UTC (rev 311) @@ -1,27 +0,0 @@ -<%@ Control Language="C#" AutoEventWireup="true" CodeFile="RoleAdmin.ascx.cs" Inherits="TCDB.RoleAdmin" %> -<table width="700"> - <tr> - <td align="center" valign="middle" style="height: 101px"> - <asp:DropDownList ID="roleList" runat="server" OnInit="roleList_Init" AutoPostBack="True"> - </asp:DropDownList> - <asp:LinkButton ID="viewRoleBtn" runat="server" CommandName="viewRole" OnCommand="viewRole" - OnLoad="viewRoleBtn_Load">View Role</asp:LinkButton> - - <asp:LinkButton ID="addRoleBtn" runat="server" CommandName="addRole" OnCommand="addRole" - OnLoad="addRoleBtn_Load">Add User To Role</asp:LinkButton> - <br /> - <br /><asp:DropDownList ID="rightsList" runat="server" OnInit="rightsList_Init" AutoPostBack="True"> - </asp:DropDownList> - <asp:LinkButton ID="viewRightBtn" runat="server" CommandName="viewRight" OnCommand="viewRight">View Right</asp:LinkButton> - - <asp:LinkButton ID="editRightsBtn" runat="server" CommandName="editRight" OnCommand="addRight">Edit Right</asp:LinkButton> - <br /> - <br /> - <asp:LinkButton ID="newRoleBtn" runat="server" CommandName="newRole" OnCommand="newRole" - OnInit="newRole_Init">New User Role</asp:LinkButton> - - <asp:LinkButton ID="newRightBtn" runat="server" CommandName="newRight" OnCommand="newRight" - OnInit="newRight_Init">New User Right</asp:LinkButton><br /> - </td> - </tr> -</table> Deleted: Website/Includes/RoleAdmin.ascx.cs =================================================================== --- Website/Includes/RoleAdmin.ascx.cs 2006-08-11 19:48:28 UTC (rev 310) +++ Website/Includes/RoleAdmin.ascx.cs 2006-08-11 20:54:32 UTC (rev 311) @@ -1,120 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; -using System.Collections.Generic; -using TCDB.Code; - - -namespace TCDB -{ - public partial class RoleAdmin : SiteUserControl - { - private static Logger m_logg = new Logger("TCDB.RoleAdmin"); - int productID = Convert.ToInt32(HttpContext.Current.Request.QueryString[Constants.CODE_PRODUCT]); - - protected void Page_Load(object sender, EventArgs e) - { - m_logg.Debug("Loading page Role Admin"); - - if (productID == 0) - productID = Constants.PRODUCT_ANYID; - } - - protected void viewRole(object sender, CommandEventArgs e) - { - Response.Redirect("Role.aspx?" + Constants.CODE_PRODUCT + "=" + productID + "&" + Constants.CODE_ROLE + "=" + roleList.SelectedValue); - } - protected void addRole(object sender, CommandEventArgs e) - { - Response.Redirect("RoleAssignments.aspx?" + Constants.CODE_PRODUCT + "=" + productID + "&" + Constants.CODE_ROLE + "=" + roleList.SelectedValue); - } - protected void newRole(object sender, CommandEventArgs e) - { - Response.Redirect("Role.aspx?mode=new&" + Constants.CODE_PRODUCT + "=" + productID); - } - protected void newRight(object sender, CommandEventArgs e) - { - Response.Redirect("Right.aspx?mode=new&" + Constants.CODE_PRODUCT + "=" + productID); - } - protected void addRight(object sender, CommandEventArgs e) - { - Response.Redirect("Right.aspx?mode=edit&" + Constants.CODE_PRODUCT + "=" + productID + "&" + Constants.CODE_RIGHT + "=" + rightsList.SelectedValue); - } - protected void viewRight(object sender, CommandEventArgs e) - { - Response.Redirect("Right.aspx?" + Constants.CODE_PRODUCT + "=" + productID + "&" + Constants.CODE_RIGHT + "=" + rightsList.SelectedValue); - } - - protected void newRole_Init(object sender, EventArgs e) - { - if (!m_user.HasRight(Constants.RIGHTS_ROLE_CREATE, Constants.PRODUCT_ANYID)) - newRoleBtn.Visible = false; - } - protected void newRight_Init(object sender, EventArgs e) - { - if (!m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) - newRightBtn.Visible = false; - } - - protected void roleList_Init(object sender, EventArgs e) - { - tcdbDataSetTableAdapters.db_roleTableAdapter rAdapter = new tcdbDataSetTableAdapters.db_roleTableAdapter(); - tcdbDataSet.db_roleDataTable rTable = rAdapter.GetData(null, null, active); - - foreach (tcdbDataSet.db_roleRow row in rTable) - { - ListItem item = new ListItem(row.roleName, row.roleID.ToString()); - if (!row.active) - item.Attributes.CssStyle.Add("text-decoration", "line-through"); - - roleList.Items.Add(item); - } - } - protected void rightsList_Init(object sender, EventArgs e) - { - if (!m_user.HasRight(Constants.RIGHTS_RIGHTS_VIEW, Constants.PRODUCT_ANYID)) - { - rightsList.Visible = false; - viewRightBtn.Visible = false; - editRightsBtn.Visible = false; - - return; - } - if (!m_user.HasRight(Constants.RIGHTS_DEV_ACCESS)) - editRightsBtn.Visible = false; - - List<Right> rights = RightDB.TCDB_GetRightList(active); - - foreach (Right right in rights) - { - ListItem item = new ListItem(right.NAME, right.ID.ToString()); - if (!right.ACTIVE) - item.Attributes.CssStyle.Add("text-decoration", "line-through"); - - rightsList.Items.Add(item); - } - } - - protected void addRoleBtn_Load(object sender, EventArgs e) - { - String role = roleList.SelectedItem.Text; - - if (!m_user.HasRight(Constants.RIGHTS_ROLE_EDIT_USERS, productID)) - addRoleBtn.Visible = false; - } - protected void viewRoleBtn_Load(object sender, EventArgs e) - { - String role = roleList.SelectedItem.Text; - - if (!(m_user.HasRole(role, productID) && m_user.HasRight(Constants.RIGHTS_ROLE_VIEW_MY, productID)) && - !m_user.HasRight(Constants.RIGHTS_ROLE_VIEW_OTHER, productID)) - viewRoleBtn.Visible = false; - } - } -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |