@import views.html.layout
@import views.html.table.paginatedTable
@import views.html.dataset.{datasetMenu}
@import views.html.filter.filterWithJs
@import org.ada.web.controllers.dataset.dataimport.routes.{DataSetImportController => dataSetImportRoutes}
@import org.ada.web.util.{formatTimeElement, toHumanReadableCamel, typeColumns}
@import org.ada.server.models.{DataSpaceMetaInfo, Field, Filter, FilterShowFieldStyle}
@import org.ada.server.models.dataimport._
@import org.ada.server.models.ScheduledTime
@import org.incal.play.controllers.WebContext._
@import org.incal.play.controllers.WebContext
@import reactivemongo.bson.BSONObjectID
@import org.incal.play.Page
@import org.incal.core.FilterCondition
@(
page: Page[DataSetImport],
conditions: Seq[FilterCondition],
classDisplayNameMap: Map[Class[_], String],
dataSpaceMetaInfos: Traversable[DataSpaceMetaInfo]
)(
implicit webContext: WebContext
)
@importLink(clazz: Class[_], title: String) = {
@title
}
@actions = {
@filterWithJs(
Filter(conditions),
dataSetImportRoutes.find(),
Left(Seq(
Field("dataSpaceName", Some("Data Space Name")),
Field("dataSetName", Some("Data Set Name"))
)),
None,
Some(FilterShowFieldStyle.LabelsOnly)
)
@typeaheadSelectionModal("dataSetImportSelectionModal", "dataSetImport", "Data Set Import", dataSetImportRoutes.idAndNames, Some(dataSetImportRoutes.copy(BSONObjectID.generate)))
}
@scheduleTime(scheduledTime: ScheduledTime) = {
@Html(formatTimeElement(scheduledTime.hour, true, " ") + formatTimeElement(scheduledTime.minute, true, " ") + formatTimeElement(scheduledTime.second, false, " "))
}
@scheduleCheckbox(dataSetImport: DataSetImport) = {
}
@executeLink(dataSetImport: DataSetImport) = {
}
@table = @{
paginatedTable(
page,
dataSetImportRoutes.find(_, _, conditions),
typeColumns[DataSetImport](
(Some("dataSpaceName"), "Data Space Name", _.dataSpaceName),
(Some("dataSetName"), "Data Set Name", _.dataSetName),
(Some("concreteClass"), "Type", {importInfo => classDisplayNameMap.get(importInfo.getClass).getOrElse(toHumanReadableCamel(importInfo.getClass.getSimpleName)) }),
(Some("timeCreated"), "Time Created", _.timeCreated.format("yyyy-MM-dd HH:mm:ss")),
(Some("timeLastExecuted"), "Time Last Executed", _.timeLastExecuted.map(_.format("yyyy-MM-dd HH:mm:ss")).getOrElse("")),
(Some("scheduled"), "Scheduled?", scheduleCheckbox),
(None, "Execute Now", executeLink)
),
Some({ item : Any => dataSetImportRoutes.get(item.asInstanceOf[DataSetImport]._id.get)})
)
}
@layout.list(
"Data Set Import",
None,
page.total,
Some(actions),
Some(table),
None,
Some(datasetMenu(dataSpaceMetaInfos))
)