Skip to content

Commit

Permalink
removed scalajs & install js deps locally
Browse files Browse the repository at this point in the history
  • Loading branch information
MasseGuillaume committed Jun 21, 2016
1 parent 59cbb6f commit 72fa081
Show file tree
Hide file tree
Showing 51 changed files with 49 additions and 244 deletions.
38 changes: 12 additions & 26 deletions build.sbt
@@ -1,11 +1,9 @@
import Helper._

lazy val baseSettings = Seq(
organization := "ch.epfl.scala.index",
version := "0.1.2"
)

val commonSettings = Seq(
lazy val commonSettings = Seq(
resolvers += Resolver.typesafeIvyRepo("releases"),
scalaVersion := "2.11.8",
scalacOptions := Seq(
Expand Down Expand Up @@ -35,6 +33,8 @@ val commonSettings = Seq(
testFrameworks += new TestFramework("utest.runner.Framework")
) ++ baseSettings

lazy val akkaVersion = "2.4.7"

lazy val template = project
.settings(commonSettings: _*)
.settings(
Expand All @@ -44,33 +44,20 @@ lazy val template = project
.dependsOn(model)
.enablePlugins(SbtTwirl)

lazy val webapp = crossProject
lazy val server = project
.settings(commonSettings: _*)
.settings(
resolvers += Resolver.bintrayRepo("btomala", "maven"),
libraryDependencies ++= Seq(
"com.lihaoyi" %%% "scalatags" % "0.5.2",
"com.lihaoyi" %%% "upickle" % Version.upickle,
"com.lihaoyi" %%% "autowire" % "0.2.5"
)
)

lazy val webappJS = webapp.js
.dependsOn(model)

lazy val webappJVM = webapp.jvm
.settings(packageScalaJs(webappJS))
.settings(
resolvers ++= Seq(
Resolver.bintrayRepo("btomala", "maven"),
Resolver.bintrayRepo("hseeberger", "maven")
),
libraryDependencies ++= Seq(
"com.typesafe.akka" %% "akka-http-experimental" % Version.akka,
"com.typesafe.akka" %% "akka-http-experimental" % akkaVersion,
"com.softwaremill.akka-http-session" %% "core" % "0.2.6",
"com.typesafe.scala-logging" %% "scala-logging" % "3.4.0",
"ch.qos.logback" % "logback-classic" % "1.1.7",
"org.webjars.bower" % "bootstrap-sass" % "3.3.6",
"org.webjars.bower" % "bootstrap-select" % "1.10.0"
"org.webjars.bower" % "bootstrap-select" % "1.10.0",
"org.webjars.bower" % "font-awesome" % "4.6.3",
"org.webjars.bower" % "jQuery" % "2.2.4",
"org.webjars.bower" % "select2" % "4.0.3"
),
reStart <<= reStart.dependsOn(WebKeys.assets in Assets),
unmanagedResourceDirectories in Compile += (WebKeys.public in Assets).value,
Expand All @@ -82,16 +69,15 @@ lazy val webappJVM = webapp.jvm

lazy val model = project
.settings(commonSettings: _*)
.enablePlugins(ScalaJSPlugin)

lazy val data = project
.settings(commonSettings: _*)
.settings(
resolvers += Resolver.bintrayRepo("hseeberger", "maven"),
libraryDependencies ++= Seq(
"com.sksamuel.elastic4s" %% "elastic4s-core" % "2.3.0",
"com.typesafe.akka" %% "akka-http-experimental" % Version.akka,
"com.typesafe.akka" %% "akka-http-spray-json-experimental" % Version.akka,
"com.typesafe.akka" %% "akka-http-experimental" % akkaVersion,
"com.typesafe.akka" %% "akka-http-spray-json-experimental" % akkaVersion,
"de.heikoseeberger" %% "akka-http-json4s" % "1.7.0",
"org.json4s" %% "json4s-native" % "3.3.0",
"de.heikoseeberger" %% "akka-http-circe" % "1.7.0",
Expand Down
41 changes: 0 additions & 41 deletions project/Helper.scala

This file was deleted.

1 change: 0 additions & 1 deletion project/plugins.sbt
@@ -1,5 +1,4 @@
addSbtPlugin("io.spray" % "sbt-revolver" % "0.8.0")
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.8")
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.6.1")
addSbtPlugin("com.typesafe.sbt" % "sbt-twirl" % "1.1.1")
addSbtPlugin("org.madoushi.sbt" % "sbt-sass" % "0.9.3")
Expand Down
File renamed without changes.
Expand Up @@ -6,7 +6,9 @@
// 2. Vendors
@import
'lib/bootstrap-sass/assets/stylesheets/_bootstrap.scss',
'lib/bootstrap-select/sass/bootstrap-select.scss';
'lib/bootstrap-select/sass/bootstrap-select.scss',
'lib/font-awesome/scss/font-awesome.scss',
'lib/select2/src/scss/core.scss';

// 3. Vendors Extensions
@import
Expand Down
File renamed without changes.
Expand Up @@ -75,3 +75,8 @@ $pre-color: $gray;
// Bootstrap-select
//------------------------------------------------------------------------------
$width-default: 140px;


// font awesome
//------------------------------------------------------------------------------
$fa-font-path: "/assets/lib/font-awesome/fonts/";
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes
@@ -1,29 +1,17 @@
package ch.epfl.scala.index
package server

import api._
import model._

import data.elastic._
import com.sksamuel.elastic4s._
import ElasticDsl._
import org.elasticsearch.search.sort.SortOrder

import upickle.default.{Reader, Writer, write => uwrite, read => uread}

import scala.concurrent.{Future, ExecutionContext}
import scala.language.reflectiveCalls

object AutowireServer extends autowire.Server[String, Reader, Writer]{
def read[Result: Reader](p: String) = uread[Result](p)
def write[Result: Writer](r: Result) = uwrite(r)
}

object ApiImplementation {
def setup = esClient.execute { indexExists(indexName) }
}

class ApiImplementation(github: Github, userState: Option[UserState])(implicit val ec: ExecutionContext) extends Api {
class ApiImplementation(github: Github, userState: Option[UserState])(implicit val ec: ExecutionContext) {
private def hideId(p: Project) = p.copy(_id = None)

def userInfo(): Option[UserInfo] = userState.map(_.user)
Expand Down
@@ -1,12 +1,9 @@
package ch.epfl.scala.index
package server

import api._
import model._
import data.cleanup.SemanticVersionParser

import upickle.default.{read => uread}

import akka.http.scaladsl._
import akka.http.scaladsl.model._, Uri._, StatusCodes._

Expand All @@ -21,15 +18,14 @@ import akka.stream.ActorMaterializer

import scala.concurrent.duration._
import scala.concurrent.Await
import scala.util.{Properties, Try}

object Server {
def main(args: Array[String]): Unit = {
implicit val system = ActorSystem("scaladex")
import system.dispatcher
implicit val materializer = ActorMaterializer()

val production = Try(Properties.envOrElse("production", "false").toBoolean).getOrElse(false)


val github = new Github

Expand All @@ -51,7 +47,7 @@ object Server {
keywords <- sharedApi.keywords()
latestProjects <- sharedApi.latestProjects()
latestReleases <- sharedApi.latestReleases()
} yield views.html.frontpage(keywords, latestProjects, latestReleases, userInfo, production)
} yield views.html.frontpage(keywords, latestProjects, latestReleases, userInfo)
}

def artifactPage(reference: Artifact.Reference, version: Option[SemanticVersion], user: Option[UserInfo]) = {
Expand All @@ -71,8 +67,8 @@ object Server {
}

sharedApi.projectPage(reference).map(project =>
project.map(p => (OK, views.html.artifact(p, reference, version, selectedRelease(p), user, production)))
.getOrElse((NotFound, views.html.notfound(user, production)))
project.map(p => (OK, views.html.artifact(p, reference, version, selectedRelease(p), user)))
.getOrElse((NotFound, views.html.notfound(user)))
)
}

Expand All @@ -81,19 +77,6 @@ object Server {
import server.Directives._
import TwirlSupport._

post {
path("autowire" / Segments){ s
entity(as[String]) { e
optionalSession(refreshable, usingCookies) { userState =>
complete {
AutowireServer.route[Api](reuseSharedApi(userState))(
autowire.Core.Request(s, uread[Map[String, String]](e))
)
}
}
}
}
} ~
rest.route ~
get {
path("login") {
Expand Down Expand Up @@ -126,11 +109,14 @@ object Server {
path("assets" / Remaining) { path
getFromResource(path)
} ~
path("fonts" / Remaining) { path
getFromResource(path)
} ~
path("search") {
optionalSession(refreshable, usingCookies) { userState =>
parameters('q, 'page.as[Int] ? 1, 'sort.?, 'you.?) { (query, page, sorting, you) =>
complete(sharedApi.find(query, page, sorting, you.flatMap(_ => userState.map(_.repos))).map{ case (pagination, projects) =>
views.html.searchresult(query, sorting, pagination, projects, userState.map(_.user), production)
views.html.searchresult(query, sorting, pagination, projects, userState.map(_.user))
})
}
}
Expand Down Expand Up @@ -161,7 +147,7 @@ object Server {
val reference = Artifact.Reference(owner, artifactName)
complete(
sharedApi.projectPage(reference).map(project =>
project.map(p => views.html.editproject(p, reference, version = None, userState.map(_.user), production))
project.map(p => views.html.editproject(p, reference, version = None, userState.map(_.user)))
)
)
}
Expand All @@ -174,11 +160,7 @@ object Server {
}
}

val setup = for {
_ <- ApiImplementation.setup
_ <- Http().bindAndHandle(route, "0.0.0.0", 8080)
} yield ()
Await.result(setup, 20.seconds)
Await.result(Http().bindAndHandle(route, "0.0.0.0", 8080), 20.seconds)

()
}
Expand Down
@@ -1,6 +1,6 @@
@import ch.epfl.scala.index.model._
@(project: Project, artifact: Artifact.Reference, version: Option[SemanticVersion], selectedRelease: List[Release], user: Option[UserInfo], production: Boolean)
@main(title = artifact.name, showSearch = true, searchQuery = "", user, production) {
@(project: Project, artifact: Artifact.Reference, version: Option[SemanticVersion], selectedRelease: List[Release], user: Option[UserInfo])
@main(title = artifact.name, showSearch = true, searchQuery = "", user) {
<main id="container-project">

@headproject(project, artifact, version)
Expand Down
@@ -1,6 +1,6 @@
@import ch.epfl.scala.index.model._
@(project: Project, artifact: Artifact.Reference, version: Option[SemanticVersion], user: Option[UserInfo], production: Boolean)
@main(title = s"Edit ${artifact.name}", showSearch = true, searchQuery = "", user, production) {
@(project: Project, artifact: Artifact.Reference, version: Option[SemanticVersion], user: Option[UserInfo])
@main(title = s"Edit ${artifact.name}", showSearch = true, searchQuery = "", user) {
<main id="container-project">

@headproject(project, artifact, version)
Expand Down
@@ -1,6 +1,6 @@
@import ch.epfl.scala.index.model._
@(keywords: Map[String, Long], latestProjects: List[Project], latestReleases: List[Release], user: Option[UserInfo], production: Boolean)
@main(title = "Home", showSearch = false, searchQuery = "", user, production) {
@(keywords: Map[String, Long], latestProjects: List[Project], latestReleases: List[Release], user: Option[UserInfo])
@main(title = "Home", showSearch = false, searchQuery = "", user) {
<main id="container-home">
<section class="content-search-home">
<div class="container">
Expand Down
25 changes: 8 additions & 17 deletions template/src/main/twirl/ch.epfl.scala.index.views/main.scala.html
@@ -1,5 +1,5 @@
@import ch.epfl.scala.index.model._
@(title: String, showSearch: Boolean, searchQuery: String, user: Option[UserInfo], production: Boolean)(content: Html)
@(title: String, showSearch: Boolean, searchQuery: String, user: Option[UserInfo])(content: Html)

<!DOCTYPE HTML>
<html lang="en">
Expand All @@ -8,14 +8,10 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Scaladex - @title</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Description...">
<meta name="author" content="Author...">
<!-- Shortcut icon -->
<!--meta name="description" content="Description...">
<meta name="author" content="Author..."-->
<link rel="shortcut icon" href="/assets/img/favicon.ico" />
<link rel="apple-touch-icon" href="/assets/img/favicon.ico">
<!-- CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" />
<link rel="stylesheet" type="text/css" href="/assets/main.css" />

</head>
Expand Down Expand Up @@ -85,17 +81,12 @@ <h5>Follow us:</h5></li>
</div>
</footer>
<!-- Coding End -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.10.0/js/bootstrap-select.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>
<script src="/assets/webapp-jsdeps.js"></script>

@if(production) {
<script src="/assets/webapp-opt.js"></script>
} else {
<script src="/assets/webapp-fastopt.js"></script>
}
<script src="/assets/lib/jQuery/dist/jquery.min.js"></script>
<script src="/assets/lib/bootstrap-sass/assets/javascripts/bootstrap.min.js"></script>
<script src="/assets/lib/bootstrap-select/dist/js/bootstrap-select.min.js"></script>
<script src="/assets/lib/select2/dist/js/select2.min.js"></script>

<script>
// Tooltips
$(function () {
Expand Down
@@ -1,6 +1,6 @@
@import ch.epfl.scala.index.model._
@(user: Option[UserInfo], production: Boolean)
@main(title = "Not found", showSearch = true, searchQuery = "", user, production) {
@(user: Option[UserInfo])
@main(title = "Not found", showSearch = true, searchQuery = "", user) {
<main>
<h1>Not found</h1>
</main>
Expand Down
@@ -1,7 +1,7 @@
@import ch.epfl.scala.index.model._

@(query: String, sorting: Option[String], pagination: Pagination, projects: List[Project], user: Option[UserInfo], production: Boolean)
@main(title = s"Search $query", showSearch = true, searchQuery = "", user, production) {
@(query: String, sorting: Option[String], pagination: Pagination, projects: List[Project], user: Option[UserInfo])
@main(title = s"Search $query", showSearch = true, searchQuery = "", user) {
<main id="container-search">
<div class="container">
@if(pagination.total != 0 ) {
Expand Down

0 comments on commit 72fa081

Please sign in to comment.