.htaccess editor: ape debugger improved

This commit is contained in:
Ruslan Keba 2013-03-27 16:30:28 +02:00
parent 7cc5207bfb
commit aa72388a5b
4 changed files with 117 additions and 37 deletions

View file

@ -135,4 +135,16 @@
<data name="lblFolderName.Text" xml:space="preserve">
<value>.htaccess path: </value>
</data>
<data name="lblDebuggingPageLink.Text">
<value xml:space="preserve">Debugging Page Link</value>
</data>
<data name="lblCLickLink.Text">
<value xml:space="preserve">Click this link to open debugging page</value>
</data>
<data name="btnShowDebuggingPageLinkModal.Text">
<value xml:space="preserve">Show debugging page link</value>
</data>
<data name="btnClose.Text">
<value xml:space="preserve">Close</value>
</data>
</root>

View file

@ -1,10 +1,19 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebSitesEditHeliconApeFolder.ascx.cs"
Inherits="WebsitePanel.Portal.WebSitesEditHeliconApeFolder" %>
<%@ Register Src="UserControls/FileLookup.ascx" TagName="FileLookup" TagPrefix="uc1" %>
<%@ Register Src="UserControls/PopupHeader.ascx" TagName="PopupHeader" TagPrefix="wsp" %>
<link rel="stylesheet" href="/JavaScript/codemirror/codemirror.css" />
<script type="text/javascript" src="/JavaScript/jquery.min.js?v=1.4.4"></script>
<script type="text/javascript" src="/JavaScript/codemirror/codemirror.js"></script>
<script type="text/javascript" src="/JavaScript/codemirror/htaccess.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('.LinkDebuggingPage').click(function () {
//$find('').hide();
return true;
});
});
</script>
<style type="text/css">
.CodeMirror {
border: 1px solid #444;
@ -28,25 +37,15 @@
<asp:HiddenField ID="DebuggerUrlField" runat="server" />
</td>
<td style="width: 40%">
<asp:Button ID="ButtonDebuggerStart" runat="server" Text="Start Debug" meta:resourcekey="btnApeDebuggerStart"
<asp:Button ID="ButtonDebuggerStart" runat="server" Text="Start Debugging" meta:resourcekey="btnApeDebuggerStart"
CssClass="Button1" OnClick="DebugStartClick" />
<asp:Button ID="ButtonDebuggerStop" runat="server" Text="Start Debug" meta:resourcekey="btnApeDebuggerStop"
<asp:Button ID="ButtonDebuggerStop" runat="server" Text="Stop Debugging" meta:resourcekey="btnApeDebuggerStop"
CssClass="Button1" OnClick="DebugStopClick" />
<asp:Button ID="BUttonShowDebuggingPageLinkModal" runat="server" Text="Show debugging page link" meta:resourcekey="btnShowDebuggingPageLinkModal"
CssClass="Button1 Hidden" />
</td>
</tr>
</table>
<table id="toolbar" width="100%">
<tr>
<td>
</td>
<td style="width: 90%">
<asp:Label runat="server" ID="ContainerLinkDebuggingPage" Visible="False">
Open debugging page: <asp:HyperLink runat="server" ID="LinkDebuggingPage" Target="ape-debugging-page"></asp:HyperLink>
</asp:Label>
</td>
</tr>
</table>
<asp:Panel runat="server" ID="DebuggerFramePanel" Visible="False">
<iframe runat="server" ID="DebuggerFrame" width="100%" height="400px"></iframe>
@ -62,9 +61,33 @@
<asp:Button ID="btnSave" runat="server" Text="Save and continue editing" meta:resourcekey="btnSave"
CssClass="Button1" OnClick="btnSave_Click" />
<asp:Button ID="btnCancel" runat="server" Text="Cancel" meta:resourcekey="btnCancel"
CssClass="Button1" CausesValidation="false" OnClick="btnCancel_Click" />
CssClass="Button1" CausesValidation="false" OnClick="BtnCancelClick" />
</div>
<asp:Panel ID="DebuggingPageLinkPanel" runat="server" CssClass="PopupContainer" style="display:none" DefaultButton="btnCancelDebuggingPageLinkPanel">
<wsp:PopupHeader runat="server" meta:resourcekey="lblDebuggingPageLink" Text="Debugging Page Link" />
<div class="Content">
<div class="Body">
<br />
<div class="FormRow">
<asp:Label ID="LabelClickLink" runat="server" meta:resourcekey="lblCLickLink" Text="Click this link to open debugging page"></asp:Label>:
<br/>
<br/>
<asp:HyperLink runat="server" ID="LinkDebuggingPage" Target="ape-debugging-page" CssClass="LinkDebuggingPage"></asp:HyperLink>
</div>
<br />
</div>
<div class="FormFooter">
<asp:Button ID="btnCancelDebuggingPageLinkPanel" runat="server" CssClass="Button1" meta:resourcekey="btnClose" Text="Close" CausesValidation="false" />
</div>
</div>
</asp:Panel>
<ajaxToolkit:ModalPopupExtender ID="DebuggingPageLinkModal" runat="server"
PopupControlID="DebuggingPageLinkPanel" TargetControlID="BUttonShowDebuggingPageLinkModal"
BackgroundCssClass="modalBackground" DropShadow="false" CancelControlID="btnCancelDebuggingPageLinkPanel" />
<script>
$(document).ready(function() {
CodeMirror.fromTextArea(($('.CodeEditor')[0]),

View file

@ -184,20 +184,33 @@ namespace WebsitePanel.Portal
protected void DebugStartClick(object sender, EventArgs e)
{
var code = htaccessContent.Text;
bool needUpdate = false;
if ( RE_APE_DEBUGGER_DISABLED.IsMatch(code) )
{
// already disabled, enable it!
DebuggerSecureKey = RE_APE_DEBUGGER_DISABLED.Match(code).Groups[2].Value;
code = RE_APE_DEBUGGER_DISABLED.Replace(code, "$1");
needUpdate = true;
}
else if (RE_APE_DEBUGGER_ENABLED.IsMatch(code))
{
// already enabled
DebuggerSecureKey = RE_APE_DEBUGGER_ENABLED.Match(code).Groups[2].Value;
needUpdate = false;
}
else
{
DebuggerSecureKey = new Random().Next(100000000, 999999999).ToString(CultureInfo.InvariantCulture);
code = code + "\nSetEnv mod_developer secure-key-" + DebuggerSecureKey +"\n";
code = code + "\nSetEnv mod_developer secure-key-" + DebuggerSecureKey + "\n";
needUpdate = true;
}
htaccessContent.Text = code;
SaveFolder();
if (needUpdate)
{
htaccessContent.Text = code;
SaveFolder();
}
StartDebugger();
}
@ -209,13 +222,12 @@ namespace WebsitePanel.Portal
{
// alerdy enable, disable it!
code = RE_APE_DEBUGGER_ENABLED.Replace(code, "# $1");
htaccessContent.Text = code;
SaveFolder();
}
htaccessContent.Text = code;
SaveFolder();
StopDebugger();
}
private void GetDebuggerUrl()
@ -308,9 +320,9 @@ namespace WebsitePanel.Portal
DebuggerFrame.Attributes["src"] = DebuggerUrl;
// debugging page link
ContainerLinkDebuggingPage.Visible = true;
LinkDebuggingPage.NavigateUrl = DebuggingPageUrl;
LinkDebuggingPage.Text = DebuggingPageUrl;
DebuggingPageLinkModal.Show();
}
@ -325,12 +337,9 @@ namespace WebsitePanel.Portal
// hide debugger iframe
DebuggerFramePanel.Visible = false;
// hide debugging page link
ContainerLinkDebuggingPage.Visible = false;
}
protected void btnCancel_Click(object sender, EventArgs e)
protected void BtnCancelClick(object sender, EventArgs e)
{
ReturnBack();
}

View file

@ -76,22 +76,13 @@ namespace WebsitePanel.Portal {
protected global::System.Web.UI.WebControls.Button ButtonDebuggerStop;
/// <summary>
/// ContainerLinkDebuggingPage control.
/// BUttonShowDebuggingPageLinkModal control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label ContainerLinkDebuggingPage;
/// <summary>
/// LinkDebuggingPage control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.HyperLink LinkDebuggingPage;
protected global::System.Web.UI.WebControls.Button BUttonShowDebuggingPageLinkModal;
/// <summary>
/// DebuggerFramePanel control.
@ -146,5 +137,50 @@ namespace WebsitePanel.Portal {
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnCancel;
/// <summary>
/// DebuggingPageLinkPanel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Panel DebuggingPageLinkPanel;
/// <summary>
/// LabelClickLink control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label LabelClickLink;
/// <summary>
/// LinkDebuggingPage control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.HyperLink LinkDebuggingPage;
/// <summary>
/// btnCancelDebuggingPageLinkPanel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnCancelDebuggingPageLinkPanel;
/// <summary>
/// DebuggingPageLinkModal control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::AjaxControlToolkit.ModalPopupExtender DebuggingPageLinkModal;
}
}