private void FillCropperHtml(SealedControl obj, HtmlNode node, PageBrush brush)
        {
            if (node.SelectSingleNodeEx("core/cropper") == null)
            {
                return;
            }
            string modalId = string.Format("selectCoverModal_cropper_{0}", node.GetAttributeValue("id", string.Empty));

            StringBuilder modal = new StringBuilder();

            modal.AppendFormat("<m:modal id=\"{0}\" size=\"full\" title=\"快捷上传\">", modalId);
            modal.AppendLine();
            modal.AppendFormat("<m:cropper maxfilesize=\"{0}\" name=\"cropper\" target=\"{1}\" disk=\"true\" allowMode=\"{2}\" id=\"cropper_{3}\"></m:cropper>",
                               //modal.AppendFormat("<ms:cropper maxfilesize=\"{0}\" target=\"{1}\" allowMode=\"{2}\" id=\"cropper_{3}\"></ms:cropper>",
                               GetCropperPara(node, "maxfilesize", "40960"),
                               GetCropperPara(node, "target", string.Empty),
                               GetCropperPara(node, "allowMode", "false"),
                               node.GetAttributeValue("id", string.Empty));
            modal.AppendLine();
            modal.AppendLine("    <m:modal.footer>");
            modal.AppendLine("        <m:button class=\"thumbnails-cropper-btn-ok\" color=\"blue\" icon=\"check\">确定上传选区图片</m:button>");
            modal.AppendLine("        <m:button color=\"default\" data-dismiss=\"modal\">取消关闭</m:button>");
            modal.AppendFormat("        <m:alert id=\"thumbnailsAlert_cropper_{0}\" style=\"margin-top:20px;\"></m:alert>", node.GetAttributeValue("id", string.Empty));
            modal.AppendLine("    </m:modal.footer>");
            modal.Append("</m:modal>");

            obj.Elements.Render(brush, modal.ToString());
        }
Ejemplo n.º 2
0
        protected override void FillCore(SealedControl obj, HtmlNode node, HtmlNode coreNode, PageBrush brush)
        {
            var name   = node.GetAttributeValue("name", string.Empty);
            var select = node.GetAttributeValue("select", string.Empty);

            brush.DrawLine("<table class=\"input-tags-table\">");
            brush.DrawLine("<tr>");
            brush.DrawLine("<td class=\"input-tags-container\">");
            FillControl(node, coreNode, brush);
            brush.DrawLine("</td>");
            brush.DrawLine("<td class=\"input-tags-btnContainer\">");

            if (!string.IsNullOrEmpty(name) && !string.IsNullOrEmpty(select))
            {
                var invokeCode = ProxyCodeExtend.GetScriptEventCode(obj, node, "select:click");
                brush.DrawLine("<button class=\"btn blue\" data-name=\"select\" data-proxy=\"{" + invokeCode + "}\"><i class=\"fa fa-plus\"></i> 选择</button>");
            }
            else
            {
                obj.Elements.Render(brush, "<m:button data-name=\"select\" color=\"blue\"><m:Icon src=\"plus\"></m:Icon>选择</m:button>");
            }
            brush.DrawLine("</td>");
            brush.DrawLine("<td class=\"input-tags-btnContainer\">");
            obj.Elements.Render(brush, "<m:button data-name=\"reset\" color=\"purple\"><m:Icon src=\"times\"></m:Icon>清除</m:button>");
            brush.DrawLine("</td>");
            brush.DrawLine("</tr>");
            brush.DrawLine("</table>");
        }
        protected override void DrawTbody(SealedControl obj, HtmlNode node, PageBrush brush)
        {
            brush.DrawLine("<tbody data-name=\"dataContent\" data-proxy=\"{give:new $$.databind()}\">");
            brush.DrawLine("<tr data-proxy=\"{display:'',loops:'rows'}\">");

            var selectMode = node.GetAttributeValue("select", "false");

            if (selectMode == "true")
            {
                brush.DrawLine("<td><input type=\"checkbox\" class=\"checkboxes\" value=\"1\" /></td>");
            }

            var items = node.SelectNodesEx("columns/item");

            foreach (var item in items)
            {
                if (item.InnerHtml.Length == 0)
                {
                    brush.DrawFormat("<td data-proxy=\"{0}\"{1}{2}></td>", GetSystemProxyCode(item), SealedPainter.GetFullClassName(item), SealedPainter.GetStyleCode(item));
                }
                else
                {
                    brush.DrawFormat("<td{0}{1}>", SealedPainter.GetFullClassName(item), SealedPainter.GetStyleCode(item));
                    obj.Elements.Render(brush, item.InnerHtml);
                    //brush.DrawXaml(item.InnerHtml);
                    brush.Draw("</td>");
                }
                brush.DrawLine();
            }

            brush.DrawLine("</tr>");
            brush.Draw("</tbody>");
        }
        protected virtual void FillControlByMultiLevel(SealedControl obj, HtmlNode node, HtmlNode coreNode, PageBrush brush)
        {
            var unitNodes = node.SelectNodesEx("core/unit");
            var hidden    = node.GetAttributeValue("autoHidden", "true") == "true" ? "display:none;" : string.Empty;

            for (var i = 0; i < unitNodes.Count; i++)
            {
                var    levelNode   = unitNodes[i];
                string placeholder = levelNode.GetAttributeValue("placeholder", string.Empty);
                var    group       = levelNode.GetAttributeValue("group", "false");

                StringBuilder code = new StringBuilder();
                if (i + 1 >= unitNodes.Count)
                {
                    code.AppendFormat("<column {0} style=\"{1}padding-bottom:2px;\" class=\"col-trim\">", LayoutUtil.GetProperiesCode(levelNode), hidden);
                }
                else
                {
                    code.AppendFormat("<column {0} style=\"{1}padding-right:2px;padding-bottom:2px;\" class=\"col-trim\">", LayoutUtil.GetProperiesCode(levelNode), hidden);
                }
                code.AppendLine();
                code.AppendFormat("<ms:dropdown data-name=\"unit\" emptyItem=\"{0}\" validate=\"false\">", node.GetAttributeValue("emptyItem", "false"));
                code.AppendLine();
                code.AppendLine("<label remove=\"true\"></label>");
                code.AppendLine("<core xs=\"12\" class=\"col-trim\">");
                code.AppendLine("</core>");
                code.AppendLine("</ms:dropdown>");
                code.AppendLine("</column>");

                obj.Elements.Render(brush, code.ToString());
            }
        }
Ejemplo n.º 5
0
        protected virtual void FillControl(SealedControl obj, HtmlNode node, HtmlNode coreNode, PageBrush brush)
        {
            string id          = node.GetAttributeValue("id", string.Empty);
            string idCode      = string.IsNullOrEmpty(id) ? string.Empty : string.Format(" id=\"control_{0}\"", id);
            string placeholder = node.GetAttributeValue("placeholder", string.Empty);

            StringBuilder className = new StringBuilder("form-control");
            var           align     = coreNode.GetAttributeValue("align", "left");

            if (align != "left")
            {
                className.AppendFormat(" text-{0}", align);
            }

            string status   = string.Empty;
            string disabled = node.GetAttributeValue("disabled", "false");

            if (disabled == "true")
            {
                status = " disabled";
            }
            else
            {
                string readOnly = node.GetAttributeValue("readonly", "false");
                if (readOnly == "true")
                {
                    status = " readonly";
                }
            }

            string propertyText = string.Format("class=\"{0}\"{1} data-name=\"input\" placeholder=\"{2}\"{3}", className, idCode, placeholder, status);

            brush.DrawLine(CreateControlCode(node, coreNode, propertyText));
        }
Ejemplo n.º 6
0
        protected override void FillCoreContainer(SealedControl obj, HtmlNode node, PageBrush brush)
        {
            var hasBrowseNode = node.SelectSingleNodeEx("browse") != null;
            var coreNode      = node.SelectSingleNodeEx("core");

            if (coreNode == null)
            {
                throw new WebException("没有指定core节点");
            }
            string className = LayoutUtil.GetClassName(coreNode, "input-extend");
            string styleCode = hasBrowseNode ? "display:none;" : string.Empty;

            if (!string.IsNullOrEmpty(styleCode))
            {
                styleCode = string.Format(" style=\"{0}\"", styleCode);
            }
            SealedPainter.CreateNodeCode(brush, "div", className, styleCode, GetCoreContainerProxyCode(node), (pageBrush) =>
            {
                FillCore(obj, node, coreNode, pageBrush);
            },
                                         () =>
            {
                return("data-name='coreContainer'");
            });
            //html.AppendLine(code);
        }
 protected override void FillCore(SealedControl obj, HtmlNode node, HtmlNode coreNode, PageBrush brush)
 {
     if (IsSingleLevel(node))
     {
         FillControl(node, coreNode, brush);
     }
     else
     {
         FillControlByMultiLevel(obj, node, coreNode, brush);
     }
 }
        private void FillUploadHtml(SealedControl obj, HtmlNode node, PageBrush brush)
        {
            if (node.SelectSingleNodeEx("core/upload") == null)
            {
                return;
            }
            string modalId = string.Format("selectCoverModal_upload_{0}", node.GetAttributeValue("id", string.Empty));

            StringBuilder modal = new StringBuilder();

            modal.AppendFormat("<m:modal id=\"{0}\" size=\"full\" title=\"选择封面文件\">", modalId);
            modal.AppendLine();
            modal.AppendLine("        <bootform type=\"horizontal\" class=\"form-row-seperated thumbnails-form\">");
            modal.AppendFormat("            <m:upload name=\"upload\" class=\"thumbnails-input-cover\" max=\"1\" maxfilesize=\"{0}\" disk=\"true\" target=\"{1}\" extensions=\"(\\.|\\/)(gif|jpe?g|png)$\"  id=\"upload_{2}\">",
                               //modal.AppendFormat("            <ms:input class=\"thumbnails-input-cover\" type=\"upload\" max=\"1\" maxfilesize=\"{0}\" target=\"{1}\" extensions=\"(\\.|\\/)(gif|jpe?g|png)$\"  id=\"upload_{2}\">",
                               GetUploadPara(node, "maxfilesize", "40960"), GetUploadPara(node, "target", string.Empty), node.GetAttributeValue("id", string.Empty));
            modal.AppendLine();
            modal.AppendLine("                <m:inputLabel xs=\"12\" sm=\"3\">图片文件</m:inputLabel>");
            modal.AppendLine("                <m:inputCore xs=\"12\" sm=\"8\"></m:inputCore>");
            modal.AppendLine("                <m:inputHelp sm=\"8\" sm-offset=\"3\"></m:inputHelp>");
            modal.AppendLine("            </m:upload>");
            modal.AppendLine("        </bootform>");
            modal.AppendLine("    <m:modal.footer style=\"border-top:none;\">");
            modal.AppendLine("        <m:button class=\"thumbnails-upload-btn-ok\" color=\"blue\" icon=\"check\">确定</m:button>");
            modal.AppendLine("        <m:button color=\"default\" data-dismiss=\"modal\">取消</m:button>");
            modal.AppendFormat("        <m:alert id=\"thumbnailsAlert_upload_{0}\" style=\"margin-top:20px;\"></m:alert>", node.GetAttributeValue("id", string.Empty));
            modal.AppendLine();
            modal.AppendLine("    </m:modal.footer>");
            modal.Append("</m:modal>");

            obj.Elements.Render(brush, modal.ToString());

            //brush.DrawFormat("<metro:modal id=\"{0}\" width=\"80%\" title=\"选择封面文件\">", modalId);
            //brush.DrawLine();
            //brush.DrawLine("    <body class=\"form\">");
            //brush.DrawLine("        <boot:form type=\"horizontal\" class=\"form-row-seperated thumbnails-form\">");
            //brush.DrawFormat("            <metro:input class=\"thumbnails-input-cover\" type=\"upload\" max=\"1\" maxfilesize=\"{0}\" disk=\"true\" target=\"{1}\" extensions=\"(\\.|\\/)(gif|jpe?g|png)$\"  id=\"upload_{2}\">",
            //                            GetUploadPara(node, "maxfilesize", "40960"), GetUploadPara(node, "target", string.Empty), node.GetAttributeValue("id", string.Empty));
            //brush.DrawLine();
            //brush.DrawLine("                <label xs=\"12\" sm=\"3\">图片文件</label>");
            //brush.DrawLine("                <core xs=\"12\" sm=\"8\"></core>");
            //brush.DrawLine("                <help sm=\"8\" sm-offset=\"3\"></help>");
            //brush.DrawLine("            </metro:input>");
            //brush.DrawLine("        </boot:form>");
            //brush.DrawLine("    </body>");
            //brush.DrawLine("    <footer style=\"border-top:none;\">");
            //brush.DrawLine("        <metro:button class=\"thumbnails-upload-btn-ok\" color=\"blue\" icon=\"check\">确定</metro:button>");
            //brush.DrawLine("        <metro:button color=\"default\" data-dismiss=\"modal\">取消</metro:button>");
            //brush.DrawFormat("        <metro:alert id=\"thumbnailsAlert_upload_{0}\" style=\"margin-top:20px;\"></metro:alert>", node.GetAttributeValue("id", string.Empty));
            //brush.DrawLine();
            //brush.DrawLine("    </footer>");
            //brush.Draw("</metro:modal>");
        }
        protected override void FillCoreContainer(SealedControl obj, HtmlNode node, PageBrush brush)
        {
            string className = "input-extend";

            SealedPainter.CreateNodeCode(brush, "div", className, string.Empty, GetCoreContainerProxyCode(node), (pageBrush) =>
            {
                pageBrush.Draw("<input data-name=\"input\" type=\"hidden\" />");
            },
                                         () =>
            {
                return("data-name='coreContainer'");
            });
        }
Ejemplo n.º 10
0
        protected override void FillCore(SealedControl obj, HtmlNode node, HtmlNode coreNode, PageBrush brush)
        {
            StringBuilder code = new StringBuilder();

            code.Append("<table class=\"table table-bordered table-striped table-input-list\"");
            code.Append("   xmlns:boot=\"http://schemas.codeart.cn/web/xaml\"");
            code.Append("   xmlns:metro=\"http://schemas.codeart.cn/web/xaml/metronic\"");
            code.AppendLine(">");
            code.AppendLine(CreateHeadCode(node));
            code.AppendLine("<tbody>");
            code.AppendLine(CreateBodyCode(node));
            code.AppendLine("</tbody>");
            code.AppendLine("</table>");
            obj.Elements.Render(brush, code.ToString());
        }
Ejemplo n.º 11
0
        protected void FillSuffix(SealedControl obj, HtmlNode suffixNode, PageBrush brush)
        {
            if (suffixNode == null)
            {
                return;
            }
            StringBuilder code = new StringBuilder();

            if (suffixNode.SelectNodesEx("metro:button").Count > 0 || suffixNode.SelectNodesEx("button").Count > 0)
            {
                code.AppendFormat("<span class=\"input-group-btn\">{0}</span>", suffixNode.InnerHtml);
            }
            else if (!string.IsNullOrEmpty(suffixNode.InnerText) && suffixNode.InnerText == suffixNode.InnerHtml)
            {
                //纯文本
                code.AppendFormat("<span class=\"input-group-addon\">{0}</span>", suffixNode.InnerText);
            }
            code.AppendLine();
            obj.Elements.Render(brush, code.ToString());
        }
Ejemplo n.º 12
0
        protected override void FillControl(SealedControl obj, HtmlNode node, HtmlNode coreNode, PageBrush brush)
        {
            string width  = node.GetAttributeValue("width", "100%");
            string height = node.GetAttributeValue("height", "400px");
            string id     = GetKey(node);

            brush.DrawLine("<script>");
            brush.DrawLine("function _editor_init_" + id + "(){");
            brush.DrawLine("tinymce.init({");
            brush.DrawLine("init_instance_callback: function(){ $$('#" + id + "').inited(true);},");
            brush.DrawLine("language: 'zh_CN',");
            brush.DrawFormat("selector: 'textarea#tinymce{0}',", id);
            brush.DrawLine();
            brush.Draw("theme: \"modern\",");
            brush.DrawFormat("width: '{0}',height: '{1}',", width, height);
            brush.DrawLine();
            WriteTool(node, brush);
            WriteFont(node, brush);
            WriteTemplates(node, brush);
            WriteContentCss(node, brush);
            brush.DrawLine("});");
            brush.DrawLine("}");
            brush.DrawLine("</script>");
            brush.DrawFormat("<textarea id=\"tinymce{0}\" name=\"tinymce{0}\"></textarea>", id);

            string toolbar = node.GetAttributeValue("toolbar", string.Empty);

            if (toolbar.IndexOf(" disk ") > -1)
            {
                var diskNode = node.SelectSingleNodeEx("core/disk");
                if (diskNode != null)
                {
                    string rootId     = diskNode.GetAttributeValue("rootId", string.Empty);
                    string target     = diskNode.GetAttributeValue("target", string.Empty);
                    string diskHeight = diskNode.GetAttributeValue("height", "500px");


                    StringBuilder code = new StringBuilder();
                    code.AppendFormat("<m:modal xmlns=\"http://schemas.codeart.cn/web/xaml\" xmlns:m=\"http://schemas.codeart.cn/web/xaml/metronic\" id=\"editor-disk-modal-{0}\" size=\"full\">", id);
                    code.AppendLine();
                    code.AppendFormat("<m:disk id=\"editor-disk-{0}\" name=\"disk\" target=\"{1}\" rootId=\"{2}\" height=\"{3}\"></m:disk>", id, target, rootId, diskHeight);
                    code.AppendLine();
                    code.AppendLine("<m:modal.footer>");
                    code.AppendLine("<m:button color=\"default\" data-dismiss=\"modal\">关闭</m:button>");
                    code.AppendLine("</m:modal.footer>");
                    code.AppendLine("</m:modal>");

                    obj.Elements.Render(brush, code.ToString());


                    //brush.DrawFormat("<metro:modal id=\"editor-disk-modal-{0}\" size=\"full\">", id);
                    //brush.DrawLine();
                    //brush.DrawLine("<body>");
                    //brush.DrawFormat("<metro:disk id=\"editor-disk-{0}\" target=\"{1}\" rootId=\"{2}\" height=\"{3}\"></metro:disk>", id, target, rootId, diskHeight);
                    //brush.DrawLine();
                    //brush.DrawLine("</body>");
                    //brush.DrawLine("<footer>");
                    //brush.DrawLine("<metro:button color=\"default\" data-dismiss=\"modal\">取消关闭</metro:button>");
                    //brush.DrawLine("</footer>");
                    //brush.DrawLine("</metro:modal>");
                }
            }
        }
 protected abstract void FillCore(SealedControl obj, HtmlNode node, HtmlNode coreNode, PageBrush brush);
Ejemplo n.º 14
0
 protected override void FillCore(SealedControl obj, HtmlNode node, HtmlNode coreNode, PageBrush brush)
 {
     FillSuffix(obj, coreNode.SelectSingleNodeEx("before"), brush);
     FillControl(obj, node, coreNode, brush);
     FillSuffix(obj, coreNode.SelectSingleNodeEx("after"), brush);
 }
 protected override void FillCore(SealedControl obj, HtmlNode node, HtmlNode coreNode, PageBrush brush)
 {
     FillControl(node, coreNode, brush);
 }
 protected virtual void DrawTbody(SealedControl obj, HtmlNode node, PageBrush brush)
 {
     brush.DrawLine("<tbody>");
     brush.Draw("</tbody>");
 }
Ejemplo n.º 17
0
        protected override void FillCore(SealedControl obj, HtmlNode node, HtmlNode coreNode, PageBrush brush)
        {
            UIUtil.CheckProperties(node, "id");

            brush.DrawFormat("<form data-name=\"edit-files\" class=\"edit-files\" action=\"{0}\" method=\"POST\" enctype=\"multipart/form-data\">", node.GetAttributeValue("target", "#"));
            brush.DrawLine("<input type=\"hidden\" name=\"folderId\">");
            brush.DrawLine("	<div class=\"row fileupload-buttonbar\">");
            brush.DrawLine("		<div class=\"col-lg-7\">");
            if (node.GetAttributeValue("localUpload", "true") == "true")
            {
                brush.DrawLine("			<span class=\"btn btn-sm green fileinput-button\">");
                brush.DrawLine("			<i class=\"fa fa-plus\"></i>");
                brush.DrawLine("			<span>选择文件... </span>");
                brush.DrawLine("			<input type=\"file\" name=\"files[]\" multiple=\"\">");
                brush.DrawLine("			</span>");
                brush.DrawLine("			<button type=\"submit\" class=\"btn btn-sm blue start\">");
                brush.DrawLine("			<i class=\"fa fa-upload\"></i>");
                brush.DrawLine("			<span>开始上传 </span>");
                brush.DrawLine("			</button>");
                brush.DrawLine("			<button type=\"reset\" class=\"btn btn-sm red cancel\">");
                brush.DrawLine("			<i class=\"fa fa-ban\"></i>");
                brush.DrawLine("			<span>移除文件 </span>");
                brush.DrawLine("			</button>");
            }
            if (node.GetAttributeValue("disk", "false") == "true")
            {
                brush.DrawLine("			<button type=\"button\" class=\"btn btn-sm purple fileinput-disk\">");
                brush.DrawLine("			<i class=\"fa fa-folder-open\"></i>");
                brush.DrawLine("			<span>从文件空间中选择 </span>");
                brush.DrawLine("			</button>");
            }

            brush.DrawLine("			<span class=\"fileupload-process\">");
            brush.DrawLine("			</span>");
            brush.DrawLine("		</div>");
            brush.DrawLine("		<div class=\"col-lg-5 fileupload-progress fade\">");
            brush.DrawLine("			<div class=\"progress progress-striped active\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\">");
            brush.DrawLine("				<div class=\"progress-bar progress-bar-success\" style=\"width:0%;\">");
            brush.DrawLine("				</div>");
            brush.DrawLine("			</div>");
            brush.DrawLine("			<div class=\"progress-extended\">&nbsp;</div>");
            brush.DrawLine("		</div>");
            brush.DrawLine("	</div>");
            brush.DrawLine("	<table role=\"presentation\" class=\"table table-striped clearfix\">");
            brush.DrawLine("	<tbody class=\"files\">");
            brush.DrawLine("	</tbody>");
            brush.DrawLine("	</table>");
            brush.DrawLine("</form>");
            if (node.GetAttributeValue("disk", "false") == "true")
            {
                StringBuilder modal = new StringBuilder();

                modal.AppendLine("<m:modal data-name=\"disk-modal\" size=\"full\" title=\"请选择文件\">");
                modal.AppendLine("<m:disk id=\"" + node.GetAttributeValue("id", string.Empty) + "\" data-name=\"disk\" name=\"disk\" height=\"500px\"></m:disk>");
                modal.AppendLine("<m:modal.footer>");
                modal.AppendLine("<m:button color=\"default\" data-dismiss=\"modal\">取消关闭</m:button>");
                modal.AppendLine("</m:modal.footer>");
                modal.AppendLine("</m:modal>");

                obj.Elements.Render(brush, modal.ToString());
            }
        }
Ejemplo n.º 18
0
 protected override void FillCore(SealedControl obj, HtmlNode node, HtmlNode coreNode, PageBrush brush)
 {
     UIUtil.CheckProperties(node, "id");
     FillControl(obj, node, coreNode, brush);
 }