/source/app/NOS.Wiki/AdminProviders.aspx

http://github.com/agross/netopenspace · ASP.NET · 254 lines · 200 code · 31 blank · 23 comment · 2 complexity · 009a59d43338d1bcf04c3324c0832fa3 MD5 · raw file

  1. <%@ Page Title="" Language="C#" MasterPageFile="~/Admin.master" AutoEventWireup="true" CodeBehind="AdminProviders.aspx.cs" Inherits="ScrewTurn.Wiki.AdminProviders" culture="auto" meta:resourcekey="PageResource1" uiculture="auto" %>
  2. <%@ Register TagPrefix="st" TagName="ProviderSelector" Src="~/ProviderSelector.ascx" %>
  3. <asp:Content ID="ctnHead" ContentPlaceHolderID="head" runat="server">
  4. </asp:Content>
  5. <asp:Content ID="ctnProviders" ContentPlaceHolderID="cphAdmin" runat="server">
  6. <script type="text/javascript">
  7. <!--
  8. function __ShowUploadProgress() {
  9. document.getElementById("UploadProgressSpan").style["display"] = "";
  10. return true;
  11. }
  12. function __HideUploadProgress() {
  13. document.getElementById("UploadProgressSpan").style["display"] = "none";
  14. return true;
  15. }
  16. // -->
  17. </script>
  18. <h2 class="sectiontitle"><asp:Literal ID="lblProviders" runat="server" Text="Providers" EnableViewState="False" meta:resourcekey="lblProvidersResource1" /></h2>
  19. <anthem:Panel ID="pnlList" runat="server" AutoUpdateAfterCallBack="True" meta:resourcekey="pnlListResource1" UpdateAfterCallBack="True">
  20. <asp:Literal ID="lblDisplay" runat="server" Text="Display" EnableViewState="False" meta:resourcekey="lblDisplayResource1" />:
  21. <anthem:RadioButton ID="rdoPages" runat="server" Text="Pages Providers" GroupName="type" Checked="True" AutoCallBack="True" OnCheckedChanged="rdo_CheckedChanged" meta:resourcekey="rdoPagesResource1" />
  22. <anthem:RadioButton ID="rdoUsers" runat="server" Text="Users Providers" GroupName="type" AutoCallBack="True" OnCheckedChanged="rdo_CheckedChanged" meta:resourcekey="rdoUsersResource1" />
  23. <anthem:RadioButton ID="rdoFiles" runat="server" Text="Files Providers" GroupName="type" AutoCallBack="True" OnCheckedChanged="rdo_CheckedChanged" meta:resourcekey="rdoFilesResource1" />
  24. <anthem:RadioButton ID="rdoCache" runat="server" Text="Cache Providers" GroupName="type" AutoCallBack="True" OnCheckedChanged="rdo_CheckedChanged" meta:resourcekey="rdoCacheResource1" />
  25. <anthem:RadioButton ID="rdoFormatter" runat="server" Text="Formatter Providers" GroupName="type" AutoCallBack="True" OnCheckedChanged="rdo_CheckedChanged" meta:resourcekey="rdoFormatterResource1" />
  26. <br />
  27. <div id="ProvidersListContainerDiv">
  28. <anthem:Repeater ID="rptProviders" runat="server"
  29. OnDataBinding="rptProviders_DataBinding" OnItemCommand="rptProviders_ItemCommand">
  30. <HeaderTemplate>
  31. <table cellpadding="0" cellspacing="0" class="generic">
  32. <thead>
  33. <tr class="tableheader">
  34. <th><asp:Literal ID="lblName" runat="server" EnableViewState="False" meta:resourcekey="lblNameResource1" Text="Name" /></th>
  35. <th><asp:Literal ID="lblVersion" runat="server" EnableViewState="False" meta:resourcekey="lblVersionResource1" Text="Ver." /></th>
  36. <th><asp:Literal ID="lblAuthor" runat="server" EnableViewState="False" meta:resourcekey="lblAuthorResource1" Text="Author" /></th>
  37. <th><asp:Literal ID="lblUpdateStatus" runat="server" EnableViewState="false" meta:resourcekey="lblUpdateStatusResource1" Text="Update Status" /></th>
  38. <th>&nbsp;</th>
  39. </tr>
  40. </thead>
  41. <tbody>
  42. </HeaderTemplate>
  43. <ItemTemplate>
  44. <tr class='tablerow<%# Eval("AdditionalClass") %>'>
  45. <td><%# Eval("Name") %></td>
  46. <td><%# Eval("Version") %></td>
  47. <td><a href='<%# Eval("AuthorUrl") %>' target="_blank"><%# Eval("Author") %></a></td>
  48. <td><%# Eval("UpdateStatus") %></td>
  49. <td><anthem:LinkButton ID="btnSelect" runat="server" CommandArgument='<%# Eval("TypeName") %>' CommandName="Select" meta:resourcekey="btnSelectResource2" Text="Select" /></td>
  50. </tr>
  51. </ItemTemplate>
  52. <AlternatingItemTemplate>
  53. <tr class='tablerowalternate<%# Eval("AdditionalClass") %>'>
  54. <td><%# Eval("Name") %></td>
  55. <td><%# Eval("Version") %></td>
  56. <td><a href='<%# Eval("AuthorUrl") %>' target="_blank"><%# Eval("Author") %></a></td>
  57. <td><%# Eval("UpdateStatus") %></td>
  58. <td><anthem:LinkButton ID="btnSelect" runat="server" Text="Select" CommandName="Select" CommandArgument='<%# Eval("TypeName") %>' meta:resourcekey="btnSelectResource1" /></td>
  59. </tr>
  60. </AlternatingItemTemplate>
  61. <FooterTemplate>
  62. </tbody>
  63. </table>
  64. </FooterTemplate>
  65. </anthem:Repeater>
  66. </div>
  67. <anthem:Panel ID="pnlProviderDetails" runat="server" AutoUpdateAfterCallBack="True" Visible="False" meta:resourcekey="pnlProviderDetailsResource1">
  68. <div id="EditProviderDiv">
  69. <h3><asp:Literal ID="lblProviderName" runat="server" meta:resourcekey="lblProviderNameResource1" /></h3>
  70. <b><asp:Literal ID="lblProviderDll" runat="server" meta:resourcekey="lblProviderDllResource1" /></b>
  71. <br /><br />
  72. <asp:Literal ID="lblConfigurationStringTitle" runat="server" Text="Configuration String" EnableViewState="False" meta:resourcekey="lblConfigurationStringTitleResource1" />
  73. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  74. <a href="#" onclick="javascript:document.getElementById('ProviderConfigHelpDiv').style['display'] = ''; return false;">
  75. <asp:Literal ID="lblConfigHelp" runat="server" Text="Help" EnableViewState="False" meta:resourcekey="lblConfigHelpResource1" /></a>
  76. <br />
  77. <anthem:TextBox ID="txtConfigurationString" runat="server" TextMode="MultiLine" CssClass="config" meta:resourcekey="txtConfigurationStringResource1" />
  78. <br />
  79. <anthem:Button ID="btnSave" runat="server" Text="Save" ToolTip="Save the Configuration String" OnClick="btnSave_Click" meta:resourcekey="btnSaveResource1" />
  80. <anthem:Button ID="btnDisable" runat="server" Text="Disable" ToolTip="Disable the Provider" OnClick="btnDisable_Click" PreCallBackFunction="RequestConfirm" meta:resourcekey="btnDisableResource1" />
  81. <anthem:Button ID="btnEnable" runat="server" Text="Enable" ToolTip="Enable the Provider" Visible="False" OnClick="btnEnable_Click" PreCallBackFunction="RequestConfirm" meta:resourcekey="btnEnableResource1" />
  82. <anthem:Button ID="btnUnload" runat="server" Text="Unload" ToolTip="Unloads the Provider" OnClick="btnUnload_Click" PreCallBackFunction="RequestConfirm" meta:resourcekey="btnUnloadResource1" />
  83. <anthem:Button ID="btnCancel" runat="server" Text="Cancel" ToolTip="Deselect the Provider" OnClick="btnCancel_Click" meta:resourcekey="btnCancelResource1" />
  84. <br /><br />
  85. <anthem:Label ID="lblCannotDisable" runat="server" CssClass="small" Text="Cannot disable the provider because it is the default provider or,<br />in case of a Pages Provider, it manages the default page of the root namespace"
  86. meta:resourcekey="lblCannotDisableResource1"/><br />
  87. <anthem:Label ID="lblResult" runat="server" meta:resourcekey="lblResultResource1" />
  88. <div id="ProviderConfigHelpDiv" style="display: none;">
  89. <anthem:Label ID="lblProviderConfigHelp" runat="server" meta:resourcekey="lblProviderConfigHelpResource1" />
  90. </div>
  91. </div>
  92. </anthem:Panel>
  93. <div id="ProvidersUpdateDiv">
  94. <script type="text/javascript">
  95. <!--
  96. function __ShowUpdateProgress() {
  97. if (RequestConfirm()) {
  98. document.getElementById("ProvidersUpdateProgress").style["display"] = "";
  99. return true;
  100. }
  101. else return false;
  102. }
  103. function __HideUpdateProgress() {
  104. document.getElementById("ProvidersUpdateProgress").style["display"] = "none";
  105. }
  106. // -->
  107. </script>
  108. <anthem:Button ID="btnAutoUpdateProviders" runat="server" Text="Auto-update Providers" ToolTip="Automatically update all installed providers, of all types"
  109. PreCallBackFunction="__ShowUpdateProgress" PostCallBackFunction="__HideUpdateProgress" OnClick="btnAutoUpdateProviders_Click" meta:resourcekey="btnAutoUpdateProvidersResource1" />
  110. <span id="ProvidersUpdateProgress" style="display: none;">
  111. <img src="Images/Wait.gif" alt="..." />
  112. </span>
  113. <anthem:Label ID="lblAutoUpdateResult" runat="server" AutoUpdateAfterCallBack="true" />
  114. </div>
  115. </anthem:Panel>
  116. <anthem:HiddenField ID="txtCurrentProvider" runat="server" AutoUpdateAfterCallBack="True" />
  117. <div style="clear: both;"></div>
  118. <br />
  119. <h2 class="separator"><asp:Literal ID="lblDefaultProvidersTitle" runat="server" Text="Default Providers" EnableViewState="False" meta:resourcekey="lblDefaultProvidersTitleResource1" /></h2>
  120. <div class="defaultprov">
  121. <asp:Literal ID="lblDefaultProvPages" runat="server" Text="Pages Provider" EnableViewState="False" meta:resourcekey="lblDefaultProvPagesResource1" /><br />
  122. <st:ProviderSelector ID="lstPagesProvider" runat="server" ProviderType="Pages" ExcludeReadOnly="true" />
  123. </div>
  124. <div class="defaultprov">
  125. <asp:Literal ID="lblDefaultProvUsers" runat="server" Text="Users Provider" EnableViewState="False" meta:resourcekey="lblDefaultProvUsersResource1" /><br />
  126. <st:ProviderSelector ID="lstUsersProvider" runat="server" ProviderType="Users" ExcludeReadOnly="true" />
  127. </div>
  128. <div class="defaultprov">
  129. <asp:Literal ID="lblDefaultProvFiles" runat="server" Text="Files Provider" EnableViewState="False" meta:resourcekey="lblDefaultProvFilesResource1" /><br />
  130. <st:ProviderSelector ID="lstFilesProvider" runat="server" ProviderType="Files" ExcludeReadOnly="true" />
  131. </div>
  132. <div class="defaultprov">
  133. <asp:Literal ID="lblDefaultProvCache" runat="server" Text="Cache Provider" EnableViewState="False" meta:resourcekey="lblDefaultProvCacheResource1" /><br />
  134. <st:ProviderSelector ID="lstCacheProvider" runat="server" ProviderType="Cache" ExcludeReadOnly="true" />
  135. </div>
  136. <div class="defaultprovbutton">
  137. <anthem:Button ID="btnSaveDefaultProviders" runat="server" Text="Save" OnClick="btnSaveDefaultProviders_Click" meta:resourcekey="btnSaveDefaultProvidersResource1" />
  138. <anthem:Label ID="lblDefaultProvidersResult" runat="server" AutoUpdateAfterCallBack="True" meta:resourcekey="lblDefaultProvidersResultResource1" />
  139. </div>
  140. <div style="clear: both;"></div>
  141. <br />
  142. <h2 class="separator"><asp:Literal ID="lblUploadProvidersTitle" runat="server" Text="Providers DLLs Management" EnableViewState="False" meta:resourcekey="lblUploadProvidersTitleResource1" /></h2>
  143. <h4><asp:Literal ID="lblUploadNewDll" runat="server" Text="Upload new DLL" EnableViewState="False" meta:resourcekey="lblUploadNewDllResource1" /></h4>
  144. <anthem:FileUpload ID="upDll" runat="server" AutoUpdateAfterCallBack="True" meta:resourcekey="upDllResource1" />
  145. <anthem:Button ID="btnUpload" runat="server" Text="Upload" OnClick="btnUpload_Click" EnabledDuringCallBack="False"
  146. PreCallBackFunction="__ShowUploadProgress" PostCallBackFunction="__HideUploadProgress" meta:resourcekey="btnUploadResource1" />
  147. <span id="UploadProgressSpan" style="display: none;"><img src="Images/Wait.gif" alt="Uploading..." /></span><br />
  148. <anthem:Label ID="lblUploadResult" runat="server" AutoUpdateAfterCallBack="True" meta:resourcekey="lblUploadResultResource1" />
  149. <div id="DllsListContainerDiv">
  150. <anthem:DropDownList ID="lstDlls" runat="server" AutoCallBack="True" AutoUpdateAfterCallBack="True" OnSelectedIndexChanged="lstDlls_SelectedIndexChanged" meta:resourcekey="lstDllsResource1" />
  151. <anthem:Button ID="btnDeleteDll" runat="server" Text="Delete" PreCallBackFunction="RequestConfirm" AutoUpdateAfterCallBack="True" OnClick="btnDeleteDll_Click" Enabled="False" meta:resourcekey="btnDeleteDllResource1" />
  152. <br />
  153. <anthem:Label ID="lblDllResult" runat="server" AutoUpdateAfterCallBack="True" meta:resourcekey="lblDllResultResource1" />
  154. </div>
  155. <div id="DllNoticeDiv">
  156. <small>
  157. <asp:Literal ID="lblUploadInfo" runat="server" EnableViewState="False"
  158. Text="<b>Note</b>: removing a DLL won't disable the Providers it contains until the next wiki restart,<br />but uploading a new DLL will automatically load the Providers it contains."
  159. meta:resourcekey="lblUploadInfoResource1" />
  160. </small>
  161. </div>
  162. <div style="clear: both;"></div>
  163. <br />
  164. <h2 class="separator"><asp:Literal ID="lblDataMigration" runat="server" Text="Data Migration" EnableViewState="False" meta:resourcekey="lblDataMigrationResource1" /></h2>
  165. <asp:Literal ID="lblMigrationInfo" runat="server" EnableViewState="False"
  166. Text="<b>Note 1</b>: always perform a full backup of all your data before performing a migration.<br /><b>Note 2</b>: migrations usually take several minutes to complete: during this time, do not perform any other activity in the wiki, and do not close this page.<br /><b>Note 3</b>: the destination provider should be completely empty: if it contains any data, it might cause consistency issues. Refer to the target provider's documentation for details.<br /><b>Timeouts</b>: it is strongly suggested that you increase the executionTimeout parameter in web.config before migrating data."
  167. meta:resourcekey="lblMigrationInfoResource2" />
  168. <br /><br />
  169. <h4><asp:Literal ID="lblMigratePages" runat="server" Text="Migrate Pages and related data" EnableViewState="False" meta:resourcekey="lblMigratePagesResource1" /></h4>
  170. <anthem:DropDownList ID="lstPagesSource" runat="server" AutoCallBack="True" AutoUpdateAfterCallBack="True"
  171. OnSelectedIndexChanged="lstPagesSource_SelectedIndexChanged" meta:resourcekey="lstPagesSourceResource1" />
  172. <img src="Images/ArrowRight.png" alt="->" />
  173. <anthem:DropDownList ID="lstPagesDestination" runat="server" AutoUpdateAfterCallBack="True" meta:resourcekey="lstPagesDestinationResource1" />
  174. <anthem:Button ID="btnMigratePages" runat="server" Text="Migrate" Enabled="False" EnabledDuringCallBack="False" AutoUpdateAfterCallBack="True"
  175. PreCallBackFunction="RequestConfirm" OnClick="btnMigratePages_Click" meta:resourcekey="btnMigratePagesResource1" />
  176. <anthem:Label ID="lblMigratePagesResult" runat="server" AutoUpdateAfterCallBack="True" meta:resourcekey="lblMigratePagesResultResource1" />
  177. <br />
  178. <br />
  179. <h4><asp:Literal ID="lblMigrateUsers" runat="server" Text="Migrate Users and related data" EnableViewState="False" meta:resourcekey="lblMigrateUsersResource1" /></h4>
  180. <anthem:DropDownList ID="lstUsersSource" runat="server" AutoCallBack="True" AutoUpdateAfterCallBack="True"
  181. OnSelectedIndexChanged="lstUsersSource_SelectedIndexChanged" meta:resourcekey="lstUsersSourceResource1" />
  182. <img src="Images/ArrowRight.png" alt="->" />
  183. <anthem:DropDownList ID="lstUsersDestination" runat="server" AutoUpdateAfterCallBack="True" meta:resourcekey="lstUsersDestinationResource1" />
  184. <anthem:Button ID="btnMigrateUsers" runat="server" Text="Migrate" Enabled="False" EnabledDuringCallBack="False"
  185. AutoUpdateAfterCallBack="True" PreCallBackFunction="RequestConfirm" OnClick="btnMigrateUsers_Click" meta:resourcekey="btnMigrateUsersResource1" />
  186. <anthem:Label ID="lblMigrateUsersResult" runat="server" AutoUpdateAfterCallBack="True" meta:resourcekey="lblMigrateUsersResultResource1" />
  187. <br />
  188. <span class="small">
  189. <asp:Literal ID="lblMigrateUsersInfo" runat="server"
  190. Text="<b>Note</b>: migrating user accounts will reset all their passwords (an email notice will be sent to all users)."
  191. EnableViewState="False" meta:resourcekey="lblMigrateUsersInfoResource1" />
  192. </span>
  193. <br /><br />
  194. <h4><asp:Literal ID="lblMigrateFiles" runat="server" Text="Migrate Files and related data" EnableViewState="False" meta:resourcekey="lblMigrateFilesResource1" /></h4>
  195. <anthem:DropDownList ID="lstFilesSource" runat="server" AutoCallBack="True" AutoUpdateAfterCallBack="True"
  196. OnSelectedIndexChanged="lstFilesSource_SelectedIndexChanged" meta:resourcekey="lstFilesSourceResource1" />
  197. <img src="Images/ArrowRight.png" alt="->" />
  198. <anthem:DropDownList ID="lstFilesDestination" runat="server" AutoUpdateAfterCallBack="True" meta:resourcekey="lstFilesDestinationResource1" />
  199. <anthem:Button ID="btnMigrateFiles" runat="server" Text="Migrate" Enabled="False" EnabledDuringCallBack="False"
  200. AutoUpdateAfterCallBack="True" PreCallBackFunction="RequestConfirm" OnClick="btnMigrateFiles_Click" meta:resourcekey="btnMigrateFilesResource1" />
  201. <anthem:Label ID="lblMigrateFilesResult" runat="server" AutoUpdateAfterCallBack="True" meta:resourcekey="lblMigrateFilesResultResource1" />
  202. <br /><br />
  203. <h4><asp:Literal ID="lblCopySettings" runat="server" Text="Copy Settings and related data" EnableViewState="False" meta:resourcekey="lblCopySettingsResource1" /></h4>
  204. <anthem:Label ID="lblSettingsSource" runat="server" AutoUpdateAfterCallBack="True" meta:resourcekey="lblSettingsSourceResource1" />
  205. <img src="Images/ArrowRight.png" alt="->" />
  206. <anthem:DropDownList ID="lstSettingsDestination" runat="server" AutoUpdateAfterCallBack="True" AutoCallBack="True"
  207. OnSelectedIndexChanged="lstSettingsDestination_SelectedIndexChanged" meta:resourcekey="lstSettingsDestinationResource1" />
  208. <anthem:Button ID="btnCopySettings" runat="server" Text="Copy" Enabled="False" EnabledDuringCallBack="False"
  209. AutoUpdateAfterCallBack="True" PreCallBackFunction="RequestConfirm" OnClick="btnCopySettings_Click" meta:resourcekey="btnCopySettingsResource1" />
  210. <anthem:Label ID="lblCopySettingsResult" runat="server" AutoUpdateAfterCallBack="True" meta:resourcekey="lblCopySettingsResultResource1" /><br />
  211. <span class="small">
  212. <asp:Literal ID="lblCopySettingsInfo" runat="server" EnableViewState="False"
  213. Text="<b>Note</b>: in order to be detected, the destination Provider must be uploaded using the upload tool.<br />Log and recent changes will not be copied."
  214. meta:resourcekey="lblCopySettingsInfoResource1" />
  215. </span>
  216. <br /><br />
  217. <div id="CopySettingsConfigDiv">
  218. <asp:Literal ID="lblCopySettingsDestinationConfig" runat="server" Text="Destination Settings Provider Configuration string (if needed)" EnableViewState="false" /><br />
  219. <anthem:TextBox ID="txtSettingsDestinationConfig" runat="server" TextMode="MultiLine" CssClass="config" />
  220. </div>
  221. <div style="clear: both;"></div>
  222. </asp:Content>