/BlogEngine/BlogEngine.NET/App_Code/Helpers/ExtensionsHelper.cshtml

# · Razor · 225 lines · 205 code · 18 blank · 2 comment · 29 complexity · 7f01e2eecd4f96c11fd6046959cc5e7a MD5 · raw file

  1. @using BlogEngine.Core
  2. @using BlogEngine.Core.Web.Extensions
  3. @helper GetExtensions(bool isenabled)
  4. {
  5. var extensions = ExtensionManager.Extensions.Where(x => x.Key != "MetaExtension").ToList();
  6. var tableId = "tblEnabledExtensions";
  7. var onClick = "$(this).text($(this).text() == 'Show' ? 'Hide' : 'Show'); $.cookie('ToggleDisabledExtensions', $(this).text(), { expires: 30 }); return Toggle('tblDisabledExtensions');";
  8. var disabledDisplay = "";
  9. extensions.Sort(
  10. (e1, e2) => e1.Value.Priority == e2.Value.Priority ? string.CompareOrdinal(e1.Key, e2.Key) : e1.Value.Priority.CompareTo(e2.Value.Priority));
  11. List<ManagedExtension> manExtensions = new List<ManagedExtension>();
  12. foreach (KeyValuePair<string, ManagedExtension> ext in extensions)
  13. {
  14. var oExt = ExtensionManager.GetExtension(@ext.Key);
  15. if (oExt.Enabled == isenabled)
  16. {
  17. manExtensions.Add(oExt);
  18. }
  19. }
  20. if(!isenabled)
  21. {
  22. @* show/hide disabled extensions *@
  23. var ShowHide = "Hide";
  24. if (Request.Cookies["ToggleDisabledExtensions"] == null)
  25. {
  26. var cookie = new HttpCookie("ToggleDisabledExtensions", "Hide") { Expires = DateTime.Now.AddMonths(1) };
  27. Response.Cookies.Add(cookie);
  28. }
  29. else
  30. {
  31. ShowHide = Request.Cookies["ToggleDisabledExtensions"].Value;
  32. if (ShowHide == "Show")
  33. {
  34. disabledDisplay = "display: none";
  35. }
  36. }
  37. onClick = onClick.Replace("[x]", "{ expires: 30 }");
  38. tableId = "tblDisabledExtensions";
  39. <h2 style="margin-top:20px">Disabled Extensions (@manExtensions.Count) <a href="#" id="DisabledToggle" onclick="@Html.Raw(@onClick)" class="toggle">@ShowHide</a></h2>
  40. }
  41. else{
  42. <h2 class="gallery-hdr">@Resources.labels.extensions (@manExtensions.Count)</h2>
  43. }
  44. <table id="@tableId" class="beTable rounded" style="@disabledDisplay">
  45. <thead>
  46. <tr>
  47. <th width="150">Name</th>
  48. <th width="60">Version</th>
  49. <th width="auto">Description</th>
  50. <th width="150">Author</th>
  51. <th width="60">Priority</th>
  52. <th width="80">&nbsp;</th>
  53. </tr>
  54. </thead>
  55. <tbody>
  56. @{
  57. var cnt = 0;
  58. var cls = "";
  59. var id = "";
  60. foreach (var x in manExtensions)
  61. {
  62. cnt++;
  63. cls = (cnt % 2 == 0) ? "alt" : "";
  64. id = "ext_" + x.Name;
  65. var enabled = @x.Enabled ? @Resources.labels.disable : @Resources.labels.enable;
  66. var statusLink = Utils.RelativeWebRoot + "admin/Extensions/SetStatus.cshtml?ext={0}&act={1}";
  67. statusLink = string.Format(statusLink, x.Name, !x.Enabled);
  68. var actClass = isenabled ? "unapproveAction" : "approveAction";
  69. var pkg = BlogEngine.Core.Packaging.PackageRepository.GetPackage(x.Name);
  70. <tr id="@id" class="@cls">
  71. <td>@x.Name</td>
  72. <td>@x.Version</td>
  73. <td>@Html.Raw(x.Description)</td>
  74. <td>@Html.Raw(x.Author)</td>
  75. <td>@x.Priority</td>
  76. <td>
  77. <ul class="rowTools">
  78. <li>
  79. <a class="toolsAction" href="#"><span class="">Tools</span></a>
  80. <ul class="rowToolsMenu">
  81. <li><a href="@statusLink" class="@actClass">@enabled</a></li>
  82. <li><a href="#" onclick="$('#txtPriority').val('@x.Priority'); $('#hdnExtensionName').val('@x.Name');" class="changePriority rightsAction">@Resources.labels.priority</a></li>
  83. <li><a href="@Href(Utils.RelativeWebRoot + "admin/Extensions/Editor.cshtml?id=")@x.Name" class="viewButton viewAction">View</a></li>
  84. @if(pkg != null && pkg.Location == "I"){
  85. <li><a href="#" id="a-@x.Name" onclick="UninstallExtension('@x.Name'); return false;" class="deleteAction">@Resources.labels.delete</a></li>
  86. }
  87. </ul>
  88. </li>
  89. </ul>
  90. </td>
  91. </tr>
  92. }
  93. }
  94. </tbody>
  95. </table>
  96. }
  97. @helper GetBlogExtensions(bool isenabled)
  98. {
  99. var extensions = ExtensionManager.Extensions.Where(x => x.Key != "MetaExtension").ToList();
  100. var tableId = "tblEnabledExtensions";
  101. var onClick = "$(this).text($(this).text() == 'Show' ? 'Hide' : 'Show'); $.cookie('ToggleDisabledExtensions', $(this).text(), { expires: 30 }); return Toggle('tblDisabledExtensions');";
  102. var disabledDisplay = "";
  103. extensions.Sort(
  104. (e1, e2) => e1.Value.Priority == e2.Value.Priority ? string.CompareOrdinal(e1.Key, e2.Key) : e1.Value.Priority.CompareTo(e2.Value.Priority));
  105. List<ManagedExtension> manExtensions = new List<ManagedExtension>();
  106. foreach (KeyValuePair<string, ManagedExtension> ext in extensions)
  107. {
  108. var oExt = ExtensionManager.GetExtension(@ext.Key);
  109. if (oExt.Enabled)
  110. {
  111. if (oExt.Blogs.Contains(Blog.CurrentInstance.Id))
  112. {
  113. if (!isenabled)
  114. {
  115. manExtensions.Add(oExt);
  116. }
  117. }
  118. else
  119. {
  120. if (isenabled)
  121. {
  122. manExtensions.Add(oExt);
  123. }
  124. }
  125. }
  126. }
  127. if (isenabled)
  128. {
  129. <h2 class="gallery-hdr">@Resources.labels.extensions (@manExtensions.Count)</h2>
  130. }
  131. else
  132. {
  133. if (manExtensions.Count > 0)
  134. {
  135. @* show/hide disabled extensions *@
  136. var ShowHide = "Hide";
  137. if (Request.Cookies["ToggleDisabledExtensions"] == null)
  138. {
  139. var cookie = new HttpCookie("ToggleDisabledExtensions", "Hide") { Expires = DateTime.Now.AddMonths(1) };
  140. Response.Cookies.Add(cookie);
  141. }
  142. else
  143. {
  144. ShowHide = Request.Cookies["ToggleDisabledExtensions"].Value;
  145. if (ShowHide == "Show")
  146. {
  147. disabledDisplay = "display: none";
  148. }
  149. }
  150. onClick = onClick.Replace("[x]", "{ expires: 30 }");
  151. tableId = "tblDisabledExtensions";
  152. <h2 style="margin-top:20px">Disabled Extensions (@manExtensions.Count) <a href="#" id="DisabledToggle" onclick="@Html.Raw(@onClick)" class="toggle">@ShowHide</a></h2>
  153. }
  154. }
  155. if (manExtensions.Count > 0)
  156. {
  157. <table id="@tableId" class="beTable rounded" style="@disabledDisplay">
  158. <thead>
  159. <tr>
  160. <th width="150">Name</th>
  161. <th width="60">Version</th>
  162. <th width="auto">Description</th>
  163. <th width="150">Author</th>
  164. <th width="80">&nbsp;</th>
  165. </tr>
  166. </thead>
  167. <tbody>
  168. @{
  169. var cnt = 0;
  170. var cls = "";
  171. foreach (var x in manExtensions)
  172. {
  173. cnt++;
  174. cls = (cnt % 2 == 0) ? "alt" : "";
  175. var enabled = @x.Enabled ? @Resources.labels.disable : @Resources.labels.enable;
  176. var statusLink = Utils.RelativeWebRoot + "admin/Extensions/SetStatusForBlog.cshtml?ext={0}&act={1}";
  177. statusLink = string.Format(statusLink, x.Name, !isenabled);
  178. var actClass = isenabled ? "unapproveAction" : "approveAction";
  179. <tr class="@cls">
  180. <td>@x.Name</td>
  181. <td>@x.Version</td>
  182. <td>@Html.Raw(x.Description)</td>
  183. <td>@Html.Raw(x.Author)</td>
  184. <td>
  185. <ul class="rowTools">
  186. <li>
  187. <a class="toolsAction" href="#"><span class="">Tools</span></a>
  188. <ul class="rowToolsMenu">
  189. @if (isenabled)
  190. {
  191. <li><a href="@statusLink" class="@actClass">@Resources.labels.disable</a></li>
  192. }
  193. else
  194. {
  195. <li><a href="@statusLink" class="@actClass">@Resources.labels.enable</a></li>
  196. }
  197. </ul>
  198. </li>
  199. </ul>
  200. </td>
  201. </tr>
  202. }
  203. }
  204. </tbody>
  205. </table>
  206. }
  207. }