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()); }
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()); } }
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)); }
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'"); }); }
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()); }
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()); }
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);
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>"); }
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\"> </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()); } }
protected override void FillCore(SealedControl obj, HtmlNode node, HtmlNode coreNode, PageBrush brush) { UIUtil.CheckProperties(node, "id"); FillControl(obj, node, coreNode, brush); }