Collaboration™ Features
Below are some examples of the feature set provided by IntelliFactory Collaboration™ (IC).
Document Editor
Given a Document Template an editor is derived providing a User Interface for creating and editing documents.
Component content such as headers, text blocks and images can be rearranged using drag and drop facilities.
Components may also by minimized allowing the editor to focus on parts of the document content.
At any time the current version of the document may be rendered by switching to preview mode.
External assets such as images or Pdf Documents may be added using the Digital Asset Manager.
If the Document Template allows it, assets may be embedded in Documents. Here, an Image component
is used to embed an image.
The image is immediately visible in the preview mode.
Document-specific configuration is available from the Settings Tab. Given the configuration of the current
Document Template, different aspects of the document may be customized.
Here the document is added to the News Category, attached with the label Fun, and assigned the
accessibility level Internal.
Document Management
Using the Manage Document Component facility, the user may view and edit available documents and assets.
Integrating IC into Your Applications
Documents may be managed programmatically or by using one of the pre-built web components.
In the following example a WebSharper™ RPC method returning a list of News items is created.
A function for selecting the ten most recent documents filtered by the news category and the company group is defined as:
1 | |
2 | let private news (db : CollaborationDataContext) : seq<ArticleInfo> = |
3 | [ |
4 | ByCategoryFilter [Settings.NewsId] |
5 | ByGroupFilter [Settings.Company] |
6 | ByPublishLevelFilter [Data.PublicLevel] |
7 | ByMaxNumFilter 10 |
8 | ] |
9 | |> ComposeFilters |
10 | |> FilteredArticles db |
The RPC method converts the sequence of documents (ArticleInfo elements) into a list of custom News elements by extracting
some information about the documents including their rendered content.
1 | |
2 | [<Rpc>] |
3 | let RenderedNews (categories: string list) : News list = |
4 | let toNews db aI = |
5 | let body = |
6 | Article.ArticleContent(db, aI.Id) |
7 | |> Renderer.RenderDefault |
8 | |> fun e -> e.Content |
9 | { |
10 | Author = aI.AuthorName |
11 | Title = aI.Title |
12 | Date = ArticleDate aI |> showDate |
13 | Body = body |
14 | } |
15 | let db = Data.DataContext() |
16 | news db |
17 | |> Seq.map (toNews db) |
18 | |> Seq.to_list |
Even though the above example relies on the WebSharper™ Platform and F#, WCS may be used within any .NET language.