All Downloads are FREE. Search and download functionalities are using the official Maven repository.

controllers.Application.scala Maven / Gradle / Ivy

The newest version!
package controllers

import javax.inject._

import com.mohiva.play.silhouette.api.{Environment, Silhouette}
import com.mohiva.play.silhouette.impl.authenticators.CookieAuthenticator
import models.{Database, User}
import play.api.i18n.{I18nSupport, MessagesApi}
import play.api.mvc.{Action, Controller}

@Singleton
class Application @Inject() (val messagesApi: MessagesApi, val env: Environment[User, CookieAuthenticator]) extends BaseController {

    def index = UserAwareAction { implicit request =>
      Ok(views.html.index(Database.getLastHTMLSources(5)))
    }

    def aboutProject = UserAwareAction { implicit request =>
        Ok(views.html.aboutProject())
    }

    def aboutPrivacyPolicy = UserAwareAction { implicit request =>
        Ok(views.html.aboutPrivacyPolicy())
    }


    def list(limit : Int, page : Int) = UserAwareAction { implicit request =>
        val pcms = Database.list(limit, page).toList
        val count = Database.count().toInt
        var nbPages = count / limit
        if (count % limit != 0) {
            nbPages = nbPages + 1
        }
        Ok(views.html.list(pcms, limit, page, nbPages))
    }

    def search(searchedString : String) = UserAwareAction { implicit request =>

        // TODO : find PCMs named "request" or with a product named "request"
        val results = Database.search(searchedString).toList

        Ok(views.html.search(searchedString, results))
    }


    def edit(id : String) = UserAwareAction { implicit request =>
        val exists = Database.exists(id)
        if (exists) {
            Ok(views.html.edit(id, null, null))
        } else {
            Ok(views.html.edit(null, null, null))
        }

    }

    def create = UserAwareAction { implicit request =>
        Ok(views.html.edit(null, null, null, true))
    }

    def importer(ext : String) = UserAwareAction { implicit request =>
        ext match {
            case "csv" => Ok(views.html.edit(null, null, "Csv"))
            case "html" => Ok(views.html.edit(null, null, "Html"))
            case "wikipedia" => Ok(views.html.edit(null, null, "MediaWiki"))
            case _ => NotFound
        }
    }

    def embed(id : String) = UserAwareAction { implicit request =>
        val exists = Database.exists(id)
        if (exists) {
            Ok(views.html.embed(id, null, null))
        } else {
            Ok(views.html.embed(null, null, null))
        }

    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy