in app/controllers/Application.scala [99:166]
def app(title: String) = AuthAction.async { request =>
for {
sections <- getSortedSections()
desks <- getSortedDesks()
sectionsInDesks <- getSectionsInDesks()
commissioningDesks <- tagService.getTags(
Map(
"limit" -> "200",
"query" -> "tracking/commissioningdesk/",
"type" -> "tracking",
"searchField" -> "path"
).toList
)
}
yield {
val statuses = StatusDatabase.statuses
val user = request.user
val jsonConfig = Json.obj(
("composer", Json.obj(
("create", Json.fromString(ComposerConfig(config).newContentUrl)),
("view", Json.fromString(ComposerConfig(config).adminUrl)),
("details", Json.fromString(ComposerConfig(config).contentDetails)),
("templates", Json.fromString(ComposerConfig(config).templates))
)),
("mediaAtomMaker", Json.obj(
("create", Json.fromString(MediaAtomMakerConfig(config).newContentUrl)),
("view", Json.fromString(MediaAtomMakerConfig(config).viewContentUrl))
)),
("atomWorkshop", Json.obj(
("create", Json.fromString(AtomWorkshopConfig(config).newContentUrl)),
("view", Json.fromString(AtomWorkshopConfig(config).viewContentUrl))
)),
("statuses", statuses.asJson),
("desks", desks.asJson),
("sections", sections.asJson),
("sectionsInDesks", sectionsInDesks.asJson), // TODO: Combine desks & sectionsInDesks
("priorities", Priorities.all.asJson),
("viewerUrl", Json.fromString(config.viewerUrl)),
("storyPackagesUrl", Json.fromString(config.storyPackagesUrl)),
("presenceUrl", Json.fromString(config.presenceUrl)),
("user", parser.parse(user.toJson).getOrElse(Json.Null)),
("incopyOpenUrl", Json.fromString(config.incopyOpenUrl)),
("incopyExportUrl", Json.fromString(config.incopyExportUrl)),
("indesignExportUrl", Json.fromString(config.indesignExportUrl)),
("composerRestorerUrl", Json.fromString(config.composerRestorerUrl)),
("commissioningDesks", commissioningDesks.map(t => LimitedTag(t.id, t.externalName)).asJson),
("atomTypes", config.atomTypes.asJson),
("sessionId", Json.fromString(config.sessionId)),
("gaId", Json.fromString(config.googleTrackingId)),
("tagManagerUrl", Json.fromString(config.tagManagerUrl)),
("stage", Json.fromString(config.stage.toString)),
("telemetryUrl", Json.fromString(config.telemetryUrl))
)
val hasPinboardPermission = permissions.hasPermission(pinboardPermission, request.user.email)
Ok(views.html.app(
title,
Some(user),
config = jsonConfig,
gaId = config.googleTrackingId,
presenceClientLib = config.presenceClientLib,
maybePinboardLoaderUrl = if(hasPinboardPermission) Some(config.pinboardLoaderUrl) else None
))
}
}