Package

razie.wiki

model

Permalink

package model

Visibility
  1. Public
  2. All

Type Members

  1. case class CAT(cat: String, realm: Option[String]) extends Product with Serializable

    Permalink

    a wrapper for categories, since they can now have a realm

  2. case class Comment(streamId: ObjectId, userId: ObjectId, userName: String, parentId: Option[ObjectId], content: String, link: Option[String], kind: Option[String], likes: List[String] = List.empty, dislikes: List[String] = List.empty, crDtm: DateTime = DateTime.now(), updDtm: DateTime = DateTime.now(), _id: ObjectId = new ObjectId()) extends Product with Serializable

    Permalink

    a comment in a series

    a comment in a series

    todo add markdown options, bbcode vs md etc

    Annotations
    @RTable()
  3. case class CommentStream(topic: ObjectId, what: String = "Wiki", crDtm: DateTime = DateTime.now(), _id: ObjectId = new ObjectId()) extends Product with Serializable

    Permalink

    a thread / series of comments on something - like a forum topic

    a thread / series of comments on something - like a forum topic

    threads apply to: wiki topics, PMs, MAs, questions, forums

    Annotations
    @RTable()
  4. case class ILink(wid: WID, label: String, role: Option[String] = None, tags: Map[String, String] = Map(), ilinks: List[ILink] = Nil) extends Product with Serializable

    Permalink

    most information about a page - represents the z End of an association, as you get it from the a End

  5. case class IWikiWrapper(ilink: ILink) extends WikiWrapper with Product with Serializable

    Permalink

    wrap just a link - will load the other end lazily as needed

  6. class Mixins[A <: AnyRef { def mixins: razie.wiki.model.Mixins[A] }] extends AnyRef

    Permalink

    generic instance mixin - wiki domains and indexes accept mixins

  7. case class Perm(s: String) extends Product with Serializable

    Permalink

    user permissions

  8. trait Reactor extends AnyRef

    Permalink

    a hosted wiki instance, i.e.

    a hosted wiki instance, i.e. independent hosted website.

    It has its own index, domain and is independent of other wikis

    It has its own users and admins/mods etc

    Wikis can mixin other wikis - linearized multiple inheritance.

  9. abstract class ReactorImpl extends Reactor

    Permalink

    a hosted wiki instance, i.e.

    a hosted wiki instance, i.e. independent hosted website.

    It has its own index, domain and is independent of other wikis

    It has its own users and admins/mods etc

    Wikis can mixin other wikis - linearized multiple inheritance.

  10. case class UWID(cat: String, id: ObjectId, realm: Option[String] = None) extends Product with Serializable

    Permalink

    a unique ID - it is less verbose than the WID - used in data modelling.

    a unique ID - it is less verbose than the WID - used in data modelling.

    also, having a wid means a page exists or existed

  11. case class VUWID(uwid: UWID, ver: String) extends Product with Serializable

    Permalink
  12. case class WID(cat: String, name: String, parent: Option[ObjectId] = None, section: Option[String] = None, realm: Option[String] = None) extends Product with Serializable

    Permalink

    a wiki id, a pair of cat and name - can reference a wiki entry or a section of an entry

    a wiki id, a pair of cat and name - can reference a wiki entry or a section of an entry

    THIS IS how topics are referenced everywhere in code. In DB they are reference with UWID

    format is parent/realm.cat:name#section

    assumption is that when we link between wikis, we'll have wiki/parent/cat:name#section -

    NOTE: equals does not look at parent !!!

  13. case class WTag(realm: String, name: String, list: List[VUWID], _id: ObjectId = new ObjectId()) extends REntity[WTag] with Product with Serializable

    Permalink

    tagging a reactor - will record the versions of each page present at that time

    tagging a reactor - will record the versions of each page present at that time

    use cases: create a tag, retrieve a tag, reference a tag

    Annotations
    @RTable()
  14. abstract class WWrapper extends AnyRef

    Permalink

    base class - can have a topic wrapper or a link wrapper

  15. case class WikiAudit(event: String, wpath: String, userId: Option[ObjectId], details: Option[String] = None, page: Option[WikiEntry] = None, oldPage: Option[WikiEntry] = None, oldWpath: Option[String] = None, node: Option[String] = None, crDtm: DateTime = DateTime.now, _id: ObjectId = new ObjectId()) extends Product with Serializable

    Permalink

    auditing events on wiki pages, like edits, views etc

    auditing events on wiki pages, like edits, views etc

    NOTE - this becomes a WikiEvent, in CQRS

    These backed up in their own table

    These are ALSO used CQRS style with WikiObserver - you can listen there

    TODO should probably allow customization to track only interesting events, i.e. filters

    for now - just purge the table as you feel like...

    Annotations
    @RTable()
  16. case class WikiConfigChanged(node: String = "") extends WikiEventBase with Product with Serializable

    Permalink

    an event that the configuration changed

  17. case class WikiDTemplate(t: WikiSection) extends DTemplate with Product with Serializable

    Permalink

    template wrapper for wiki sections

  18. case class WikiEntry(category: String, name: String, label: String, markup: String, content: String, by: com.mongodb.casbah.Imports.ObjectId, tags: Seq[String] = Seq(), realm: String = Wikis.RK, ver: Int = 1, parent: Option[com.mongodb.casbah.Imports.ObjectId] = None, props: Map[String, String] = Map.empty, likes: List[String] = List.empty, dislikes: List[String] = List.empty, likeCount: Int = 0, dislikeCount: Int = 0, crDtm: DateTime = DateTime.now, updDtm: DateTime = DateTime.now, _id: com.mongodb.casbah.Imports.ObjectId = new ObjectId()) extends WikiPage with DSpec with Product with Serializable

    Permalink

    a simple wiki-style entry: language (markdown, mediawiki wikidot etc) and the actual source

    a simple wiki-style entry: language (markdown, mediawiki wikidot etc) and the actual source

    There is an "owner" property - owner is supposed to have special privileges

    Annotations
    @RTable()
  19. case class WikiEntryOld(entry: WikiEntry, reason: Option[String], crDtm: Option[DateTime] = Some(DateTime.now), _id: com.mongodb.casbah.Imports.ObjectId = new ObjectId()) extends Product with Serializable

    Permalink

    old wiki entries - a copy of each older version is archived when udpated or deleted

    old wiki entries - a copy of each older version is archived when udpated or deleted

    Annotations
    @RTable()
  20. case class WikiEvent[A](action: String, cls: String, id: String, entity: Option[A] = None, oldEntity: Option[A] = None, oldId: Option[String] = None, node: String = "") extends WikiEventBase with Product with Serializable

    Permalink

    a generic event refering to an entity

    a generic event refering to an entity

    A

    the entity type

    action

    what happened to it - use constants below. Extensions must start with prefiex per example

    cls

    the class, SimpleName - must be understood by processors

    id

    some form of the entity ID recognized by consumers

    entity

    the entity, if local on this node and still existing - ignored for serialization

    oldEntity

    the old entity, if local and entity changed - ignored for serialization

    oldId

    optionally, if entity was renamed or moved or something, the old id

  21. trait WikiEventBase extends AnyRef

    Permalink

    just a syntax marker for events -

    just a syntax marker for events -

    find usages to find all types of events that are sent through the handlers

  22. class WikiIndex extends AnyRef

    Permalink

    in-mem index of wikis, labels, tags and main assocs

    in-mem index of wikis, labels, tags and main assocs

    maintained in sync in a cluster

    the index is (name, WID, ID)

    todo mt-safe - swap maps on update

  23. trait WikiInst extends DSpecInventory

    Permalink

    a wiki instance.

    a wiki instance. corresponds to one reactor/realm

    has a list of fallbacks / mixins

  24. class WikiInstImpl extends WikiInst

    Permalink

    a wiki instance.

    a wiki instance. corresponds to one reactor/realm

    has a list of fallbacks / mixins

  25. case class WikiLink(from: UWID, to: UWID, how: String, draft: Option[String] = None, crDtm: DateTime = DateTime.now(), _id: com.mongodb.casbah.Imports.ObjectId = new ObjectId()) extends REntity[WikiLink] with Product with Serializable

    Permalink

    a link between two wikis

    a link between two wikis

    Annotations
    @RTable()
  26. case class WikiLinkStaged(from: WID, to: WID, how: String, crDtm: DateTime = DateTime.now(), _id: com.mongodb.casbah.Imports.ObjectId = new ObjectId()) extends REntity[WikiLinkStaged] with Product with Serializable

    Permalink

    a link between two wikis

    a link between two wikis

    Annotations
    @RTable()
  27. trait WikiObserver extends AnyRef

    Permalink

    implement to get before/after notifications of certain events

  28. trait WikiPage extends AnyRef

    Permalink

    simple trait for a wiki

  29. class WikiRefined extends AnyRef

    Permalink

    something that extracts/refines info from a wiki topic or multiple wiki topics - can be cached

    something that extracts/refines info from a wiki topic or multiple wiki topics - can be cached

    it is uniquely tied to a UWID but recalculated when dependencies change as well

  30. case class WikiSection(original: String, parent: WikiEntry, stype: String, name: String, signature: String, content: String, args: Map[String, String] = Map.empty) extends Product with Serializable

    Permalink

    a section inside a wiki page {{stype name:signature args}}content{{/stype}}

    a section inside a wiki page {{stype name:signature args}}content{{/stype}}

    Note that the content will start with a \n if you use separate lines... todo signature is really tags, rename it

  31. abstract class WikiUser extends DUser

    Permalink

    basic user concept - you have to provide your own implementation

  32. class WikiWrapper extends WWrapper

    Permalink

    wrap an actual topic - will load the page lazily if browsing

Value Members

  1. object CAT extends Serializable

    Permalink
  2. object Comments

    Permalink

    factory and utils

  3. object NoWikiUsers extends DUsers[WikiUser]

    Permalink

    sample dummy

  4. object Perm extends Serializable

    Permalink

    permissions

  5. object TestWikiPath

    Permalink
  6. object UWID extends Serializable

    Permalink
  7. object WID extends Serializable

    Permalink

    wid utils

  8. object WTag extends Serializable

    Permalink
  9. object WikiAudit extends Serializable

    Permalink

    audit codes

  10. object WikiCache

    Permalink
  11. object WikiEntry extends Serializable

    Permalink
  12. object WikiEvent extends Serializable

    Permalink

    some constants

  13. object WikiIndex

    Permalink

    the index is (name, WID, ID)

  14. object WikiObservers

    Permalink

    listen to and observe wiki entities being updated

  15. object WikiPath

    Permalink
  16. object WikiRefinery

    Permalink

    something that extracts/refines info from a wiki topic or multiple wiki topics - and the results can be cached

    something that extracts/refines info from a wiki topic or multiple wiki topics - and the results can be cached

    Register the refiner and it will be called when the underlying wikis change

    Yes - wikiflow as in dataflow

  17. object WikiSearch

    Permalink

    search utilities

  18. object WikiUsers

    Permalink

    provide implementation in Global::beforeStart()

  19. object WikiXpSolver extends XpSolver[WWrapper]

    Permalink

    solver for wiki xp

  20. object Wikis extends Logging with Validation

    Permalink

    wiki factory and utils

  21. package features

    Permalink

Ungrouped