Packages

trait AppBase[User] extends WabaseAppCompat[User] with Loggable with QuereaseProvider with DbAccessProvider with I18n with RowWriters

Self Type
AppBase[User] with DbAccess with Authorization[User] with ValidationEngine with DbConstraintMessage with Audit[User]
Source
AppBase.scala
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AppBase
  2. RowWriters
  3. I18n
  4. DbAccessProvider
  5. QuereaseProvider
  6. Loggable
  7. WabaseAppCompat
  8. WabaseApp
  9. AnyRef
  10. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. type ActionHandler = ((AppBase.this)#AppActionContext) ⇒ (AppBase.this)#ActionHandlerResult
    Definition Classes
    WabaseApp
  2. type ActionHandlerResult = QuereaseProvider.QE.QuereaseAction[(AppBase.this)#WabaseResult]
    Definition Classes
    WabaseApp
  3. trait AppListResult[+T] extends QuereaseProvider.QE.QuereaseIteratorResult[T]
  4. case class CreateContext[+T <: (AppBase.this)#Dto](viewName: String, inParams: Map[String, Any] = Map(), user: User, state: ApplicationState = Map[String, Any](), result: T = null) extends (AppBase.this)#RequestContext[T] with Product with Serializable
  5. type Dto = QuereaseProvider.QE.DTO
  6. type DtoWithId = QuereaseProvider.QE.DWI
  7. sealed abstract class Ext[-A] extends AnyRef
  8. implicit class FunctionMagnet[T] extends (AppBase.this)#Magnet
  9. sealed abstract class HExt[T] extends (AppBase.this)#Ext[T]
  10. case class ListContext[+T <: (AppBase.this)#Dto](viewName: String, inParams: Map[String, Any] = Map(), offset: Int = 0, limit: Int = 0, orderBy: String = null, user: User, state: ApplicationState = Map[String, Any](), completePromise: Promise[Unit], doCount: Boolean = false, timeoutSeconds: QueryTimeout, poolName: PoolName, extraDbs: Seq[DbAccessKey], result: (AppBase.this)#AppListResult[T] = null, count: Long = -1) extends (AppBase.this)#RequestContext[(AppBase.this)#AppListResult[T]] with Product with Serializable
  11. sealed abstract class Magnet extends AnyRef
  12. abstract type QE <: AppQuerease
    Definition Classes
    QuereaseProvider
  13. case class RemoveContext[+T <: (AppBase.this)#DtoWithId](viewName: String, id: Long, inParams: Map[String, Any] = Map(), user: User, completePromise: Promise[Unit], state: ApplicationState = Map[String, Any](), result: Long = -1, old: T = null) extends (AppBase.this)#RequestContext[Long] with Product with Serializable
  14. sealed trait RequestContext[+T] extends AnyRef
  15. case class SaveContext[+T <: (AppBase.this)#Dto](viewName: String, old: T, obj: T, inParams: Map[String, Any] = Map(), user: User, completePromise: Promise[Long], state: ApplicationState = Map[String, Any](), extraPropsToSave: Map[String, Any] = Map(), result: Long = -1) extends (AppBase.this)#RequestContext[Long] with Product with Serializable
  16. case class ViewContext[+T <: (AppBase.this)#Dto](viewName: String, id: Long, inParams: Map[String, Any] = Map(), user: User, state: ApplicationState = Map[String, Any](), result: Option[T] = null) extends (AppBase.this)#RequestContext[Option[T]] with Product with Serializable
  17. type ViewDef = mojoz.metadata.ViewDef[QuereaseProvider.QE.FieldDef]
  18. implicit class VoidFunctionMagnet[T] extends (AppBase.this)#FunctionMagnet[T]
  19. trait AbstractRowWriter extends RowWriter
    Definition Classes
    RowWriters
  20. abstract class CsvRowWriter extends (RowWriters.this)#AbstractRowWriter
    Definition Classes
    RowWriters
  21. class JsonRowWriter[T] extends RowWriter
    Definition Classes
    RowWriters
  22. abstract class OdsRowWriter extends (RowWriters.this)#AbstractRowWriter
    Definition Classes
    RowWriters
  23. abstract class XlsXmlRowWriter extends (RowWriters.this)#AbstractRowWriter
    Definition Classes
    RowWriters
  24. case class AppActionContext(actionName: String, viewName: String, keyValues: Seq[Any], params: Map[String, Any], values: Map[String, Any], oldValue: Map[String, Any] = null, serializedResult: Source[ByteString, _] = null)(implicit user: User, state: ApplicationState, timeout: QueryTimeout, ec: ExecutionContext, as: ActorSystem) extends Product with Serializable
    Definition Classes
    WabaseApp
  25. case class WabaseResult(ctx: (WabaseApp.this)#AppActionContext, result: QuereaseResult) extends Product with Serializable
    Definition Classes
    WabaseApp

Abstract Value Members

  1. abstract def initQuerease: (AppBase.this)#QE

    Override this method in subclass to initialize

    Override this method in subclass to initialize

    qe
    Attributes
    protected
    Definition Classes
    QuereaseProvider

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. val DefaultCp: PoolName
    Definition Classes
    WabaseApp
  5. val I18nResourceName: String

    Application default resource bundle.

    Application default resource bundle. Subclass can override this value

    Definition Classes
    I18n
  6. val I18nWabaseResourceName: String
    Definition Classes
    I18n
  7. val SerializationBufferMaxFileSize: Long
    Definition Classes
    WabaseApp
  8. val SerializationBufferMaxFileSizes: Map[String, Long]
    Definition Classes
    WabaseApp
  9. val SerializationBufferSize: Int
    Definition Classes
    WabaseApp
  10. def after(actions: (AppBase.this)#Magnet*): Unit
  11. def afterWabaseAction(context: (AppBase.this)#AppActionContext, result: Try[QuereaseResult]): Unit
    Attributes
    protected
    Definition Classes
    WabaseAppCompatWabaseApp
  12. def api(implicit user: User): JsObject
  13. def apiMetadata(implicit user: User, state: ApplicationState): JsObject
  14. implicit def appStateToMap(state: ApplicationState): Map[String, Any]
  15. def applyReadonlyValues(viewDef: (AppBase.this)#ViewDef, old: Map[String, Any], instance: Map[String, Any]): Map[String, Any]
    Attributes
    protected
    Definition Classes
    WabaseApp
  16. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  17. def auth[C <: (AppBase.this)#RequestContext[_]](ctx: C, clazz: Class[_])(action: ⇒ C): C
  18. val autoTimeFieldNames: Set[String]

    Names of date or time fields updated automatically on save

  19. def badEmailAddressErrorMessage(viewName: String, field: QuereaseProvider.QE.FieldDef, value: Any)(implicit locale: Locale): String
  20. def before(actions: (AppBase.this)#Magnet*): Unit
  21. def beforeWabaseAction(context: (AppBase.this)#AppActionContext, doApiCheck: Boolean): (AppBase.this)#AppActionContext
    Attributes
    protected
    Definition Classes
    WabaseApp
  22. def bundle(name: String)(implicit locale: Locale): ResourceBundle
    Definition Classes
    I18n
  23. def checkApi[F](viewName: String, method: String, user: User): Unit
    Definition Classes
    WabaseApp
  24. def checkLimit(viewDef: (AppBase.this)#ViewDef, limit: Int): Unit
    Attributes
    protected
    Definition Classes
    WabaseApp
  25. def checkOffset(viewDef: (AppBase.this)#ViewDef, offset: Int): Unit
    Attributes
    protected
    Definition Classes
    WabaseApp
  26. def checkOrderBy(viewDef: (AppBase.this)#ViewDef, orderBy: String): Unit
    Attributes
    protected
    Definition Classes
    WabaseApp
  27. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  28. def count(viewName: String, params: Map[String, Any])(implicit user: User, state: ApplicationState, timeoutSeconds: QueryTimeout, poolName: PoolName = ...): Long
  29. def create(viewName: String, params: Map[String, Any] = Map.empty)(implicit user: User, state: ApplicationState, timeoutSeconds: QueryTimeout, poolName: PoolName = ...): (AppBase.this)#Dto
  30. def createCountResult[T <: (AppBase.this)#Dto](ctx: (AppBase.this)#ListContext[T]): Long
  31. def createCreateCtx[T <: (AppBase.this)#Dto](ctx: (AppBase.this)#CreateContext[T]): (AppBase.this)#CreateContext[T]
  32. def createCreateResult[T <: (AppBase.this)#Dto](ctx: (AppBase.this)#CreateContext[T]): T
  33. def createDeleteCtx[T <: (AppBase.this)#DtoWithId](ctx: (AppBase.this)#RemoveContext[T]): (AppBase.this)#RemoveContext[T]
  34. def createDeleteResult[T <: (AppBase.this)#DtoWithId](ctx: (AppBase.this)#RemoveContext[T]): Long
  35. def createListCtx[T <: (AppBase.this)#Dto](ctx: (AppBase.this)#ListContext[T]): (AppBase.this)#ListContext[T]
  36. def createListResult[T <: (AppBase.this)#Dto](ctx: (AppBase.this)#ListContext[T]): (AppBase.this)#AppListResult[T]
  37. def createRaw(viewName: String, params: Map[String, Any] = Map.empty)(implicit user: User, state: ApplicationState, timeoutSeconds: QueryTimeout, poolName: PoolName): (AppBase.this)#CreateContext[(AppBase.this)#Dto]
  38. def createSaveCtx[T <: (AppBase.this)#Dto](ctx: (AppBase.this)#SaveContext[T]): (AppBase.this)#SaveContext[T]
  39. def createSaveResult[T <: (AppBase.this)#Dto](ctx: (AppBase.this)#SaveContext[T]): Long
  40. def createViewCtx[T <: (AppBase.this)#Dto](ctx: (AppBase.this)#ViewContext[T]): (AppBase.this)#ViewContext[T]
  41. def createViewResult[T <: (AppBase.this)#Dto](ctx: (AppBase.this)#ViewContext[T]): Option[T]
  42. def currentUserParamNames: Set[String]
  43. def current_user_param(user: User): Map[String, Any]

    Query parameter overrides related to current user, for example, user_id, person_id etc.

    Query parameter overrides related to current user, for example, user_id, person_id etc. Override with something useful, like:

    Option(user).map(u => Map("current_user_id" -> u.id)) getOrElse Map.empty
  44. def customValidations(ctx: (AppBase.this)#AppActionContext)(implicit locale: Locale): Unit
    Attributes
    protected
    Definition Classes
    WabaseAppCompatWabaseApp
  45. def dbAccess: AppBase[User] with DbAccess with Authorization[User] with ValidationEngine with DbConstraintMessage with Audit[User]
    Definition Classes
    AppBaseDbAccessProvider
  46. def defaultCreate(ctx: (AppBase.this)#CreateContext[(AppBase.this)#Dto]): (AppBase.this)#CreateContext[(AppBase.this)#Dto]
  47. def defaultList(ctx: (AppBase.this)#ListContext[(AppBase.this)#Dto]): (AppBase.this)#ListContext[(AppBase.this)#Dto]
  48. def defaultRemove(ctx: (AppBase.this)#RemoveContext[(AppBase.this)#DtoWithId]): (AppBase.this)#RemoveContext[(AppBase.this)#DtoWithId]
  49. def defaultSave(ctx: (AppBase.this)#SaveContext[(AppBase.this)#Dto]): (AppBase.this)#SaveContext[(AppBase.this)#Dto]
  50. def defaultView(ctx: (AppBase.this)#ViewContext[(AppBase.this)#Dto]): (AppBase.this)#ViewContext[(AppBase.this)#Dto]
  51. def delete(viewName: String, id: Long, params: Map[String, Any] = Map())(implicit user: User, state: ApplicationState, timeoutSeconds: QueryTimeout, poolName: PoolName = ...): Long
  52. def delete(context: (AppBase.this)#AppActionContext): (AppBase.this)#ActionHandlerResult
    Definition Classes
    WabaseApp
  53. def doWabaseAction(action: (AppBase.this)#ActionHandler, context: (AppBase.this)#AppActionContext, doApiCheck: Boolean): Future[(AppBase.this)#WabaseResult]
    Definition Classes
    WabaseApp
  54. def doWabaseAction(context: (AppBase.this)#AppActionContext, doApiCheck: Boolean): Future[(AppBase.this)#WabaseResult]
    Definition Classes
    WabaseApp
  55. def doWabaseAction(actionName: String, viewName: String, keyValues: Seq[Any], params: Map[String, Any], values: Map[String, Any] = Map(), doApiCheck: Boolean = true)(implicit user: User, state: ApplicationState, timeout: QueryTimeout, ec: ExecutionContext, as: ActorSystem): Future[(AppBase.this)#WabaseResult]
    Definition Classes
    WabaseApp
  56. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  57. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  58. def extraMetadata(filter: FilterParameter)(implicit user: User): Map[String, JsValue]
  59. def extraMetadata(viewDef: (AppBase.this)#ViewDef)(implicit user: User): Map[String, JsValue]
  60. def extraMetadata(fieldDef: QuereaseProvider.QE.FieldDef)(implicit user: User): Map[String, JsValue]
  61. def fieldRequiredErrorMessage(viewName: String, field: QuereaseProvider.QE.FieldDef)(implicit locale: Locale): String
  62. def fieldValueNotInEnumErrorMessage(viewName: String, field: QuereaseProvider.QE.FieldDef, value: Any)(implicit locale: Locale): String
  63. def fieldValueTooLongErrorMessage(viewName: String, field: QuereaseProvider.QE.FieldDef, value: Any)(implicit locale: Locale): String
  64. def filterByHasRole(someRoles: Set[String], user: User): Set[String]
  65. def filterFieldLabel(name: String, colLabel: String, filterType: FilterType): FilterLabel
  66. def filterMetadata(view: (AppBase.this)#ViewDef)(implicit user: User, state: ApplicationState): Map[String, JsValue]
  67. def filterParameters(view: (AppBase.this)#ViewDef): Seq[FilterParameter]
  68. def filterToParameterNames(filter: FilterType): Seq[String]
  69. def filterToParameterNamesAndCols(filter: FilterType): Seq[(String, String)]
  70. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  71. def get(viewName: String, id: Long, params: Map[String, Any] = Map())(implicit user: User, state: ApplicationState, timeoutSeconds: QueryTimeout, poolName: PoolName = ...): Option[(AppBase.this)#Dto]
  72. def getActionHandler(context: (AppBase.this)#AppActionContext): (AppBase.this)#ActionHandler
    Attributes
    protected
    Definition Classes
    WabaseApp
  73. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  74. def getOldValue(context: (AppBase.this)#AppActionContext): QuereaseProvider.QE.QuereaseAction[Map[String, Any]]
    Attributes
    protected
    Definition Classes
    WabaseApp
  75. def getRaw(viewName: String, id: Long, params: Map[String, Any] = Map())(implicit user: User, state: ApplicationState, timeoutSeconds: QueryTimeout, poolName: PoolName): (AppBase.this)#ViewContext[(AppBase.this)#Dto]
  76. def hasLegacyHandlers(viewName: String, actionName: String): Boolean
    Attributes
    protected
  77. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  78. def i18nResourceDependencies: Map[String, String]

    Application resource bundle dependencies.

    Application resource bundle dependencies.

    Definition Classes
    I18n
  79. def i18nResources(implicit locale: Locale): I18Bundle

    Calls

    Calls

    i18nResourcesFromBundle(ResourceName)
    Definition Classes
    I18n
  80. def i18nResourcesFromBundle(name: String)(implicit locale: Locale): I18Bundle

    Returns resources as

    Returns resources as

    I18Bundle

    .

    I18Bundle }}}

    Definition Classes
    I18n
  81. def impliedIdForGetOverList[F](viewName: String): Option[Long]
  82. def isEmailAddressField(viewName: String, field: QuereaseProvider.QE.FieldDef): Boolean
  83. def isEmailAddressTemplateViolated(viewName: String, field: QuereaseProvider.QE.FieldDef, value: Any): Boolean
  84. def isFieldRequiredViolated(viewName: String, field: QuereaseProvider.QE.FieldDef, value: Any): Boolean
  85. def isFieldValueEnumViolated(viewName: String, field: QuereaseProvider.QE.FieldDef, value: Any): Boolean
  86. def isFieldValueMaxLengthViolated(viewName: String, field: QuereaseProvider.QE.FieldDef, value: Any): Boolean
  87. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  88. def isQuereaseActionDefined(viewName: String, actionName: String): Boolean
    Attributes
    protected
  89. def list(viewName: String, params: Map[String, Any], offset: Int = 0, limit: Int = 0, orderBy: String = null, doCount: Boolean = false)(implicit user: User, state: ApplicationState, timeoutSeconds: QueryTimeout, poolName: PoolName = ...): (AppBase.this)#AppListResult[(AppBase.this)#Dto]
  90. def list(context: (AppBase.this)#AppActionContext): (AppBase.this)#ActionHandlerResult
    Definition Classes
    WabaseApp
  91. def listRaw(viewName: String, params: Map[String, Any], offset: Int = 0, limit: Int = 0, orderBy: String = null, doCount: Boolean = false)(implicit user: User, state: ApplicationState, timeoutSeconds: QueryTimeout, poolName: PoolName): (AppBase.this)#ListContext[(AppBase.this)#Dto]
  92. lazy val logger: Logger
    Attributes
    protected
    Definition Classes
    Loggable
  93. implicit def mapToAppState(state: Map[String, Any]): ApplicationState
  94. def metadata(viewDef: (AppBase.this)#ViewDef)(implicit user: User, state: ApplicationState): JsObject
  95. def metadata(viewName: String)(implicit user: User, state: ApplicationState): JsObject
  96. lazy val metadataVersionString: String
  97. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  98. def noApiException(viewName: String, method: String, user: User): Exception
    Attributes
    protected
    Definition Classes
    WabaseApp
  99. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  100. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  101. def on(actions: (AppBase.this)#Magnet*): Unit
  102. def prepareKey(viewName: String, keyValues: Seq[Any], actionName: String): Map[String, Any]
    Definition Classes
    WabaseApp
  103. def prepareKeyValue(field: QuereaseProvider.QE.FieldDef, value: Any): Any

    Converts key value from uri representation to appropriate type.

    Converts key value from uri representation to appropriate type. Default implementation also converts "null" to null.

    Definition Classes
    WabaseApp
  104. implicit final val qe: (AppBase.this)#QE
    Definition Classes
    QuereaseProvider
  105. def resourceFactory(context: (AppBase.this)#AppActionContext): () ⇒ Resources
    Definition Classes
    WabaseApp
  106. def rest[C <: (AppBase.this)#RequestContext[_]](ctx: C)(implicit mgr: (AppBase.this)#Ext[C], clazz: Class[_]): C
  107. implicit def rowLikeToDto[B <: (AppBase.this)#Dto](r: RowLike, m: Manifest[B]): B
  108. def save(viewName: String, obj: JsObject, params: Map[String, Any] = Map(), emptyStringsToNull: Boolean = true)(implicit user: User, state: ApplicationState, timeoutSeconds: QueryTimeout, poolName: PoolName = ...): Long
  109. def save(context: (AppBase.this)#AppActionContext): (AppBase.this)#ActionHandlerResult
    Definition Classes
    WabaseApp
  110. def saveDto(instance: (AppBase.this)#Dto, params: Map[String, Any] = Map(), emptyStringsToNull: Boolean = true, extraPropsToSave: Map[String, Any] = Map())(implicit user: User, state: ApplicationState, timeoutSeconds: QueryTimeout, poolName: PoolName = ...): Long
  111. def serializeResult(bufferSize: Int, maxFileSize: Long, result: Source[ByteString, _], cleanupFun: (Option[Throwable]) ⇒ Unit = null, resultCount: Int = 1)(implicit ec: ExecutionContext, mat: Materializer): Future[Seq[SerializedResult]]

    Runs

    Runs

    src

    via

    FileBufferedFlow

    of

    bufferSize

    with

    maxFileSize

    to

    CheckCompletedSink

    maxFileSize }}} bufferSize }}} FileBufferedFlow }}} src }}}

    Definition Classes
    WabaseApp
  112. def shouldAddResultToContext(context: (AppBase.this)#AppActionContext): Boolean

    Override to request serialized result source in AppActionContext, e.g., for auditing

    Override to request serialized result source in AppActionContext, e.g., for auditing

    Attributes
    protected
    Definition Classes
    WabaseApp
  113. def simpleAction(context: (AppBase.this)#AppActionContext): (AppBase.this)#ActionHandlerResult
    Definition Classes
    WabaseApp
  114. def stableOrderBy(viewDef: (AppBase.this)#ViewDef, orderBy: String): String
    Attributes
    protected
    Definition Classes
    WabaseApp
  115. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  116. def throwOldValueNotFound(message: String, locale: Locale): Nothing
    Attributes
    protected
    Definition Classes
    WabaseApp
  117. implicit def toAppListResult[T <: (AppBase.this)#Dto](list: Seq[T])(implicit arg0: Manifest[T]): (AppBase.this)#AppListResult[T] { def resources: Nothing }
  118. def toString(): String
    Definition Classes
    AnyRef → Any
  119. def translate(str: String, params: String*)(implicit locale: Locale): String
    Definition Classes
    I18n
  120. def translateFromBundle(name: String, str: String, params: String*)(implicit locale: Locale): String
    Definition Classes
    I18n
  121. def useLegacyFlow(viewName: String, actionName: String): Boolean

    Override for legacy projects if necessary, isQuereaseActionDefined() and hasLegacyHandlers() may be helpful

  122. def validateFields(instance: (AppBase.this)#Dto)(implicit state: ApplicationState): Unit
  123. def validateFields(viewName: String, instance: Map[String, Any])(implicit state: ApplicationState): Unit
  124. def validationErrorMessage(viewName: String, field: QuereaseProvider.QE.FieldDef, value: Any)(implicit locale: Locale): Option[String]
  125. lazy val viewNameToFilterMetadata: Map[String, Seq[FilterParameter]]
  126. def viewSerializationBufferMaxFileSize(viewName: String): Long
    Definition Classes
    WabaseApp
  127. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  128. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  129. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  130. implicit object BList extends (AppBase.this)#HExt[(AppBase.this)#ListContext[(AppBase.this)#Dto]]
  131. implicit object Create extends (AppBase.this)#HExt[(AppBase.this)#CreateContext[(AppBase.this)#Dto]]
  132. implicit object Remove extends (AppBase.this)#HExt[(AppBase.this)#RemoveContext[(AppBase.this)#DtoWithId]]
  133. implicit object Save extends (AppBase.this)#HExt[(AppBase.this)#SaveContext[(AppBase.this)#Dto]]
  134. implicit object View extends (AppBase.this)#HExt[(AppBase.this)#ViewContext[(AppBase.this)#Dto]]

Inherited from RowWriters

Inherited from I18n

Inherited from DbAccessProvider

Inherited from QuereaseProvider

Inherited from Loggable

Inherited from WabaseAppCompat[User]

Inherited from WabaseApp[User]

Inherited from AnyRef

Inherited from Any

Ungrouped