Пример #1
0
        private string BuildSettingsPage(string user, int userRights, string queryString, string messageBox = null, string messageBoxClass = null)
        {
            string pageName = "IdleLightColorsSettings";

            PageBuilderAndMenu.clsPageBuilder builder = new PageBuilderAndMenu.clsPageBuilder(pageName);
            if ((userRights & 2) != 2)
            {
                // User is not an admin
                builder.reset();
                builder.AddHeader(hs.GetPageHeader(pageName, "HS-WD200+ Idle Light Colors Settings", "", "", false, true));
                builder.AddBody("<p><strong>Access Denied:</strong> You are not an administrative user.</p>");
                builder.AddFooter(hs.GetPageFooter());
                builder.suppressDefaultFooter = true;

                return(builder.BuildPage());
            }

            StringBuilder sb = new StringBuilder();

            sb.Append(
                "<p>The active color will be used when an HS-WD200+ dimmer is in normal mode and is on (at any level).<br />The idle color will be used when an HS-WD200+ dimmer is in normal mode and is off.</p>");
            sb.Append("<p>Status mode will override these colors, as usual.</p>");

            sb.Append(PageBuilderAndMenu.clsPageBuilder.FormStart("ils_config_form", "ils_config_form", "post"));
            sb.Append("<table width=\"1000px\" cellspacing=\"0\"><tr><td class=\"tableheader\" colspan=\"3\">Settings</td></tr>");

            sb.Append("<tr><td class=\"tablecell\" style=\"width:200px\" align=\"left\">Normal Mode Active Color:</td>");
            sb.Append("<td class=\"tablecell\">");
            clsJQuery.jqDropList dropdown = new clsJQuery.jqDropList("ActiveColor", pageName, true);
            BuildColorDropdown(pageName, dropdown, onColor);
            sb.Append(dropdown.Build());
            sb.Append("</td></tr>");

            sb.Append("<tr><td class=\"tablecell\" style=\"width:200px\" align=\"left\">Normal Mode Idle Color:</td>");
            sb.Append("<td class=\"tablecell\">");
            dropdown = new clsJQuery.jqDropList("IdleColor", pageName, true);
            BuildColorDropdown(pageName, dropdown, offColor);
            sb.Append(dropdown.Build());
            sb.Append("</td></tr>");

            sb.Append("</table>");

            clsJQuery.jqButton doneBtn = new clsJQuery.jqButton("DoneBtn", "Done", pageName, false);
            doneBtn.url = "/";
            sb.Append("<br />");
            sb.Append(doneBtn.Build());
            sb.Append("<br /><br />");

            builder.reset();
            builder.AddHeader(hs.GetPageHeader(pageName, "HS-WD200+ Idle Light Colors Settings", "", "", false, true));
            builder.AddBody(sb.ToString());
            builder.AddFooter(hs.GetPageFooter());
            builder.suppressDefaultFooter = true;

            return(builder.BuildPage());
        }
Пример #2
0
        public override string GetPagePlugin(string page, string user, int userRights, string queryString)
        {
            HS.WriteLog("Debug", "Requested page name " + page + " by user " + user + " with rights " + userRights);
            if (page != "WebSocketNotificationConfig")
            {
                return("Unknown page " + page);
            }

            PageBuilderAndMenu.clsPageBuilder pageBuilder = new PageBuilderAndMenu.clsPageBuilder(page);

            if ((userRights & 2) != 2)
            {
                // User is not an admin
                pageBuilder.reset();
                pageBuilder.AddHeader(HS.GetPageHeader(page, "WebHook Notifications Settings", "", "", false, true));
                pageBuilder.AddBody("<p><strong>Access Denied:</strong> You are not an administrative user.</p>");
                pageBuilder.AddFooter(HS.GetPageFooter());
                pageBuilder.suppressDefaultFooter = true;

                return(pageBuilder.BuildPage());
            }

            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append(
                PageBuilderAndMenu.clsPageBuilder.FormStart("wsn_config_form", "wsn_config_form", "post"));

            stringBuilder.Append(
                "<table width=\"1000px\" cellspacing=\"0\"><tr><td class=\"tableheader\" colspan=\"3\">Settings</td></tr>");

            stringBuilder.Append(
                "<tr><td class=\"tablecell\" style=\"width:200px\" align=\"left\">WebSocket Port:</td>");
            stringBuilder.Append("<td class=\"tablecell\">");

            clsJQuery.jqTextBox textBox =
                new clsJQuery.jqTextBox("WebSocketPort", "text", _port, page, 100, true);
            stringBuilder.Append(textBox.Build());
            stringBuilder.Append("</td></tr>");

            stringBuilder.Append("</table>");

            clsJQuery.jqButton doneBtn = new clsJQuery.jqButton("DoneBtn", "Done", page, false);
            doneBtn.url = "/";
            stringBuilder.Append("<br />");
            stringBuilder.Append(doneBtn.Build());
            stringBuilder.Append("<br /><br />");

            pageBuilder.reset();
            pageBuilder.AddHeader(HS.GetPageHeader(page, "WebSocket Notifications Settings", "", "", false, true));
            pageBuilder.AddBody(stringBuilder.ToString());
            pageBuilder.AddFooter(HS.GetPageFooter());
            pageBuilder.suppressDefaultFooter = true;

            return(pageBuilder.BuildPage());
        }
Пример #3
0
        public override string GetPagePlugin(string pageName, string user, int userRights, string queryString)
        {
            Program.WriteLog(LogType.Debug, "Requested page name " + pageName + " by user " + user + " with rights " + userRights);
            if (pageName != "WebHookNotificationConfig")
            {
                return("Unknown page " + pageName);
            }

            PageBuilderAndMenu.clsPageBuilder pageBuilder = new PageBuilderAndMenu.clsPageBuilder(pageName);

            if ((userRights & 2) != 2)
            {
                // User is not an admin
                pageBuilder.reset();
                pageBuilder.AddHeader(hs.GetPageHeader(pageName, "WebHook Notifications Settings", "", "", false, true));
                pageBuilder.AddBody("<p><strong>Access Denied:</strong> You are not an administrative user.</p>");
                pageBuilder.AddFooter(hs.GetPageFooter());
                pageBuilder.suppressDefaultFooter = true;

                return(pageBuilder.BuildPage());
            }

            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append(
                PageBuilderAndMenu.clsPageBuilder.FormStart("whn_config_form", "whn_config_form", "post"));

            stringBuilder.Append(
                "<table width=\"1000px\" cellspacing=\"0\"><tr><td class=\"tableheader\" colspan=\"3\">Settings</td></tr>");

            clsJQuery.jqCheckBox checkBox;
            for (byte i = 1; i <= TOTAL_WEBHOOK_SLOTS; i++)
            {
                stringBuilder.Append(
                    "<tr><td class=\"tablecell\" style=\"width:200px\" align=\"left\">WebHook URL " + i + ":</td>");
                stringBuilder.Append("<td class=\"tablecell\">");

                clsJQuery.jqTextBox textBox =
                    new clsJQuery.jqTextBox("WebHookUrl" + i, "text", webHooks[i - 1]?.ToString(), pageName, 100, true);
                stringBuilder.Append(textBox.Build());
                stringBuilder.Append("</td><td class=\"tablecell\" style=\"width:300px\">");

                checkBox          = new clsJQuery.jqCheckBox("IgnoreInvalidCertificate" + i, "Ignore invalid HTTPS certificate", pageName, true, true);
                checkBox.@checked = hs.GetINISetting("IgnoreCertificate", "webhook" + i, "0", IniFilename) == "1";
                stringBuilder.Append(checkBox.Build());

                stringBuilder.Append("</td></tr>");
            }

            stringBuilder.Append("<tr><td class=\"tablecell\" style=\"width:200px\" align=\"left\"></td>");
            stringBuilder.Append("<td class=\"tablecell\" colspan=\"2\">");
            checkBox = new clsJQuery.jqCheckBox(
                "IgnoreTimerEvents",
                "Suppress WebHooks for HS3 timers",
                pageName,
                true,
                true
                );
            checkBox.@checked = ignoreTimerEvents;
            stringBuilder.Append(checkBox.Build());
            stringBuilder.Append("</td></tr>");

            stringBuilder.Append("<tr><td class=\"tablecell\" style=\"width:250px\" align=\"left\"></td>");
            stringBuilder.Append("<td class=\"tablecell\" colspan=\"2\">");
            checkBox = new clsJQuery.jqCheckBox(
                "IgnoreUnchangedEvents",
                "Suppress WebHooks for events in which a device's value did not change (not effective on STRING_CHANGE events)",
                pageName,
                true,
                true
                );
            checkBox.@checked = ignoreUnchangedEvents;
            stringBuilder.Append(checkBox.Build());
            stringBuilder.Append("</td></tr>");

            stringBuilder.Append("</table>");

            clsJQuery.jqButton doneBtn = new clsJQuery.jqButton("DoneBtn", "Done", pageName, false);
            doneBtn.url = "/";
            stringBuilder.Append("<br />");
            stringBuilder.Append(doneBtn.Build());
            stringBuilder.Append("<br /><br />");

            pageBuilder.reset();
            pageBuilder.AddHeader(hs.GetPageHeader(pageName, "WebHook Notifications Settings", "", "", false, true));
            pageBuilder.AddBody(stringBuilder.ToString());
            pageBuilder.AddFooter(hs.GetPageFooter());
            pageBuilder.suppressDefaultFooter = true;

            return(pageBuilder.BuildPage());
        }