src/main/scala/bootstrap/liftweb/Boot.scala
author Tomas Zeman <tzeman@volny.cz>
Wed, 30 May 2012 22:51:02 +0200
changeset 100 1fcbeae1f9da
parent 99 49eb72a46208
permissions -rw-r--r--
8f7cff383e0a8601 Attachments
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     1
/*
22
94ed9cfdb123 Squeryl connection manager instead of mapper-based
Tomas Zeman <tzeman@volny.cz>
parents: 16
diff changeset
     2
 * Copyright 2011-2012 Tomas Zeman <tzeman@volny.cz>
11
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     3
 *
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     4
 * Licensed under the Apache License, Version 2.0 (the "License");
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     5
 * you may not use this file except in compliance with the License.
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     6
 * You may obtain a copy of the License at
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     7
 *
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     8
 *     http://www.apache.org/licenses/LICENSE-2.0
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     9
 *
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    10
 * Unless required by applicable law or agreed to in writing, software
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    11
 * distributed under the License is distributed on an "AS IS" BASIS,
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    13
 * See the License for the specific language governing permissions and
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    14
 * limitations under the License.
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    15
 */
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    16
package bootstrap.liftweb
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    17
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    18
import fis.base.model._
49
c24112f0f084 Secondary navigation
Tomas Zeman <tzeman@volny.cz>
parents: 41
diff changeset
    19
import fis.base.ui._
70
3a53fa30e03e Authentication
Tomas Zeman <tzeman@volny.cz>
parents: 69
diff changeset
    20
import fis.aaa.model._
3a53fa30e03e Authentication
Tomas Zeman <tzeman@volny.cz>
parents: 69
diff changeset
    21
import fis.aaa.ui._
69
b1dc0efd1303 Company UI
Tomas Zeman <tzeman@volny.cz>
parents: 68
diff changeset
    22
import fis.crm.ui._
100
1fcbeae1f9da 8f7cff383e0a8601 Attachments
Tomas Zeman <tzeman@volny.cz>
parents: 99
diff changeset
    23
import fis.fs.lib._
1fcbeae1f9da 8f7cff383e0a8601 Attachments
Tomas Zeman <tzeman@volny.cz>
parents: 99
diff changeset
    24
import fis.fs.model._
76
2ba4569f2bd6 Location + GPS
Tomas Zeman <tzeman@volny.cz>
parents: 75
diff changeset
    25
import fis.geo.ui._
79
25392159b6ca Project
Tomas Zeman <tzeman@volny.cz>
parents: 77
diff changeset
    26
import fis.pm.ui._
99
49eb72a46208 e45557248ba12a15 Services
Tomas Zeman <tzeman@volny.cz>
parents: 88
diff changeset
    27
import fis.sr.ui._
22
94ed9cfdb123 Squeryl connection manager instead of mapper-based
Tomas Zeman <tzeman@volny.cz>
parents: 16
diff changeset
    28
import fis.db.SquerylTxMgr
100
1fcbeae1f9da 8f7cff383e0a8601 Attachments
Tomas Zeman <tzeman@volny.cz>
parents: 99
diff changeset
    29
import java.io.File
77
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents: 76
diff changeset
    30
import net.datatables.DataTables
11
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    31
import net.liftweb.common._
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    32
import net.liftweb.http._
15
995184977e9b a3e3bd30f0d19526 Contact UI
Tomas Zeman <tzeman@volny.cz>
parents: 14
diff changeset
    33
import net.liftweb.sitemap._
11
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    34
import net.liftweb.squerylrecord.SquerylRecord
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    35
import net.liftweb.util._
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    36
import net.liftweb.util.Helpers._
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    37
import net.tz.lift.boot.ProtoBoot
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    38
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    39
class Boot extends ProtoBoot {
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    40
  override def boot = {
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    41
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    42
    /* DB stuff */
22
94ed9cfdb123 Squeryl connection manager instead of mapper-based
Tomas Zeman <tzeman@volny.cz>
parents: 16
diff changeset
    43
    SquerylTxMgr.init()
11
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    44
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    45
    super.boot
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    46
15
995184977e9b a3e3bd30f0d19526 Contact UI
Tomas Zeman <tzeman@volny.cz>
parents: 14
diff changeset
    47
    import Loc._
995184977e9b a3e3bd30f0d19526 Contact UI
Tomas Zeman <tzeman@volny.cz>
parents: 14
diff changeset
    48
70
3a53fa30e03e Authentication
Tomas Zeman <tzeman@volny.cz>
parents: 69
diff changeset
    49
    AuthnSnippet.init()
49
c24112f0f084 Secondary navigation
Tomas Zeman <tzeman@volny.cz>
parents: 41
diff changeset
    50
    SecNav.init()
77
8f0eddd7aa85 Datatables DSL
Tomas Zeman <tzeman@volny.cz>
parents: 76
diff changeset
    51
    DataTables.init()
49
c24112f0f084 Secondary navigation
Tomas Zeman <tzeman@volny.cz>
parents: 41
diff changeset
    52
70
3a53fa30e03e Authentication
Tomas Zeman <tzeman@volny.cz>
parents: 69
diff changeset
    53
    /* Authn wiring */
3a53fa30e03e Authentication
Tomas Zeman <tzeman@volny.cz>
parents: 69
diff changeset
    54
    UserVendors.cur.default.set(Vendor(() => AuthnSnippet.cur))
3a53fa30e03e Authentication
Tomas Zeman <tzeman@volny.cz>
parents: 69
diff changeset
    55
    AuthnSnippet.
3a53fa30e03e Authentication
Tomas Zeman <tzeman@volny.cz>
parents: 69
diff changeset
    56
      registerAuthenticator(FetchUserAuthenticator).
3a53fa30e03e Authentication
Tomas Zeman <tzeman@volny.cz>
parents: 69
diff changeset
    57
      registerAuthenticator(PasswordAuthenticator)
3a53fa30e03e Authentication
Tomas Zeman <tzeman@volny.cz>
parents: 69
diff changeset
    58
87
80b87b8de739 Home page -> Projects
Tomas Zeman <tzeman@volny.cz>
parents: 81
diff changeset
    59
    val menus = List(Menu("/", "FIS Main page") / "index" >>
80b87b8de739 Home page -> Projects
Tomas Zeman <tzeman@volny.cz>
parents: 81
diff changeset
    60
      EarlyResponse(() => Full(RedirectResponse(ProjectSnippet.url.list))) >>
80b87b8de739 Home page -> Projects
Tomas Zeman <tzeman@volny.cz>
parents: 81
diff changeset
    61
      Hidden,
88
777daf9e0026 Menu reordering
Tomas Zeman <tzeman@volny.cz>
parents: 87
diff changeset
    62
      ProjectSnippet.menu,
777daf9e0026 Menu reordering
Tomas Zeman <tzeman@volny.cz>
parents: 87
diff changeset
    63
      TaskSnippet.menu,
67
a62b754b945a Country UI
Tomas Zeman <tzeman@volny.cz>
parents: 60
diff changeset
    64
      UserSnippet.menu,
70
3a53fa30e03e Authentication
Tomas Zeman <tzeman@volny.cz>
parents: 69
diff changeset
    65
      AuthnSnippet.menu,
88
777daf9e0026 Menu reordering
Tomas Zeman <tzeman@volny.cz>
parents: 87
diff changeset
    66
      CompanySnippet.menu,
777daf9e0026 Menu reordering
Tomas Zeman <tzeman@volny.cz>
parents: 87
diff changeset
    67
      ContactSnippet.menu,
68
f8f8cac057a7 City UI
Tomas Zeman <tzeman@volny.cz>
parents: 67
diff changeset
    68
      CountrySnippet.menu,
79
25392159b6ca Project
Tomas Zeman <tzeman@volny.cz>
parents: 77
diff changeset
    69
      CitySnippet.menu,
99
49eb72a46208 e45557248ba12a15 Services
Tomas Zeman <tzeman@volny.cz>
parents: 88
diff changeset
    70
      LocationSnippet.menu,
49eb72a46208 e45557248ba12a15 Services
Tomas Zeman <tzeman@volny.cz>
parents: 88
diff changeset
    71
      ServiceSnippet.menu
79
25392159b6ca Project
Tomas Zeman <tzeman@volny.cz>
parents: 77
diff changeset
    72
    )
15
995184977e9b a3e3bd30f0d19526 Contact UI
Tomas Zeman <tzeman@volny.cz>
parents: 14
diff changeset
    73
995184977e9b a3e3bd30f0d19526 Contact UI
Tomas Zeman <tzeman@volny.cz>
parents: 14
diff changeset
    74
    LiftRules.setSiteMap(SiteMap(menus:_*))
41
216eac8b08b4 Twitter bootstrap integration
Tomas Zeman <tzeman@volny.cz>
parents: 35
diff changeset
    75
216eac8b08b4 Twitter bootstrap integration
Tomas Zeman <tzeman@volny.cz>
parents: 35
diff changeset
    76
    LiftRules.htmlProperties.default.set { r: Req =>
216eac8b08b4 Twitter bootstrap integration
Tomas Zeman <tzeman@volny.cz>
parents: 35
diff changeset
    77
      Html5Properties(r.userAgent) }
51
523c5c5b84e5 [mq]: twitter-bootstrap-forms-error+help.patch
Tomas Zeman <tzeman@volny.cz>
parents: 49
diff changeset
    78
523c5c5b84e5 [mq]: twitter-bootstrap-forms-error+help.patch
Tomas Zeman <tzeman@volny.cz>
parents: 49
diff changeset
    79
    ScreenRules.init()
75
2b0fafd71c1d Language switcher
Tomas Zeman <tzeman@volny.cz>
parents: 70
diff changeset
    80
2b0fafd71c1d Language switcher
Tomas Zeman <tzeman@volny.cz>
parents: 70
diff changeset
    81
    /* Language */
2b0fafd71c1d Language switcher
Tomas Zeman <tzeman@volny.cz>
parents: 70
diff changeset
    82
    LangSwitcher.init()
2b0fafd71c1d Language switcher
Tomas Zeman <tzeman@volny.cz>
parents: 70
diff changeset
    83
    LiftRules.localeCalculator = { _ => CurLanguage.get }
100
1fcbeae1f9da 8f7cff383e0a8601 Attachments
Tomas Zeman <tzeman@volny.cz>
parents: 99
diff changeset
    84
1fcbeae1f9da 8f7cff383e0a8601 Attachments
Tomas Zeman <tzeman@volny.cz>
parents: 99
diff changeset
    85
    /* Attachment */
1fcbeae1f9da 8f7cff383e0a8601 Attachments
Tomas Zeman <tzeman@volny.cz>
parents: 99
diff changeset
    86
    for {
1fcbeae1f9da 8f7cff383e0a8601 Attachments
Tomas Zeman <tzeman@volny.cz>
parents: 99
diff changeset
    87
      dn <- Props get "dir.attachment"
1fcbeae1f9da 8f7cff383e0a8601 Attachments
Tomas Zeman <tzeman@volny.cz>
parents: 99
diff changeset
    88
    } {
1fcbeae1f9da 8f7cff383e0a8601 Attachments
Tomas Zeman <tzeman@volny.cz>
parents: 99
diff changeset
    89
      val r = new FileSystemAttachmentStore(new File(dn))
1fcbeae1f9da 8f7cff383e0a8601 Attachments
Tomas Zeman <tzeman@volny.cz>
parents: 99
diff changeset
    90
      Attachment.repo.default.set(Vendor(Full(r)))
1fcbeae1f9da 8f7cff383e0a8601 Attachments
Tomas Zeman <tzeman@volny.cz>
parents: 99
diff changeset
    91
      LiftRules.maxMimeSize = 80 * 1024 * 1024
1fcbeae1f9da 8f7cff383e0a8601 Attachments
Tomas Zeman <tzeman@volny.cz>
parents: 99
diff changeset
    92
      LiftRules.maxMimeFileSize = 70 * 1024 * 1024
1fcbeae1f9da 8f7cff383e0a8601 Attachments
Tomas Zeman <tzeman@volny.cz>
parents: 99
diff changeset
    93
    }
1fcbeae1f9da 8f7cff383e0a8601 Attachments
Tomas Zeman <tzeman@volny.cz>
parents: 99
diff changeset
    94
11
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    95
  }
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    96
}
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    97
43fa65f5072e 8f749d3777e669ff Web UI skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    98
// vim: set ts=2 sw=2 et: