diff --git a/app/Resources/views/base.html.twig b/app/Resources/views/base.html.twig index 6ec94eb..a256e69 100644 --- a/app/Resources/views/base.html.twig +++ b/app/Resources/views/base.html.twig @@ -4,25 +4,20 @@ {% block title %}Welcome!{% endblock %} - {% block stylesheets %} - {#{% stylesheets filter='cssrewrite' - '@JotunheimrAdminBundle/Resources/public/js/vendor/bootstrap/css/bootstrap.min.css' - '@TollTereloBundle/Resources/public/css/style.css' %} - - {% endstylesheets %}#} - {% endblock %} + {% block stylesheets %}{% endblock %} -{% block body %}{% endblock %} -{% block javascripts %} - {#{% javascripts - '@JotunheimrAdminBundle/Resources/public/js/vendor/plugins/jQuery/jquery-3.0.0.min.js' - '@JotunheimrAdminBundle/Resources/public/js/vendor/plugins/jQuery/jquery-migrate-3.0.0.min.js' - '@JotunheimrAdminBundle/Resources/public/js/vendor/bootstrap/js/bootstrap.min.js' - '@TollTereloBundle/Resources/public/js/script.js' %} - - {% endjavascripts %}#} -{% endblock %} +
+ {% block header %}{% endblock %} +
+
+ {% block body %}{% endblock %} +
+ + +{% block javascripts %}{% endblock %} diff --git a/src/Jotunheimr/UserBundle/Resources/public/css/layout.css b/src/Jotunheimr/UserBundle/Resources/public/css/layout.css index bc5e7b0..24ae639 100644 --- a/src/Jotunheimr/UserBundle/Resources/public/css/layout.css +++ b/src/Jotunheimr/UserBundle/Resources/public/css/layout.css @@ -16,16 +16,12 @@ main .checkbox { color: #FFFFFF; } -.facebook { - border-bottom: 1px solid #3498db; - padding: 40px; - margin: 20px; -} - .fb-login { - background: #3498db; + display: block; + background: #1a6190; font: bold 22px 'Gloria Hallelujah', cursive; - color: #FFFFFF; + text-align: center; + color: #2c3e50; padding: 15px 20px; margin: 20px; @@ -164,7 +160,7 @@ main .checkbox { } .graphic--kozakura { - fill: #3498db; + fill: #2c3e50; pointer-events: none; top: 1em; bottom: 0; diff --git a/src/Jotunheimr/UserBundle/Resources/public/css/login.css b/src/Jotunheimr/UserBundle/Resources/public/css/login.css index bca7f5c..62f53da 100644 --- a/src/Jotunheimr/UserBundle/Resources/public/css/login.css +++ b/src/Jotunheimr/UserBundle/Resources/public/css/login.css @@ -1,5 +1,5 @@ main { - background: url("/bundles/jotunheimruser/images/landscape-2.jpeg"); + background: url('/bundles/mineseeker/images/homepage/header.jpg'); background-size: cover; background-position: center center; } @@ -15,19 +15,43 @@ main .login { } main .login .login-container { - background: #FFFFFF; - display: table; + background: #2980b9; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + width: 100%; padding: 1em; - -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.8); - box-shadow: 0 0 5px rgba(0, 0, 0, 0.8); + -webkit-box-shadow: 0 5px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 5px 7px rgba(0, 0, 0, 0.3); +} + +main .login .login-container .login-form { + display: flex; + align-items: center; + justify-content: center; + flex-direction: row; + width: 50%; +} + +main .login .login-container .login-item { + width: 50%; +} + +main .login .login-container .login-item h2 { + text-align: center; +} + +main .login .login-container .login-item:first-child { + border-right: 1px solid #3498db; } main .login h1 { display: block; - font: normal 40px 'Gloria Hallelujah', cursive; + font: normal 72px 'Gloria Hallelujah', cursive; text-align: center; - color: #3498db; + color: #2c3e50; margin-top: 0; } @@ -37,20 +61,26 @@ main .login .form .input { } main .login .form .checkbox { - color: #3498db; + color: #2c3e50; +} + +main .checkbox label, main .radio label { + font: bolder 18px "Avenir Next", "Helvetica Neue", Helvetica, Arial, sans-serif; } main .login .form .submit { - background: none; + background: #1a6190; display: block; - font: bold 22px 'Gloria Hallelujah', cursive; - color: #FFFFFF; - border: 2px solid #3498db; - padding: 10px 20px; - margin: 20px auto 0 auto; + font: bolder 22px "Avenir Next", "Helvetica Neue", Helvetica, Arial, sans-serif; + color: #2c3e50; + border: 0; + padding: 10px 70px; + margin: 20px auto 40px auto; -webkit-transition: all 250ms cubic-bezier(0, 0.25, 0.5, 1); transition: all 250ms cubic-bezier(0, 0.25, 0.5, 1); + -webkit-border-radius: 3px; + border-radius: 3px; } main .login .form .submit:hover { diff --git a/src/Jotunheimr/UserBundle/Resources/public/css/register.css b/src/Jotunheimr/UserBundle/Resources/public/css/register.css index 8d3fa63..f56e3dc 100644 --- a/src/Jotunheimr/UserBundle/Resources/public/css/register.css +++ b/src/Jotunheimr/UserBundle/Resources/public/css/register.css @@ -1,5 +1,5 @@ main { - background: url("/bundles/jotunheimruser/images/landscape-3.jpeg"); + background: url('/bundles/mineseeker/images/homepage/header.jpg'); background-size: cover; background-position: center center; } diff --git a/src/Jotunheimr/UserBundle/Resources/views/Security/login.html.twig b/src/Jotunheimr/UserBundle/Resources/views/Security/login.html.twig index 3c13a28..8c9d33e 100644 --- a/src/Jotunheimr/UserBundle/Resources/views/Security/login.html.twig +++ b/src/Jotunheimr/UserBundle/Resources/views/Security/login.html.twig @@ -9,53 +9,64 @@
- {#{% include('@JotunheimrUser/Social/facebook.html.twig') %}#} -

Sign in

-
-
- +
diff --git a/src/Jotunheimr/UserBundle/Resources/views/Social/facebook.html.twig b/src/Jotunheimr/UserBundle/Resources/views/Social/facebook.html.twig index aac24f2..0875669 100644 --- a/src/Jotunheimr/UserBundle/Resources/views/Social/facebook.html.twig +++ b/src/Jotunheimr/UserBundle/Resources/views/Social/facebook.html.twig @@ -1,38 +1,36 @@ - + function fbLogin() { + FB.getLoginStatus(function (response) { + if (response.status === 'connected') { + document.location = "{{ url("hwi_oauth_service_redirect", {service: "facebook"}) }}"; + } else { + FB.login(function (response) { + if (response.authResponse) { + document.location = "{{ url("hwi_oauth_service_redirect", {service: "facebook"}) }}"; + } + }, {scope: 'email'}); + } + }); + } + + + diff --git a/src/Jotunheimr/UserBundle/Security/Core/User/MyFOSUBUserProvider.php b/src/Jotunheimr/UserBundle/Security/Core/User/MyFOSUBUserProvider.php index c11efa2..6c1c993 100644 --- a/src/Jotunheimr/UserBundle/Security/Core/User/MyFOSUBUserProvider.php +++ b/src/Jotunheimr/UserBundle/Security/Core/User/MyFOSUBUserProvider.php @@ -74,7 +74,8 @@ class MyFOSUBUserProvider extends BaseFOSUBProvider $user->setFacebookId($response->getUsername()); $user->setEmail($response->getEmail()); $user->setEmailCanonical($response->getEmail()); - $user->setUsername($response->getUsername()); + $user->setUsername($this->slugify($response->getRealName())); + $user->setUsernameCanonical($this->slugify($response->getRealName())); $user->setRealName($response->getRealName()); $user->setNickName($response->getNickname()); if ($empty) { @@ -85,4 +86,27 @@ class MyFOSUBUserProvider extends BaseFOSUBProvider $this->em->persist($user); $this->em->flush(); } + + /** + * @param $text + * @return mixed|string + */ + private function slugify($text) + { + $text = preg_replace('#[^\\pL\d]+#u', '-', $text); + $text = trim($text, '-'); + + if (function_exists('iconv')) { + $text = iconv('utf-8', 'us-ascii//TRANSLIT', $text); + } + + $text = strtolower($text); + $text = preg_replace('#[^-\w]+#', '', $text); + + if (empty($text)) { + return 'n-a'; + } + + return $text; + } } diff --git a/src/Mine/SeekerBundle/Entity/Grid.php b/src/Mine/SeekerBundle/Entity/Grid.php index a47b1a8..f731f53 100644 --- a/src/Mine/SeekerBundle/Entity/Grid.php +++ b/src/Mine/SeekerBundle/Entity/Grid.php @@ -3,6 +3,7 @@ namespace Mine\SeekerBundle\Entity; use Doctrine\Common\Collections\ArrayCollection; +use Doctrine\Common\Collections\Collection; use Doctrine\ORM\Mapping as ORM; /** @@ -78,4 +79,38 @@ class Grid { return $this->playedGame; } + + /** + * Add gridRow + * + * @param GridRow $gridRow + * + * @return Grid + */ + public function addGridRow(GridRow $gridRow) + { + $this->gridRow[] = $gridRow; + + return $this; + } + + /** + * Remove gridRow + * + * @param GridRow $gridRow + */ + public function removeGridRow(GridRow $gridRow) + { + $this->gridRow->removeElement($gridRow); + } + + /** + * Get gridRow + * + * @return Collection + */ + public function getGridRow() + { + return $this->gridRow; + } } diff --git a/src/Mine/SeekerBundle/Entity/Grid.php~ b/src/Mine/SeekerBundle/Entity/Grid.php~ index ec78618..a47b1a8 100644 --- a/src/Mine/SeekerBundle/Entity/Grid.php~ +++ b/src/Mine/SeekerBundle/Entity/Grid.php~ @@ -30,7 +30,7 @@ class Grid private $playedGame; /** - * @var GridCol + * @var GridRow * * @ORM\OneToMany(targetEntity="Mine\SeekerBundle\Entity\GridRow", mappedBy="grid", cascade={"persist"}) * @ORM\JoinColumn(name="grid_row", referencedColumnName="id", onDelete="CASCADE") @@ -78,38 +78,4 @@ class Grid { return $this->playedGame; } - - /** - * Add gridRow - * - * @param GridCol $gridRow - * - * @return Grid - */ - public function addGridRow(GridCol $gridRow) - { - $this->gridRow[] = $gridRow; - - return $this; - } - - /** - * Remove gridRow - * - * @param GridCol $gridRow - */ - public function removeGridRow(GridCol $gridRow) - { - $this->gridRow->removeElement($gridRow); - } - - /** - * Get gridRow - * - * @return \Doctrine\Common\Collections\Collection - */ - public function getGridRow() - { - return $this->gridRow; - } } diff --git a/src/Mine/SeekerBundle/Resources/public/css/style.homepage.css b/src/Mine/SeekerBundle/Resources/public/css/style.homepage.css new file mode 100644 index 0000000..541b9c2 --- /dev/null +++ b/src/Mine/SeekerBundle/Resources/public/css/style.homepage.css @@ -0,0 +1,91 @@ +@import url('https://fonts.googleapis.com/css?family=Open+Sans+Condensed:300,700|Ravi+Prakash&subset=latin-ext'); +/* +font-family: 'Ravi Prakash', cursive; +font-family: 'Open Sans Condensed', sans-serif; +*/ + +* { + outline: none; + padding: 0; + margin: 0; +} + +html, body { + background: #2C3E50; + display: block; + width: 100%; + height: 100%; +} + +header { + background: rgba(255, 255, 255, 0.7) url('/bundles/mineseeker/images/homepage/header.jpg') no-repeat; + background-size: cover; + position: relative; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + width: 100%; + height: 560px; + color: #ffffff; + overflow: hidden; +} + +header h1 { + display: block; + font: normal 72px 'Ravi Prakash', cursive; + text-align: center; + line-height: 20px; + color: #ffa800; +} + +header h3 { + display: block; + font: normal 32px 'Open Sans Condensed', sans-serif; + text-align: center; + color: #ffcd02; +} + +header > a { + background: #e8e8e8; + display: block; + font: bold 22px 'Open Sans Condensed', sans-serif; + text-transform: uppercase; + text-decoration: none; + color: #2C3E50; + padding: 10px 70px; + margin-top: 20px; + + -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.75); + box-shadow: 0 3px 5px rgba(0, 0, 0, 0.75); + -webkit-border-radius: 3px; + border-radius: 3px; + -webkit-transition: all 250ms ease-in-out; + -moz-transition: all 250ms ease-in-out; + -o-transition: all 250ms ease-in-out; + transition: all 250ms ease-in-out; +} + +header > a:hover { + background: #ffffff; + + -webkit-box-shadow: 0 7px 10px rgba(0, 0, 0, 0.75); + box-shadow: 0 7px 10px rgba(0, 0, 0, 0.75); + -webkit-transition: all 250ms ease-in-out; + -moz-transition: all 250ms ease-in-out; + -o-transition: all 250ms ease-in-out; + transition: all 250ms ease-in-out; +} + +header > img { + position: absolute; + width: 350px; + bottom: -250px; +} + +main { + font: normal 32px 'Open Sans Condensed', sans-serif; + text-align: center; + color: #ffffff; + padding-top: 50px; +} diff --git a/src/Mine/SeekerBundle/Resources/public/css/style.mineseeker.css b/src/Mine/SeekerBundle/Resources/public/css/style.mineseeker.css index 7ffd7c5..1389091 100644 --- a/src/Mine/SeekerBundle/Resources/public/css/style.mineseeker.css +++ b/src/Mine/SeekerBundle/Resources/public/css/style.mineseeker.css @@ -14,6 +14,11 @@ body { margin: 0; } +main { + width: 100%; + height: 100%; +} + .mine-container { background: url("/bundles/mineseeker/images/bg-mineseeker-outbg.jpg") no-repeat; background-size: cover; diff --git a/src/Mine/SeekerBundle/Resources/public/js/mine-seeker/app.js b/src/Mine/SeekerBundle/Resources/public/js/mine-seeker/app.js index fa0516a..f89d1b2 100644 --- a/src/Mine/SeekerBundle/Resources/public/js/mine-seeker/app.js +++ b/src/Mine/SeekerBundle/Resources/public/js/mine-seeker/app.js @@ -65,7 +65,10 @@ class MineSeeker extends React.Component { session: this.state.session, channel: this.state.channel, overlay: true, - overlayTitle: "We are waiting for your opponent..." + overlayTitle: "We are waiting for your opponent bazmeg...", + overlaySubTitle: this.state.gameAssoc + ? Play w/ me! + : '' }); /** setup the web player */ @@ -127,7 +130,7 @@ class MineSeeker extends React.Component { } ); }, - (error, desc) => console.log(["RPC Error", error, desc]) + (error, desc) => console.error(["RPC Error", error, desc]) ); }); @@ -135,7 +138,7 @@ class MineSeeker extends React.Component { * DisConnect * Error provides us with some insight into the disconnection: error.reason and error.code */ - websocket.on("socket/disconnect", (error) => console.log("Disconnected for " + error.reason + " with code " + error.code)); + websocket.on("socket/disconnect", (error) => console.error("Disconnected for " + error.reason + " with code " + error.code)); } onClick(coords) { @@ -168,18 +171,6 @@ class MineSeeker extends React.Component { } } - /** FOR DEVELOPMENT */ - createLink() { - /* -
- {this.createLink()} -
- */ - return this.state.gameAssoc - ? Play w/ me! - : ''; - } - render() { return ( MineSeeker +

version 1.0a

+ Play now + +{% endblock %} + +{% block body %} + The site is under construction +{% endblock %} + +{% block footer %} + +{% endblock %} + +{% block stylesheets %} + {% stylesheets filter='cssrewrite' + '@MineSeekerBundle/Resources/public/css/style.homepage.css' %} + + {% endstylesheets %} {% endblock %}