/// <summary> /// Compiles the link for elemenet /// </summary> /// <param name="element">The element.</param> /// <param name="context">The context.</param> /// <param name="format">The format.</param> /// <param name="levels">The levels.</param> /// <returns></returns> public static string CompileLinkForElemenet(this IMetaContentNested element, deliveryInstance context, reportOutputFormatName format, List <reportElementLevel> levels) { string path = ""; var elLevel = element.getElementLevel(); switch (elLevel) { case reportElementLevel.servicepage: case reportElementLevel.page: path = element.GetOutputPath(context, format, levels, false); break; case reportElementLevel.document: metaDocument doc = element as metaDocument; path = doc.index.GetOutputPath(context, format, levels, false); break; case reportElementLevel.documentSet: metaDocumentSet docs = element as metaDocumentSet; path = docs.index.GetOutputPath(context, format, levels, false); break; } path = path.getWebPathBackslashFormat().applyToContent(false, context.data); return(path); }
public metaDocScriptBlock AddIndex(metaDocument indexSource, metaDocScriptBlock output = null) { if (output == null) { output = new metaDocScriptBlock(); } output.instructions.open("menu", "Document", ""); foreach (metaPage indexPage in indexSource.pages) { string filepath = "" + indexPage.name + ".html"; //.t(templateFieldBasic.path_ext); output.instructions.open("page", indexPage.pageTitle, indexPage.pageDescription); output.instructions.c_link(indexPage.pageTitle, filepath, indexPage.name, indexPage.pageDescription, appendLinkType.link); output.instructions.close(); } output.instructions.close(); if (!blocks.Contains(output)) { blocks.Add(output); } output.parent = this; return(output); }
/// <summary> /// Gets the link collection /// </summary> /// <param name="scoped">The scoped.</param> /// <param name="context">The context.</param> /// <param name="format">The format.</param> /// <param name="levels">The levels.</param> /// <param name="makeAppApsolut">if set to <c>true</c> [make application apsolut].</param> /// <returns></returns> public static reportLinkCollectionSet GetLinkCollection(this IMetaContentNested scoped, deliveryInstance context, reportOutputFormatName format, List <reportElementLevel> levels, bool makeAppApsolut = true) { reportLinkCollectionSet menu = new reportLinkCollectionSet(); reportElementLevel level = scoped.getElementLevel(); IMetaContentNested linkFrom = scoped; switch (level) { case reportElementLevel.document: //metaDocument document = (metaDocument)linkFrom; //menu.Add(document.documentTitle, document.GetLinkCollection(context, format)); //break; case reportElementLevel.page: linkFrom = scoped.document; if (linkFrom != null) { metaDocument document2 = (metaDocument)linkFrom; menu.Add(document2.documentTitle, document2.GetLinkCollection(context, format, levels, makeAppApsolut)); } else { if (scoped.parent != null) { return(GetLinkCollection(scoped.parent, context, format, levels, makeAppApsolut)); } } break; case reportElementLevel.documentSet: metaDocumentSet documentSet = (metaDocumentSet)linkFrom; menu.AddInGroup(documentSet.documentSetTitle, documentSet.GetServicePageLinkCollection(context, format, levels, makeAppApsolut)); menu.AddInGroup(documentSet.documentSetTitle, documentSet.GetDocumentSetsLinkCollection(context, format, levels, makeAppApsolut)); menu.currentItem.GetMainGroup().name = "Report sections"; foreach (metaDocument docum in linkFrom) { menu.Add(docum.documentTitle, docum.GetLinkCollection(context, format, levels, makeAppApsolut)); } break; } return(menu); }
/// <summary> /// Gets the link collection. /// </summary> /// <param name="scoped">The scoped.</param> /// <param name="context">The context.</param> /// <param name="format">The format.</param> /// <returns></returns> public static reportLinkCollection GetLinkCollection(this metaDocument scoped, deliveryInstance context, reportOutputFormatName format, List <reportElementLevel> levels, bool makeAppApsolut = true) { reportLinkCollection menu = new reportLinkCollection(); menu.title = scoped.documentTitle.or(scoped.name); menu.description = scoped.description; //String parent = context.GetDirectoryPath(scoped, levels); foreach (metaPage pg in scoped.pages) { string path = GetOutputPath(pg, context, format, levels, makeAppApsolut); menu.AddLink(pg.pageTitle.or(pg.name), pg.pageDescription, path.getWebPathBackslashFormat().Trim('/')); } return(menu); }
/// <summary> /// Adds the index skip this. /// </summary> /// <param name="indexSource">The index source.</param> /// <param name="skipThis">The skip this.</param> /// <param name="output">The output.</param> /// <returns></returns> public metaDocScriptBlock AddIndexSkipThis(metaDocument indexSource, metaPage skipThis, string customTitle = "", metaDocScriptBlock output = null) { if (output == null) { output = new metaDocScriptBlock(); } if (imbSciStringExtensions.isNullOrEmpty(customTitle)) { customTitle = "Pages"; } output.instructions.open("menu", customTitle, ""); foreach (metaPage indexPage in indexSource.pages) { if (indexPage != null) { if (indexPage != skipThis) { string filepath = "" + indexPage.name + ".html"; //.t(templateFieldBasic.path_ext); output.instructions.open("page", indexPage.pageTitle, indexPage.pageDescription); output.instructions.c_link(indexPage.pageTitle, filepath, indexPage.name, indexPage.pageDescription, appendLinkType.link); output.instructions.close(); } } } output.instructions.close(); if (!blocks.Contains(output)) { blocks.Add(output); } output.parent = this; return(output); }
public void Add(object input) { if (input is metaDocumentSet) { metaDocumentSet input_metaDocumentSet = (metaDocumentSet)input; documentSets.Add(input_metaDocumentSet, this); return; } if (input is metaDocument) { metaDocument input_metaDocument = (metaDocument)input; documents.Add(input_metaDocument, this); return; } if (input is metaPage) { metaPage input_metaPage = (metaPage)input; pages.Add(input_metaPage, this); return; } }
/// <summary> /// Appends its data points into new or existing property collection /// </summary> /// <param name="data">Property collection to add data into</param> /// <returns>Updated or newly created property collection</returns> public virtual PropertyCollection AppendDataFields(PropertyCollection data = null) { if (data == null) { data = new PropertyCollection(); } //systemStatusData sdata = imbSystemInfo.getSystemStatusData(); metaDocument asDocument = document as metaDocument; metaPage asPage = page as metaPage; IMetaContentNested asMetacontent = this as IMetaContentNested; if (asMetacontent != null) { data[templateFieldBasic.document_relpath] = asMetacontent.getPathToParent(document); data[templateFieldBasic.page_relpath] = asMetacontent.getPathToParent(page); // data[templateFieldBasic.root_relpath] = asMetacontent.getPathToParent(root); } //data[templateFieldBasic.sys_time] = DateTime.Now.ToShortTimeString(); //ata[templateFieldBasic.sys_threads] = sdata.threads; //data[templateFieldBasic.sys_mem] = this.getPathToParent(asDocument); //data[templateFieldBasic.sys_log] = asDocument.header.name; //data[templateFieldBasic.sys_runtime] = sdata.timeRunning; if (asPage != null) { data[templateFieldBasic.page_name] = asPage.name; data[templateFieldBasic.page_title] = asPage.pageTitle; data[templateFieldBasic.page_desc] = asPage.pageDescription; data[templateFieldBasic.page_id] = asPage.id; data[templateFieldBasic.page_number] = asPage.id; // parent.Count(); data[templateFieldBasic.page_type] = asPage.GetType().Name; if (asPage.parent != null) { data[templateFieldBasic.page_count] = asPage.parent.Count(); } else { data[templateFieldBasic.page_count] = 0; } } if (asDocument != null) { if (asDocument.parent != null) { data[templateFieldBasic.document_count] = asDocument.parent.Count(); } else { data[templateFieldBasic.document_count] = 0; } data[templateFieldBasic.document_desc] = asDocument.documentDescription; data[templateFieldBasic.document_name] = asDocument.name; data[templateFieldBasic.document_number] = asDocument.id; // parent.Count(); data[templateFieldBasic.document_path] = asDocument.path; data[templateFieldBasic.document_title] = asDocument.documentTitle; data[templateFieldBasic.document_type] = asDocument.GetType().Name; data[templateFieldBasic.document_id] = asDocument.id; } data[templateFieldMetaBlock.block_name] = name; data[templateFieldMetaBlock.block_id] = id; data[templateFieldMetaBlock.block_priority] = priority; data[templateFieldMetaBlock.block_type] = GetType().Name; return(data); }