/source/app/NOS.Wiki/Edit.aspx

http://github.com/agross/netopenspace · ASP.NET · 210 lines · 146 code · 23 blank · 41 comment · 6 complexity · 29867c8fb0ad6ba32586e30b0243e2e1 MD5 · raw file

  1. <%@ Page Language="C#" MasterPageFile="~/MasterPageSA.master" AutoEventWireup="true" CodeBehind="Edit.aspx.cs" Inherits="ScrewTurn.Wiki.Edit" ValidateRequest="false" culture="auto" meta:resourcekey="PageResource2" uiculture="auto" %>
  2. <%@ Register TagPrefix="st" TagName="Editor" Src="~/Editor.ascx" %>
  3. <%@ Register TagPrefix="st" TagName="Captcha" Src="~/Captcha.ascx" %>
  4. <%@ Register TagPrefix="st" TagName="AttachmentManager" Src="~/AttachmentManager.ascx" %>
  5. <asp:Content ID="CtnEdit" ContentPlaceHolderID="CphMasterSA" runat="server">
  6. <script type="text/javascript">
  7. <!--
  8. var submitted = false;
  9. function __UnloadPage(e) {
  10. if (!submitted) {
  11. if (document.getElementById('EditorDiv').getElementsByTagName('textarea')[0].value.length != 0) {
  12. e.returnValue = " ";
  13. }
  14. }
  15. }
  16. function __SetSubmitted() {
  17. submitted = true;
  18. }
  19. function __RequestConfirmIfNotEmpty() {
  20. if (document.getElementById('EditorDiv').getElementsByTagName('textarea')[0].value.length != 0) {
  21. return(__RequestConfirm());
  22. }
  23. }
  24. // -->
  25. </script>
  26. <asp:Panel ID="pnlCollisions" runat="server" Visible="False"
  27. CssClass="collisionsmanagement" meta:resourcekey="pnlCollisionsResource1">
  28. <asp:Literal ID="lblConcurrentEditing" runat="server" Text="&lt;b&gt;Warning&lt;/b&gt;: this Page is being edited by another user" meta:resourcekey="lblConcurrentEditingResource1" />
  29. <asp:Literal ID="lblConcurrentEditingUsername" runat="server" meta:resourcekey="lblConcurrentEditingUsernameResource1" />.
  30. <asp:Literal ID="lblSaveDangerous" runat="server" Visible="False" Text="Saving this Page might result in a &lt;b&gt;data-loss&lt;/b&gt;." meta:resourcekey="lblSaveDangerousResource1" />
  31. <asp:Literal ID="lblSaveDisabled" runat="server" Visible="False" Text="The Administrators don't allow to save this Page." meta:resourcekey="lblSaveDisabledResource1" />
  32. <asp:Literal ID="lblRefreshLink" runat="server" meta:resourcekey="lblRefreshLinkResource1" />
  33. </asp:Panel>
  34. <asp:Panel ID="pnlAnonymous" runat="server" Visible="False" CssClass="anonymous" meta:resourcekey="pnlAnonymousResource1">
  35. <asp:Literal ID="lblIpLogged" runat="server" Text="Since you are not logged in, your IP Address will be used as Username." meta:resourcekey="lblIpLoggedResource1" />
  36. </asp:Panel>
  37. <asp:Panel ID="pnlDraft" runat="server" Visible="False" CssClass="draftmanagement" meta:resourcekey="pnlDraftResource1">
  38. <asp:Literal ID="lblDraftInfo" runat="server" Text="You are currently editing a previously saved <b>draft</b> of this page, edited by <b>##USER##</b> on <b>##DATETIME##</b> (##VIEWCHANGES##)."
  39. meta:resourcekey="lblDraftInfoResource1" />
  40. <asp:Literal ID="lblDraftInfo2" runat="server" Text="If you think this content is ready for display, simply unckeck the 'Save as Draft' checkbox near the 'Save' button. Note: drafts are not versioned."
  41. meta:resourcekey="lblDraftInfo2Resource1" /><br />
  42. </asp:Panel>
  43. <asp:Panel ID="pnlApprovalRequired" runat="server" Visible="False" CssClass="draftmanagement" meta:resourcekey="pnlApprovalRequiredResource1">
  44. <asp:Literal ID="lblApprovalRequiredInfo" runat="server" Text="Your changes to this page will be saved in a draft and they will not be published until an editor or administrator approves them."
  45. EnableViewState="False" meta:resourcekey="lblApprovalRequiredInfoResource1" />
  46. </asp:Panel>
  47. <div id="EditNoticeDiv">
  48. <asp:Literal ID="lblEditNotice" runat="server" EnableViewState="False" meta:resourcekey="lblEditNoticeResource1" />
  49. </div>
  50. <div id="ButtonsDiv">
  51. <asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" ValidationGroup="nametitle" meta:resourcekey="btnSaveResource1" />
  52. <asp:Button ID="btnSaveAndContinue" runat="server" Text="Save &amp; Continue" OnClick="btnSave_Click" ValidationGroup="nametitle" meta:resourcekey="btnSaveAndContinueResource1" />
  53. <asp:Button ID="btnCancel" runat="server" Text="Cancel" CausesValidation="False" OnClick="btnCancel_Click" meta:resourcekey="btnCancelResource1" />
  54. <div id="SaveOptionsDiv">
  55. <anthem:CheckBox ID="chkMinorChange" runat="server" Text="Minor Change (no backup)" OnCheckedChanged="chkMinorChange_CheckedChanged"
  56. AutoCallBack="True" AutoUpdateAfterCallBack="True" meta:resourcekey="chkMinorChangeResource1" UpdateAfterCallBack="True" /><br />
  57. <anthem:CheckBox ID="chkSaveAsDraft" runat="server" Text="Save as Draft" OnCheckedChanged="chkSaveAsDraft_CheckedChanged"
  58. AutoCallBack="True" AutoUpdateAfterCallBack="True" meta:resourcekey="chkSaveAsDraftResource1" UpdateAfterCallBack="True" />
  59. </div>
  60. <div id="ResultDiv">
  61. <asp:Label ID="lblResult" runat="server" EnableViewState="False" meta:resourcekey="lblResultResource1" />
  62. </div>
  63. </div>
  64. <div id="PageNameAndTitleDiv">
  65. <anthem:Panel ID="pnlPageName" runat="server">
  66. <asp:Literal ID="lblName" runat="server" Text="Page Name (used for linking pages)" meta:resourcekey="lblNameResource1" /><br />
  67. <asp:TextBox ID="txtName" runat="server" CssClass="bigtextbox large" ToolTip="Type the name of the page here" meta:resourcekey="txtNameResource2" />
  68. <asp:RequiredFieldValidator ID="rfvName" runat="server" CssClass="resulterror" ErrorMessage="Name is required"
  69. Display="Dynamic" ControlToValidate="txtName" ValidationGroup="nametitle" meta:resourcekey="rfvNameResource1" />
  70. <asp:CustomValidator ID="cvName1" runat="server" CssClass="resulterror" ErrorMessage="Invalid Page Name"
  71. Display="Dynamic" ControlToValidate="txtName" OnServerValidate="cvName1_ServerValidate" ValidationGroup="nametitle" meta:resourcekey="cvName1Resource1" />
  72. <asp:CustomValidator ID="cvName2" runat="server" CssClass="resulterror" ErrorMessage="Page already exists"
  73. Display="Dynamic" ControlToValidate="txtName" OnServerValidate="cvName2_ServerValidate" ValidationGroup="nametitle" meta:resourcekey="cvName2Resource1" />
  74. <br />
  75. </anthem:Panel>
  76. <anthem:Panel ID="pnlManualName" runat="server" Visible="false">
  77. <anthem:LinkButton ID="btnManualName" runat="server" Text="Specify page name manually..."
  78. OnClick="btnManualName_Click" CssClass="small" meta:resourcekey="btnManualNameResource1" />
  79. <br />
  80. </anthem:Panel>
  81. <asp:Literal ID="lblTitle" runat="server" Text="Page Title" meta:resourcekey="lblTitleResource1" /><br />
  82. <asp:TextBox ID="txtTitle" runat="server" CssClass="bigtextbox large" ToolTip="Type the title of the page here" ValidationGroup="nametitle"
  83. meta:resourcekey="txtTitleResource2" />
  84. <asp:RequiredFieldValidator ID="rfvTitle" runat="server" CssClass="resulterror" ErrorMessage="Title is required"
  85. Display="Dynamic" ControlToValidate="txtTitle" ValidationGroup="nametitle" meta:resourcekey="rfvTitleResource1" />
  86. </div>
  87. <div id="TemplatesDiv">
  88. <anthem:LinkButton ID="btnTemplates" runat="server" Text="Content Templates..." OnClick="btnTemplates_Click"
  89. AutoUpdateAfterCallBack="True" meta:resourcekey="btnTemplatesResource1" CssClass="small" />
  90. <anthem:Panel ID="pnlTemplates" runat="server" Visible="False" AutoUpdateAfterCallBack="True" meta:resourcekey="pnlTemplatesResource1">
  91. <div id="TemplatesInternalDiv">
  92. <anthem:DropDownList ID="lstTemplates" runat="server" AutoCallBack="True" OnSelectedIndexChanged="lstTemplates_SelectedIndexChanged"
  93. meta:resourcekey="lstTemplatesResource1" />
  94. <div id="TemplatePreviewDiv">
  95. <anthem:Label ID="lblTemplatePreview" runat="server" AutoUpdateAfterCallBack="True" meta:resourcekey="lblTemplatePreviewResource1"
  96. UpdateAfterCallBack="True" />
  97. </div>
  98. <small>
  99. <anthem:LinkButton ID="btnUseTemplate" runat="server" Text="Use Template" ToolTip="Use this Template (replace current content)"
  100. CausesValidation="False" AutoUpdateAfterCallBack="True" Visible="False" PreCallBackFunction="__RequestConfirmIfNotEmpty" OnClick="btnUseTemplate_Click"
  101. meta:resourcekey="btnUseTemplateResource1" UpdateAfterCallBack="True" />
  102. &bull;
  103. <anthem:LinkButton ID="btnCancelTemplate" runat="server" Text="Cancel" ToolTip="Close the Templates toolbar"
  104. CausesValidation="False" OnClick="btnCancelTemplate_Click" meta:resourcekey="btnCancelTemplateResource1" />
  105. </small>
  106. </div>
  107. </anthem:Panel>
  108. </div>
  109. <anthem:Panel ID="pnlAutoTemplate" runat="server" Visible="False" CssClass="autotemplate" AutoUpdateAfterCallBack="True"
  110. meta:resourcekey="pnlAutoTemplateResource1" UpdateAfterCallBack="True">
  111. <asp:Literal ID="lblAutoTemplate" runat="server" Text="The Content Template &quot;##TEMPLATE##&quot; was selected automatically. You can discard the content as well as select another Template using the link above."
  112. meta:resourcekey="lblAutoTemplateResource1" />
  113. <anthem:LinkButton ID="btnAutoTemplateOK" runat="server" Text="Close" ToolTip="Close this message" OnClick="btnAutoTemplateOK_Click"
  114. meta:resourcekey="btnAutoTemplateOKResource1" />
  115. </anthem:Panel>
  116. <div id="EditorDiv">
  117. <st:Editor ID="editor" runat="server" OnSelectedTabChanged="editor_SelectedTabChanged" />
  118. </div>
  119. <asp:Panel ID="pnlCaptcha" runat="server" CssClass="captcha" meta:resourcekey="pnlCaptchaResource1">
  120. <st:Captcha ID="captcha" runat="server" />
  121. </asp:Panel>
  122. <div id="CategoriesDiv">
  123. <div>
  124. <h3 class="separator"><asp:Literal ID="lblCategories" runat="server" Text="Page Categories" EnableViewState="False" meta:resourcekey="lblCategoriesResource1" /></h3>
  125. <div id="CategoriesListDiv">
  126. <anthem:CheckBoxList ID="lstCategories" runat="server" CssClass="medium h_short" RepeatLayout="Flow" AutoUpdateAfterCallBack="True"
  127. meta:resourcekey="lstCategoriesResource1" UpdateAfterCallBack="True" />
  128. </div>
  129. <anthem:Panel ID="pnlCategoryCreation" runat="server" CssClass="categorycreation" AutoUpdateAfterCallBack="True"
  130. meta:resourcekey="pnlCategoryCreationResource1" UpdateAfterCallBack="True">
  131. <asp:Literal ID="lblNewCategory" runat="server" Text="New Category" EnableViewState="False" meta:resourcekey="lblNewCategoryResource1" /><br />
  132. <anthem:TextBox ID="txtCategory" runat="server" CssClass="short" ToolTip="Type the name of the category here" ValidationGroup="category"
  133. meta:resourcekey="txtCategoryResource2" />
  134. <anthem:Button ID="btnCreateCategory" runat="server" Text="Create" ValidationGroup="category" OnClick="btnCreateCategory_Click"
  135. meta:resourcekey="btnCreateCategoryResource1" /><br />
  136. <asp:RequiredFieldValidator ID="rfvCategory" runat="server" ValidationGroup="category" ControlToValidate="txtCategory" Display="Dynamic"
  137. ErrorMessage="Name is required" meta:resourcekey="rfvCategoryResource1" />
  138. <asp:CustomValidator ID="cvCategory1" runat="server" ValidationGroup="category" ControlToValidate="txtCategory" Display="Dynamic"
  139. ErrorMessage="Invalid Name" OnServerValidate="cvCategory1_ServerValidate" meta:resourcekey="cvCategory1Resource1" />
  140. <asp:CustomValidator ID="cvCategory2" runat="server" ValidationGroup="category" ControlToValidate="txtCategory" Display="Dynamic"
  141. ErrorMessage="Category already exists" OnServerValidate="cvCategory2_ServerValidate" meta:resourcekey="cvCategory2Resource1" />
  142. <anthem:Label ID="lblCategoryResult" runat="server" meta:resourcekey="lblCategoryResultResource1" />
  143. </anthem:Panel>
  144. </div>
  145. </div>
  146. <div id="EditCommentDiv">
  147. <h3 class="separator"><asp:Literal ID="lblMeta" runat="server" Text="Meta Information" EnableViewState="False" meta:resourcekey="lblMetaResource1" /></h3>
  148. <asp:Literal ID="lblKeywords" runat="server" Text="Meta Keywords (separate with commas)" EnableViewState="False" meta:resourcekey="lblKeywordsResource1" /><br />
  149. <asp:TextBox ID="txtKeywords" runat="server" ToolTip="Type the keywords for this page here, separated with commas (optional)" meta:resourcekey="txtKeywordsResource2" /><br />
  150. <asp:Literal ID="lblDescription" runat="server" Text="Meta Description" EnableViewState="False" meta:resourcekey="lblDescriptionResource1" /><br />
  151. <asp:TextBox ID="txtDescription" runat="server" ToolTip="Type the description for this page here (optional)" meta:resourcekey="txtDescriptionResource2" />
  152. <asp:Literal ID="lblComment" runat="server" Text="Comment for this change" EnableViewState="False" meta:resourcekey="lblCommentResource1" /><br />
  153. <asp:TextBox ID="txtComment" runat="server" ToolTip="Type a comment for this change here (optional)" meta:resourcekey="txtCommentResource2" />
  154. </div>
  155. <div id="AttachmentsDiv">
  156. <h3 class="separator"><asp:Literal ID="lblAttachmentManager" runat="server" Text="Page Attachments Management" meta:resourcekey="lblAttachmentManagerResource1" /></h3>
  157. <st:AttachmentManager ID="attachmentManager" runat="server" />
  158. </div>
  159. <asp:Literal ID="lblSessionRefresh" runat="server" EnableViewState="False" meta:resourcekey="lblSessionRefreshResource1" />
  160. <script type="text/javascript">
  161. <!--
  162. __GetServerElementById("btnSave").onclick = __SetSubmitted;
  163. if(__GetServerElementById("btnSaveAndContinue")) {
  164. __GetServerElementById("btnSaveAndContinue").onclick = __SetSubmitted;
  165. }
  166. __GetServerElementById("btnCancel").onclick = __SetSubmitted;
  167. if(__GetServerElementById("btnNewCategory")) {
  168. __GetServerElementById("btnNewCategory").onclick = __SetSubmitted;
  169. }
  170. $(function() {
  171. $("#<%= txtTitle.ClientID %>").focus().keydown(function(event) {
  172. if(event.keyCode == 9 /* TAB */) {
  173. event.preventDefault();
  174. __FocusEditorWindow();
  175. }
  176. });
  177. });
  178. // -->
  179. </script>
  180. <asp:Literal ID="lblUnloadPage" runat="server" meta:resourcekey="lblUnloadPageResource1" />
  181. <div class="cleanup"></div>
  182. </asp:Content>