Ejemplo n.º 1
0
        protected override void RenderContents(HtmlTextWriter writer)
        {
            System.IO.StringWriter content = new System.IO.StringWriter();

            HtmlTextWriter customWriter = new HtmlTextWriter(content);

            if (powerControl != null)
            {
                try
                {
                    foreach (Control ctrl in this.Controls)
                    {
                        ctrl.RenderControl(customWriter);
                    }

                    writer.Write(content.ToString());
                }
                catch (PowerControlException pex)
                {
                    writer.Write(pex.ToHtmlString());
                }
                catch (Exception ex)
                {
                    PowerControlException pex = new PowerControlException("Render", ex);
                    writer.Write(pex.ToHtmlString());
                }
            }
        }
        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            needsRefresh.RenderControl(writer);
            writer.Write("<table border=\"0\">");

            SPUser currentUser = SPContext.Current.Web.CurrentUser;

            if (PowerWebPartHelper.IsPowerUser)
            {
                writer.Write("<tr><td><div class=\"UserSectionTitle\">PowerShell Scripts</div></td></tr>");

                writer.Write("<tr>");
                writer.Write(@"<td style=""vertical-align:middle"">");
                writer.Write(string.Format(@"<table border=""0""><tr><td><a id=""btnPopupScript"" href=""javascript:powerWebPartEditorShowPopup('{0}')"" >Script ({1} lines)</a></td>
                    <td><span style=""display:none"" id=""btnPowerGuiLauncher""><a href=""javascript:startPowerGuiLaucher('{0}', '{1}')""><img src=""/_layouts/images/iLoveSharePoint/PowerWebPartPowerGuiIcon3.gif"" alt=""Edit in PowerGUI"" border=""0""/></a></span></td></tr></table>",
                                           script.ClientID, String.IsNullOrEmpty(script.Value) ? "0" : (System.Text.RegularExpressions.Regex.Matches(script.Value, "\n").Count + 1).ToString())
                             , this.Zone.FindControl("MSOTlPn_AppBtn").ClientID);
                script.RenderControl(writer);
                writer.Write("</td>");
                writer.Write("</tr>");

                writer.Write("<tr>");
                writer.Write(@"<td style=""vertical-align:middle"">");
                writer.Write(string.Format(@"<table border=""0""><tr><td><a id=""btnPopupEditorScript"" href=""javascript:powerWebPartEditorShowPopup('{0}')"" >Editor Script ({1} lines)</a></td>
                    <td><span style=""display:none"" id=""btnPowerGuiLauncher4Editor""><a href=""javascript:startPowerGuiLaucherEditor('{0}', '{1}')""><img src=""/_layouts/images/iLoveSharePoint/PowerWebPartPowerGuiIcon3.gif"" alt=""Edit in PowerGUI"" border=""0""/></a></span></td></tr></table>",
                                           editorScript.ClientID, String.IsNullOrEmpty(editorScript.Value) ? "0" : (System.Text.RegularExpressions.Regex.Matches(editorScript.Value, "\n").Count + 1).ToString())
                             , this.Zone.FindControl("MSOTlPn_AppBtn").ClientID);
                editorScript.RenderControl(writer);
                writer.Write("</td>");
                writer.Write("</tr>");

                //debug
                writer.Write("<tr><td><div class=\"UserSectionTitle\">Debug</div></td></tr>");

                writer.Write("<tr><td><div>Enabled</div></td></tr>");
                writer.Write("<tr><td>");
                chkDebug.RenderControl(writer);
                writer.Write("</tr></td>");

                writer.Write("<tr><td><div>Options</div></td></tr>");
                writer.Write("<tr><td>");
                txtDebugOptions.RenderControl(writer);
                writer.Write("</tr></td>");

                writer.Write("<tr><td><div>Console Url</div></td></tr>");
                writer.Write("<tr><td>");
                txtDebugUrl.RenderControl(writer);
                writer.Write("</tr></td>");

                writer.Write(String.Format("<tr><td><a href=\"javascript:setToClientIP('{0}','{1}');\"/>Set to my IP</a></td></tr>"
                                           , txtDebugUrl.ClientID, this.Page.Request.UserHostAddress));
                writer.Write(String.Format("<tr><td><a href=\"javascript:pingDebugConsole('{0}');\"/>Ping Debug Console</a></td></tr>"
                                           , txtDebugUrl.ClientID));

                writer.Write("<tr><td>&nbsp;</td></tr>");
            }

            //config
            writer.Write("<tr><td><div class=\"UserSectionTitle\">Configuration</div></td></tr>");

            if (powerControl == null)
            {
                if (_signingException != null)
                {
                    writer.Write("<tr><td>Invalid Script Signing!</td></tr>");
                }

                RenderParameter("Parameter1", parameter1, parameterDescription1, currentUser, writer);
                RenderParameter("Parameter2", parameter2, parameterDescription2, currentUser, writer);
                RenderParameter("Parameter3", parameter3, parameterDescription3, currentUser, writer);
                RenderParameter("Parameter4", parameter4, parameterDescription4, currentUser, writer);
                RenderParameter("Parameter5", parameter5, parameterDescription5, currentUser, writer);
                RenderParameter("Parameter6", parameter6, parameterDescription6, currentUser, writer);
                RenderParameter("Parameter7", parameter7, parameterDescription7, currentUser, writer);
                RenderParameter("Parameter8", parameter8, parameterDescription8, currentUser, writer);
            }
            else
            {
                try
                {
                    writer.Write("<tr>");
                    writer.Write("<td>");
                    powerControl.RenderControl(writer);
                    writer.Write("</td>");
                    writer.Write("</tr>");
                }
                catch (PowerControlException pex)
                {
                    writer.Write(pex.ToHtmlString());
                }
                catch (Exception ex)
                {
                    PowerControlException pex = new PowerControlException("Render", ex);
                    writer.Write(pex.ToHtmlString());
                }
            }

            writer.Write("</table>");
        }