/source/app/NOS.Wiki/Popup.aspx

http://github.com/agross/netopenspace · ASP.NET · 374 lines · 146 code · 51 blank · 177 comment · 0 complexity · b415c0df983b2904d48ae5c033eacbb6 MD5 · raw file

  1. <%@ Page Language="C#" AutoEventWireup="true" Inherits="ScrewTurn.Wiki.Popup" meta:resourcekey="PageResource1" Codebehind="Popup.aspx.cs" culture="auto" uiculture="auto" %>
  2. <%@ Register TagName="ClientTree" TagPrefix="st" Src="~/ClientTree.ascx" %>
  3. <%@ Register TagName="ClientImageBrowser" TagPrefix="st" Src="~/ClientImageBrowser.ascx" %>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5. <html dir="<%= ScrewTurn.Wiki.Settings.Direction %>" xmlns="http://www.w3.org/1999/xhtml" >
  6. <head runat="server">
  7. <title runat="server">ScrewTurn Wiki</title>
  8. <link rel="stylesheet" type="text/css" href="Themes/Editor.css" />
  9. <script type="text/javascript">
  10. <!--
  11. function Execute(code) {
  12. window.opener.eval(code);
  13. window.close();
  14. return false;
  15. }
  16. function ProcessPageLink() {
  17. var name = GetValue("txtPageName");
  18. if(name == "") return false;
  19. var title = GetValue("txtPageTitle");
  20. var c = IsChecked("chkPageNW") ? "^" : "";
  21. if(title != "") {
  22. Execute("InsertMarkup(\"[" + c + name + "|" + title + "]\");");
  23. }
  24. else {
  25. Execute("InsertMarkup(\"[" + c + name + "]\");");
  26. }
  27. window.close();
  28. return false;
  29. }
  30. function ProcessFileLink() {
  31. var name = GetValue("txtFilePath");
  32. name = name.replace(/\\/g, '\\\\');
  33. if(name == "") return false;
  34. var title = GetValue("txtFileTitle");
  35. var c = IsChecked("chkFileNW") ? "^" : "";
  36. if(title != "") {
  37. Execute("InsertMarkup(\"[" + c + name + "|" + title + "]\");");
  38. }
  39. else {
  40. Execute("InsertMarkup(\"[" + c + name + "]\");");
  41. }
  42. window.close();
  43. return false;
  44. }
  45. function SelectFile(prov, value) {
  46. SetValue("txtFilePath", "{UP" + prov + "}" + value);
  47. }
  48. function ProcessExternalLink() {
  49. var url = GetValue("txtLinkUrl");
  50. if(url == "") return false;
  51. var title = GetValue("txtLinkTitle");
  52. var c = IsChecked("chkLinkNW") ? "^" : "";
  53. if(title != "") {
  54. Execute("InsertMarkup(\"[" + c + url + "|" + title + "]\");");
  55. }
  56. else {
  57. Execute("InsertMarkup(\"[" + c + url + "]\");");
  58. }
  59. window.close();
  60. return false;
  61. }
  62. function ProcessImage() {
  63. var name = GetValue("txtImagePath");
  64. if(name == "") return false;
  65. var link = GetValue("txtImageLink");
  66. var descr = GetValue("txtImageDescr");
  67. var c = IsChecked("chkImageNW") ? "^" : "";
  68. var imageType = GetImageType();
  69. if(link != "") {
  70. Execute("InsertMarkup(\"[" + imageType + "|" + descr + "|" + name + "|" + c + link + "]\");");
  71. }
  72. else {
  73. Execute("InsertMarkup(\"[" + imageType + "|" + descr + "|" + name + "]\");");
  74. }
  75. }
  76. function GetImageType() {
  77. if(IsChecked("rdoImageLeft")) return "imageleft";
  78. if(IsChecked("rdoImageRight")) return "imageright";
  79. if(IsChecked("rdoImageAuto")) return "imageauto";
  80. if(IsChecked("rdoImageInline")) return "image";
  81. return "";
  82. }
  83. function SelectImage(prov, value, page) {
  84. document.getElementById("PreviewImg").src = "Thumb.aspx?Provider=" + GetValue("lstProviderImages") +
  85. "&File=" + value + "&Size=Big&Info=1&Page=" + page;
  86. if(IsChecked("rdoImageLink")) {
  87. SetValue("txtImageLink", "{UP" + prov + "}" + value);
  88. ImageLinkFromBrowser = 1;
  89. }
  90. else {
  91. SetValue("txtImagePath", "{UP" + prov + "}" + value);
  92. }
  93. return false;
  94. }
  95. function ProcessAnchor() {
  96. var link = IsChecked("rdoAnchorLink");
  97. if(link) {
  98. var id = GetValue("lstExistingAnchors");
  99. if(id == "") return false;
  100. var title = GetValue("txtAnchorTitle");
  101. Execute("InsertMarkup(\"[#" + id + (title != "" ? "|" + title : "") + "]\");");
  102. }
  103. else {
  104. var id = GetValue("txtAnchorID");
  105. if(id == "") return false;
  106. id = id.replace(/#/g, "");
  107. Execute("InsertMarkup(\"[anchor|#" + id + "]\");");
  108. }
  109. return false;
  110. window.close();
  111. }
  112. function SetValue(targetId, value) {
  113. document.getElementById(targetId).value = value;
  114. }
  115. function GetValue(targetId) {
  116. return document.getElementById(targetId).value;
  117. }
  118. function IsChecked(targetId) {
  119. return document.getElementById(targetId).checked;
  120. }
  121. function CancelAll() {
  122. window.close();
  123. return false;
  124. }
  125. // -->
  126. </script>
  127. </head>
  128. <body id="ToolWindowBody">
  129. <form id="frmPopup" runat="server">
  130. <div id="MainPopupDiv">
  131. <asp:Literal ID="lblStrings" runat="server" meta:resourcekey="lblStringsResource1" />
  132. <asp:MultiView ID="mlvPopup" runat="server">
  133. <asp:View ID="viwPageLink" runat="server">
  134. <asp:DropDownList ID="lstNamespace" runat="server" AutoPostBack="true" Width="270px" OnSelectedIndexChanged="lstNamespace_SelectedIndexChanged" />
  135. <div id="ClientTreePagesDiv">
  136. <st:ClientTree ID="ctPages" runat="server" OnPopulate="ctPages_Populate" EnableViewState="False"
  137. LeafCssClass="menulink" NodeCssClass="menulink" ContainerCssClass="subtree" />
  138. </div>
  139. <asp:Literal ID="lblPageName" runat="server" Text="Page Name (required)" EnableViewState="False" meta:resourcekey="lblPageNameResource1" /><br />
  140. <asp:TextBox ID="txtPageName" runat="server" Width="264px" meta:resourcekey="txtPageNameResource1" /><br />
  141. <asp:Literal ID="lblPageTitle" runat="server" Text="Link Title (optional)" EnableViewState="False" meta:resourcekey="lblPageTitleResource1" /><br />
  142. <asp:TextBox ID="txtPageTitle" runat="server" Width="264px" meta:resourcekey="txtPageTitleResource1" /><br />
  143. <asp:CheckBox ID="chkPageNW" runat="server" Text="Open link in new window" EnableViewState="False" meta:resourcekey="chkPageNWResource1" />
  144. <div class="popupbuttons">
  145. <asp:Button ID="btnOkPageLink" runat="server" Text="OK" EnableViewState="False" meta:resourcekey="btnOkPageLinkResource1" />
  146. <asp:Button ID="btnCancelPageLink" runat="server" Text="Cancel" EnableViewState="False" meta:resourcekey="btnCancelPageLinkResource1" />
  147. </div>
  148. <script type="text/javascript">
  149. <!--
  150. document.getElementById("btnOkPageLink").onclick = ProcessPageLink;
  151. document.getElementById("btnCancelPageLink").onclick = CancelAll;
  152. $(function () {
  153. $("#<%= txtPageName.ClientID %>").keyup(function () {
  154. var value = $("#<%= txtPageName.ClientID %>").val().toLowerCase();
  155. $("div.treecontainer a.menulink").each(function () {
  156. var elem = $(this);
  157. var txt = elem.attr("title");
  158. txt = txt.substring(txt.indexOf(".") + 1);
  159. value = value.replace(/_/g, '-');
  160. var match = txt.toLowerCase().indexOf(value) != -1;
  161. elem.css("display", match ? "" : "none");
  162. });
  163. });
  164. $("#<%= txtPageTitle.ClientID %>").keyup(function () {
  165. var value = $("#<%= txtPageTitle.ClientID %>").val().toLowerCase();
  166. $("div.treecontainer a.menulink").each(function () {
  167. var elem = $(this);
  168. value = value.replace(/_/g, '-');
  169. var match = elem.text().toLowerCase().indexOf(value) != -1;
  170. elem.css("display", match ? "" : "none");
  171. });
  172. });
  173. });
  174. // -->
  175. </script>
  176. </asp:View>
  177. <asp:View ID="viwFileLink" runat="server">
  178. <asp:DropDownList ID="lstProviderFiles" runat="server"
  179. AutoPostBack="True" OnSelectedIndexChanged="lstProviderFiles_SelectedIndexChanged" meta:resourcekey="lstProviderFilesResource1" /><br />
  180. <asp:CheckBox ID="chkFilesAttachments" runat="server" Text="Browse Page Attachments"
  181. AutoPostBack="True" OnCheckedChanged="chkFilesAttachments_CheckedChanged" meta:resourcekey="chkFilesAttachmentsResource1" />
  182. <br /><br />
  183. <div id="ClientTreeFilesDiv">
  184. <st:ClientTree ID="ctFiles" runat="server" OnPopulate="ctFiles_Populate" EnableViewState="False"
  185. LeafCssClass="menulink menulinkfile" NodeCssClass="menulink menulinkdirectory" ContainerCssClass="subtree" />
  186. </div>
  187. <asp:Literal ID="lblFilePath" runat="server" Text="File Path (required)" EnableViewState="False" meta:resourcekey="lblFilePathResource1" /><br />
  188. <asp:TextBox ID="txtFilePath" runat="server" Width="264px" meta:resourcekey="txtFilePathResource1" /><br />
  189. <asp:Literal ID="lblFileTitle" runat="server" Text="Link Title (optional)" EnableViewState="False" meta:resourcekey="lblFileTitleResource1" /><br />
  190. <asp:TextBox ID="txtFileTitle" runat="server" Width="264px" meta:resourcekey="txtFileTitleResource1" /><br />
  191. <asp:CheckBox ID="chkFileNW" runat="server" Text="Open link in new window" EnableViewState="False" meta:resourcekey="chkFileNWResource1" />
  192. <div class="popupbuttons">
  193. <asp:Button ID="btnOkFileLink" runat="server" Text="OK" EnableViewState="False" meta:resourcekey="btnOkFileLinkResource1" />
  194. <asp:Button ID="btnCancelFileLink" runat="server" Text="Cancel" EnableViewState="False" meta:resourcekey="btnCancelFileLinkResource1" />
  195. </div>
  196. <script type="text/javascript">
  197. <!--
  198. document.getElementById("btnOkFileLink").onclick = ProcessFileLink;
  199. document.getElementById("btnCancelFileLink").onclick = CancelAll;
  200. // -->
  201. </script>
  202. </asp:View>
  203. <asp:View ID="viwExternalLink" runat="server">
  204. <asp:Literal ID="lblLinkUrl" runat="server" Text="Link URL or Email address (required)" EnableViewState="False" meta:resourcekey="lblLinkUrlResource1" /><br />
  205. <asp:TextBox ID="txtLinkUrl" runat="server" Width="270px" meta:resourcekey="txtLinkUrlResource1" /><br />
  206. <asp:Literal ID="lblLinkTitle" runat="server" Text="Link Title (optional)" EnableViewState="False" meta:resourcekey="lblLinkTitleResource1" /><br />
  207. <asp:TextBox ID="txtLinkTitle" runat="server" Width="270px" meta:resourcekey="txtLinkTitleResource1" /><br />
  208. <asp:CheckBox ID="chkLinkNW" runat="server" Text="Open link in new window" EnableViewState="False" meta:resourcekey="chkLinkNWResource1" />
  209. <div class="popupbuttons">
  210. <asp:Button ID="btnOkLink" runat="server" Text="OK" EnableViewState="False" meta:resourcekey="btnOkLinkResource1" />
  211. <asp:Button ID="btnCancelLink" runat="server" Text="Cancel" EnableViewState="False" meta:resourcekey="btnCancelLinkResource1" />
  212. </div>
  213. <script type="text/javascript">
  214. <!--
  215. document.getElementById("btnOkLink").onclick = ProcessExternalLink;
  216. document.getElementById("btnCancelLink").onclick = CancelAll;
  217. // -->
  218. </script>
  219. </asp:View>
  220. <asp:View ID="viwImage" runat="server">
  221. <asp:DropDownList ID="lstProviderImages" runat="server"
  222. AutoPostBack="True" OnSelectedIndexChanged="lstProviderImages_SelectedIndexChanged" meta:resourcekey="lstProviderImagesResource1" />
  223. <asp:CheckBox ID="chkImageAttachments" runat="server" Text="Browse Page Attachments"
  224. AutoPostBack="True" OnCheckedChanged="chkImageAttachments_CheckedChanged" meta:resourcekey="chkImageAttachmentsResource1" />
  225. <table id="ImageBrowserTable">
  226. <tr>
  227. <td>
  228. <div id="ClientImageBrowserDiv">
  229. <st:ClientImageBrowser ID="cibImages" runat="server" OnPopulate="cibImages_Populate" EnableViewState="False"
  230. LeafCssClass="imageitem"
  231. NodeCssClass="folderitem" NodeContent='<img src="Images/Editor/Folder.png" alt="Up" /><br />'
  232. UpCssClass="upitem" UpLevelContent='<img src="Images/Editor/FolderUp.png" alt="Up" /><br />' />
  233. </div>
  234. </td>
  235. <td>
  236. <div id="ImagePreviewDiv">
  237. <img src="Images/Editor/Preview.png" id="PreviewImg" alt="Preview" />
  238. </div>
  239. </td>
  240. </tr>
  241. </table>
  242. <table id="ImageControlsTable">
  243. <tr>
  244. <td>
  245. <asp:Literal ID="lblImagePath" runat="server" Text="Image Path/URL (required)" EnableViewState="False" meta:resourcekey="lblImagePathResource1" /><br />
  246. <asp:TextBox ID="txtImagePath" runat="server" Width="350px" meta:resourcekey="txtImagePathResource1" />
  247. <asp:RadioButton ID="rdoImagePath" runat="server" ToolTip="Check this to select the image using the browser" GroupName="do_not_translate_image" Checked="True" meta:resourcekey="rdoImagePathResource1" /><br />
  248. <asp:Literal ID="lblImageLink" runat="server" Text="Link (optional)" EnableViewState="False" meta:resourcekey="lblImageLinkResource1" /><br />
  249. <asp:TextBox ID="txtImageLink" runat="server" Width="350px" meta:resourcekey="txtImageLinkResource1" />
  250. <asp:RadioButton ID="rdoImageLink" runat="server" ToolTip="Check this to select the linked image using the browser" GroupName="do_not_translate_image" meta:resourcekey="rdoImageLinkResource1" /><br />
  251. <asp:Literal ID="lblImageDescr" runat="server" Text="Description (optional)" EnableViewState="False" meta:resourcekey="lblImageDescrResource1" /><br />
  252. <asp:TextBox ID="txtImageDescr" runat="server" Width="350px" meta:resourcekey="txtImageDescrResource1" /><br />
  253. <asp:CheckBox ID="chkImageNW" runat="server" Text="Open link in new window" EnableViewState="False" meta:resourcekey="chkImageNWResource1" />
  254. </td>
  255. <td>
  256. <asp:RadioButton ID="rdoImageLeft" runat="server" Text="Align Left" GroupName="do_not_translate_align" Checked="True" meta:resourcekey="rdoImageLeftResource1" /><br />
  257. <asp:RadioButton ID="rdoImageRight" runat="server" Text="Align Right" GroupName="do_not_translate_align" meta:resourcekey="rdoImageRightResource1" /><br />
  258. <asp:RadioButton ID="rdoImageAuto" runat="server" Text="Auto" GroupName="do_not_translate_align" meta:resourcekey="rdoImageAutoResource1" /><br />
  259. <asp:RadioButton ID="rdoImageInline" runat="server" Text="Inline" GroupName="do_not_translate_align" meta:resourcekey="rdoImageInlineResource1" /><br />
  260. <asp:Button ID="btnOkImage" runat="server" Text="OK" EnableViewState="False" meta:resourcekey="btnOkImageResource1" />
  261. <asp:Button ID="btnCancelImage" runat="server" Text="Cancel" EnableViewState="False" meta:resourcekey="btnCancelImageResource1" />
  262. </td>
  263. </tr>
  264. </table>
  265. <script type="text/javascript">
  266. <!--
  267. document.getElementById("btnOkImage").onclick = ProcessImage;
  268. document.getElementById("btnCancelImage").onclick = CancelAll;
  269. document.getElementById("txtImagePath").onclick = function() {
  270. document.getElementById("rdoImagePath").checked = true;
  271. };
  272. document.getElementById("txtImageLink").onclick = function() {
  273. document.getElementById("rdoImageLink").checked = true;
  274. };
  275. // -->
  276. </script>
  277. </asp:View>
  278. <asp:View ID="viwAnchor" runat="server">
  279. <asp:Literal ID="lblInsertAnchor" runat="server" Text="Insert:" EnableViewState="False" meta:resourcekey="lblInsertAnchorResource1" /><br />
  280. <asp:RadioButton ID="rdoNewAnchor" runat="server" Checked="True" Text="New Anchor"
  281. AutoPostBack="True" OnCheckedChanged="rdoAnchor_CheckedChanged" GroupName="do_not_translate_anchor" meta:resourcekey="rdoNewAnchorResource1" /><br />
  282. <asp:RadioButton ID="rdoAnchorLink" runat="server" Text="Link to an existing Anchor"
  283. AutoPostBack="True" OnCheckedChanged="rdoAnchor_CheckedChanged" GroupName="do_not_translate_anchor" meta:resourcekey="rdoAnchorLinkResource1" />
  284. <br /><br />
  285. <asp:Panel ID="pnlNewAnchor" runat="server" meta:resourcekey="pnlNewAnchorResource1">
  286. <asp:Literal ID="lblAnchorID" runat="server" Text="Anchor ID (required)" EnableViewState="False" meta:resourcekey="lblAnchorIDResource1" /><br />
  287. <asp:TextBox ID="txtAnchorID" runat="server" Width="270px" meta:resourcekey="txtAnchorIDResource1" />
  288. </asp:Panel>
  289. <asp:Panel ID="pnlAnchorLink" runat="server" Visible="False" meta:resourcekey="pnlAnchorLinkResource1">
  290. <asp:Literal ID="lblExistingAnchors" runat="server" Text="Link to:" EnableViewState="False" meta:resourcekey="lblExistingAnchorsResource1" /><br />
  291. <asp:DropDownList ID="lstExistingAnchors" runat="server" meta:resourcekey="lstExistingAnchorsResource1" /><br />
  292. <asp:Literal ID="lblAnchorTitle" runat="server" Text="Link Title (optional)" EnableViewState="False" meta:resourcekey="lblAnchorTitleResource1" /><br />
  293. <asp:TextBox ID="txtAnchorTitle" runat="server" Width="270px" meta:resourcekey="txtAnchorTitleResource1" />
  294. </asp:Panel>
  295. <div class="popupbuttons">
  296. <asp:Button ID="btnOkAnchor" runat="server" Text="OK" EnableViewState="False" meta:resourcekey="btnOkAnchorResource1" />
  297. <asp:Button ID="btnCancelAnchor" runat="server" Text="Cancel" EnableViewState="False" meta:resourcekey="btnCancelAnchorResource1" />
  298. </div>
  299. <script type="text/javascript">
  300. <!--
  301. document.getElementById("btnOkAnchor").onclick = ProcessAnchor;
  302. document.getElementById("btnCancelAnchor").onclick = CancelAll;
  303. // -->
  304. </script>
  305. </asp:View>
  306. </asp:MultiView>
  307. </div>
  308. </form>
  309. </body>
  310. </html>