/// <summary> /// 获取模块的编辑表单 /// </summary> /// <param name="widgetInfo">模块信息</param> /// <returns></returns> public virtual FormBuilder GetWidgetEditForm(TemplateWidgetInfo widgetInfo) { var dynamicFormBuilder = new DynamicFormBuilder(); // 添加模块中的参数 dynamicFormBuilder.AddFields(widgetInfo.Arguments); // 生成表单 var form = dynamicFormBuilder.ToForm<TabFormBuilder>(); form.Attribute = new FormAttribute( "WidgetEditForm", "/api/visual_editor/submit_widget_edit_form?path=" + HttpUtils.UrlEncode(widgetInfo.WidgetPath)); // 添加无参数的提醒 if (!widgetInfo.Arguments.Any()) { form.Fields.Add(new FormField(new TemplateHtmlFieldAttribute( "NoArguments", "theme.visualeditor/no_arguments_alert.html"))); } // 添加内嵌css, 前置html, 后置html var noLint = JsonConvert.SerializeObject(new { lint = false }); form.Fields.Add(new FormField(new TextBoxFieldAttribute( VisualWidgetRenderer.CssClassKey, "example: col-md-3 my-class") { Group = "AdditionalStyle" })); form.Fields.Add(new FormField(new CodeEditorAttribute( VisualWidgetRenderer.InlineCssKey, 5, "css", noLint) { Group = "AdditionalStyle" })); form.Fields.Add(new FormField(new CodeEditorAttribute( VisualWidgetRenderer.BeforeHtmlKey, 8, "html", noLint) { Group = "AdditionalStyle" })); form.Fields.Add(new FormField(new CodeEditorAttribute( VisualWidgetRenderer.AfterHtmlKey, 8, "html", noLint) { Group = "AdditionalStyle" })); return form; }
public void GetCacheIsolationPolicyNames() { var info = new TemplateWidgetInfo(); info.CacheBy = "Url,Locale"; var policyNames = info.GetCacheIsolationPolicyNames(); Assert.Equals(policyNames.Count, 3); Assert.Equals(policyNames[0], "Url"); Assert.Equals(policyNames[1], "Locale"); Assert.Equals(policyNames[2], "Device"); }
/// <summary> /// 初始化 /// </summary> /// <param name="group">分组名称,可以是翻译前的文本</param> /// <param name="widgetInfo">模板模块信息</param> public VisualWidgetInfo(string group, TemplateWidgetInfo widgetInfo) { Group = group; WidgetInfo = widgetInfo; }