trait CRUDify[KeyType, CrudType <: KeyedMapper[KeyType, CrudType]] extends Crudify
This trait automatically adds CRUD (Create, read, update and delete) operations to an existing MetaMapper object. Various methods can be overridden to customize which operations are available to a user and how things are displayed. For example, you can disable deletion of entities by overriding deleteMenuLoc to Empty.
Note: Compilation will fail if you try to mix this into a Mapper instead of the associated MetaMapper. You have been warned.
- Self Type
- CRUDify[KeyType, CrudType] with CrudType with KeyedMetaMapper[KeyType, CrudType]
- Alphabetic
- By Inheritance
- CRUDify
- Crudify
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
type
FieldPointerType = MappedField[_, CrudType]
What's a field pointer for the underlying CRUDify
-
class
MyBridge
extends (CRUDify.this)#CrudBridge
- Attributes
- protected
-
class
MyPointer
extends (CRUDify.this)#FieldPointerBridge
- Attributes
- protected
-
type
TheCrudType = CrudType
What's the record type for the underlying CRUDify?
-
trait
CrudBridge
extends AnyRef
This trait represents a Bridge between TheCrudType and the Crudify trait.
This trait represents a Bridge between TheCrudType and the Crudify trait. It's not necessary to mix this trait into TheCrudType, but instead provide a mechanism for promoting a TheCrudType to CrudBridge
- Attributes
- protected
- Definition Classes
- Crudify
-
trait
FieldPointerBridge
extends AnyRef
- Attributes
- protected
- Definition Classes
- Crudify
Abstract Value Members
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
lazy val
CreateItem: String
- Definition Classes
- Crudify
-
lazy val
DeleteItem: String
- Definition Classes
- Crudify
-
lazy val
EditItem: String
- Definition Classes
- Crudify
-
lazy val
ListItems: String
- Definition Classes
- Crudify
-
lazy val
Prefix: List[String]
- Definition Classes
- Crudify
-
lazy val
ViewItem: String
- Definition Classes
- Crudify
-
def
_createTemplate: Elem
The core template for creating.
The core template for creating. Does not include any page wrapping.
- Definition Classes
- Crudify
-
def
_deleteTemplate: Elem
The core template for deleting.
The core template for deleting. Does not include any page wrapping.
- Definition Classes
- Crudify
-
def
_editTemplate: Elem
The core template for editing.
The core template for editing. Does not include any page wrapping.
- Attributes
- protected
- Definition Classes
- Crudify
-
def
_showAllTemplate: Elem
The core template for showing record.
The core template for showing record. Does not include any page wrapping
- Definition Classes
- Crudify
-
def
_viewTemplate: Elem
The core template for viewing.
The core template for viewing. Does not include any page wrapping.
- Definition Classes
- Crudify
-
def
addlMenuLocParams: List[AnyLocParam]
If there are any Loc.LocParams that need to be added to every menu (e.g., a guard for access control of the Crudify screens)
If there are any Loc.LocParams that need to be added to every menu (e.g., a guard for access control of the Crudify screens)
- Attributes
- protected
- Definition Classes
- Crudify
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
implicit
def
buildBridge(from: (CRUDify.this)#TheCrudType): (CRUDify.this)#CrudBridge
This method will instantiate a bridge from TheCrudType so that the appropriate logical operations can be performed on TheCrudType
-
implicit
def
buildFieldBridge(from: (CRUDify.this)#FieldPointerType): (CRUDify.this)#FieldPointerBridge
Based on a FieldPointer, build a FieldPointerBridge
-
def
calcCreateItem: String
- Definition Classes
- Crudify
-
def
calcDeleteItem: String
- Definition Classes
- Crudify
-
def
calcEditItem: String
- Definition Classes
- Crudify
-
def
calcListItems: String
- Definition Classes
- Crudify
-
def
calcPrefix: List[String]
What's the prefix for this CRUD.
-
def
calcViewItem: String
- Definition Classes
- Crudify
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
computeFieldFromPointer(instance: (CRUDify.this)#TheCrudType, pointer: (CRUDify.this)#FieldPointerType): Box[BaseField]
Given a field pointer and an instance, get the field on that instance
-
def
createButton: String
- Definition Classes
- Crudify
-
def
createClass: String
- Definition Classes
- Crudify
-
def
createId: String
- Definition Classes
- Crudify
-
def
createMenuLoc: Box[Menu]
The menu item for creating items (make this "Empty" to disable)
The menu item for creating items (make this "Empty" to disable)
- Definition Classes
- Crudify
-
def
createMenuLocParams: List[AnyLocParam]
Override to include new Params for the create menu
Override to include new Params for the create menu
- Definition Classes
- Crudify
-
def
createMenuName: String
- Definition Classes
- Crudify
-
lazy val
createPath: List[String]
- Definition Classes
- Crudify
-
lazy val
createPathString: String
- Definition Classes
- Crudify
-
def
createTemplate(): NodeSeq
This is the template that's used to render the page after the optional wrapping of the template in the page wrapper.
This is the template that's used to render the page after the optional wrapping of the template in the page wrapper.
- Definition Classes
- Crudify
-
def
crudAllNext(first: Long, list: List[(CRUDify.this)#TheCrudType]): (NodeSeq) ⇒ NodeSeq
Override this method to change how the next link is generated
Override this method to change how the next link is generated
- Attributes
- protected
- Definition Classes
- Crudify
-
def
crudAllPrev(first: Long): (NodeSeq) ⇒ NodeSeq
Override this method to change how the previous link is generated
Override this method to change how the previous link is generated
- Attributes
- protected
- Definition Classes
- Crudify
-
def
crudDoForm(item: (CRUDify.this)#TheCrudType, noticeMsg: String)(in: NodeSeq): NodeSeq
- Definition Classes
- Crudify
-
def
crudyDelete(item: (CRUDify.this)#TheCrudType): (NodeSeq) ⇒ NodeSeq
Override this method to change how the delete screen is built
Override this method to change how the delete screen is built
- Attributes
- protected
- Definition Classes
- Crudify
-
def
deleteButton: String
- Definition Classes
- Crudify
-
def
deleteClass: String
- Definition Classes
- Crudify
-
def
deleteId: String
- Definition Classes
- Crudify
-
def
deleteMenuLoc: Box[Menu]
The menu item for deleting an item (make this "Empty" to disable)
The menu item for deleting an item (make this "Empty" to disable)
- Definition Classes
- Crudify
-
def
deleteMenuLocParams: List[LocParam[(CRUDify.this)#TheCrudType]]
Override to include new Params for the delete menu
Override to include new Params for the delete menu
- Definition Classes
- Crudify
-
def
deleteMenuName: String
- Definition Classes
- Crudify
-
lazy val
deletePath: List[String]
- Definition Classes
- Crudify
-
lazy val
deletePathString: String
- Definition Classes
- Crudify
-
def
deleteTemplate(): NodeSeq
This is the template that's used to render the page after the optional wrapping of the template in the page wrapper
This is the template that's used to render the page after the optional wrapping of the template in the page wrapper
- Definition Classes
- Crudify
-
def
displayHtml: NodeSeq
- Definition Classes
- Crudify
-
def
displayName: String
- Definition Classes
- Crudify
-
def
displayRecord(entry: (CRUDify.this)#TheCrudType): (NodeSeq) ⇒ NodeSeq
Customize the display of records for view menu loc
Customize the display of records for view menu loc
- Attributes
- protected
- Definition Classes
- Crudify
-
def
doCrudAll: (NodeSeq) ⇒ NodeSeq
Override this method if you want to change the behavior of displaying records via the crud.all snippet
Override this method if you want to change the behavior of displaying records via the crud.all snippet
- Attributes
- protected
- Definition Classes
- Crudify
-
def
doCrudAllHeaderItems: (NodeSeq) ⇒ NodeSeq
Override this method to customize how header items are treated
Override this method to customize how header items are treated
- Attributes
- protected
- Definition Classes
- Crudify
-
def
doCrudAllRowItem(c: (CRUDify.this)#TheCrudType): (NodeSeq) ⇒ NodeSeq
Override this method to customize how a crudAll line is generated
Override this method to customize how a crudAll line is generated
- Attributes
- protected
- Definition Classes
- Crudify
-
def
doCrudAllRows(list: List[(CRUDify.this)#TheCrudType]): (NodeSeq) ⇒ NodeSeq
Override this method to determine how all the rows on a crud page are displayed
Override this method to determine how all the rows on a crud page are displayed
- Attributes
- protected
- Definition Classes
- Crudify
-
def
doDeleteFields(item: (CRUDify.this)#TheCrudType): (NodeSeq) ⇒ NodeSeq
Override this method to change how fields are displayed for delete
Override this method to change how fields are displayed for delete
- Attributes
- protected
- Definition Classes
- Crudify
-
def
doDeleteSubmit(item: (CRUDify.this)#TheCrudType, from: String)(): Nothing
Override this method to change the behavior of deleting an item
Override this method to change the behavior of deleting an item
- Attributes
- protected
- Definition Classes
- Crudify
-
def
doDisplayRecordRow(entry: (CRUDify.this)#TheCrudType): (NodeSeq) ⇒ NodeSeq
Customize the display of a row for displayRecord
Customize the display of a row for displayRecord
- Attributes
- protected
- Definition Classes
- Crudify
-
def
editButton: String
- Definition Classes
- Crudify
-
def
editClass: String
- Definition Classes
- Crudify
-
def
editErrorClass: String
- Definition Classes
- Crudify
-
def
editId: String
- Definition Classes
- Crudify
-
def
editMenuLoc: Box[Menu]
The menu item for editing an item (make this "Empty" to disable)
The menu item for editing an item (make this "Empty" to disable)
- Definition Classes
- Crudify
-
def
editMenuLocParams: List[LocParam[(CRUDify.this)#TheCrudType]]
Override to include new Params for the edit menu
Override to include new Params for the edit menu
- Definition Classes
- Crudify
-
def
editMenuName: String
The String displayed for menu editing
The String displayed for menu editing
- Definition Classes
- Crudify
-
lazy val
editPath: List[String]
- Definition Classes
- Crudify
-
lazy val
editPathString: String
- Definition Classes
- Crudify
-
def
editTemplate(): NodeSeq
This is the template that's used to render the page after the optional wrapping of the template in the page wrapper
This is the template that's used to render the page after the optional wrapping of the template in the page wrapper
- Definition Classes
- Crudify
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
fieldsForDisplay: List[MappedField[_, CrudType]]
The fields to be displayed.
-
def
fieldsForEditing: List[(CRUDify.this)#FieldPointerType]
The list of fields to present on a form form editing
The list of fields to present on a form form editing
- Definition Classes
- Crudify
-
def
fieldsForList: List[(CRUDify.this)#FieldPointerType]
The fields displayed on the list page.
The fields displayed on the list page. By default all the displayed fields, but this list can be shortened.
- Definition Classes
- Crudify
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
findForList(start: Long, count: Int): List[(CRUDify.this)#TheCrudType]
Get a List of items from the databased
-
def
findForListParams: List[QueryParam[CrudType]]
What are the query parameters? Default to ascending on primary key
-
def
findForParam(in: String): Box[(CRUDify.this)#TheCrudType]
Given a String that represents the primary key, find an instance of TheCrudType
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
lazy val
listPath: List[String]
- Definition Classes
- Crudify
-
lazy val
listPathString: String
- Definition Classes
- Crudify
-
lazy val
locSnippets: DispatchLocSnippets { val dispatch: PartialFunction[String,scala.xml.NodeSeq => scala.xml.NodeSeq] }
- Definition Classes
- Crudify
-
def
menus: List[Menu]
- Definition Classes
- Crudify
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
nextWord: String
- Definition Classes
- Crudify
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
obscurePrimaryKey(in: String): String
This method can be used to obscure the primary key.
This method can be used to obscure the primary key. This is more secure because end users will not have access to the primary key. This method actually does the obfuscation. You can use Mapper's KeyObfuscator class to implement a nice implementation of this method for session-by-session obfuscation.
By default, there's no obfuscation. Note that if you obfuscate the primary key, you need to update the findForParam method to accept the obfuscated keys (and translate them back.)
- Definition Classes
- Crudify
-
def
obscurePrimaryKey(in: (CRUDify.this)#TheCrudType): String
This method can be used to obscure the primary key.
This method can be used to obscure the primary key. This is more secure because end users will not have access to the primary key.
- Definition Classes
- Crudify
-
def
pageWrapper(body: NodeSeq): NodeSeq
- Definition Classes
- Crudify
-
def
previousWord: String
- Definition Classes
- Crudify
-
def
referer: String
- Definition Classes
- Crudify
-
def
rowsPerPage: Int
This method defines how many rows are displayed per page.
This method defines how many rows are displayed per page. By default, it's hard coded at 20, but you can make it session specific or change the default by overriding this method.
- Attributes
- protected
- Definition Classes
- Crudify
-
def
showAllClass: String
- Definition Classes
- Crudify
-
def
showAllId: String
- Definition Classes
- Crudify
-
def
showAllMenuLoc: Box[Menu]
The menu item for listing items (make this "Empty" to disable)
The menu item for listing items (make this "Empty" to disable)
- Definition Classes
- Crudify
-
def
showAllMenuLocParams: List[AnyLocParam]
Override to include new Params for the show all menu
Override to include new Params for the show all menu
- Definition Classes
- Crudify
-
def
showAllMenuName: String
- Definition Classes
- Crudify
-
def
showAllTemplate(): NodeSeq
This is the template that's used to render the page after the optional wrapping of the template in the page wrapper
This is the template that's used to render the page after the optional wrapping of the template in the page wrapper
- Definition Classes
- Crudify
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
viewClass: String
- Definition Classes
- Crudify
-
def
viewId: String
- Definition Classes
- Crudify
-
def
viewMenuLoc: Box[Menu]
The menu item for viewing an item (make this "Empty" to disable)
The menu item for viewing an item (make this "Empty" to disable)
- Definition Classes
- Crudify
-
def
viewMenuLocParams: List[LocParam[(CRUDify.this)#TheCrudType]]
Override to include new Params for the view menu
Override to include new Params for the view menu
- Definition Classes
- Crudify
-
def
viewMenuName: String
- Definition Classes
- Crudify
-
lazy val
viewPath: List[String]
- Definition Classes
- Crudify
-
lazy val
viewPathString: String
- Definition Classes
- Crudify
-
def
viewTemplate(): NodeSeq
This is the template that's used to render the page after the optional wrapping of the template in the page wrapper
This is the template that's used to render the page after the optional wrapping of the template in the page wrapper
- Definition Classes
- Crudify
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
wrapNameInRequired(fieldName: NodeSeq, required: Boolean): NodeSeq
As the field names are being displayed for editing, this method is called with the XHTML that will be displayed as the field name and a flag indicating whether the field is required.
As the field names are being displayed for editing, this method is called with the XHTML that will be displayed as the field name and a flag indicating whether the field is required. You can wrap the fieldName in a span with a css class indicating that the field is required or otherwise do something to update the field name indicating to the user that the field is required. By default the method wraps the fieldName in a span with the class attribute set to "required_field".
- Definition Classes
- Crudify