I have a radgrid in a tabstrip radmultipage and when i click on the add new record the grid returns completely blank. This is a very urgent matter, so if someone could help me asap, it would be greatly appreciated. All of the grids in the tabstrip are reacting the same way.
aspx code:
.cs
aspx code:
<%@ Page Language="C#" MasterPageFile="~/MasterPages/SiteMaster.master" Title="Manage Provider" AutoEventWireup="true" Inherits="Pgi.Hub.Administration.providerAddEdit" Codebehind="providerAddEdit.aspx.cs" %> |
<%@ Register TagPrefix="radM" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %> |
<asp:Content id="Content1" ContentPlaceHolderID="javascript" runat="server"> |
<script type="text/javascript"> |
$(document).ready( |
function() { |
$("#<%=chkModeratorSameAsTitle.ClientID %>").click(chkModeratorSameAsTitle_click); |
$("#<%=chkAttendeeSameAsTitle.ClientID %>").click(chkAttendeeSameAsTitle_click); |
} |
); |
function chkModeratorSameAsTitle_click() { |
var txtModerator = $get('<%= txtDefaultModeratorEmailSubject.ClientID %>'); |
if (eval($get('<%= chkModeratorSameAsTitle.ClientID %>')).checked) { |
txtModerator.disabled = true; |
} |
else { |
txtModerator.disabled = false; |
} |
} |
function chkAttendeeSameAsTitle_click() { |
var txtAttendee = $get('<%= txtDefaultAttendeeEmailSubject.ClientID %>'); |
if (eval($get('<%= chkAttendeeSameAsTitle.ClientID %>')).checked) { |
txtAttendee.disabled = true; |
} |
else { |
txtAttendee.disabled = false; |
} |
} |
function ValidateDefaultModeratorEmailSubject(source, args) { |
var chkModerator = $get('<%= chkModeratorSameAsTitle.ClientID %>'); |
args.IsValid = false; |
if ((chkModerator.checked) || |
((!chkModerator.checked) && jQuery.trim(args.Value).length > 0)) { |
args.IsValid = true; |
} |
} |
function ValidateDefaultAttendeeEmailSubject(source, args) { |
var chkAttendee = $get('<%= chkAttendeeSameAsTitle.ClientID %>'); |
args.IsValid = false; |
if ((chkAttendee.checked) || |
((!chkAttendee.checked) && jQuery.trim(args.Value).length > 0)) { |
args.IsValid = true; |
} |
} |
var hasChanges, inputs, dropdowns, editedRow; |
function RowClick(sender, eventArgs) { |
if (editedRow && hasChanges) { |
hasChanges = false; |
if (confirm("Update changes?")) { |
$find("<%= radGridHelpLinks.MasterTableView.ClientID %>").updateItem(editedRow); |
} |
} |
} |
function RowDblClick(sender, eventArgs) { |
editedRow = eventArgs.get_itemIndexHierarchical(); |
$find("<%= radGridHelpLinks.MasterTableView.ClientID %>").editItem(editedRow); |
} |
function GridCommand(sender, args) { |
if (args.get_commandName() != "Edit") { |
editedRow = null; |
} |
} |
function GridCreated(sender, eventArgs) { |
var gridElement = sender.get_element(); |
var elementsToUse = []; |
inputs = gridElement.getElementsByTagName("input"); |
for (var i = 0; i < inputs.length; i++) { |
var lowerType = inputs[i].type.toLowerCase(); |
if (lowerType == "hidden" || lowerType == "button") { |
continue; |
} |
Array.add(elementsToUse, inputs[i]); |
inputs[i].onchange = TrackChanges; |
} |
setTimeout(function() { if (elementsToUse[0]) elementsToUse[0].focus(); }, 100); |
} |
function TrackChanges(e) { |
hasChanges = true; |
} |
</script> |
</asp:Content> |
<asp:Content ContentPlaceHolderID="mainContent" ID="pageContent" runat="server"> |
<netspoke:pageHeading |
ID="pageheading" |
runat="server" |
ShowRequiredText="true" /> |
<netspoke:resultHandler runat="server" ID="resultHandler" /> |
<asp:ValidationSummary |
runat="server" |
ID="validationSummary" |
DisplayMode="BulletList" |
ShowMessageBox="false" |
ShowSummary="true" |
CssClass="warningResponse" |
HeaderText="Unable to save the provider. The following problems were encountered with your information:" |
ValidationGroup="providerValidationGroup"/> |
<radM:RadTabStrip ID="tabstripProviderOptions" runat="server" Orientation="HorizontalTop" |
SelectedIndex="0" CausesValidation="true" ValidationGroup="providerValidationGroup" MultiPageID="MultiPageBranding" Align="Left" |
AutoPostBack="true" Skin="Vista" OnTabClick="onTabClick"> |
<Tabs> |
<radM:RadTab Text="Add Provider" Value="1" runat="server" PageViewID="addProvider"> |
</radM:RadTab> |
<radM:RadTab Text="Linked Enterprises" Value="2" runat="server" PageViewID="linkedEnterprises"> |
</radM:RadTab> |
<radM:RadTab runat="server" Value="3" PageViewID="netspokeOptions"> |
</radM:RadTab> |
<radM:RadTab Text="Branding Options" Value="4" runat="server" SelectedIndex="0"> |
<Tabs> |
<radM:RadTab Text="Web Conf. Logo" Value="5" runat="server" PageViewID="webConfLogo"></radM:RadTab> |
<radM:RadTab Text="Hub Logo" Value="6" runat="server" PageViewID="hubLogo"></radM:RadTab> |
<radM:RadTab Text="Marketing Links" Value="7" runat="server" PageViewID="marketingLinks"></radM:RadTab> |
<radM:RadTab Text="Marketing Images" Value="8" runat="server" PageViewID="marketingImages"></radM:RadTab> |
<radM:RadTab Text="Application Title" Value="9" runat="server" PageViewID="appTitle"></radM:RadTab> |
<radM:RadTab Text="Getting Started Text" Value="10" runat="server" PageViewID="gettingStartedText"></radM:RadTab> |
<radM:RadTab Text="Help Links" Value="11" runat="server" PageViewID="helpLinks"></radM:RadTab> |
<radM:RadTab Text="Quick Links" Value="12" runat="server" PageViewID="quickLinks"></radM:RadTab> |
<radM:RadTab Text="Skin" Value="13" runat="server" PageViewID="skin"></radM:RadTab> |
</Tabs> |
</radM:RadTab> |
</Tabs> |
</radM:RadTabStrip> |
<radM:RadMultiPage ID="MultiPageBranding" runat="server" SelectedIndex="0" CssClass="multiPage"> |
<radM:RadPageView runat="server" ID="addProvider"> |
<div class="yui-gd"> |
<div class="yui-g first leftDiv"> |
<asp:Localize ID="locProviderName" runat="server" Text="Provider Name:" /> <span |
class="required">*</span> |
<br /> |
<asp:Localize ID="locProviderType" runat="server" Text="Provider Type:" /> <span |
class="required">*</span> |
<br /> |
<asp:Localize ID="locHubGroupDomain" runat="server" Text="Hub Group Domain:" /> <span |
class="required">*</span> |
<br /> |
<asp:Localize ID="locDefaultMeetingServer" Text="Default Meeting Server:" runat="server" /> <span |
class="required">*</span> |
<br /> |
<asp:Localize ID="locSecureDefaultMeetingServer" Text="Secure Default Meeting Server:" |
runat="server" /> <span class="required">*</span> |
<br /> |
<asp:Localize ID="locAppShareHost" Text="App Share Host:" runat="server" /> <span |
class="required">*</span> |
<br /> |
<asp:Localize ID="locCustomerHomePage" runat="server" Text="Customer Home Page:" /> <span |
class="required">*</span> |
<br /> |
<asp:Localize ID="locDefaultConferenceTitle" runat="server" Text="Default Conference Title:" /> <span |
class="required">*</span> |
<br /> |
<asp:Localize ID="locDefaultModeratorEmailSubject" runat="server" Text="Default Moderator Email Subject:" /> <span |
class="required">*</span> |
<br /> |
<asp:Localize ID="locDefaultAttendeeEmailSubject" runat="server" Text="Default Attendee Email Subject:" /> <span |
class="required">*</span> |
</div> |
<div class="yui-g rightDiv"> |
<asp:TextBox runat="server" ID="txtProviderName" Width="214px" /> |
<asp:RequiredFieldValidator ID="rvProviderName" runat="server" ControlToValidate="txtProviderName" |
Display="Dynamic" ErrorMessage="Provider Name is required" SetFocusOnError="True" ValidationGroup="providerValidationGroup"></asp:RequiredFieldValidator> |
|
<asp:RegularExpressionValidator ID="revProviderName" runat="server" ErrorMessage="Only alphanumeric characters and spaces allowed." |
ControlToValidate="txtProviderName" Display="Dynamic" SetFocusOnError="True" |
ValidationExpression="^[0-9a-zA-Z ]+$" ValidationGroup="providerValidationGroup"></asp:RegularExpressionValidator> |
<br /> |
<asp:DropDownList ID="ddlProviderType" runat="server" /> |
<br /> |
<asp:TextBox ID="txtHubGroupDomain" runat="server" onchange="SetText()" Width="214px" /> |
<asp:RequiredFieldValidator ID="rvHubGrpDomain" runat="server" ControlToValidate="txtHubGroupDomain" |
Display="Dynamic" ErrorMessage="Hub Group Domain is required" SetFocusOnError="True" ValidationGroup="providerValidationGroup"></asp:RequiredFieldValidator> |
|
<asp:RegularExpressionValidator ID="revHubGroupDomain" runat="server" ErrorMessage="Not a valid domain name." |
ControlToValidate="txtHubGroupDomain" Display="Dynamic" SetFocusOnError="True" |
ValidationExpression="^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$" ValidationGroup="providerValidationGroup"></asp:RegularExpressionValidator> |
<br /> |
<asp:TextBox ID="txtDefualtMeetingServer" runat="server" Width="214px" /> |
<input id="inpMeetingServerAppend" readonly="readonly" runat="server" type="text" /> |
<asp:RequiredFieldValidator ID="rvDefMtngServer" runat="server" ControlToValidate="txtDefualtMeetingServer" |
Display="Dynamic" ErrorMessage="Default Meeting Server is required" SetFocusOnError="True" ValidationGroup="providerValidationGroup"></asp:RequiredFieldValidator> |
|
<asp:RegularExpressionValidator ID="revdefMeetingServer" runat="server" ErrorMessage="Only numbers, letters, or dashes allowed." |
ControlToValidate="txtDefualtMeetingServer" Display="Dynamic" SetFocusOnError="True" |
ValidationExpression="(^[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]$)" ValidationGroup="providerValidationGroup"></asp:RegularExpressionValidator> |
<br /> |
<asp:TextBox ID="txtSecureDefaultMeetingServer" runat="server" Width="214px" /> |
<input id="inpSecureMeetingServerAppend" readonly="readonly" runat="server" type="text" /> |
<asp:RequiredFieldValidator ID="rvSecDefMtngServer" runat="server" ControlToValidate="txtSecureDefaultMeetingServer" |
Display="Dynamic" ErrorMessage="Secure Default Meeting Server is required" SetFocusOnError="True" ValidationGroup="providerValidationGroup"></asp:RequiredFieldValidator> |
|
<asp:RegularExpressionValidator ID="revSecDefMeetingServer" runat="server" ErrorMessage="Only numbers, letters, or dashes allowed." |
ControlToValidate="txtSecureDefaultMeetingServer" Display="Dynamic" SetFocusOnError="True" |
ValidationExpression="(^[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]$)" ValidationGroup="providerValidationGroup"></asp:RegularExpressionValidator> |
<br /> |
<asp:TextBox ID="txtAppShareHost" runat="server" Width="214px" /> |
<input id="inpAppShareHostAppend" readonly="readonly" runat="server" type="text" /> |
<asp:RequiredFieldValidator ID="rvAppShareHost" runat="server" ControlToValidate="txtAppShareHost" |
Display="Dynamic" ErrorMessage="App Share Host is required" SetFocusOnError="True" ValidationGroup="providerValidationGroup"></asp:RequiredFieldValidator> |
<asp:RegularExpressionValidator ID="revAppShareHost" runat="server" ErrorMessage="Only numbers, letters, or dashes allowed." |
ControlToValidate="txtAppShareHost" Display="Dynamic" SetFocusOnError="True" |
ValidationExpression="(^[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]$)" ValidationGroup="providerValidationGroup"></asp:RegularExpressionValidator> |
<br /> |
<asp:TextBox ID="txtCustomerHomePage" runat="server" Width="214px" /> |
<asp:RequiredFieldValidator ID="rvCustomerHomePage" runat="server" ControlToValidate="txtCustomerHomePage" |
Display="Dynamic" ErrorMessage="Customer Home Page is required" SetFocusOnError="True" ValidationGroup="providerValidationGroup"></asp:RequiredFieldValidator> |
<asp:RegularExpressionValidator ID="revHomePage" runat="server" ErrorMessage="Not a valid url." |
ControlToValidate="txtCustomerHomePage" Display="Dynamic" SetFocusOnError="True" |
ValidationExpression="http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?" ValidationGroup="providerValidationGroup"></asp:RegularExpressionValidator> |
<br /> |
<asp:TextBox ID="txtDefaultConferenceTitle" runat="server" Width="214px" /> |
<asp:RequiredFieldValidator ID="rvDefaultConferenceTitle" runat="server" ControlToValidate="txtDefaultConferenceTitle" |
Display="Dynamic" ErrorMessage="Default Conference Title is required" SetFocusOnError="True" ValidationGroup="providerValidationGroup"></asp:RequiredFieldValidator> |
<br /> |
<asp:TextBox ID="txtDefaultModeratorEmailSubject" runat="server" Width="214px" /> |
<asp:CheckBox ID="chkModeratorSameAsTitle" runat="server" Text="Same as title" /> |
<asp:CustomValidator ControlToValidate="txtDefaultModeratorEmailSubject" ID="valDefaultModeratorEmailSubject" |
runat="server" ErrorMessage="Default Moderator Email Subject is required" ValidateEmptyText="true" |
SetFocusOnError="true" Display="Dynamic" ValidationGroup="providerValidationGroup"/> |
<br /> |
<asp:TextBox ID="txtDefaultAttendeeEmailSubject" runat="server" Width="214px" /> |
<asp:CheckBox ID="chkAttendeeSameAsTitle" runat="server" Text="Same as title" /> |
<asp:CustomValidator ControlToValidate="txtDefaultAttendeeEmailSubject" ID="valDefaultAttendeeEmailSubject" |
runat="server" ErrorMessage="Default Attendee Email Subject is required" ValidateEmptyText="true" |
SetFocusOnError="true" Display="Dynamic" ValidationGroup="providerValidationGroup"/> |
</div> |
</div> |
</radM:RadPageView> |
<radM:RadPageView runat="server" ID="linkedEnterprises"> |
<div id="doc3"> |
<asp:UpdateProgress ID="UpdateProgressEnterprises" runat="server" AssociatedUpdatePanelID="updatePanelEnterprises" |
DisplayAfter="0"> |
<ProgressTemplate> |
<asp:Image ID="imgAjaxProgress" runat="server" ImageUrl="~/images/ajax-loader.gif" /> |
</ProgressTemplate> |
</asp:UpdateProgress> |
<asp:UpdatePanel ID="updatePanelEnterprises" runat="server"> |
<ContentTemplate> |
<div style="width: 870px;"> |
<table class="widetable"> |
<tr> |
<td> |
<strong> |
<asp:Localize ID="Localize3" runat="server" Text="Enterprise Name:" /></strong> |
</td> |
<td> |
<asp:TextBox ID="txtEnterpriseName" runat="server" Width="214px" /> |
</td> |
</tr> |
<tr> |
<td> |
<strong> |
<asp:Localize ID="Localize6" runat="server" Text="Enterprise Type:" /></strong> |
</td> |
<td align="left"> |
<asp:DropDownList ID="ddlEnterpriseType" runat="server"> |
</asp:DropDownList> |
</td> |
</tr> |
<tr> |
<td> |
</td> |
<td align="left"> |
<asp:Button ID="btnSearchEnterprise" runat="server" CssClass="brandingButton" Text="Search" |
OnClick="btnSearchEnterprise_Click" UseSubmitBehavior="False" CausesValidation="False" /> |
</td> |
</tr> |
<tr> |
<td> |
</td> |
<td> |
</td> |
</tr> |
</table> |
</div> |
<div style="width: 900px;"> |
<table> |
<tr> |
<td align="center"> |
<strong> |
<asp:Localize ID="locAvaiableEnterprises" runat="server" Text="Search Results" /> |
</strong> |
</td> |
<td align="center"> |
</td> |
<td align="center"> |
<strong> |
<asp:Localize ID="locSelectedEnterprises" runat="server" Text="Selected Enterprises" /> |
</strong> |
</td> |
</tr> |
<tr> |
<td> |
<asp:ListBox ID="lstSearchResults" runat="server" Rows="10" SelectionMode="Multiple" |
Width="280px"></asp:ListBox> |
</td> |
<td align="center" valign="middle"> |
<asp:Button ID="btnAddEnterprise" runat="server" CssClass="brandingButton" OnClick="btnAddEnterprise_Click" |
Text="Add>>" UseSubmitBehavior="False" CausesValidation="False" /> |
</td> |
<td valign="middle"> |
<asp:ListBox ID="lstSelectedEnterprises" runat="server" Rows="10" SelectionMode="Multiple" |
Width="280px"></asp:ListBox> |
</td> |
</tr> |
<tr> |
<td align="center"> |
<asp:Button ID="btnClearResults" runat="server" CausesValidation="False" CssClass="brandingButton" |
OnClick="btnClearResults_Click" Text="Clear Search" UseSubmitBehavior="False" /> |
</td> |
<td> |
</td> |
<td align="center"> |
<asp:Button ID="btnDeleteSelected" runat="server" CssClass="brandingButton" OnClick="btnDeleteSelected_Click" |
Text="Delete Selected" UseSubmitBehavior="False" CausesValidation="False" /> |
</td> |
</tr> |
</table> |
</div> |
</ContentTemplate> |
<Triggers> |
<asp:AsyncPostBackTrigger ControlID="btnSearchEnterprise" EventName="Click" /> |
<asp:AsyncPostBackTrigger ControlID="btnAddEnterprise" EventName="Click" /> |
<asp:AsyncPostBackTrigger ControlID="btnDeleteSelected" EventName="Click" /> |
<asp:AsyncPostBackTrigger ControlID="btnClearResults" EventName="Click" /> |
</Triggers> |
</asp:UpdatePanel> |
</div> |
</radM:RadPageView> |
<radM:RadPageView runat="server" ID="netspokeOptions"> |
<div class="yui-gb"> |
<div class="yui-g first"> |
<strong> |
<asp:Localize ID="locScheduleOptions" runat="server" Text="Scheduling/Joining" /> |
</strong><br /> |
<asp:CheckBox ID="chkRequirePasscodeChecked" runat="server" Text="Conference private by default" /><br /> |
<asp:CheckBox ID="chkJoinNoiseEnabled" runat="server" Text="Audio alert when someone joins" /><br /> |
<asp:CheckBox ID="chkCallMyPhoneEnabled" runat="server" Text="Enable call my phone feature" /><br /> |
<asp:CheckBox ID="chkPresentationsChecked" runat="server" Text="All uploaded presentations available" /><br /> |
<asp:CheckBox ID="chkPollingChecked" runat="server" Text="All uploaded polling questions available" /><br /> |
<asp:CheckBox ID="chkWebRecordingConfigEnabled" runat="server" Text="Web recording is modifiable in scheduling" /><br /> |
<asp:CheckBox ID="chkRecordAllWeb" runat="server" Text="Record all web conference events" /><br /> |
</div> |
<div class="yui-g"> |
<strong> |
<asp:Localize ID="locConferenceOptions" runat="server" Text="In Conference" /> |
</strong><br /> |
<asp:CheckBox ID="chkQAEnabled" runat="server" Text="Enable Q&A" /><br /> |
<asp:CheckBox ID="chkWebRecordingEnabled" runat="server" Text="Enable web recording option" /><br /> |
<asp:CheckBox ID="chkChatEnabled" runat="server" Text="Enable chat" /><br /> |
<asp:CheckBox ID="chkBlockSharingEntireDesktop" runat="server" Text="Enable desktop sharing" /><br /> |
<asp:CheckBox ID="chkAppShareEnabled" runat="server" Text="Enable AppShare" /><br /> |
<asp:CheckBox ID="chkSharingVideoEnabled" runat="server" Text="Enable video" /><br /> |
<asp:CheckBox ID="chkSharedFilesEnabled" runat="server" Text="Enable file transfer" /><br /> |
<asp:CheckBox ID="chkPollingEnabled" runat="server" Text="Enable polling" /><br /> |
<asp:CheckBox ID="chkWhiteboardEnabled" runat="server" Text="Enable whiteboard" /><br /> |
<asp:CheckBox ID="chkPresentationsEnabled" runat="server" Text="Enable PowerPoint sharing" /><br /> |
<asp:CheckBox ID="chkHelpEnabled" runat="server" Text="Enable live help" /><br /> |
</div> |
<div class="yui-g"> |
<strong> |
<asp:Localize ID="locAppShareOptions" runat="server" Text="AppShare/Communication" /> |
</strong><br /> |
<asp:CheckBox ID="chkAppShareMaskingEnabled" runat="server" Text="Hide pop-up windows when sharing" /><br /> |
<asp:CheckBox ID="chkGrantControlEnabled" runat="server" Text="Grant control to participants enabled" /><br /> |
<asp:CheckBox ID="chkSecure" runat="server" Text="SSL enabled for all conferences by default" /><br /> |
<asp:Label ID="lblAppShareColorDepth" runat="server" Text="Set default AppShare color level" /> |
<asp:DropDownList ID="ddlAppShareColorDepth" runat="server"> |
<asp:ListItem Text="Low" Value="8" /> |
<asp:ListItem Text="High" Value="16" /> |
</asp:DropDownList> |
<br /> |
</div> |
</div> |
</radM:RadPageView> |
<radM:RadPageView runat="server" ID="webConfLogo"> |
<div class="yui-gd"> |
<div class="yui-g first"> |
<strong> |
<asp:Localize ID="locWebLogoCurrent" runat="Server" Text="Web Conference Logo:" /> |
</strong> |
<br /> |
<br /> |
<asp:Localize ID="locSelectWebLogo" runat="server" Text="Select Conference Logo for upload:" /><br /> |
<radM:RadUpload ID="RadUploadWebConfLogo" runat="server" InitialFileInputsCount="1" |
ControlObjectsVisibility="None" MaxFileSize="262144000" MaxFileInputsCount="1" |
OnValidatingFile="RadUpload_ValidatingFile" Width="100%" EnableFileInputSkinning="false" /> |
<p> |
<asp:Localize ID="locWebLogoRequirements" runat="Server" Text="<i><strong>Logo Requirements:</strong><br>• The file must be in <strong>.jpg or .gif</strong> format<br>• The image must not exceed <strong>150W x 38H</strong> px<br>• The file size must not exceed <strong>128</strong> kb</i>." /> |
<asp:HiddenField ID="hfWebConfLogo" runat="server" /> |
</p> |
<br /> |
<asp:Button ID="btnWebConfLogoPreview" runat="server" Text="Preview" OnClick="btnWebConfLogoPreview_Click" />   |
<asp:Button ID="btnWebConfLogoSave" runat="server" Text="Save" OnClick="btnWebLogoSave_Click" Visible="false" /> |
</div> |
<div class="yui-g"> |
<asp:Image ID="imgConfLogo" AlternateText="Image Preview" runat="server" /> |
</div> |
</div> |
</radM:RadPageView> |
<radM:RadPageView runat="server" ID="hubLogo"> |
<div class="yui-gd"> |
<div class="yui-g first"> |
<strong> |
<asp:Localize ID="locHubLogoCurrent" runat="Server" Text="Conferencing Hub Logo:" /> |
</strong> |
<br /> |
<asp:Localize ID="locSelectHubLogo" runat="Server" Text="Select Conferencing Hub Logo for upload:" /><br /> |
<radM:RadUpload ID="RadUploadHeaderLogo" runat="server" InitialFileInputsCount="1" |
ControlObjectsVisibility="None" MaxFileSize="262144000" MaxFileInputsCount="1" |
OnValidatingFile="RadUpload_ValidatingFile" Width="100%" EnableFileInputSkinning="false" /> |
<p> |
<asp:Localize ID="locHubLogoRequirements" runat="Server" Text="<i><strong>Logo Requirements:</strong><br>• The file must be in <strong>.jpg or .gif</strong> format<br>• The image must not exceed <strong>150W x 60H</strong> px<br>• The file size must not exceed <strong>128</strong> kb</i>." /> |
</p> |
<br /> |
<asp:Button ID="btnHeaderLogoPreview" runat="server" Text="Preview" OnClick="btnHeaderLogoPreview_Click" |
UseSubmitBehavior="False" />   |
<asp:Button ID="btnHeaderLogoSave" runat="server" Text="Save" OnClick="btnHubLogoSave_Click" Visible="false"/> |
</div> |
<div class="yui-g"> |
<asp:Image ID="imgHeaderLogo" runat="server" /> |
<asp:HiddenField ID="hfHeaderLogo" runat="server" /> |
</div> |
</div> |
</radM:RadPageView> |
<radM:RadPageView runat="server" ID="marketingLinks"> |
<radM:RadGrid ID="radGridMarkeingLinks" runat="server" PageSize="5" AutoGenerateColumns="false" |
AllowAutomaticDeletes="true" AllowAutomaticInserts="true" AllowAutomaticUpdates="true" |
OnItemInserted="InsertBranding" OnItemDeleted="DeleteBranding" OnItemUpdated="UpdateBranding" AllowPaging="false" Width="600px"> |
<MasterTableView TableLayout="Fixed" CommandItemDisplay="Top" EnableNoRecordsTemplate="true"> |
<Columns> |
<radM:GridEditCommandColumn></radM:GridEditCommandColumn> |
<radM:GridBoundColumn UniqueName="MarketingText" HeaderText="Marketing Link Text" DataField="Key" ></radM:GridBoundColumn> |
<radM:GridBoundColumn UniqueName="MarketingLink" HeaderText="Marketing Link URL" DataField="Value" ></radM:GridBoundColumn> |
<radM:GridButtonColumn ButtonType="LinkButton" Text="Delete"></radM:GridButtonColumn> |
</Columns> |
<NoRecordsTemplate> |
<h2>There are currently no marketing links defined</h2> |
</NoRecordsTemplate> |
</MasterTableView> |
<%--<ClientSettings> |
<ClientEvents OnRowClick="RowClick" OnRowDblClick="RowDblClick" |
OnGridCreated="GridCreated" OnCommand="GridCommand"/> |
</ClientSettings>--%> |
</radM:RadGrid> |
<%--<radM:GridTextBoxColumnEditor ID="MarketingKey" runat="server" TextBoxStyle-Width="200px"></radM:GridTextBoxColumnEditor> |
<radM:GridTextBoxColumnEditor ID="MarketingValue" runat="server" TextBoxStyle-Width="200px"></radM:GridTextBoxColumnEditor>--%> |
<netspoke:actionButtons ID="abMarketingLinks" runat="server" DisplaySaveButton="true" SaveText="Save" DisplayCancelButton="false" /> |
</radM:RadPageView> |
<radM:RadPageView runat="server" ID="marketingImages"> |
<div> |
<radM:RadGrid ID="radGridMarketingImages" runat="server" PageSize="5" AutoGenerateColumns="False" |
AllowPaging="false" Width="600px"> |
<MasterTableView TableLayout="Fixed" CommandItemDisplay="Top"> |
<Columns> |
<radM:GridEditCommandColumn></radM:GridEditCommandColumn> |
<radM:GridTemplateColumn HeaderText="Image Path" UniqueName="ImagePath" SortExpression="value"> |
<ItemTemplate> |
<asp:Label runat="server" ID="lblName" text='<%# Eval("Value") %>'></asp:Label> |
</ItemTemplate> |
<EditItemTemplate> |
<asp:TextBox runat="server" ID="txbName" text='<%# Eval("Value") %>'></asp:TextBox> |
</EditItemTemplate> |
</radM:GridTemplateColumn> |
<radM:GridTemplateColumn HeaderText="Image" UniqueName="Upload"> |
<ItemTemplate> |
<asp:Image runat="server" ID="ImageThumbnail" ImageUrl='<%# Eval("Value") %>' /> |
</ItemTemplate> |
<EditItemTemplate> |
<radM:RadUpload ID="RadUploadMarkeingImage" runat="server" InitialFileInputsCount="1" |
ControlObjectsVisibility="None" MaxFileSize="262144000" MaxFileInputsCount="1" |
OnValidatingFile="RadUpload_ValidatingFile" Width="100%" EnableFileInputSkinning="false"> |
</radM:RadUpload> |
</EditItemTemplate> |
</radM:GridTemplateColumn> |
<radM:GridButtonColumn ButtonType="PushButton" Text="Delete" CommandName="delete" UniqueName="column"> |
</radM:GridButtonColumn> |
</Columns> |
<EditFormSettings> |
<EditColumn UniqueName="EditCommandColumn1"> |
</EditColumn> |
</EditFormSettings> |
<ExpandCollapseColumn> |
<HeaderStyle Width="20px" /> |
</ExpandCollapseColumn> |
<RowIndicatorColumn> |
<HeaderStyle Width="20px" /> |
</RowIndicatorColumn> |
</MasterTableView> |
<FilterMenu EnableTheming="True"> |
<CollapseAnimation Duration="200" Type="OutQuint" /> |
</FilterMenu> |
</radM:RadGrid> |
</div> |
</radM:RadPageView> |
<radM:RadPageView runat="server" ID="appTitle"> |
<div class="yui-gd"> |
<div class="yui-g first"> |
<br /> |
<strong> |
<asp:Localize ID="locAppTitle" runat="server" Text="Application Title Text:"></asp:Localize> |
</strong> |
<br /> |
<br /> |
<asp:Localize ID="locAppText" runat="server" Text="Application Text"></asp:Localize> |
</div> |
<div class="yui-g"> |
<br /> |
<br /> |
<asp:TextBox ID="txtAppText" runat="server"></asp:TextBox> |
</div> |
</div> |
</radM:RadPageView> |
<radM:RadPageView runat="server" ID="gettingStartedText"> |
<radM:RadGrid ID="radGridGettingStarted" runat="server" PageSize="5" AutoGenerateColumns="false" |
AllowPaging="false" Width="600px"> |
<MasterTableView TableLayout="Fixed" CommandItemDisplay="Top" EditMode="InPlace" EnableNoRecordsTemplate="true"> |
<Columns> |
<radM:GridBoundColumn UniqueName="GettingStartedText" HeaderText="Getting Started Text" DataField="Key" ColumnEditorID="GettingStartedKey"></radM:GridBoundColumn> |
<radM:GridBoundColumn UniqueName="GettingStartedLink" HeaderText="Getting Started Link" DataField="Value" ColumnEditorID="GettingStartedValue"></radM:GridBoundColumn> |
<radM:GridButtonColumn ButtonType="PushButton" Text="Delete"></radM:GridButtonColumn> |
</Columns> |
<NoRecordsTemplate> |
<h2>There are currently no Getting Started links defined</h2> |
</NoRecordsTemplate> |
</MasterTableView> |
<ClientSettings> |
<ClientEvents OnRowClick="RowClick" OnRowDblClick="RowDblClick" |
OnGridCreated="GridCreated" OnCommand="GridCommand"/> |
</ClientSettings> |
</radM:RadGrid> |
<radM:GridTextBoxColumnEditor ID="GettingStartedKey" runat="server" TextBoxStyle-Width="200px"></radM:GridTextBoxColumnEditor> |
<radM:GridTextBoxColumnEditor ID="GettingStartedValue" runat="server" TextBoxStyle-Width="200px"></radM:GridTextBoxColumnEditor> |
<netspoke:actionButtons ID="abGettingStarted" runat="server" DisplaySaveButton="true" SaveText="Save" DisplayCancelButton="false" /> |
</radM:RadPageView> |
<radM:RadPageView runat="server" ID="helpLinks"> |
<div> |
<radM:RadGrid ID="radGridHelpLinks" runat="server" PageSize="5" AutoGenerateColumns="false" |
AllowPaging="false" Width="600px"> |
<MasterTableView TableLayout="Fixed" CommandItemDisplay="Top" EditMode="InPlace" EnableNoRecordsTemplate="true"> |
<Columns> |
<radM:GridBoundColumn UniqueName="HelpText" HeaderText="Help Item Text" DataField="Key" ColumnEditorID="HelpKey"></radM:GridBoundColumn> |
<radM:GridBoundColumn UniqueName="HelpLink" HeaderText="Help Item URL" DataField="Value" ColumnEditorID="HelpValue"></radM:GridBoundColumn> |
<radM:GridButtonColumn ButtonType="PushButton" Text="Delete"></radM:GridButtonColumn> |
</Columns> |
<NoRecordsTemplate> |
<h2>There are currently no help links defined</h2> |
</NoRecordsTemplate> |
</MasterTableView> |
<ClientSettings> |
<ClientEvents OnRowClick="RowClick" OnRowDblClick="RowDblClick" |
OnGridCreated="GridCreated" OnCommand="GridCommand"/> |
</ClientSettings> |
</radM:RadGrid> |
<radM:GridTextBoxColumnEditor ID="HelpKey" runat="server" TextBoxStyle-Width="200px"></radM:GridTextBoxColumnEditor> |
<radM:GridTextBoxColumnEditor ID="HelpValue" runat="server" TextBoxStyle-Width="200px"></radM:GridTextBoxColumnEditor> |
<netspoke:actionButtons ID="abHelpLinks" runat="server" DisplaySaveButton="true" SaveText="Save" DisplayCancelButton="false" /> |
</div> |
</radM:RadPageView> |
<radM:RadPageView runat="server" ID="quickLinks"> |
</radM:RadPageView> |
<radM:RadPageView runat="server" ID="skin"> |
<asp:Localize ID="locSkin" runat="server" Text="Skin:" /><span class="required">*</span> |
<asp:DropDownList ID="ddlSkin" runat="server" /> |
</radM:RadPageView> |
</radM:RadMultiPage> |
<asp:HiddenField id="hfBrandingId" runat="server" /> |
<asp:HiddenField id="hfProviderID" runat="server" /> |
<br /> |
<div id="divAction" runat="server"> |
<netspoke:actionButtons runat="server" ID="actionBtns" OnSaveClick="Save" CancelURL="~/Administration/providerSearch.aspx" /> |
</div> |
<br /> |
</asp:Content> |
.cs
using System; |
using System.Data; |
using System.Net; |
using System.Text; |
using System.Web.UI; |
using System.Web.UI.WebControls; |
using Pgi.DomainLayer; |
using Pgi.Logging; |
using Pgi.ServiceAgents; |
using Pgi.Hub.ServiceLayer; |
using System.IO; |
using System.Web; |
using Telerik.Web.UI.Upload; |
using Telerik.Web.UI; |
using System.Drawing.Imaging; |
using System.Web.Configuration; |
using System.Collections.Generic; |
using Pgi.ServiceAgents.PgiInternalWS; |
using Provider=Pgi.DomainLayer.Provider; |
using System.Globalization; |
using ProviderType=Pgi.DomainLayer.ProviderType; |
namespace Pgi.Hub.Administration |
{ |
public partial class providerAddEdit : HubBasePage |
{ |
#region Private Variables |
private const int _MAX_FILE_SIZE = 128000; |
private const string _SAME_AS_TITLE = "SAME AS TITLE"; |
private Provider _provider = new Provider(); |
private ServiceLocator _serviceLocator = new ServiceLocator(); |
private const string applicationName = "Hub"; |
private const string defaultLanguage = "en"; |
private int brandId; |
private int providerId; |
private bool edit; |
#endregion |
#region Load Methods |
protected void Page_Load(object sender, EventArgs e) |
{ |
if (!Page.User.IsInRole("GlobalAdmin")) |
{ |
throw new Exception("You do not have access to this page."); |
} |
if (!Page.IsPostBack) |
{ |
//Skin Options |
ddlSkin.Items.Add(new ListItem("Default", "default")); |
ddlSkin.Items.Add(new ListItem("Blue", "blue")); |
ddlSkin.Items.Add(new ListItem("Brown", "brown")); |
ddlSkin.Items.Add(new ListItem("Gray", "gray")); |
ddlSkin.Items.Add(new ListItem("Green", "green")); |
ddlSkin.Items.Add(new ListItem("Khaki", "khaki")); |
ddlSkin.Items.Add(new ListItem("Navy", "navy")); |
ddlSkin.Items.Add(new ListItem("Orange", "orange")); |
ddlSkin.Items.Add(new ListItem("Purple", "purple")); |
ddlSkin.Items.Add(new ListItem("Red", "red")); |
ddlSkin.Items.Add(new ListItem("Yellow", "yellow")); |
//provider types |
ddlProviderType.Items.Add(new ListItem(_provider.GetStringFromProviderType(ProviderType.External), DomainLayer.ProviderType.External.ToString())); |
ddlProviderType.Items.Add(new ListItem(_provider.GetStringFromProviderType(ProviderType.Test), DomainLayer.ProviderType.Test.ToString())); |
ddlProviderType.Items.Add(new ListItem(_provider.GetStringFromProviderType(ProviderType.Internal), DomainLayer.ProviderType.Internal.ToString())); |
//enterprise Types |
ddlEnterpriseType.Items.Add(new ListItem("", "")); |
ddlEnterpriseType.Items.Add(new ListItem("Premiere Client", "Premiere Client")); |
ddlEnterpriseType.Items.Add(new ListItem("Reseller", "Reseller")); |
ddlEnterpriseType.Items.Add(new ListItem("Wholesaler", "Wholesaler")); |
valDefaultModeratorEmailSubject.ClientValidationFunction = "ValidateDefaultModeratorEmailSubject"; |
valDefaultAttendeeEmailSubject.ClientValidationFunction = "ValidateDefaultAttendeeEmailSubject"; |
imgConfLogo.Visible = false; |
imgHeaderLogo.Visible = false; |
//to add domain name automatically from Hub Group Domain textbox |
SetText(); |
hfBrandingId.Value = CurrentHub.Id.ToString(); |
//set netspoke options tab text |
RadTab radTab = tabstripProviderOptions.Tabs.FindTabByValue("3"); |
radTab.Text = string.Format("{0} Options", BrandingLocalization.GetProductName(ProductTypes.NetspokeService, CurrentHub.BrandId)); |
actionBtns.Visible = false; |
edit = false; |
//Edit(provider ID is provided) |
if (Request["ID"] != null) |
{ |
edit = true; |
actionBtns.Visible = true; |
try |
{ |
hfProviderID.Value = Request["ID"]; |
} |
catch (Exception exc) |
{ |
LogManager.Log.Error("Error converting providerID on provider add/edit"); |
LogManager.Log.Exception(exc); |
Response.Redirect("providerSearch.aspx"); |
} |
LoadProvider(); |
ddlProviderType.Enabled = false; |
} |
} |
} |
private void LoadProvider() |
{ |
IEnumerable<string> mycol = new List<string>(); |
_provider = _serviceLocator.ProviderService().Load(Convert.ToInt32(hfProviderID.Value)); |
brandId = _serviceLocator.BrandingService().GetBrandId(null, _provider.Name); |
txtProviderName.Text = _provider.Name; |
txtHubGroupDomain.Text = _provider.HubGroupDomain; |
txtAppShareHost.Text = _provider.AppShareHost.Replace("." + _provider.HubGroupDomain.Trim(), ""); |
txtCustomerHomePage.Text = _provider.CustomerUrl; |
txtDefualtMeetingServer.Text = _provider.DefaultMeetingServer.Replace("." + _provider.HubGroupDomain.Trim(), ""); |
txtSecureDefaultMeetingServer.Text = _provider.DefaultMeetingServerSSL.Replace("." + _provider.HubGroupDomain.Trim(), ""); |
inpAppShareHostAppend.Value = txtHubGroupDomain.Text; |
inpMeetingServerAppend.Value = txtHubGroupDomain.Text; |
inpSecureMeetingServerAppend.Value = txtHubGroupDomain.Text; |
//ddlSkin.SelectedValue = _provider.Skin; |
ddlProviderType.SelectedValue = _provider.ProviderType.ToString(); |
if (_provider.HeaderLogo.Length > 0) |
{ |
imgHeaderLogo.Visible = true; |
imgHeaderLogo.ImageUrl = "~/utilities/imageStreamer.aspx?imagePath=" + HttpUtility.UrlEncode(_provider.HeaderLogo); |
} |
if (_provider.ConsoleLogo.Length > 0) |
{ |
imgConfLogo.Visible = true; |
imgConfLogo.ImageUrl = "~/utilities/imageStreamer.aspx?imagePath=" + HttpUtility.UrlEncode(_provider.ConsoleLogo); |
} |
foreach (var enterprise in _provider.Enterprises) |
{ |
lstSelectedEnterprises.Items.Add(enterprise.Trim()); |
} |
txtDefaultConferenceTitle.Text = _provider.TextOptions["DefaultConferenceTitle"]; |
if (_provider.TextOptions["DefaultSubjectModerator"].ToUpper() == _SAME_AS_TITLE) |
{ |
chkModeratorSameAsTitle.Checked = true; |
txtDefaultModeratorEmailSubject.Enabled = false; |
} |
else |
{ |
txtDefaultModeratorEmailSubject.Text = _provider.TextOptions["DefaultSubjectModerator"]; |
} |
if (_provider.TextOptions["DefaultSubjectAttendee"].ToUpper() == _SAME_AS_TITLE) |
{ |
chkAttendeeSameAsTitle.Checked = true; |
txtDefaultAttendeeEmailSubject.Enabled = false; |
} |
else |
{ |
txtDefaultAttendeeEmailSubject.Text = _provider.TextOptions["DefaultSubjectAttendee"]; |
} |
LoadBrandingInfo(); |
LoadOptions(_provider); |
} |
private void SetText() |
{ |
var sb = new StringBuilder(); |
sb.Append("<script type='text/javascript'>\r\n"); |
sb.Append("function SetText()\r\n"); |
sb.Append(" {\r\n"); |
sb.Append(" var domain = document.getElementById('" + txtHubGroupDomain.ClientID + "');\r\n"); |
sb.Append(" var txt1 = document.getElementById('" + inpAppShareHostAppend.ClientID + "');\r\n"); |
sb.Append(" var txt2 = document.getElementById('" + inpMeetingServerAppend.ClientID + "');\r\n"); |
sb.Append(" var txt3 = document.getElementById('" + inpSecureMeetingServerAppend.ClientID + "');\r\n"); |
sb.Append(" if (domain != null)\r\n"); |
sb.Append(" {\r\n"); |
sb.Append(" txt1.value = domain.value;\r\n"); |
sb.Append(" txt2.value = domain.value;\r\n"); |
sb.Append(" txt3.value = domain.value;\r\n"); |
sb.Append(" }\r\n"); |
sb.Append(" }\r\n"); |
sb.Append("</script>\r\n"); |
var cs = Page.ClientScript; |
var csName = "setTextScript"; |
Type csType = GetType(); |
if (!cs.IsClientScriptBlockRegistered(csType, csName)) |
{ |
cs.RegisterClientScriptBlock(csType, csName, sb.ToString()); |
} |
} |
private void LoadBrandingInfo() |
{ |
//initial load of helplinks grid |
BrandedItem[] brandingData = null; |
brandingData = _serviceLocator.BrandingService().GetBrandingData(applicationName, brandId); |
var keyValMarketingLinks = _serviceLocator.BrandingService().GetKeyValPair(brandingData, "DisplaySettings", |
"Content", "MarketingLinks"); |
radGridMarkeingLinks.DataSource = keyValMarketingLinks; |
radGridMarkeingLinks.DataBind(); |
var keyValHelpLinks = _serviceLocator.BrandingService().GetKeyValPair(brandingData, "DisplaySettings", |
"Content", |
"HelpLinks"); |
radGridHelpLinks.DataSource = keyValHelpLinks; |
radGridHelpLinks.DataBind(); |
var keyValGettingStarted = _serviceLocator.BrandingService().GetKeyValPair(brandingData, "DisplaySettings", |
"Content", "GettingStarted"); |
radGridGettingStarted.DataSource = keyValGettingStarted; |
radGridGettingStarted.DataBind(); |
var keyValMarketingAds = _serviceLocator.BrandingService().GetKeyValPair(brandingData, "DisplaySettings", |
"Content", "PormotionLinks"); |
radGridMarketingImages.DataSource = keyValMarketingAds; |
radGridMarketingImages.DataBind(); |
} |
private void LoadOptions(Pgi.DomainLayer.Provider provider) |
{ |
if (provider.Options != null && provider.Options.Count > 0) |
{ |
foreach (var option in provider.Options) |
{ |
switch (option.Key) |
{ |
//column 1 |
case "RequirePasscodeChecked": |
chkRequirePasscodeChecked.Checked = Convert.ToBoolean(option.Value); |
break; |
case "JoinNoiseEnabled": |
chkJoinNoiseEnabled.Checked = Convert.ToBoolean(option.Value); |
break; |
case "CallMyPhoneEnabled": |
chkCallMyPhoneEnabled.Checked = Convert.ToBoolean(option.Value); |
break; |
case "PresentationsChecked": |
chkPresentationsChecked.Checked = Convert.ToBoolean(option.Value); |
break; |
case "PollingChecked": |
chkPollingChecked.Checked = Convert.ToBoolean(option.Value); |
break; |
case "WebRecordingConfigEnabled": |
chkWebRecordingConfigEnabled.Checked = Convert.ToBoolean(option.Value); |
break; |
case "RecordAllWeb": |
chkRecordAllWeb.Checked = Convert.ToBoolean(option.Value); |
break; |
// column 2 |
case "QAEnabled": |
chkQAEnabled.Checked = Convert.ToBoolean(option.Value); |
break; |
case "WebRecordingEnabled": |
chkWebRecordingEnabled.Checked = Convert.ToBoolean(option.Value); |
break; |
case "ChatEnabled": |
chkChatEnabled.Checked = Convert.ToBoolean(option.Value); |
break; |
case "HelpEnabled": |
chkHelpEnabled.Checked = Convert.ToBoolean(option.Value); |
break; |
case "BlockSharingEntireDesktop": |
chkBlockSharingEntireDesktop.Checked = Convert.ToBoolean(option.Value); |
break; |
case "AppShareEnabled": |
chkAppShareEnabled.Checked = Convert.ToBoolean(option.Value); |
break; |
case "SharingVideoEnabled": |
chkSharingVideoEnabled.Checked = Convert.ToBoolean(option.Value); |
break; |
case "SharedFilesEnabled": |
chkSharedFilesEnabled.Checked = Convert.ToBoolean(option.Value); |
break; |
case "PollingEnabled": |
chkPollingEnabled.Checked = Convert.ToBoolean(option.Value); |
break; |
case "WhiteboardEnabled": |
chkWhiteboardEnabled.Checked = Convert.ToBoolean(option.Value); |
break; |
case "PresentationsEnabled": |
chkPresentationsEnabled.Checked = Convert.ToBoolean(option.Value); |
break; |
// column 3 |
case "AppShareMaskingEnabled": |
chkAppShareMaskingEnabled.Checked = Convert.ToBoolean(option.Value); |
break; |
case "GrantControlEnabled": |
chkGrantControlEnabled.Checked = Convert.ToBoolean(option.Value); |
break; |
case "AppShareColorDepth": |
ddlAppShareColorDepth.SelectedIndex = Common.GetSelectedIndex(ddlAppShareColorDepth, option.Value.ToString()); |
break; |
case "Secure": |
chkSecure.Checked = Convert.ToBoolean(option.Value); |
break; |
} |
} |
bool hideLiveHelp; |
bool.TryParse(BrandingLocalization.GetValue("DisplaySettings", "Content", "HideLiveHelp", CurrentHub.BrandId), |
out hideLiveHelp); |
if (hideLiveHelp) |
{ |
chkHelpEnabled.Enabled = false; |
chkHelpEnabled.Visible = false; |
} |
} |
} |
#endregion |
#region Save Methods |
protected void Save(object sender, EventArgs e) |
{ |
if (Page.IsValid) |
{ |
resultHandler.ResetStatus(); |
try |
{ |
if (SaveData() && edit == false) |
{ |
//Response.Redirect("providerSearch.aspx", true); |
RadTab tab = tabstripProviderOptions.FindTabByValue("4"); |
tab.Selected = true; |
RadPageView pageView = MultiPageBranding.FindPageViewByID("webConfLogo"); |
pageView.Selected = true; |
actionBtns.Visible = true; |
} |
else |
{ |
resultHandler.ChangeStatus(ActionStatus.Warning, "Unable to save your changes."); |
} |
} |
catch (Exception wsEx) |
{ |
imgConfLogo.Visible = false; |
imgHeaderLogo.Visible = false; |
resultHandler.ResetStatus(); |
resultHandler.ChangeStatus(ActionStatus.Error, String.Format("The following error occurred while saving your changes: {0}", wsEx.Message)); |
LogManager.Log.Exception(wsEx); |
} |
} |
} |
private bool SaveData() |
{ |
var defaultSubjectModerator = ""; |
var defaultSubjectAttendee = ""; |
if (chkModeratorSameAsTitle.Checked) |
{ |
defaultSubjectModerator = _SAME_AS_TITLE; |
} |
else |
{ |
defaultSubjectModerator = txtDefaultModeratorEmailSubject.Text; |
} |
if (chkAttendeeSameAsTitle.Checked) |
{ |
defaultSubjectAttendee = _SAME_AS_TITLE; |
} |
else |
{ |
defaultSubjectAttendee = txtDefaultModeratorEmailSubject.Text; |
} |
if (hfProviderID.Value != "") |
{ |
_provider = _serviceLocator.ProviderService().Load(int.Parse(hfProviderID.Value)); |
_provider.TextOptions["DefaultConferenceTitle"] = txtDefaultConferenceTitle.Text; |
_provider.TextOptions["DefaultSubjectModerator"] = defaultSubjectModerator; |
_provider.TextOptions["DefaultSubjectAttendee"] = defaultSubjectAttendee; |
} |
else |
{ |
_provider = new Provider(); |
_provider.TextOptions.Add("ProviderName", txtProviderName.Text.Trim()); |
_provider.TextOptions.Add("DefaultConferenceTitle", txtDefaultConferenceTitle.Text); |
_provider.TextOptions.Add("DefaultSubjectModerator", defaultSubjectModerator); |
_provider.TextOptions.Add("DefaultSubjectAttendee", defaultSubjectAttendee); |
} |
//_provider.Skin = ddlSkin.SelectedValue.Trim(); |
_provider.ProviderType = _provider.GetProviderTypeFromString(ddlProviderType.SelectedItem.Text); |
_provider.Name = txtProviderName.Text.Trim(); |
_provider.HubGroupDomain = txtHubGroupDomain.Text.Trim(); |
_provider.AppShareHost = txtAppShareHost.Text.Trim() + "." + txtHubGroupDomain.Text.Trim(); |
_provider.CustomerUrl = txtCustomerHomePage.Text.Trim(); |
_provider.DefaultMeetingServer = txtDefualtMeetingServer.Text.Trim() + "." + txtHubGroupDomain.Text.Trim(); |
_provider.DefaultMeetingServerSSL = txtSecureDefaultMeetingServer.Text.Trim() + "." + txtHubGroupDomain.Text.Trim(); |
_provider.Enterprises.Clear(); |
foreach (ListItem enterprise in lstSelectedEnterprises.Items) |
{ |
_provider.Enterprises.Add(enterprise.Text.Trim()); |
} |
SaveOptions(_provider); |
//SaveHeaderImageToServer(_provider); |
//SaveWebConfImageToServer(_provider); |
providerId = _serviceLocator.ProviderService().Save(_provider); |
hfProviderID.Value = providerId.ToString(); |
brandId = _serviceLocator.BrandingService().GetBrandId(providerId, _provider.Name); |
RadTab tab = tabstripProviderOptions.FindTabByValue("4"); |
tab.Selected = true; |
RadPageView pageView = MultiPageBranding.FindPageViewByID("webConfLogo"); |
pageView.Selected = true; |
return true; |
} |
private void SaveOptions(Provider provider) |
{ |
provider.Options.Clear(); |
//column 1 |
provider.Options.Add("RequirePasscodeChecked", Convert.ToInt16(chkRequirePasscodeChecked.Checked)); |
provider.Options.Add("JoinNoiseEnabled", Convert.ToInt16(chkJoinNoiseEnabled.Checked)); |
provider.Options.Add("CallMyPhoneEnabled", Convert.ToInt16(chkCallMyPhoneEnabled.Checked)); |
provider.Options.Add("PresentationsChecked", Convert.ToInt16(chkPresentationsChecked.Checked)); |
provider.Options.Add("PollingChecked", Convert.ToInt16(chkPollingChecked.Checked)); |
provider.Options.Add("WebRecordingConfigEnabled", Convert.ToInt16(chkWebRecordingConfigEnabled.Checked)); |
provider.Options.Add("RecordAllWeb", Convert.ToInt16(chkRecordAllWeb.Checked)); |
//column 2 |
provider.Options.Add("QAEnabled", Convert.ToInt16(chkQAEnabled.Checked)); |
provider.Options.Add("WebRecordingEnabled", Convert.ToInt16(chkWebRecordingEnabled.Checked)); |
provider.Options.Add("ChatEnabled", Convert.ToInt16(chkChatEnabled.Checked)); |
provider.Options.Add("HelpEnabled", Convert.ToInt16(chkHelpEnabled.Checked)); |
provider.Options.Add("BlockSharingEntireDesktop", Convert.ToInt16(chkBlockSharingEntireDesktop.Checked)); |
provider.Options.Add("AppShareEnabled", Convert.ToInt16(chkAppShareEnabled.Checked)); |
provider.Options.Add("SharingVideoEnabled", Convert.ToInt16(chkSharingVideoEnabled.Checked)); |
provider.Options.Add("SharedFilesEnabled", Convert.ToInt16(chkSharedFilesEnabled.Checked)); |
provider.Options.Add("PollingEnabled", Convert.ToInt16(chkPollingEnabled.Checked)); |
provider.Options.Add("WhiteboardEnabled", Convert.ToInt16(chkWhiteboardEnabled.Checked)); |
provider.Options.Add("PresentationsEnabled", Convert.ToInt16(chkPresentationsEnabled.Checked)); |
//column 3 |
provider.Options.Add("AppShareMaskingEnabled", Convert.ToInt16(chkAppShareMaskingEnabled.Checked)); |
provider.Options.Add("GrantControlEnabled", Convert.ToInt16(chkGrantControlEnabled.Checked)); |
provider.Options.Add("AppShareColorDepth", Convert.ToInt32(ddlAppShareColorDepth.SelectedValue)); |
provider.Options.Add("Secure", Convert.ToInt16(chkSecure.Checked)); |
} |
private void SaveHeaderImageToServer(Provider provider) |
{ |
if (Page.IsValid) |
{ |
SaveLocalImage(RadUploadHeaderLogo, 150, 60, hfHeaderLogo); |
if (RadUploadHeaderLogo.InvalidFiles.Count == 0 && hfHeaderLogo.Value.Length > 0) |
{ |
if (SaveImage("headerLogo", Server.UrlDecode(hfHeaderLogo.Value), provider)) |
{ |
imgHeaderLogo.Visible = true; |
imgHeaderLogo.ImageUrl = "~/utilities/imageStreamer.aspx?imageType=headerLogo&hubId=" + hfBrandingId.Value; |
hfHeaderLogo.Value = ""; |
} |
else |
{ |
imgHeaderLogo.Visible = false; |
resultHandler.ChangeStatus(ActionStatus.Warning, "Unable to update information"); |
} |
} |
else |
{ |
imgHeaderLogo.Visible = false; |
imgHeaderLogo.ImageUrl = ""; |
hfHeaderLogo.Value = ""; |
} |
} |
else |
{ |
imgHeaderLogo.Visible = false; |
imgHeaderLogo.ImageUrl = ""; |
hfHeaderLogo.Value = ""; |
} |
} |
private void SaveWebConfImageToServer(Provider provider) |
{ |
SaveLocalImage(RadUploadWebConfLogo, 150, 38, hfWebConfLogo); |
if (RadUploadWebConfLogo.InvalidFiles.Count == 0 && hfWebConfLogo.Value.Length > 0) |
{ |
if (SaveImage("consoleLogo", Server.UrlDecode(hfWebConfLogo.Value), provider)) |
{ |
imgConfLogo.Visible = true; |
imgConfLogo.ImageUrl = "~/utilities/imageStreamer.aspx?imageType=consoleLogo&hubId=" + hfBrandingId.Value; |
hfWebConfLogo.Value = ""; |
} |
else |
{ |
imgConfLogo.Visible = false; |
hfWebConfLogo.Value = ""; |
resultHandler.ChangeStatus(ActionStatus.Warning, "Unable to update information"); |
} |
} |
} |
private bool SaveImage(string baseFileName, string finalFullPath, Provider provider) |
{ |
int returnVal = int.MinValue; |
if (Session["hubId"] != null) |
{ |
var client = new ServiceLocator().ClientService().GetDomainClientById((int)Session["clientId"]); |
if (!Validator.ValidateBrandingPermission(client, CurrentHub.Id, Page)) |
throw new Exception(Validator.InvalidPermissionMsg); |
if (finalFullPath.Length != 0) |
{ |
switch (baseFileName.ToLower()) |
{ |
case "consolelogo": |
finalFullPath = |
SaveNASImage(finalFullPath, |
WebConfigurationManager.AppSettings["BrandingLogoPathPrefix"], baseFileName) |
.Replace(WebConfigurationManager.AppSettings["BrandingLogoPathPrefix"], ""); |
_serviceLocator.BrandingService().SetBrandingProperty(brandId, applicationName, defaultLanguage, "DisplaySettings", "Images", "ConsoleLogo", finalFullPath, Session["clientId"].ToString()); |
break; |
case "headerlogo": |
finalFullPath = |
SaveNASImage(finalFullPath, |
WebConfigurationManager.AppSettings["BrandingLogoPathPrefix"], baseFileName) |
.Replace(WebConfigurationManager.AppSettings["BrandingLogoPathPrefix"], ""); |
_serviceLocator.BrandingService().SetBrandingProperty(brandId, applicationName, defaultLanguage, "DisplaySettings", "Images", "HeaderLogo", finalFullPath, Session["clientId"].ToString()); |
break; |
} |
returnVal = 1; |
} |
} |
return returnVal != int.MinValue; |
} |
private string SaveNASImage(string finalFullPath, string path_prefix, string baseFilename) |
{ |
var filePath = new StringBuilder(); |
filePath.Append(DateTime.Today.ToString("yyyyMMdd") + "/" + Hub.Common.GlobalRandom.Next() + "/"); |
var filename = filePath + baseFilename + "-" + DateTime.Now.ToString("yyyyMMdd-HHmmssfff") + "-" + new Random().Next(10000, 99999); |
var fileExtension = ""; |
var extIndex = finalFullPath.LastIndexOf("."); |
if (extIndex >= 0) |
{ |
fileExtension = finalFullPath.Substring(extIndex); |
} |
var finalRelativePath = path_prefix + filename + fileExtension; |
if (!FileManager.TransferFileToNAS(finalFullPath, finalRelativePath)) |
{ |
throw new Exception(baseFilename + " could not be saved. Operation aborted."); |
} |
return finalRelativePath; |
} |
private void SaveLocalImage(RadUpload upLogo, int maxWidth, int maxHeight, HiddenField hfLogo) |
{ |
if (upLogo.UploadedFiles.Count > 0) |
{ |
var statusMessage = ""; |
var path = System.Web.Configuration.WebConfigurationManager.AppSettings["BrandingImagesRootFolder"] + "\\" + |
DateTime.Today.ToString("yyyyMMdd") + "\\" + Hub.Common.GlobalRandom.Next() + "\\"; |
if (!Directory.Exists(path)) |
{ |
Directory.CreateDirectory(path); |
} |
var finalFullPath = path + upLogo.UploadedFiles[0].GetName(); |
upLogo.UploadedFiles[0].SaveAs(finalFullPath, true); |
System.Drawing.Image imageCheck; |
try |
{ |
imageCheck = System.Drawing.Image.FromFile(finalFullPath); |
if (!imageCheck.RawFormat.Equals(ImageFormat.Jpeg) && !imageCheck.RawFormat.Equals(ImageFormat.Gif)) |
{ |
statusMessage = "Unable to update logo due to the following error: " + upLogo.UploadedFiles[0].GetName() + " is not a jpg or gif."; |
} |
else if (imageCheck.Height > maxHeight || imageCheck.Width > maxWidth) |
{ |
statusMessage = "Unable to update logo due to the following error: " + |
upLogo.UploadedFiles[0].GetName() + " is larger than " + maxWidth + |
" pixels wide and " + maxHeight + " pixels high."; |
} |
imageCheck.Dispose(); |
} |
catch |
{ |
statusMessage = "Unable to update logo due to the following error: " + upLogo.UploadedFiles[0].GetName() + " is not an image."; |
} |
if (statusMessage.Length > 0) |
{ |
hfLogo.Value = ""; |
resultHandler.ResetStatus(); |
resultHandler.ChangeStatus(ActionStatus.Error, statusMessage); |
if (File.Exists(finalFullPath)) |
{ |
File.Delete(finalFullPath); |
} |
} |
else |
{ |
hfLogo.Value = Server.UrlEncode(finalFullPath); |
} |
} |
else if (upLogo.InvalidFiles.Count > 0) |
{ |
//Do nothing and let resultHandler display message. |
} |
else if (hfLogo.Value.Length == 0) |
{ |
resultHandler.ResetStatus(); |
resultHandler.ChangeStatus(ActionStatus.Error, "Unable to update logo due to the following error: No logo file was specified"); |
} |
return; |
} |
#endregion |
#region Event Handlers |
protected void btnSearchEnterprise_Click(object sender, EventArgs e) |
{ |
var searchResult = new EnterpriseService().Find("", txtEnterpriseName.Text.Trim(), ddlEnterpriseType.SelectedValue, NameSearchType.Contains, AssociationSearchType.UnassociatedOnly); |
lstSearchResults.Items.Clear(); |
foreach (var enterprise in searchResult) |
{ |
lstSearchResults.Items.Add(enterprise.Name); |
} |
} |
protected void btnDeleteSelected_Click(object sender, EventArgs e) |
{ |
var removeCollection = new ListItemCollection(); |
foreach (ListItem item in lstSelectedEnterprises.Items) |
{ |
if (!item.Selected) |
{ |
continue; |
} |
removeCollection.Add(item); |
if (!lstSearchResults.Items.Contains(item)) |
{ |
lstSearchResults.Items.Add(item); |
} |
} |
foreach (ListItem removeItem in removeCollection) |
{ |
lstSelectedEnterprises.Items.Remove(removeItem); |
} |
} |
protected void btnAddEnterprise_Click(object sender, EventArgs e) |
{ |
var removeCollection = new ListItemCollection(); |
foreach (ListItem item in lstSearchResults.Items) |
{ |
if (!item.Selected) |
{ |
continue; |
} |
removeCollection.Add(item); |
if (!lstSelectedEnterprises.Items.Contains(item)) |
{ |
lstSelectedEnterprises.Items.Add(item); |
} |
} |
foreach (ListItem removeItem in removeCollection) |
{ |
lstSearchResults.Items.Remove(removeItem); |
} |
} |
public void RadUpload_ValidatingFile(object sender, ValidateFileEventArgs e) |
{ |
resultHandler.ResetStatus(); |
if (e.UploadedFile.ContentLength > _MAX_FILE_SIZE) |
{ |
resultHandler.ChangeStatus(ActionStatus.Error, "<b>" + e.UploadedFile.GetName() + ":</b> Exceeds Maximum File Size<br>"); |
e.IsValid = false; |
} |
else |
{ |
switch (e.UploadedFile.GetExtension().ToLower()) |
{ |
case ".jpg": |
case ".gif": |
e.IsValid = true; |
break; |
default: |
resultHandler.ChangeStatus(ActionStatus.Error, "<b>" + e.UploadedFile.GetName() + ":</b> Unknown File Type<br>"); |
e.IsValid = false; |
break; |
} |
} |
e.SkipInternalValidation = true; |
} |
protected void btnWebConfLogoPreview_Click(object sender, EventArgs e) |
{ |
SaveLocalImage(RadUploadWebConfLogo, 150, 38, hfWebConfLogo); |
if (RadUploadWebConfLogo.InvalidFiles.Count == 0 && hfWebConfLogo.Value.Length != 0) |
{ |
imgConfLogo.Visible = true; |
//string path = Server.UrlDecode(hfWebConfLogo.Value); |
//imgConfLogo.ImageUrl = path; |
imgConfLogo.ImageUrl = "~/utilities/imagePreview.aspx?path=" + hfWebConfLogo.Value; |
btnWebConfLogoSave.Visible = true; |
} |
else |
{ |
imgConfLogo.Visible = false; |
imgConfLogo.ImageUrl = ""; |
hfWebConfLogo.Value = ""; |
} |
} |
protected void btnWebLogoSave_Click(object sender, EventArgs e) |
{ |
SaveWebConfImageToServer(_provider); |
} |
protected void btnHubLogoSave_Click(object sender, EventArgs e) |
{ |
SaveHeaderImageToServer(_provider); |
} |
protected void btnHeaderLogoPreview_Click(object sender, EventArgs e) |
{ |
SaveLocalImage(RadUploadHeaderLogo, 150, 60, hfHeaderLogo); |
if (RadUploadHeaderLogo.InvalidFiles.Count == 0 && hfHeaderLogo.Value.Length != 0) |
{ |
imgHeaderLogo.Visible = true; |
imgHeaderLogo.ImageUrl = "~/utilities/imagePreview.aspx?path=" + hfHeaderLogo.Value; |
btnHeaderLogoSave.Visible = true; |
} |
else |
{ |
imgHeaderLogo.Visible = false; |
imgHeaderLogo.ImageUrl = ""; |
hfHeaderLogo.Value = ""; |
} |
} |
protected void btnClearResults_Click(object sender, EventArgs e) |
{ |
lstSearchResults.Items.Clear(); |
txtEnterpriseName.Text = ""; |
} |
#endregion |
protected void onTabClick(object sender, RadTabStripEventArgs e) |
{ |
if (e.Tab.Value == "3") |
{ |
actionBtns.Visible = true; |
} |
if (e.Tab.Value == "4") |
{ |
if (edit == false) |
{ |
actionBtns.Visible = true; |
resultHandler.ChangeStatus(ActionStatus.Warning, "Please save your provider information before entering your branding options."); |
RadTab tab = tabstripProviderOptions.FindTabByValue("3"); |
tab.Selected = true; |
RadPageView pageView = MultiPageBranding.FindPageViewByID("netspokeOptions"); |
pageView.Selected = true; |
} |
else |
{ |
SaveData(); |
actionBtns.Visible = false; |
} |
} |
} |
protected void UpdateBranding(object source, GridUpdatedEventArgs e) |
{ |
} |
protected void InsertBranding(object source, GridInsertedEventArgs e) |
{ |
} |
protected void DeleteBranding(object source, GridDeletedEventArgs e) |
{ |
} |
protected void BrandingUpdate() |
{ |
} |
} |
} |