src/main/scala/bootstrap/liftweb/Boot.scala
author Tomas Zeman <tzeman@volny.cz>
Thu, 24 May 2012 11:19:26 +0200
changeset 99 49eb72a46208
parent 88 777daf9e0026
child 100 1fcbeae1f9da
permissions -rw-r--r--
e45557248ba12a15 Services

/*
 * Copyright 2011-2012 Tomas Zeman <tzeman@volny.cz>
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package bootstrap.liftweb

import fis.base.model._
import fis.base.ui._
import fis.aaa.model._
import fis.aaa.ui._
import fis.crm.ui._
import fis.geo.ui._
import fis.pm.ui._
import fis.sr.ui._
import fis.db.SquerylTxMgr
import net.datatables.DataTables
import net.liftweb.common._
import net.liftweb.http._
import net.liftweb.sitemap._
import net.liftweb.squerylrecord.SquerylRecord
import net.liftweb.util._
import net.liftweb.util.Helpers._
import net.tz.lift.boot.ProtoBoot

class Boot extends ProtoBoot {
  override def boot = {

    /* DB stuff */
    SquerylTxMgr.init()

    super.boot

    import Loc._

    AuthnSnippet.init()
    SecNav.init()
    DataTables.init()

    /* Authn wiring */
    UserVendors.cur.default.set(Vendor(() => AuthnSnippet.cur))
    AuthnSnippet.
      registerAuthenticator(FetchUserAuthenticator).
      registerAuthenticator(PasswordAuthenticator)

    val menus = List(Menu("/", "FIS Main page") / "index" >>
      EarlyResponse(() => Full(RedirectResponse(ProjectSnippet.url.list))) >>
      Hidden,
      ProjectSnippet.menu,
      TaskSnippet.menu,
      UserSnippet.menu,
      AuthnSnippet.menu,
      CompanySnippet.menu,
      ContactSnippet.menu,
      CountrySnippet.menu,
      CitySnippet.menu,
      LocationSnippet.menu,
      ServiceSnippet.menu
    )

    LiftRules.setSiteMap(SiteMap(menus:_*))

    LiftRules.htmlProperties.default.set { r: Req =>
      Html5Properties(r.userAgent) }

    ScreenRules.init()

    /* Language */
    LangSwitcher.init()
    LiftRules.localeCalculator = { _ => CurLanguage.get }
  }
}

// vim: set ts=2 sw=2 et: