Compare commits
29 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ae8794f564 | |||
| 2f3062bf33 | |||
| 0e86f7d4aa | |||
| 8851a6d68b | |||
| 94ebe9a428 | |||
| 4a94855be9 | |||
| a8ac13850b | |||
| fe5378f69b | |||
| e8691f29bb | |||
| fcd490ef4e | |||
| a3465f6cf9 | |||
| a91172ef7a | |||
| 0effd8ab8d | |||
| e387e21b34 | |||
| 039c29674a | |||
| ef89f7df09 | |||
| 4d5a9b978b | |||
| ccfb621c2b | |||
| 1e2a231c6c | |||
| bcc9671895 | |||
| 6d125f2dab | |||
| 664ef5b424 | |||
| 68c6a277ba | |||
| 875d2d71db | |||
| c0d75e43f3 | |||
| 6dc59549ef | |||
| aed5eaf3ab | |||
| f44bc58df2 | |||
| 50b3663889 |
2
.babelrc
@@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"presets": ["es2015", "react"]
|
"presets": ["es2015", "es2016", "es2017", "react"]
|
||||||
}
|
}
|
||||||
|
|||||||
3
.gitignore
vendored
@@ -35,4 +35,5 @@ phpunit-report/*
|
|||||||
/src/Mine/SeekerBundle/Resources/public/js/src/
|
/src/Mine/SeekerBundle/Resources/public/js/src/
|
||||||
|
|
||||||
nohup.out
|
nohup.out
|
||||||
src/Mine/SeekerBundle/Resources/public/js/index.js
|
src/Mine/SeekerBundle/Resources/public/js/build/
|
||||||
|
npm-debug.log
|
||||||
|
|||||||
17
README.md
@@ -15,11 +15,26 @@ This is a Symfony 3 project w/ React JS in standalone mode and w/ WebSocket.
|
|||||||
|
|
||||||
1.) Backend WebSocket server start as daemon - GeniusesOfSymfony/WebSocketBundle
|
1.) Backend WebSocket server start as daemon - GeniusesOfSymfony/WebSocketBundle
|
||||||
|
|
||||||
$ nohup bin/console gos:websocket:server &
|
$ nohup php bin/console gos:websocket:server --env=prod &
|
||||||
|
|
||||||
2.) React JS WebPack watch generator w/ babel presets: es2015, react
|
2.) React JS WebPack watch generator w/ babel presets: es2015, react
|
||||||
|
|
||||||
|
$ webpack -p --config=webpack-prod.config.js
|
||||||
|
|
||||||
|
PROD
|
||||||
|
|
||||||
$ webpack --progress --colors --watch -d
|
$ webpack --progress --colors --watch -d
|
||||||
|
|
||||||
|
DEV
|
||||||
|
|
||||||
-d --> Debugger; If you write this line somewhere: debugger;
|
-d --> Debugger; If you write this line somewhere: debugger;
|
||||||
The browser will stop the code here!!!
|
The browser will stop the code here!!!
|
||||||
|
|
||||||
|
3.) Connect to Prod
|
||||||
|
|
||||||
|
$ ssh xxsvci@laszlolang.com -i ~/.ssh/id_rsa_laszlolang
|
||||||
|
|
||||||
|
4.) Stunnel config
|
||||||
|
|
||||||
|
$ sudo nano /etc/stunnel/stunnel.conf
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ class AppKernel extends Kernel
|
|||||||
new Gos\Bundle\PubSubRouterBundle\GosPubSubRouterBundle(),
|
new Gos\Bundle\PubSubRouterBundle\GosPubSubRouterBundle(),
|
||||||
new Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle(),
|
new Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle(),
|
||||||
new Snc\RedisBundle\SncRedisBundle(),
|
new Snc\RedisBundle\SncRedisBundle(),
|
||||||
|
// new CL\Bundle\SlackBundle\CLSlackBundle(),
|
||||||
|
|
||||||
new Jotunheimr\AdminBundle\JotunheimrAdminBundle(),
|
new Jotunheimr\AdminBundle\JotunheimrAdminBundle(),
|
||||||
new Jotunheimr\UserBundle\JotunheimrUserBundle(),
|
new Jotunheimr\UserBundle\JotunheimrUserBundle(),
|
||||||
|
|||||||
@@ -2,12 +2,31 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="Cache-control" content="max-age=1209600;public">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<title>{% block title %}Welcome!{% endblock %}</title>
|
<meta name="mobile-web-app-capable" content="yes">
|
||||||
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||||
|
<meta name="keywords" content="game,mineseeker,mine,seeker,laszlolang.com">
|
||||||
|
<meta name="robots" content="index,follow">
|
||||||
|
<meta name="revisit-after" content="2 days">
|
||||||
|
<meta name="resource-type" content="document">
|
||||||
|
<meta name="country" content="Hungary">
|
||||||
|
<meta name="description" content="This is a new minesweeper, multiplayer game.">
|
||||||
|
<meta name="content-language" content="hu,hun,hungarian">
|
||||||
|
{% include '@MineSeeker/Recent/favicon.html.twig' %}
|
||||||
|
<meta property="fb:app_id" content="{{ facebook_api }}">
|
||||||
|
{% block metas %}{% endblock %}
|
||||||
|
<title>MineSeeker{% block title %}{% endblock %}</title>
|
||||||
{% block stylesheets %}{% endblock %}
|
{% block stylesheets %}{% endblock %}
|
||||||
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}"/>
|
{% include '@MineSeeker/Recent/google-analytics.html.twig' %}
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
<div id="fb-root"></div>
|
||||||
|
|
||||||
|
{% block bodyTop %}{% endblock %}
|
||||||
|
|
||||||
<header>
|
<header>
|
||||||
{% block header %}{% endblock %}
|
{% block header %}{% endblock %}
|
||||||
</header>
|
</header>
|
||||||
@@ -18,6 +37,15 @@
|
|||||||
{% block footer %}{% endblock %}
|
{% block footer %}{% endblock %}
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
{% block javascripts %}{% endblock %}
|
{% block javascripts %}
|
||||||
|
{% javascripts filter='?uglifyjs2'
|
||||||
|
'@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' %}
|
||||||
|
<script type="text/javascript" src="{{ asset_url }}"></script>
|
||||||
|
{% endjavascripts %}
|
||||||
|
|
||||||
|
{% include '@MineSeeker/Recent/facebook.html.twig' %}
|
||||||
|
{% endblock %}
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ imports:
|
|||||||
# http://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
|
# http://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
|
||||||
parameters:
|
parameters:
|
||||||
locale: en
|
locale: en
|
||||||
|
fos.email: 7system7@gmail.com
|
||||||
|
fos.name: system7
|
||||||
|
|
||||||
framework:
|
framework:
|
||||||
#esi: ~
|
#esi: ~
|
||||||
@@ -28,10 +30,10 @@ framework:
|
|||||||
trusted_hosts: ~
|
trusted_hosts: ~
|
||||||
trusted_proxies: ~
|
trusted_proxies: ~
|
||||||
session:
|
session:
|
||||||
# http://symfony.com/doc/current/reference/configuration/framework.html#handler-id
|
# http://symfony.com/doc/current/reference/configuration/framework.html#handler-id
|
||||||
# handler_id: session.handler.native_file
|
# handler_id: session.handler.native_file
|
||||||
|
# save_path: "%kernel.root_dir%/../var/sessions/%kernel.environment%"
|
||||||
handler_id: session.handler.pdo
|
handler_id: session.handler.pdo
|
||||||
save_path: "%kernel.root_dir%/../var/sessions/%kernel.environment%"
|
|
||||||
fragments: ~
|
fragments: ~
|
||||||
http_method_override: true
|
http_method_override: true
|
||||||
assets: ~
|
assets: ~
|
||||||
@@ -40,6 +42,11 @@ framework:
|
|||||||
twig:
|
twig:
|
||||||
debug: "%kernel.debug%"
|
debug: "%kernel.debug%"
|
||||||
strict_variables: "%kernel.debug%"
|
strict_variables: "%kernel.debug%"
|
||||||
|
globals:
|
||||||
|
version: "0.42.21 (beta8)"
|
||||||
|
facebook_api: "%facebook.api%"
|
||||||
|
facebook_scope: "%facebook.scope%"
|
||||||
|
facebook_api_version: "%facebook.version%"
|
||||||
|
|
||||||
# Doctrine Configuration
|
# Doctrine Configuration
|
||||||
doctrine:
|
doctrine:
|
||||||
@@ -68,6 +75,7 @@ assetic:
|
|||||||
debug: "%kernel.debug%"
|
debug: "%kernel.debug%"
|
||||||
use_controller: "%kernel.debug%"
|
use_controller: "%kernel.debug%"
|
||||||
bundles: ~
|
bundles: ~
|
||||||
|
node: /usr/bin/nodejs
|
||||||
filters:
|
filters:
|
||||||
cssrewrite: ~
|
cssrewrite: ~
|
||||||
uglifyjs2:
|
uglifyjs2:
|
||||||
@@ -79,5 +87,26 @@ assetic:
|
|||||||
# FOS User Configuration
|
# FOS User Configuration
|
||||||
fos_user:
|
fos_user:
|
||||||
db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
|
db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
|
||||||
firewall_name: main
|
firewall_name: secured_area
|
||||||
user_class: Jotunheimr\UserBundle\Entity\User
|
user_class: Jotunheimr\UserBundle\Entity\User
|
||||||
|
from_email:
|
||||||
|
address: "%fos.email%"
|
||||||
|
sender_name: "%fos.name%"
|
||||||
|
|
||||||
|
# Facebook OAuth
|
||||||
|
hwi_oauth:
|
||||||
|
firewall_names: [secured_area]
|
||||||
|
resource_owners:
|
||||||
|
facebook:
|
||||||
|
type: facebook
|
||||||
|
client_id: "%facebook.api%"
|
||||||
|
client_secret: "%facebook.api-secret%"
|
||||||
|
scope: "%facebook.scope%"
|
||||||
|
options:
|
||||||
|
display: popup
|
||||||
|
auth_type: rerequest
|
||||||
|
csrf: true
|
||||||
|
|
||||||
|
# Slack integration
|
||||||
|
#cl_slack:
|
||||||
|
# api_token: xoxp-107639806167-107029084564-115427085733-cccaa4f96c89c87ce680c7f22acfd001
|
||||||
|
|||||||
@@ -32,16 +32,9 @@ monolog:
|
|||||||
type: console
|
type: console
|
||||||
channels: [!event, !doctrine]
|
channels: [!event, !doctrine]
|
||||||
|
|
||||||
# Facebook OAuth
|
parameters:
|
||||||
hwi_oauth:
|
facebook.api: 320599508311862
|
||||||
firewall_names: [secured_area]
|
facebook.api-secret: 18d4f48cdd274bccee2678e5eff3f557
|
||||||
resource_owners:
|
facebook.version: 'v2.8'
|
||||||
facebook:
|
facebook.scope: 'public_profile,email,user_friends'
|
||||||
type: facebook
|
mineseeker.websocket: 6450
|
||||||
client_id: 320599508311862
|
|
||||||
client_secret: 18d4f48cdd274bccee2678e5eff3f557
|
|
||||||
scope: "public_profile,email"
|
|
||||||
options:
|
|
||||||
display: popup
|
|
||||||
auth_type: rerequest
|
|
||||||
csrf: true
|
|
||||||
|
|||||||
@@ -23,16 +23,9 @@ monolog:
|
|||||||
console:
|
console:
|
||||||
type: console
|
type: console
|
||||||
|
|
||||||
# Facebook OAuth
|
parameters:
|
||||||
hwi_oauth:
|
facebook.api: 320597498312063
|
||||||
firewall_names: [secured_area]
|
facebook.api-secret: c751bec8a3c5313ff2e5a83769bf1109
|
||||||
resource_owners:
|
facebook.version: 'v2.8'
|
||||||
facebook:
|
facebook.scope: 'public_profile,email,user_friends'
|
||||||
type: facebook
|
mineseeker.websocket: 8080
|
||||||
client_id: 320597498312063
|
|
||||||
client_secret: c751bec8a3c5313ff2e5a83769bf1109
|
|
||||||
scope: "public_profile,email"
|
|
||||||
options:
|
|
||||||
display: popup
|
|
||||||
auth_type: rerequest
|
|
||||||
csrf: true
|
|
||||||
|
|||||||
@@ -2,9 +2,12 @@
|
|||||||
parameters:
|
parameters:
|
||||||
database_host: 127.0.0.1
|
database_host: 127.0.0.1
|
||||||
database_port: null
|
database_port: null
|
||||||
database_name: xxsvci_mineseeker
|
# database_name: xxsvci_mineseeker
|
||||||
database_user: xxsvci_mine
|
# database_user: xxsvci_mine
|
||||||
database_password: "XTw#8qC$faa*"
|
# database_password: "XTw#8qC$faa*"
|
||||||
|
database_name: mine
|
||||||
|
database_user: root
|
||||||
|
database_password: "bazmeg"
|
||||||
mailer_transport: smtp
|
mailer_transport: smtp
|
||||||
mailer_host: 127.0.0.1
|
mailer_host: 127.0.0.1
|
||||||
mailer_user: null
|
mailer_user: null
|
||||||
|
|||||||
@@ -12,3 +12,4 @@ _errors:
|
|||||||
|
|
||||||
_main:
|
_main:
|
||||||
resource: routing.yml
|
resource: routing.yml
|
||||||
|
schemes: [http]
|
||||||
|
|||||||
@@ -21,13 +21,19 @@ security:
|
|||||||
login_path: /login
|
login_path: /login
|
||||||
failure_path: /login
|
failure_path: /login
|
||||||
use_forward: false
|
use_forward: false
|
||||||
|
|
||||||
oauth_user_provider:
|
oauth_user_provider:
|
||||||
service: my.custom.user_provider
|
service: jotun.user_provider
|
||||||
|
remember_me:
|
||||||
|
secret: "%secret%"
|
||||||
|
lifetime: 604800
|
||||||
|
path: /
|
||||||
|
domain: ~
|
||||||
|
user_provider: fos_userbundle
|
||||||
form_login:
|
form_login:
|
||||||
provider: fos_userbundle
|
provider: fos_userbundle
|
||||||
csrf_token_generator: security.csrf.token_manager
|
csrf_token_generator: security.csrf.token_manager
|
||||||
default_target_path: /
|
default_target_path: /
|
||||||
|
remember_me: true
|
||||||
logout:
|
logout:
|
||||||
path: /logout
|
path: /logout
|
||||||
target: /
|
target: /
|
||||||
|
|||||||
@@ -34,7 +34,9 @@
|
|||||||
"symfony/assetic-bundle": "^2.8",
|
"symfony/assetic-bundle": "^2.8",
|
||||||
"predis/predis": "^1.0",
|
"predis/predis": "^1.0",
|
||||||
"snc/redis-bundle": "^2.0",
|
"snc/redis-bundle": "^2.0",
|
||||||
"hwi/oauth-bundle": "^0.5.1"
|
"hwi/oauth-bundle": "^0.5.1",
|
||||||
|
"cleentfaar/slack-bundle": "^0.20.1",
|
||||||
|
"symfony/translation": "^3.2"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"sensio/generator-bundle": "^3.0",
|
"sensio/generator-bundle": "^3.0",
|
||||||
|
|||||||
1356
composer.lock
generated
@@ -1 +0,0 @@
|
|||||||
src/Mine/SeekerBundle/Resources/public/js/node
|
|
||||||
@@ -9,6 +9,8 @@
|
|||||||
"babel-core": "^6.14.0",
|
"babel-core": "^6.14.0",
|
||||||
"babel-loader": "^6.2.5",
|
"babel-loader": "^6.2.5",
|
||||||
"babel-preset-es2015": "^6.14.0",
|
"babel-preset-es2015": "^6.14.0",
|
||||||
|
"babel-preset-es2016": "^6.22.0",
|
||||||
|
"babel-preset-es2017": "^6.22.0",
|
||||||
"babel-preset-react": "^6.11.1",
|
"babel-preset-react": "^6.11.1",
|
||||||
"howler": "^2.0.1",
|
"howler": "^2.0.1",
|
||||||
"js-base64": "^2.1.9",
|
"js-base64": "^2.1.9",
|
||||||
@@ -33,6 +35,6 @@
|
|||||||
"multiplayer",
|
"multiplayer",
|
||||||
"websocket"
|
"websocket"
|
||||||
],
|
],
|
||||||
"author": "Laszlo Lang <system7>",
|
"author": "Laszlo Lang <system7> www.laszlolang.com",
|
||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,9 @@ class User extends BaseUser
|
|||||||
*/
|
*/
|
||||||
private $facebookId;
|
private $facebookId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ORM\Column(name="facebook_access_token", type="string", length=255, nullable=true)
|
||||||
|
*/
|
||||||
private $facebookAccessToken;
|
private $facebookAccessToken;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -9,9 +9,12 @@ hwi_oauth_login:
|
|||||||
|
|
||||||
facebook_login:
|
facebook_login:
|
||||||
path: /login/check-facebook
|
path: /login/check-facebook
|
||||||
|
defaults: { _remember_me: on }
|
||||||
|
|
||||||
google_login:
|
google_login:
|
||||||
path: /login/check-google
|
path: /login/check-google
|
||||||
|
defaults: { _remember_me: on }
|
||||||
|
|
||||||
github_login:
|
github_login:
|
||||||
path: /login/check-github
|
path: /login/check-github
|
||||||
|
defaults: { _remember_me: on }
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
services:
|
services:
|
||||||
my.custom.user_provider:
|
jotun.user_provider:
|
||||||
class: Jotunheimr\UserBundle\Security\Core\User\MyFOSUBUserProvider
|
class: Jotunheimr\UserBundle\Security\Core\User\MyFOSUBUserProvider
|
||||||
arguments: ['@fos_user.user_manager', { facebook: facebookId }, '@doctrine.orm.entity_manager']
|
arguments: ['@fos_user.user_manager', { facebook: facebookId }, '@doctrine.orm.entity_manager']
|
||||||
|
|||||||
@@ -28,109 +28,368 @@
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
main {
|
.ac-custom {
|
||||||
background: url('/bundles/mineseeker/images/homepage/header.jpg') no-repeat center center;
|
|
||||||
background-size: cover;
|
|
||||||
position: fixed;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
main .wrapper {
|
header section .form-check {
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
main .wrapper .form-container {
|
|
||||||
background: #ffffff;
|
|
||||||
display: table;
|
display: table;
|
||||||
padding: 15px;
|
position: relative;
|
||||||
}
|
|
||||||
|
|
||||||
main .wrapper .form-container h1 {
|
|
||||||
font: normal 32px Arial, Helvetica, sans-serif;
|
|
||||||
text-align: center;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0 0 15px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
main .wrapper .form-container h1.sub-title {
|
|
||||||
margin-top: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
main .wrapper .form-container h2 {
|
|
||||||
font: normal 18px Arial, Helvetica, sans-serif;
|
|
||||||
text-align: center;
|
|
||||||
margin: 20px 0;
|
margin: 20px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
main .wrapper .form-container .form-input {
|
header section h1 {
|
||||||
background: #cbcbc8;
|
margin: 10px 0;
|
||||||
min-width: 300px;
|
}
|
||||||
border: 0;
|
|
||||||
padding: 15px;
|
|
||||||
|
|
||||||
|
header section .input-submit button,
|
||||||
|
header section .input-submit button:hover,
|
||||||
|
header section .form-input,
|
||||||
|
header section .form-input:focus,
|
||||||
|
header section .form-input:hover {
|
||||||
-webkit-transition: all 250ms ease-in-out;
|
-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;
|
transition: all 250ms ease-in-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
main .wrapper .form-container .form-input:focus {
|
header section .input-submit button {
|
||||||
background: #e2e2de;
|
background: #83aed9;
|
||||||
|
|
||||||
-webkit-transition: all 250ms ease-in-out;
|
|
||||||
transition: all 250ms ease-in-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
main .wrapper .form-container .form-input.form-username {
|
|
||||||
margin-bottom: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
main .wrapper .form-container .form-check {
|
|
||||||
display: table;
|
display: table;
|
||||||
position: relative;
|
font: bold 32px 'Rajdhani', sans-serif;
|
||||||
margin: 20px auto 0 auto;
|
text-transform: uppercase;
|
||||||
}
|
text-decoration: none;
|
||||||
|
width: 500px;
|
||||||
main .wrapper .form-container .input-submit {
|
border: 1px solid #658fb8;
|
||||||
|
color: #FFFFFF;
|
||||||
|
padding: 25px 150px;
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
|
|
||||||
|
-webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3);
|
||||||
|
box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3);
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
main .wrapper .form-container button,
|
header section .input-submit button:hover {
|
||||||
main .wrapper .form-container .fb-login {
|
background: #86b5e1;
|
||||||
|
|
||||||
|
-webkit-box-shadow: 0 7px 15px rgba(0, 0, 0, 0.2);
|
||||||
|
box-shadow: 0 7px 15px rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
header section .form-input {
|
||||||
display: block;
|
display: block;
|
||||||
background: #7dadcf;
|
width: 500px;
|
||||||
|
font: bold 22px 'Rajdhani', sans-serif;
|
||||||
|
border: 1px solid #dddddd;
|
||||||
|
color: #000000;
|
||||||
|
padding: 15px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
-webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.15);
|
||||||
|
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
header section .form-input:focus,
|
||||||
|
header section .form-input:hover {
|
||||||
|
-webkit-box-shadow: 0 7px 10px rgba(0, 0, 0, 0.1);
|
||||||
|
box-shadow: 0 7px 10px rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
header section .failure {
|
||||||
|
background: #f00;
|
||||||
|
position: relative;
|
||||||
|
border: 3px solid #fff;
|
||||||
|
font: bold 16px 'Rajdhani', sans-serif;
|
||||||
|
color: #FFFFFF;
|
||||||
|
padding: 10px;
|
||||||
|
margin: 30px 0 10px 0;
|
||||||
|
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section .failure:after,
|
||||||
|
header section .failure:before {
|
||||||
|
content: " ";
|
||||||
|
position: absolute;
|
||||||
|
bottom: 100%;
|
||||||
|
left: 50px;
|
||||||
|
height: 0;
|
||||||
|
width: 0;
|
||||||
|
border: solid transparent;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section .failure:after {
|
||||||
|
border-color: rgba(0, 0, 0, 0);
|
||||||
|
border-bottom-color: #f00;
|
||||||
|
border-width: 20px;
|
||||||
|
margin-left: -20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section .failure:before {
|
||||||
|
border-color: rgba(255, 255, 255, 0);
|
||||||
|
border-bottom-color: #ffffff;
|
||||||
|
border-width: 26px;
|
||||||
|
margin-left: -26px;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section .failure ul {
|
||||||
|
display: inline-block;
|
||||||
|
list-style: none;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0 10px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section h3.or {
|
||||||
|
font: bold 16px 'Rajdhani', sans-serif;
|
||||||
|
text-transform: uppercase;
|
||||||
|
color: #a1a1a1;
|
||||||
|
margin: 20px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section #id_welcome {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
margin-bottom: 115px;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section #id_welcome > div {
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section #id_welcome img {
|
||||||
|
width: 100px;
|
||||||
|
border: 5px solid #414040;
|
||||||
|
|
||||||
|
-webkit-border-radius: 50%;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section .buttons,
|
||||||
|
header section form {
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section div.buttons > a.fb-login,
|
||||||
|
header section div.buttons > a.slack-login {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
width: 500px;
|
||||||
|
height: 93px;
|
||||||
|
padding: 25px 0 25px 150px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
|
||||||
|
overflow: hidden;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
-webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.15);
|
||||||
|
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
header section div.buttons > a.fb-login:hover,
|
||||||
|
header section div.buttons > a.slack-login:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
|
||||||
|
-webkit-box-shadow: 0 7px 10px rgba(0, 0, 0, 0.1);
|
||||||
|
box-shadow: 0 7px 10px rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
header section div.buttons > a.fb-login i,
|
||||||
|
header section div.buttons > a.slack-login i {
|
||||||
|
position: absolute;
|
||||||
|
font-size: 130px;
|
||||||
|
top: 0;
|
||||||
|
left: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section div.buttons > a.fb-login {
|
||||||
|
background: #5975b1;
|
||||||
|
border: 1px solid #50649f;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section div.buttons > a.fb-login:hover {
|
||||||
|
background: #42598c;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section div.buttons > a.slack-login {
|
||||||
|
background: #FFFFFF;
|
||||||
|
border: 1px solid #5c3a58;
|
||||||
|
color: #5c3a58;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section div.buttons > a.slack-login:hover {
|
||||||
|
background: #e6e6e6;
|
||||||
|
color: #5c3a58;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section .failure-main {
|
||||||
|
background: #f00;
|
||||||
|
max-width: 500px;
|
||||||
|
border: 3px solid #fff;
|
||||||
|
font: bold 16px 'Rajdhani', sans-serif;
|
||||||
|
color: #FFFFFF;
|
||||||
|
padding: 10px;
|
||||||
|
margin: 0 0 20px 0;
|
||||||
|
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
main div.txt {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
border: 0;
|
max-width: 1000px;
|
||||||
|
font-family: 'Rajdhani', sans-serif;
|
||||||
|
color: #414040;
|
||||||
|
margin: 50px auto 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
main .txt h1 {
|
||||||
|
font-weight: bold;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding: 20px;
|
|
||||||
|
|
||||||
-webkit-transition: all 250ms ease-in-out;
|
|
||||||
transition: all 250ms ease-in-out;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
main .wrapper .form-container .fb-login {
|
main div.txt h2 {
|
||||||
background: #3b5998;
|
margin: 0 0 50px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
main .wrapper .form-container button:focus,
|
main div.txt p {
|
||||||
main .wrapper .form-container button:hover,
|
font: normal 16px 'Rajdhani', sans-serif;
|
||||||
main .wrapper .form-container .fb-login:focus,
|
|
||||||
main .wrapper .form-container .fb-login:hover {
|
|
||||||
background: #6fa0c3;
|
|
||||||
|
|
||||||
-webkit-transition: all 250ms ease-in-out;
|
|
||||||
transition: all 250ms ease-in-out;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
main .wrapper .form-container button i,
|
main div.txt li {
|
||||||
main .wrapper .form-container .fb-login i {
|
font: normal 16px 'Rajdhani', sans-serif;
|
||||||
font-size: 32px;
|
padding-left: 10px;
|
||||||
font-weight: bolder;
|
margin-left: 50px;
|
||||||
color: #ffffff;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
main .technologies {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
main .technologies img {
|
||||||
|
display: inline-block;
|
||||||
|
width: 90%;
|
||||||
|
max-width: 100px;
|
||||||
|
margin: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
background: #414040;
|
||||||
|
width: 100%;
|
||||||
|
min-height: 50px;
|
||||||
|
margin-top: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer nav {
|
||||||
|
display: block;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer nav ul {
|
||||||
|
display: inline-block;
|
||||||
|
list-style: none;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer nav ul li {
|
||||||
|
display: inline-block;
|
||||||
|
font: bold 16px 'Rajdhani', sans-serif;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer nav ul li:nth-child(even) {
|
||||||
|
width: 50px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer nav ul li a {
|
||||||
|
text-align: center;
|
||||||
|
line-height: 50px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer nav ul li a:hover {
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 1200px) {
|
||||||
|
header section #id_welcome {
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-top: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section .form-input,
|
||||||
|
header section .form-check {
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section .input-submit button {
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section > div {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section div.buttons > a.fb-login,
|
||||||
|
header section div.buttons > a.slack-login {
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
main div.txt {
|
||||||
|
padding: 0 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 550px) {
|
||||||
|
header section #id_welcome {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section .form-input {
|
||||||
|
width: 100%;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section .form-check {
|
||||||
|
margin: 20px auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section .input-submit button {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section div.buttons > a.fb-login,
|
||||||
|
header section div.buttons > a.slack-login {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section div.buttons > a.fb-login span,
|
||||||
|
header section div.buttons > a.slack-login span {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer nav ul li {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer nav ul li:nth-child(even) {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -2,52 +2,114 @@
|
|||||||
|
|
||||||
{% trans_default_domain 'FOSUserBundle' %}
|
{% trans_default_domain 'FOSUserBundle' %}
|
||||||
|
|
||||||
|
{% block title %} - Registration{% endblock %}
|
||||||
|
|
||||||
{% block fos_user_content %}
|
{% block fos_user_content %}
|
||||||
<div class="wrapper">
|
<section class="header-content">
|
||||||
<div class="form-container">
|
<div class="logo">
|
||||||
<h1> Sign up </h1>
|
<a href="{{ path('MineSeekerBundle_homepage') }}" target="_self">
|
||||||
<div class="db">
|
<img src="{{ asset('bundles/mineseeker/images/mine-logo-txt.png') }}" alt="MineSeeker Logo w/ Txt"
|
||||||
<form action="{{ path('fos_user_registration_register') }}"
|
border="0"/>
|
||||||
method="post">
|
</a>
|
||||||
<div>
|
</div>
|
||||||
{{ form_widget(form.email, {'attr': {'placeholder': 'Email', 'class': 'form-input form-username'}}) }}
|
<h1> Registration </h1>
|
||||||
{{ form_errors(form.email) }}
|
<div class="db">
|
||||||
</div>
|
<form action="{{ path('fos_user_registration_register') }}"
|
||||||
|
method="post">
|
||||||
|
{{ form_widget(form._token) }}
|
||||||
|
|
||||||
<div>
|
{% if form_errors(form) is not empty %}
|
||||||
{{ form_widget(form.username, {'attr': {'placeholder': 'Username ', 'class': 'form-input form-username'}}) }}
|
<div class="failure-main">
|
||||||
{{ form_errors(form.username) }}
|
<i class="fa fa-exclamation-circle"></i> {{ form_errors(form) }}
|
||||||
</div>
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
{{ form_widget(form.plainPassword.first, {'attr': {'placeholder': 'Password', 'class': 'form-input form-username'}}) }}
|
{{ form_widget(form.email, {'attr': {'placeholder': 'Email', 'class': 'form-input form-username'}}) }}
|
||||||
{{ form_errors(form.plainPassword.first) }}
|
{% if form_errors(form.email) is not empty %}
|
||||||
</div>
|
<div class="failure">
|
||||||
|
<i class="fa fa-exclamation-circle"></i> {{ form_errors(form.email) }}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
{{ form_widget(form.plainPassword.second, {'attr': {'placeholder': 'Repeat password', 'class': 'form-input'}}) }}
|
{{ form_widget(form.username, {'attr': {'placeholder': 'Username ', 'class': 'form-input form-username'}}) }}
|
||||||
{{ form_errors(form.plainPassword.second) }}
|
{% if form_errors(form.username) is not empty %}
|
||||||
</div>
|
<div class="failure">
|
||||||
|
<i class="fa fa-exclamation-circle"></i> {{ form_errors(form.username) }}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="input-submit">
|
<div>
|
||||||
<button type="submit" id="_submit" name="_submit">
|
{{ form_widget(form.plainPassword.first, {'attr': {'placeholder': 'Password', 'class': 'form-input form-username'}}) }}
|
||||||
<i class="fa fa-check"></i>
|
{% if form_errors(form.plainPassword.first) is not empty %}
|
||||||
</button>
|
<div class="failure">
|
||||||
</div>
|
<i class="fa fa-exclamation-circle"></i> {{ form_errors(form.plainPassword.first) }}
|
||||||
</form>
|
</div>
|
||||||
</div>
|
{% endif %}
|
||||||
<h2><u><b>or</b></u> enter w/ your Facebook's e-mail</h2>
|
</div>
|
||||||
<div class="fb">
|
|
||||||
{% include('@JotunheimrUser/Social/facebook.html.twig') %}
|
<div>
|
||||||
</div>
|
{{ form_widget(form.plainPassword.second, {'attr': {'placeholder': 'Repeat password', 'class': 'form-input'}}) }}
|
||||||
|
{% if form_errors(form.plainPassword.second) is not empty %}
|
||||||
|
<div class="failure">
|
||||||
|
<i class="fa fa-exclamation-circle"></i> {{ form_errors(form.plainPassword.second) }}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="input-submit">
|
||||||
|
<button type="submit" id="_submit" name="_submit">
|
||||||
|
<i class="fa fa-check"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<h3 class="or">or login <u>w/ one click</u></h3>
|
||||||
|
<div class="buttons">
|
||||||
|
{% include('@JotunheimrUser/Social/facebook.html.twig') %}
|
||||||
|
{#<a class="slack-login"#}
|
||||||
|
{#href="https://slack.com/oauth/authorize?scope=identity.basic,identity.email,identity.team,identity.avatar&client_id=107639806167.106953365090&redirect_uri=http://mine.dev">#}
|
||||||
|
{#<i class="fa fa-slack"></i><span>w/ Slack</span>#}
|
||||||
|
{#</a>#}
|
||||||
|
</div>
|
||||||
|
<img src="{{ asset('bundles/mineseeker/images/mine-logo-logo.png') }}" alt="MineSeeker Logo" border="0"/>
|
||||||
|
</section>
|
||||||
|
{% endblock fos_user_content %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<div class="txt">
|
||||||
|
<div class="technologies">
|
||||||
|
<h1>Used technologies</h1>
|
||||||
|
<img src="{{ asset('bundles/mineseeker/images/technologies/websocket.png') }}" alt="Used Websocket" border="0"/>
|
||||||
|
<img src="{{ asset('bundles/mineseeker/images/technologies/react.png') }}" alt="Used React.js" border="0"/>
|
||||||
|
<img src="{{ asset('bundles/mineseeker/images/technologies/symfony.png') }}" alt="Used Symfony" border="0"/>
|
||||||
|
<img src="{{ asset('bundles/mineseeker/images/technologies/jquery.png') }}" alt="Used jQuery" border="0"/>
|
||||||
|
<img src="{{ asset('bundles/mineseeker/images/technologies/lets-encrypt.png') }}" alt="Used Let's Encrypt" border="0"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock fos_user_content %}
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block footer %}
|
||||||
|
<nav>
|
||||||
|
<ul>
|
||||||
|
<li><a href="{{ path('MineSeekerBundle_homepage') }}">Homepage</a></li>
|
||||||
|
<li>·</li>
|
||||||
|
<li><a href="{{ path('MineSeekerBundle_terms') }}">Terms of Use</a></li>
|
||||||
|
<li>·</li>
|
||||||
|
<li><a href="{{ path('MineSeekerBundle_privacy') }}">Privacy Policy</a></li>
|
||||||
|
<li>·</li>
|
||||||
|
<li><a href="{{ path('MineSeekerBundle_contact') }}">Contact</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
{% block javascripts %}
|
{% block javascripts %}
|
||||||
{{ parent() }}
|
{{ parent() }}
|
||||||
|
|
||||||
{% javascripts
|
{% javascripts filter='?uglifyjs2'
|
||||||
'@JotunheimrUserBundle/Resources/public/js/register.js' %}
|
'@JotunheimrUserBundle/Resources/public/js/register.js' %}
|
||||||
<script type="text/javascript" src="{{ asset_url }}"></script>
|
<script type="text/javascript" src="{{ asset_url }}"></script>
|
||||||
{% endjavascripts %}
|
{% endjavascripts %}
|
||||||
@@ -56,7 +118,7 @@
|
|||||||
{% block stylesheets %}
|
{% block stylesheets %}
|
||||||
{{ parent() }}
|
{{ parent() }}
|
||||||
|
|
||||||
{% stylesheets filter='cssrewrite'
|
{% stylesheets filter='?uglifycss'
|
||||||
'@JotunheimrUserBundle/Resources/public/css/font-awesome/css/font-awesome.min.css'
|
'@JotunheimrUserBundle/Resources/public/css/font-awesome/css/font-awesome.min.css'
|
||||||
'@JotunheimrUserBundle/Resources/public/css/layout.css' %}
|
'@JotunheimrUserBundle/Resources/public/css/layout.css' %}
|
||||||
<link rel="stylesheet" media="screen" href="{{ asset_url }}"/>
|
<link rel="stylesheet" media="screen" href="{{ asset_url }}"/>
|
||||||
|
|||||||
@@ -2,55 +2,96 @@
|
|||||||
|
|
||||||
{% trans_default_domain 'FOSUserBundle' %}
|
{% trans_default_domain 'FOSUserBundle' %}
|
||||||
|
|
||||||
|
{% block title %} - Login{% endblock %}
|
||||||
|
|
||||||
{% block fos_user_content %}
|
{% block fos_user_content %}
|
||||||
{% if error %}
|
{% if error %}
|
||||||
{{ error.messageKey|trans(error.messageData, 'security') }}
|
{{ error.messageKey|trans(error.messageData, 'security') }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="wrapper">
|
<section class="header-content">
|
||||||
<div class="form-container">
|
<div class="logo">
|
||||||
<h1>Sign in</h1>
|
<a href="{{ path('MineSeekerBundle_homepage') }}" target="_self">
|
||||||
<div class="db">
|
<img src="{{ asset('bundles/mineseeker/images/mine-logo-txt.png') }}" alt="MineSeeker Logo w/ Txt"
|
||||||
<form action="{{ path("fos_user_security_check") }}" method="post"
|
border="0"/>
|
||||||
class="ac-custom ac-checkbox ac-boxfill">
|
</a>
|
||||||
<input type="hidden" name="_csrf_token" value="{{ csrf_token }}"/>
|
</div>
|
||||||
|
<h1>Login</h1>
|
||||||
|
<form action="{{ path("fos_user_security_check") }}" method="post"
|
||||||
|
class="ac-custom ac-checkbox ac-boxfill">
|
||||||
|
|
||||||
<div>
|
{% if csrf_token %}
|
||||||
<input type="text" id="username" name="_username" value="{{ last_username }}"
|
<input type="hidden" name="_csrf_token" value="{{ csrf_token }}"/>
|
||||||
class="form-input form-username"
|
{% endif %}
|
||||||
placeholder="Username or Email"/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
{% if error %}
|
||||||
<input type="password" id="password" name="_password"
|
<div class="failure-main">
|
||||||
class="form-input"
|
<i class="fa fa-exclamation-circle"></i> <strong>Login error!</strong> {{ error.messageKey|trans({}, 'messages') }}
|
||||||
placeholder="Password"/>
|
</div>
|
||||||
</div>
|
{% endif %}
|
||||||
|
|
||||||
<div class="form-check">
|
<input type="text" id="username" name="_username" value="{{ last_username }}"
|
||||||
<input type="checkbox" id="remember-me" name="_remember_me" value="on"/>
|
class="form-input form-username"
|
||||||
<label for="remember-me">{{ 'security.login.remember_me'|trans }}</label>
|
placeholder="Username or Email" autofocus />
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="input-submit">
|
<input type="password" id="password" name="_password"
|
||||||
<button type="submit" id="_submit" name="_submit">
|
class="form-input"
|
||||||
<i class="fa fa-check"></i>
|
placeholder="Password"/>
|
||||||
</button>
|
|
||||||
</div>
|
<div class="form-check">
|
||||||
</form>
|
<input type="checkbox" id="remember-me" name="_remember_me" value="on"/>
|
||||||
|
<label for="remember-me">{{ 'security.login.remember_me'|trans }}</label>
|
||||||
</div>
|
</div>
|
||||||
<h2><u><b>or</b></u> enter w/ your Facebook's e-mail</h2>
|
|
||||||
<div class="fb">
|
<div class="input-submit">
|
||||||
{% include('@JotunheimrUser/Social/facebook.html.twig') %}
|
<button type="submit" id="_submit" name="_submit">
|
||||||
|
<i class="fa fa-check"></i>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
</form>
|
||||||
|
<h3 class="or">or login <u>w/ one click</u></h3>
|
||||||
|
<div class="buttons">
|
||||||
|
{% include('@JotunheimrUser/Social/facebook.html.twig') %}
|
||||||
|
{#<a class="slack-login"#}
|
||||||
|
{#href="https://slack.com/oauth/authorize?scope=identity.basic,identity.email,identity.team,identity.avatar&client_id=107639806167.106953365090&redirect_uri=http://mine.dev">#}
|
||||||
|
{#<i class="fa fa-slack"></i><span>w/ Slack</span>#}
|
||||||
|
{#</a>#}
|
||||||
|
</div>
|
||||||
|
<img src="{{ asset('bundles/mineseeker/images/mine-logo-logo.png') }}" alt="MineSeeker Logo" border="0"/>
|
||||||
|
</section>
|
||||||
|
{% endblock fos_user_content %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<div class="txt">
|
||||||
|
<div class="technologies">
|
||||||
|
<h1>Used technologies</h1>
|
||||||
|
<img src="{{ asset('bundles/mineseeker/images/technologies/websocket.png') }}" alt="Used Websocket" border="0"/>
|
||||||
|
<img src="{{ asset('bundles/mineseeker/images/technologies/react.png') }}" alt="Used React.js" border="0"/>
|
||||||
|
<img src="{{ asset('bundles/mineseeker/images/technologies/symfony.png') }}" alt="Used Symfony" border="0"/>
|
||||||
|
<img src="{{ asset('bundles/mineseeker/images/technologies/jquery.png') }}" alt="Used jQuery" border="0"/>
|
||||||
|
<img src="{{ asset('bundles/mineseeker/images/technologies/lets-encrypt.png') }}" alt="Used Let's Encrypt" border="0"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock fos_user_content %}
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block footer %}
|
||||||
|
<nav>
|
||||||
|
<ul>
|
||||||
|
<li><a href="{{ path('MineSeekerBundle_homepage') }}">Homepage</a></li>
|
||||||
|
<li>·</li>
|
||||||
|
<li><a href="{{ path('MineSeekerBundle_terms') }}">Terms of Use</a></li>
|
||||||
|
<li>·</li>
|
||||||
|
<li><a href="{{ path('MineSeekerBundle_privacy') }}">Privacy Policy</a></li>
|
||||||
|
<li>·</li>
|
||||||
|
<li><a href="{{ path('MineSeekerBundle_contact') }}">Contact</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
{% block javascripts %}
|
{% block javascripts %}
|
||||||
{{ parent() }}
|
{{ parent() }}
|
||||||
|
|
||||||
{% javascripts
|
{% javascripts filter='?uglifyjs2'
|
||||||
'@JotunheimrUserBundle/Resources/public/js/register.js'
|
'@JotunheimrUserBundle/Resources/public/js/register.js'
|
||||||
'@JotunheimrUserBundle/Resources/public/js/svgcheckbox.js' %}
|
'@JotunheimrUserBundle/Resources/public/js/svgcheckbox.js' %}
|
||||||
<script type="text/javascript" src="{{ asset_url }}"></script>
|
<script type="text/javascript" src="{{ asset_url }}"></script>
|
||||||
@@ -60,7 +101,7 @@
|
|||||||
{% block stylesheets %}
|
{% block stylesheets %}
|
||||||
{{ parent() }}
|
{{ parent() }}
|
||||||
|
|
||||||
{% stylesheets filter='cssrewrite'
|
{% stylesheets filter='?uglifycss'
|
||||||
'@JotunheimrUserBundle/Resources/public/css/font-awesome/css/font-awesome.min.css'
|
'@JotunheimrUserBundle/Resources/public/css/font-awesome/css/font-awesome.min.css'
|
||||||
'@JotunheimrUserBundle/Resources/public/css/svgcheckbox.css' %}
|
'@JotunheimrUserBundle/Resources/public/css/svgcheckbox.css' %}
|
||||||
<link rel="stylesheet" media="screen" href="{{ asset_url }}"/>
|
<link rel="stylesheet" media="screen" href="{{ asset_url }}"/>
|
||||||
|
|||||||
@@ -1,36 +1,3 @@
|
|||||||
<script>
|
<a id="fbLogin" class="fb-login">
|
||||||
window.fbAsyncInit = function () {
|
<i class="fa fa-facebook"></i><span>w/ Facebook</span>
|
||||||
FB.init({
|
</a>
|
||||||
appId: '320599508311862',
|
|
||||||
xfbml: true,
|
|
||||||
version: 'v2.8'
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
(function (d, s, id) {
|
|
||||||
var js, fjs = d.getElementsByTagName(s)[0];
|
|
||||||
if (d.getElementById(id)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
js = d.createElement(s);
|
|
||||||
js.id = id;
|
|
||||||
js.src = "//connect.facebook.net/en_US/sdk.js";
|
|
||||||
fjs.parentNode.insertBefore(js, fjs);
|
|
||||||
}(document, 'script', 'facebook-jssdk'));
|
|
||||||
|
|
||||||
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'});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<a class="fb-login" href="#" onclick="fbLogin();"><i class="fa fa-facebook"></i></a>
|
|
||||||
|
|||||||
@@ -1,53 +1,58 @@
|
|||||||
<!doctype html>
|
{% extends '::base.html.twig' %}
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
||||||
<title>{% block title %}{{ project_name }} Admin - Login{% endblock %}</title>
|
|
||||||
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
|
|
||||||
{% block stylesheets %}
|
|
||||||
{% stylesheets filter='cssrewrite'
|
|
||||||
'@JotunheimrUserBundle/Resources/public/css/layout.css'
|
|
||||||
'@JotunheimrAdminBundle/Resources/public/js/vendor/bootstrap/css/bootstrap.min.css' %}
|
|
||||||
<link rel="stylesheet" media="screen" href="{{ asset_url }}"/>
|
|
||||||
{% endstylesheets %}
|
|
||||||
{% endblock %}
|
|
||||||
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}"/>
|
|
||||||
<link href="https://fonts.googleapis.com/css?family=Gloria+Hallelujah" rel="stylesheet">
|
|
||||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
|
||||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
{% block stylesheets %}
|
||||||
|
{{ parent() }}
|
||||||
|
|
||||||
{% if app.request.hasPreviousSession %}
|
{% stylesheets filter='?uglifycss'
|
||||||
{% for type, messages in app.session.flashbag.all() %}
|
'@JotunheimrAdminBundle/Resources/public/js/vendor/bootstrap/css/bootstrap.min.css'
|
||||||
{% for message in messages %}
|
'@MineSeekerBundle/Resources/public/css/style.homepage.css'
|
||||||
<div class="flash-{{ type }}">
|
'@JotunheimrUserBundle/Resources/public/css/layout.css' %}
|
||||||
{{ message }}
|
<link rel="stylesheet" media="screen" href="{{ asset_url }}"/>
|
||||||
</div>
|
{% endstylesheets %}
|
||||||
{% endfor %}
|
|
||||||
{% endfor %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<main>
|
<link href="https://fonts.googleapis.com/css?family=Rajdhani:300,400,500,600,700&subset=latin-ext"
|
||||||
{% block fos_user_content %}{% endblock fos_user_content %}
|
rel="stylesheet">
|
||||||
<canvas id="demo-canvas"></canvas>
|
|
||||||
</main>
|
|
||||||
|
|
||||||
{% 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'
|
|
||||||
'@JotunheimrUserBundle/Resources/public/js/circle.js' %}
|
|
||||||
<script type="text/javascript" src="{{ asset_url }}"></script>
|
|
||||||
{% endjavascripts %}
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
</body>
|
{% block bodyTop %}
|
||||||
</html>
|
{% if app.request.hasPreviousSession %}
|
||||||
|
{% for type, messages in app.session.flashbag.all() %}
|
||||||
|
{% for message in messages %}
|
||||||
|
<div class="flash-{{ type }}">
|
||||||
|
{{ message }}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block header %}
|
||||||
|
{% block fos_user_content %}{% endblock fos_user_content %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block javascripts %}
|
||||||
|
{{ parent() }}
|
||||||
|
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/JQuery-Snowfall/1.7.4/snowfall.jquery.min.js"
|
||||||
|
type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function () {
|
||||||
|
$(document).snowfall({deviceorientation: true, round: true, minSize: 5, maxSize: 8});
|
||||||
|
|
||||||
|
$('#fbLogin').length && $('#fbLogin').on('click', function () {
|
||||||
|
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: '{{ facebook_scope }}'});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
||||||
|
|||||||
@@ -72,10 +72,11 @@ class MyFOSUBUserProvider extends BaseFOSUBProvider
|
|||||||
}
|
}
|
||||||
|
|
||||||
$user->setFacebookId($response->getUsername());
|
$user->setFacebookId($response->getUsername());
|
||||||
|
$user->setFacebookAccessToken($response->getAccessToken());
|
||||||
$user->setEmail($response->getEmail());
|
$user->setEmail($response->getEmail());
|
||||||
$user->setEmailCanonical($response->getEmail());
|
$user->setEmailCanonical($response->getEmail());
|
||||||
$user->setUsername($this->slugify($response->getRealName()));
|
$user->setUsername($this->slug($response->getRealName()));
|
||||||
$user->setUsernameCanonical($this->slugify($response->getRealName()));
|
$user->setUsernameCanonical($this->slug($response->getRealName()));
|
||||||
$user->setRealName($response->getRealName());
|
$user->setRealName($response->getRealName());
|
||||||
$user->setNickName($response->getNickname());
|
$user->setNickName($response->getNickname());
|
||||||
if ($empty) {
|
if ($empty) {
|
||||||
@@ -88,25 +89,11 @@ class MyFOSUBUserProvider extends BaseFOSUBProvider
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $text
|
* @param $string
|
||||||
* @return mixed|string
|
* @return string
|
||||||
*/
|
*/
|
||||||
private function slugify($text)
|
private function slug($string)
|
||||||
{
|
{
|
||||||
$text = preg_replace('#[^\\pL\d]+#u', '-', $text);
|
return strtolower(trim(preg_replace('~[^0-9a-z]+~i', '-', html_entity_decode(preg_replace('~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '$1', htmlentities($string, ENT_QUOTES, 'UTF-8')), ENT_QUOTES, 'UTF-8')), '-'));
|
||||||
$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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,23 +3,83 @@
|
|||||||
namespace Mine\SeekerBundle\Controller;
|
namespace Mine\SeekerBundle\Controller;
|
||||||
|
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class GameController
|
||||||
|
*
|
||||||
|
* @package Mine\SeekerBundle\Controller
|
||||||
|
* @author system7 <https://www.laszlolang.com>
|
||||||
|
*/
|
||||||
class GameController extends Controller
|
class GameController extends Controller
|
||||||
{
|
{
|
||||||
public function indexAction()
|
public function indexAction(Request $request)
|
||||||
{
|
{
|
||||||
return $this->render('MineSeekerBundle:Game:index.html.twig');
|
// $apiClient = new ApiClient('xoxp-107639806167-107029084564-115427085733-cccaa4f96c89c87ce680c7f22acfd001');
|
||||||
}
|
//
|
||||||
|
// $usersListPayload = new UsersListPayload();
|
||||||
|
// $usersList = $apiClient->send($usersListPayload);
|
||||||
|
//
|
||||||
|
// dump($usersList);
|
||||||
|
//
|
||||||
|
// $payload = new ChatPostMessagePayload();
|
||||||
|
// $payload->setChannel('#general');
|
||||||
|
// $payload->setAsUser(true);
|
||||||
|
// $payload->setText('Hello world!');
|
||||||
|
|
||||||
public function playAction()
|
// $response = $apiClient->send($payload);
|
||||||
{
|
|
||||||
return $this->render('MineSeekerBundle:Game:play.html.twig', array(
|
// if ($response->isOk()) {
|
||||||
'env' => $this->container->getParameter('kernel.environment')
|
// dump('bazmeg');
|
||||||
|
// } else {
|
||||||
|
// dump($response->getError());
|
||||||
|
// dump($response->getErrorExplanation());
|
||||||
|
// }
|
||||||
|
|
||||||
|
return $this->render('MineSeekerBundle:Game:index.html.twig', array(
|
||||||
|
'env' => $this->container->getParameter('kernel.environment'),
|
||||||
|
'ssl' => $request->isSecure() ? 'true' : 'false',
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function listAction()
|
public function playAction(Request $request)
|
||||||
{
|
{
|
||||||
return $this->render('MineSeekerBundle:Game:list.html.twig');
|
return $this->render('MineSeekerBundle:Game:play.html.twig', array(
|
||||||
|
'env' => $this->container->getParameter('kernel.environment'),
|
||||||
|
'ssl' => $request->isSecure() ? 'true' : 'false',
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function rePlayAction(Request $request)
|
||||||
|
{
|
||||||
|
return $this->render('MineSeekerBundle:Game:play.html.twig', array(
|
||||||
|
'env' => $this->container->getParameter('kernel.environment'),
|
||||||
|
'ssl' => $request->isSecure() ? 'true' : 'false',
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function slackAction(Request $request)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function privacyAction()
|
||||||
|
{
|
||||||
|
return $this->render('MineSeekerBundle:Official:privacy.html.twig');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function termsAction()
|
||||||
|
{
|
||||||
|
return $this->render('MineSeekerBundle:Official:terms.html.twig');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function contactAction()
|
||||||
|
{
|
||||||
|
return $this->render('MineSeekerBundle:Official:contact.html.twig');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function landingAction()
|
||||||
|
{
|
||||||
|
return $this->render('MineSeekerBundle:Official:landing.html.twig');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,10 @@ namespace Mine\SeekerBundle\Entity;
|
|||||||
use Doctrine\ORM\Mapping as ORM;
|
use Doctrine\ORM\Mapping as ORM;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gamer
|
* Class Gamer
|
||||||
|
*
|
||||||
|
* @package Mine\SeekerBundle\Entity
|
||||||
|
* @author system7 <https://www.laszlolang.com>
|
||||||
*
|
*
|
||||||
* @ORM\Table(name="gamer")
|
* @ORM\Table(name="gamer")
|
||||||
* @ORM\Entity(repositoryClass="Mine\SeekerBundle\Repository\GamerRepository")
|
* @ORM\Entity(repositoryClass="Mine\SeekerBundle\Repository\GamerRepository")
|
||||||
@@ -74,6 +77,13 @@ class Gamer
|
|||||||
*/
|
*/
|
||||||
private $userAgent;
|
private $userAgent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var \DateTime
|
||||||
|
*
|
||||||
|
* @ORM\Column(name="conn_timestamp", type="datetime", nullable=false)
|
||||||
|
*/
|
||||||
|
private $connTimestamp;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get id
|
* Get id
|
||||||
@@ -180,4 +190,28 @@ class Gamer
|
|||||||
{
|
{
|
||||||
return $this->userAgent;
|
return $this->userAgent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set connTimestamp
|
||||||
|
*
|
||||||
|
* @param \DateTime $connTimestamp
|
||||||
|
*
|
||||||
|
* @return Gamer
|
||||||
|
*/
|
||||||
|
public function setConnTimestamp($connTimestamp)
|
||||||
|
{
|
||||||
|
$this->connTimestamp = $connTimestamp;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get connTimestamp
|
||||||
|
*
|
||||||
|
* @return \DateTime
|
||||||
|
*/
|
||||||
|
public function getConnTimestamp()
|
||||||
|
{
|
||||||
|
return $this->connTimestamp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,6 +74,13 @@ class Gamer
|
|||||||
*/
|
*/
|
||||||
private $userAgent;
|
private $userAgent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var \DateTime
|
||||||
|
*
|
||||||
|
* @ORM\Column(name="conn_timestamp", type="datetime", nullable=false)
|
||||||
|
*/
|
||||||
|
private $connTimestamp;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get id
|
* Get id
|
||||||
@@ -180,4 +187,28 @@ class Gamer
|
|||||||
{
|
{
|
||||||
return $this->userAgent;
|
return $this->userAgent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set connTimestamp
|
||||||
|
*
|
||||||
|
* @param \DateTime $connTimestamp
|
||||||
|
*
|
||||||
|
* @return Gamer
|
||||||
|
*/
|
||||||
|
public function setConnTimestamp($connTimestamp)
|
||||||
|
{
|
||||||
|
$this->connTimestamp = $connTimestamp;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get connTimestamp
|
||||||
|
*
|
||||||
|
* @return \DateTime
|
||||||
|
*/
|
||||||
|
public function getConnTimestamp()
|
||||||
|
{
|
||||||
|
return $this->connTimestamp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,10 @@ use Doctrine\Common\Collections\Collection;
|
|||||||
use Doctrine\ORM\Mapping as ORM;
|
use Doctrine\ORM\Mapping as ORM;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Grid
|
* Class Grid
|
||||||
|
*
|
||||||
|
* @package Mine\SeekerBundle\Entity
|
||||||
|
* @author system7 <https://www.laszlolang.com>
|
||||||
*
|
*
|
||||||
* @ORM\Table(name="grid")
|
* @ORM\Table(name="grid")
|
||||||
* @ORM\Entity(repositoryClass="Mine\SeekerBundle\Repository\GridRepository")
|
* @ORM\Entity(repositoryClass="Mine\SeekerBundle\Repository\GridRepository")
|
||||||
|
|||||||
@@ -5,7 +5,10 @@ namespace Mine\SeekerBundle\Entity;
|
|||||||
use Doctrine\ORM\Mapping as ORM;
|
use Doctrine\ORM\Mapping as ORM;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GridRow
|
* Class GridRow
|
||||||
|
*
|
||||||
|
* @package Mine\SeekerBundle\Entity
|
||||||
|
* @author system7 <https://www.laszlolang.com>
|
||||||
*
|
*
|
||||||
* @ORM\Table(name="grid_row")
|
* @ORM\Table(name="grid_row")
|
||||||
* @ORM\Entity(repositoryClass="Mine\SeekerBundle\Repository\GridRowRepository")
|
* @ORM\Entity(repositoryClass="Mine\SeekerBundle\Repository\GridRowRepository")
|
||||||
|
|||||||
@@ -8,7 +8,10 @@ use Doctrine\ORM\Mapping as ORM;
|
|||||||
use Jotunheimr\UserBundle\Entity\User;
|
use Jotunheimr\UserBundle\Entity\User;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PlayedGame
|
* Class PlayedGame
|
||||||
|
*
|
||||||
|
* @package Mine\SeekerBundle\Entity
|
||||||
|
* @author system7 <https://www.laszlolang.com>
|
||||||
*
|
*
|
||||||
* @ORM\Table(name="played_game")
|
* @ORM\Table(name="played_game")
|
||||||
* @ORM\Entity(repositoryClass="Mine\SeekerBundle\Repository\PlayedGameRepository")
|
* @ORM\Entity(repositoryClass="Mine\SeekerBundle\Repository\PlayedGameRepository")
|
||||||
@@ -105,6 +108,20 @@ class PlayedGame
|
|||||||
*/
|
*/
|
||||||
private $resign;
|
private $resign;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var \DateTime
|
||||||
|
*
|
||||||
|
* @ORM\Column(name="created", type="datetime", nullable=true)
|
||||||
|
*/
|
||||||
|
private $created;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var \DateTime
|
||||||
|
*
|
||||||
|
* @ORM\Column(name="updated", type="datetime", nullable=true)
|
||||||
|
*/
|
||||||
|
private $updated;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var Step
|
* @var Step
|
||||||
*
|
*
|
||||||
@@ -429,4 +446,52 @@ class PlayedGame
|
|||||||
{
|
{
|
||||||
return $this->resign;
|
return $this->resign;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set created
|
||||||
|
*
|
||||||
|
* @param \DateTime $created
|
||||||
|
*
|
||||||
|
* @return PlayedGame
|
||||||
|
*/
|
||||||
|
public function setCreated($created)
|
||||||
|
{
|
||||||
|
$this->created = $created;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get created
|
||||||
|
*
|
||||||
|
* @return \DateTime
|
||||||
|
*/
|
||||||
|
public function getCreated()
|
||||||
|
{
|
||||||
|
return $this->created;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set updated
|
||||||
|
*
|
||||||
|
* @param \DateTime $updated
|
||||||
|
*
|
||||||
|
* @return PlayedGame
|
||||||
|
*/
|
||||||
|
public function setUpdated($updated)
|
||||||
|
{
|
||||||
|
$this->updated = $updated;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get updated
|
||||||
|
*
|
||||||
|
* @return \DateTime
|
||||||
|
*/
|
||||||
|
public function getUpdated()
|
||||||
|
{
|
||||||
|
return $this->updated;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,6 +105,20 @@ class PlayedGame
|
|||||||
*/
|
*/
|
||||||
private $resign;
|
private $resign;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var \DateTime
|
||||||
|
*
|
||||||
|
* @ORM\Column(name="created", type="datetime", nullable=true)
|
||||||
|
*/
|
||||||
|
private $created;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var \DateTime
|
||||||
|
*
|
||||||
|
* @ORM\Column(name="updated", type="datetime", nullable=true)
|
||||||
|
*/
|
||||||
|
private $updated;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var Step
|
* @var Step
|
||||||
*
|
*
|
||||||
@@ -405,4 +419,76 @@ class PlayedGame
|
|||||||
{
|
{
|
||||||
return $this->step;
|
return $this->step;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set resign
|
||||||
|
*
|
||||||
|
* @param string $resign
|
||||||
|
*
|
||||||
|
* @return PlayedGame
|
||||||
|
*/
|
||||||
|
public function setResign($resign)
|
||||||
|
{
|
||||||
|
$this->resign = $resign;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get resign
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getResign()
|
||||||
|
{
|
||||||
|
return $this->resign;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set created
|
||||||
|
*
|
||||||
|
* @param \DateTime $created
|
||||||
|
*
|
||||||
|
* @return PlayedGame
|
||||||
|
*/
|
||||||
|
public function setCreated($created)
|
||||||
|
{
|
||||||
|
$this->created = $created;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get created
|
||||||
|
*
|
||||||
|
* @return \DateTime
|
||||||
|
*/
|
||||||
|
public function getCreated()
|
||||||
|
{
|
||||||
|
return $this->created;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set updated
|
||||||
|
*
|
||||||
|
* @param \DateTime $updated
|
||||||
|
*
|
||||||
|
* @return PlayedGame
|
||||||
|
*/
|
||||||
|
public function setUpdated($updated)
|
||||||
|
{
|
||||||
|
$this->updated = $updated;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get updated
|
||||||
|
*
|
||||||
|
* @return \DateTime
|
||||||
|
*/
|
||||||
|
public function getUpdated()
|
||||||
|
{
|
||||||
|
return $this->updated;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,10 @@ namespace Mine\SeekerBundle\Entity;
|
|||||||
use Doctrine\ORM\Mapping as ORM;
|
use Doctrine\ORM\Mapping as ORM;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Step
|
* Class Step
|
||||||
|
*
|
||||||
|
* @package Mine\SeekerBundle\Entity
|
||||||
|
* @author system7 <https://www.laszlolang.com>
|
||||||
*
|
*
|
||||||
* @ORM\Table(name="step")
|
* @ORM\Table(name="step")
|
||||||
* @ORM\Entity(repositoryClass="Mine\SeekerBundle\Repository\StepRepository")
|
* @ORM\Entity(repositoryClass="Mine\SeekerBundle\Repository\StepRepository")
|
||||||
@@ -49,6 +52,13 @@ class Step
|
|||||||
*/
|
*/
|
||||||
private $playedGame;
|
private $playedGame;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var \DateTime
|
||||||
|
*
|
||||||
|
* @ORM\Column(name="created", type="datetime", nullable=true)
|
||||||
|
*/
|
||||||
|
private $created;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get id
|
* Get id
|
||||||
@@ -155,4 +165,28 @@ class Step
|
|||||||
{
|
{
|
||||||
return $this->wBomb;
|
return $this->wBomb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set created
|
||||||
|
*
|
||||||
|
* @param \DateTime $created
|
||||||
|
*
|
||||||
|
* @return Step
|
||||||
|
*/
|
||||||
|
public function setCreated($created)
|
||||||
|
{
|
||||||
|
$this->created = $created;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get created
|
||||||
|
*
|
||||||
|
* @return \DateTime
|
||||||
|
*/
|
||||||
|
public function getCreated()
|
||||||
|
{
|
||||||
|
return $this->created;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,6 +49,13 @@ class Step
|
|||||||
*/
|
*/
|
||||||
private $playedGame;
|
private $playedGame;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var \DateTime
|
||||||
|
*
|
||||||
|
* @ORM\Column(name="created", type="datetime", nullable=true)
|
||||||
|
*/
|
||||||
|
private $created;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get id
|
* Get id
|
||||||
@@ -155,4 +162,28 @@ class Step
|
|||||||
{
|
{
|
||||||
return $this->wBomb;
|
return $this->wBomb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set created
|
||||||
|
*
|
||||||
|
* @param \DateTime $created
|
||||||
|
*
|
||||||
|
* @return Step
|
||||||
|
*/
|
||||||
|
public function setCreated($created)
|
||||||
|
{
|
||||||
|
$this->created = $created;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get created
|
||||||
|
*
|
||||||
|
* @return \DateTime
|
||||||
|
*/
|
||||||
|
public function getCreated()
|
||||||
|
{
|
||||||
|
return $this->created;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,12 @@ use Gos\Bundle\WebSocketBundle\Event\ClientErrorEvent;
|
|||||||
use Gos\Bundle\WebSocketBundle\Event\ServerEvent;
|
use Gos\Bundle\WebSocketBundle\Event\ServerEvent;
|
||||||
use Gos\Bundle\WebSocketBundle\Event\ClientRejectedEvent;
|
use Gos\Bundle\WebSocketBundle\Event\ClientRejectedEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class MineseekerClientEventListener
|
||||||
|
*
|
||||||
|
* @package Mine\SeekerBundle\EventListener
|
||||||
|
* @author system7 <https://www.laszlolang.com>
|
||||||
|
*/
|
||||||
class MineseekerClientEventListener
|
class MineseekerClientEventListener
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
|||||||
42
src/Mine/SeekerBundle/Periodic/MinePeriodic.php
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Mine\SeekerBundle\Periodic;
|
||||||
|
|
||||||
|
use Gos\Bundle\WebSocketBundle\Periodic\PdoPeriodicPing;
|
||||||
|
use Gos\Bundle\WebSocketBundle\Periodic\PeriodicInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class MinePeriodic
|
||||||
|
*
|
||||||
|
* @package Mine\SeekerBundle\Periodic
|
||||||
|
* @author system7 <https://www.laszlolang.com>
|
||||||
|
*/
|
||||||
|
class MinePeriodic implements PeriodicInterface
|
||||||
|
{
|
||||||
|
/** @var PdoPeriodicPing */
|
||||||
|
private $ping;
|
||||||
|
|
||||||
|
public function __construct(PdoPeriodicPing $ping)
|
||||||
|
{
|
||||||
|
$this->ping = $ping;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function is executed every 5 seconds.
|
||||||
|
*
|
||||||
|
* For more advanced functionality, try injecting a Topic Service to perform actions on your connections every x
|
||||||
|
* seconds.
|
||||||
|
*/
|
||||||
|
public function tick()
|
||||||
|
{
|
||||||
|
$this->ping->tick();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function getTimeout()
|
||||||
|
{
|
||||||
|
return 300;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,10 +3,10 @@
|
|||||||
namespace Mine\SeekerBundle\Repository;
|
namespace Mine\SeekerBundle\Repository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GamerRepository
|
* Class GamerRepository
|
||||||
*
|
*
|
||||||
* This class was generated by the Doctrine ORM. Add your own custom
|
* @package Mine\SeekerBundle\Repository
|
||||||
* repository methods below.
|
* @author system7 <https://www.laszlolang.com>
|
||||||
*/
|
*/
|
||||||
class GamerRepository extends \Doctrine\ORM\EntityRepository
|
class GamerRepository extends \Doctrine\ORM\EntityRepository
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
namespace Mine\SeekerBundle\Repository;
|
namespace Mine\SeekerBundle\Repository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GridColRepository
|
* Class GridColRepository
|
||||||
*
|
*
|
||||||
* This class was generated by the Doctrine ORM. Add your own custom
|
* @package Mine\SeekerBundle\Repository
|
||||||
* repository methods below.
|
* @author system7 <https://www.laszlolang.com>
|
||||||
*/
|
*/
|
||||||
class GridColRepository extends \Doctrine\ORM\EntityRepository
|
class GridColRepository extends \Doctrine\ORM\EntityRepository
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
namespace Mine\SeekerBundle\Repository;
|
namespace Mine\SeekerBundle\Repository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GridRepository
|
* Class GridRepository
|
||||||
*
|
*
|
||||||
* This class was generated by the Doctrine ORM. Add your own custom
|
* @package Mine\SeekerBundle\Repository
|
||||||
* repository methods below.
|
* @author system7 <https://www.laszlolang.com>
|
||||||
*/
|
*/
|
||||||
class GridRepository extends \Doctrine\ORM\EntityRepository
|
class GridRepository extends \Doctrine\ORM\EntityRepository
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ namespace Mine\SeekerBundle\Repository;
|
|||||||
use Doctrine\ORM\EntityRepository;
|
use Doctrine\ORM\EntityRepository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GridRowRepository
|
* Class GridRowRepository
|
||||||
*
|
*
|
||||||
* This class was generated by the Doctrine ORM. Add your own custom
|
* @package Mine\SeekerBundle\Repository
|
||||||
* repository methods below.
|
* @author system7 <https://www.laszlolang.com>
|
||||||
*/
|
*/
|
||||||
class GridRowRepository extends EntityRepository
|
class GridRowRepository extends EntityRepository
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
namespace Mine\SeekerBundle\Repository;
|
namespace Mine\SeekerBundle\Repository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PlayedGameRepository
|
* Class PlayedGameRepository
|
||||||
*
|
*
|
||||||
* This class was generated by the Doctrine ORM. Add your own custom
|
* @package Mine\SeekerBundle\Repository
|
||||||
* repository methods below.
|
* @author system7 <https://www.laszlolang.com>
|
||||||
*/
|
*/
|
||||||
class PlayedGameRepository extends \Doctrine\ORM\EntityRepository
|
class PlayedGameRepository extends \Doctrine\ORM\EntityRepository
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
namespace Mine\SeekerBundle\Repository;
|
namespace Mine\SeekerBundle\Repository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* StepRepository
|
* Class StepRepository
|
||||||
*
|
*
|
||||||
* This class was generated by the Doctrine ORM. Add your own custom
|
* @package Mine\SeekerBundle\Repository
|
||||||
* repository methods below.
|
* @author system7 <https://www.laszlolang.com>
|
||||||
*/
|
*/
|
||||||
class StepRepository extends \Doctrine\ORM\EntityRepository
|
class StepRepository extends \Doctrine\ORM\EntityRepository
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,19 +1,14 @@
|
|||||||
# PDO Session Handler Configuration !!!!! --> moved to main config.yml
|
|
||||||
#framework:
|
|
||||||
# session:
|
|
||||||
# handler_id: session.handler.pdo
|
|
||||||
|
|
||||||
# Doctrine cache --> instead of PREDIS (gos_web_socket > client > storage > driver)
|
# Doctrine cache --> instead of PREDIS (gos_web_socket > client > storage > driver)
|
||||||
#doctrine_cache:
|
doctrine_cache:
|
||||||
# providers:
|
providers:
|
||||||
# redis_cache:
|
redis_cache:
|
||||||
# redis:
|
redis:
|
||||||
# host: localhost
|
host: localhost
|
||||||
# port: 6379
|
port: 6379
|
||||||
# database: 3
|
database: 3
|
||||||
# websocket_cache_client:
|
websocket_cache_client:
|
||||||
# type: redis
|
type: redis
|
||||||
# alias: gos_web_socket.client_storage.driver.redis
|
alias: gos_web_socket.client_storage.driver.redis
|
||||||
|
|
||||||
# SNC
|
# SNC
|
||||||
snc_redis:
|
snc_redis:
|
||||||
@@ -32,7 +27,7 @@ snc_redis:
|
|||||||
gos_web_socket:
|
gos_web_socket:
|
||||||
server:
|
server:
|
||||||
host: 0.0.0.0
|
host: 0.0.0.0
|
||||||
port: 6450
|
port: "%mineseeker.websocket%"
|
||||||
router:
|
router:
|
||||||
resources:
|
resources:
|
||||||
- "@MineSeekerBundle/Resources/config/pubsub/routing.yml"
|
- "@MineSeekerBundle/Resources/config/pubsub/routing.yml"
|
||||||
@@ -41,4 +36,7 @@ gos_web_socket:
|
|||||||
session_handler: "@session.handler.pdo"
|
session_handler: "@session.handler.pdo"
|
||||||
storage:
|
storage:
|
||||||
driver: "@gos_web_socket.client_storage.driver.predis"
|
driver: "@gos_web_socket.client_storage.driver.predis"
|
||||||
decorator: "@gos_web_socket.client_storage.doctrine.decorator"
|
ttl: 28800 #(optionally) time to live if you use redis driver
|
||||||
|
prefix: client #(optionally) prefix if you use redis driver, create key "client:1" instead key "1"
|
||||||
|
periodic:
|
||||||
|
- "@mineseeker.periodic"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Topic Configuration
|
# MineSeeker Topic Configuration
|
||||||
mineseeker_topic:
|
mineseeker_topic:
|
||||||
channel: mineseeker/channel/{game}
|
channel: mineseeker/channel/{game}
|
||||||
handler:
|
handler:
|
||||||
@@ -7,6 +7,12 @@ mineseeker_topic:
|
|||||||
# method:
|
# method:
|
||||||
# path: '[a-z1-9A-Z]+'
|
# path: '[a-z1-9A-Z]+'
|
||||||
|
|
||||||
|
# UserList Topic Configuration
|
||||||
|
userList_topic:
|
||||||
|
channel: mineseeker/userList
|
||||||
|
handler:
|
||||||
|
callback: 'userlist.topic'
|
||||||
|
|
||||||
# Remote Procedure Call Configuration
|
# Remote Procedure Call Configuration
|
||||||
mineseeker_rpc:
|
mineseeker_rpc:
|
||||||
channel: mineseeker-rpc/{method}
|
channel: mineseeker-rpc/{method}
|
||||||
|
|||||||
@@ -1,16 +1,44 @@
|
|||||||
MineSeekerBundle_homepage:
|
MineSeekerBundle_homepage:
|
||||||
path: /
|
path: /
|
||||||
defaults: { _controller: MineSeekerBundle:Game:index }
|
defaults: { _controller: MineSeekerBundle:Game:index }
|
||||||
|
schemes: [https]
|
||||||
|
|
||||||
MineSeekerBundle_gamePlay:
|
MineSeekerBundle_gamePlay:
|
||||||
path: /play
|
path: /play
|
||||||
defaults: { _controller: MineSeekerBundle:Game:play }
|
defaults: { _controller: MineSeekerBundle:Game:play }
|
||||||
|
schemes: [https]
|
||||||
|
|
||||||
MineSeekerBundle_gamePlayWId:
|
MineSeekerBundle_gamePlayWId:
|
||||||
path: /play/{gameAssoc}
|
path: /play/{gameAssoc}
|
||||||
defaults: { _controller: MineSeekerBundle:Game:play }
|
defaults: { _controller: MineSeekerBundle:Game:play }
|
||||||
|
schemes: [https]
|
||||||
|
|
||||||
MineSeekerBundle_gameList:
|
MineSeekerBundle_gameReplay:
|
||||||
path: /list
|
path: /re-play/{gameAssoc}
|
||||||
defaults: { _controller: MineSeekerBundle:Game:list }
|
defaults: { _controller: MineSeekerBundle:Game:rePlay }
|
||||||
|
schemes: [https]
|
||||||
|
|
||||||
|
MineSeekerBundle_slack:
|
||||||
|
path: /slack
|
||||||
|
defaults: { _controller: MineSeekerBundle:Game:slack }
|
||||||
|
schemes: [https]
|
||||||
|
|
||||||
|
MineSeekerBundle_terms:
|
||||||
|
path: /terms-of-service
|
||||||
|
defaults: { _controller: MineSeekerBundle:Game:terms }
|
||||||
|
schemes: [https]
|
||||||
|
|
||||||
|
MineSeekerBundle_privacy:
|
||||||
|
path: /privacy-policy
|
||||||
|
defaults: { _controller: MineSeekerBundle:Game:privacy }
|
||||||
|
schemes: [https]
|
||||||
|
|
||||||
|
MineSeekerBundle_contact:
|
||||||
|
path: /contact
|
||||||
|
defaults: { _controller: MineSeekerBundle:Game:contact }
|
||||||
|
schemes: [https]
|
||||||
|
|
||||||
|
MineSeekerBundle_landing:
|
||||||
|
path: /landing-page
|
||||||
|
defaults: { _controller: MineSeekerBundle:Game:landing }
|
||||||
|
schemes: [https]
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
pdo:
|
pdo:
|
||||||
class: PDO
|
class: PDO
|
||||||
arguments:
|
arguments:
|
||||||
@@ -20,13 +19,14 @@ services:
|
|||||||
arguments:
|
arguments:
|
||||||
- "@snc_redis.cache"
|
- "@snc_redis.cache"
|
||||||
|
|
||||||
# config.yml --> gos_web_socket > storage > client > decorator
|
mineseeker.periodic:
|
||||||
gos_web_socket.client_storage.doctrine.decorator:
|
class: Mine\SeekerBundle\Periodic\MinePeriodic
|
||||||
class: Gos\Bundle\WebSocketBundle\Client\Driver\DoctrineCacheDriverDecorator
|
tags:
|
||||||
|
- { name: gos_web_socket.periodic }
|
||||||
arguments:
|
arguments:
|
||||||
- "@doctrine_cache.providers.doctrine.orm.default_result_cache"
|
ping: '@gos_web_socket.pdo.periodic_ping'
|
||||||
|
|
||||||
mineseeker.topic_sample_service:
|
mineseeker.game_service:
|
||||||
class: Mine\SeekerBundle\Topic\MineseekerTopic
|
class: Mine\SeekerBundle\Topic\MineseekerTopic
|
||||||
tags:
|
tags:
|
||||||
- { name: gos_web_socket.topic }
|
- { name: gos_web_socket.topic }
|
||||||
@@ -35,7 +35,16 @@ services:
|
|||||||
doctrine: '@doctrine.orm.entity_manager'
|
doctrine: '@doctrine.orm.entity_manager'
|
||||||
requestStack: '@request_stack'
|
requestStack: '@request_stack'
|
||||||
|
|
||||||
mineseeker.rpc_sample_service:
|
mineseeker.user_list_service:
|
||||||
|
class: Mine\SeekerBundle\Topic\UserListTopic
|
||||||
|
tags:
|
||||||
|
- { name: gos_web_socket.topic }
|
||||||
|
arguments:
|
||||||
|
clientManipulator: "@gos_web_socket.websocket.client_manipulator"
|
||||||
|
doctrine: '@doctrine.orm.entity_manager'
|
||||||
|
requestStack: '@request_stack'
|
||||||
|
|
||||||
|
mineseeker.game_rpc_service:
|
||||||
class: Mine\SeekerBundle\Rpc\MineseekerRpc
|
class: Mine\SeekerBundle\Rpc\MineseekerRpc
|
||||||
tags:
|
tags:
|
||||||
- { name: gos_web_socket.rpc }
|
- { name: gos_web_socket.rpc }
|
||||||
|
|||||||
@@ -1,9 +1,3 @@
|
|||||||
@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;
|
outline: none;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@@ -11,59 +5,93 @@ font-family: 'Open Sans Condensed', sans-serif;
|
|||||||
}
|
}
|
||||||
|
|
||||||
html, body {
|
html, body {
|
||||||
background: #2C3E50;
|
background: #ffffff;
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
header {
|
header {
|
||||||
background: rgba(255, 255, 255, 0.7) url('/bundles/mineseeker/images/homepage/header.jpg') no-repeat;
|
background: #d1e8ff;
|
||||||
background-size: cover;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
flex-direction: column;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 950px;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
header h1 {
|
header section {
|
||||||
display: block;
|
display: flex;
|
||||||
font: normal 72px 'Ravi Prakash', cursive;
|
align-items: flex-start;
|
||||||
text-align: center;
|
justify-content: flex-start;
|
||||||
line-height: 20px;
|
flex-direction: column;
|
||||||
color: #ffa800;
|
max-width: 1300px;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 20px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section div.logo img {
|
||||||
|
width: 350px;
|
||||||
|
margin: 50px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section div.logo a {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section > img {
|
||||||
|
position: absolute;
|
||||||
|
width: 1300px;
|
||||||
|
height: 1300px;
|
||||||
|
right: -20%;
|
||||||
|
top: -10%;
|
||||||
|
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section > div {
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
header h3 {
|
header section h1 {
|
||||||
display: block;
|
font: bold 40px 'Rajdhani', sans-serif;
|
||||||
font: normal 32px 'Open Sans Condensed', sans-serif;
|
color: #434242;
|
||||||
text-align: center;
|
margin-bottom: 100px;
|
||||||
color: #ffcd02;
|
|
||||||
|
|
||||||
z-index: 2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
header > a {
|
header section h2 {
|
||||||
background: #e8e8e8;
|
font: normal 32px 'Rajdhani', sans-serif;
|
||||||
|
color: #434242;
|
||||||
|
margin-top: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section h3 {
|
||||||
display: block;
|
display: block;
|
||||||
font: bold 22px 'Open Sans Condensed', sans-serif;
|
font: bold 16px 'Rajdhani', sans-serif;
|
||||||
|
color: #434242;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section h3 img {
|
||||||
|
width: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section div.buttons > a {
|
||||||
|
background: #69788e;
|
||||||
|
display: table;
|
||||||
|
font: bold 32px 'Rajdhani', sans-serif;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: #2C3E50;
|
border: 5px solid #57667b;
|
||||||
padding: 10px 70px;
|
color: #FFFFFF;
|
||||||
margin-top: 20px;
|
padding: 25px 150px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
|
||||||
z-index: 2;
|
-webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3);
|
||||||
|
box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3);
|
||||||
-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;
|
-webkit-border-radius: 3px;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
-webkit-transition: all 250ms ease-in-out;
|
-webkit-transition: all 250ms ease-in-out;
|
||||||
@@ -72,36 +100,237 @@ header > a {
|
|||||||
transition: all 250ms ease-in-out;
|
transition: all 250ms ease-in-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
header > a:hover {
|
header section div.buttons > a:hover {
|
||||||
background: #ffffff;
|
background: #57667b;
|
||||||
|
|
||||||
-webkit-box-shadow: 0 7px 10px rgba(0, 0, 0, 0.75);
|
-webkit-box-shadow: 0 7px 15px rgba(0, 0, 0, 0.2);
|
||||||
box-shadow: 0 7px 10px rgba(0, 0, 0, 0.75);
|
box-shadow: 0 7px 15px rgba(0, 0, 0, 0.2);
|
||||||
-webkit-transition: all 250ms ease-in-out;
|
-webkit-transition: all 250ms ease-in-out;
|
||||||
-moz-transition: all 250ms ease-in-out;
|
-moz-transition: all 250ms ease-in-out;
|
||||||
-o-transition: all 250ms ease-in-out;
|
-o-transition: all 250ms ease-in-out;
|
||||||
transition: all 250ms ease-in-out;
|
transition: all 250ms ease-in-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
header > img {
|
header section div.buttons > a.small {
|
||||||
position: absolute;
|
background: #83aed9;
|
||||||
width: 50%;
|
display: inline-block;
|
||||||
max-width: 1000px;
|
font: bold 22px 'Rajdhani', sans-serif;
|
||||||
bottom: -25%;
|
border: 1px solid #6890ba;
|
||||||
|
color: #FFFFFF;
|
||||||
|
padding: 10px;
|
||||||
|
|
||||||
|
-webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3);
|
||||||
|
box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3);
|
||||||
|
-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;
|
||||||
|
|
||||||
z-index: 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 1500px) {
|
header section div.buttons > a.small:hover {
|
||||||
header > img {
|
background: #86b5e1;
|
||||||
width: 60%;
|
border: 1px solid #658fb8;
|
||||||
bottom: -40%;
|
color: #FFFFFF;
|
||||||
|
|
||||||
|
-webkit-box-shadow: 0 7px 15px rgba(0, 0, 0, 0.2);
|
||||||
|
box-shadow: 0 7px 15px rgba(0, 0, 0, 0.2);
|
||||||
|
-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;
|
||||||
|
}
|
||||||
|
|
||||||
|
main .user-list-container {
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
justify-content: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
main .user-list-container .user-friend {
|
||||||
|
background: #ccc;
|
||||||
|
width: 15%;
|
||||||
|
min-width: 145px;
|
||||||
|
text-align: center;
|
||||||
|
padding: 10px;
|
||||||
|
margin: 5px;
|
||||||
|
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
main .user-list-container .user-friend h1 {
|
||||||
|
display: block;
|
||||||
|
font-size: 14px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
main .user-list-container .user-friend .img,
|
||||||
|
main .user-list-container .user-friend .img img {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
main .user-list-container .user-friend button {
|
||||||
|
background: #83aed9;
|
||||||
|
display: inline-block;
|
||||||
|
font: bold 22px 'Rajdhani', sans-serif;
|
||||||
|
border: 1px solid #6890ba;
|
||||||
|
color: #FFFFFF;
|
||||||
|
padding: 10px;
|
||||||
|
|
||||||
|
-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;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
main .user-list-container .user-friend button:hover {
|
||||||
|
background: #86b5e1;
|
||||||
|
border: 1px solid #658fb8;
|
||||||
|
color: #FFFFFF;
|
||||||
|
|
||||||
|
-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;
|
||||||
|
}
|
||||||
|
|
||||||
|
main .user-list-container .user-friend button.button-offline {
|
||||||
|
background: #a1a1a1;
|
||||||
|
border: 1px solid #929292;
|
||||||
|
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
main .user-list-container .user-friend button.button-offline:hover {
|
||||||
|
background: #a1a1a1;
|
||||||
|
border: 1px solid #929292;
|
||||||
|
}
|
||||||
|
|
||||||
|
main .user-list-filter form {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
main .user-list-filter input {
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
border-right: 0;
|
||||||
|
min-width: 300px;
|
||||||
|
padding: 10px;
|
||||||
|
|
||||||
|
-webkit-border-top-left-radius: 3px;
|
||||||
|
border-top-left-radius: 3px;
|
||||||
|
-webkit-border-bottom-left-radius: 3px;
|
||||||
|
border-bottom-left-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
main .user-list-filter button {
|
||||||
|
background: #ccc;
|
||||||
|
width: 42px;
|
||||||
|
height: 42px;
|
||||||
|
border: 0;
|
||||||
|
color: #fff;
|
||||||
|
|
||||||
|
-webkit-border-top-right-radius: 3px;
|
||||||
|
border-top-right-radius: 3px;
|
||||||
|
-webkit-border-bottom-right-radius: 3px;
|
||||||
|
border-bottom-right-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
main .user-request-container {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
main .user-request-container .user-friend {
|
||||||
|
background: #ff0000;
|
||||||
|
width: 150px;
|
||||||
|
color: #403f3f;
|
||||||
|
padding: 10px;
|
||||||
|
margin: 10px;
|
||||||
|
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
main .user-request-container h1 {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
main .user-request-container .img,
|
||||||
|
main .user-request-container .img img {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
main .user-request-container button {
|
||||||
|
background: #fff;
|
||||||
|
width: 100%;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #ff0000;
|
||||||
|
border: 0;
|
||||||
|
padding: 15px 5px;
|
||||||
|
margin: 0 auto;
|
||||||
|
|
||||||
|
-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;
|
||||||
|
}
|
||||||
|
|
||||||
|
main .user-request-container button:hover {
|
||||||
|
background: #ffc38b;
|
||||||
|
|
||||||
|
-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;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 1200px) {
|
||||||
|
header section {
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section div.buttons > a {
|
||||||
|
margin: 0 auto 20px auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section h1 {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section div.logo img {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section > img {
|
||||||
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 1500px) {
|
@media screen and (max-width: 500px) {
|
||||||
header > img {
|
header section {
|
||||||
width: 70%;
|
width: auto;
|
||||||
bottom: -20%;
|
}
|
||||||
|
|
||||||
|
header section div.logo img {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
header section div.buttons > a {
|
||||||
|
display: block;
|
||||||
|
padding: 25px 5px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -96,51 +96,37 @@ main {
|
|||||||
|
|
||||||
#mine-wrapper .game-wrapper .game-overlay .game-overlay-window h1 {
|
#mine-wrapper .game-wrapper .game-overlay .game-overlay-window h1 {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 32px;
|
font-size: 26px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#mine-wrapper .game-wrapper .game-overlay .game-overlay-window h2 {
|
#mine-wrapper .game-wrapper .game-overlay .game-overlay-window h2 {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#mine-wrapper .game-wrapper .game-overlay .game-overlay-window h3 {
|
||||||
|
font-size: 16px;
|
||||||
|
color: #386e8c;
|
||||||
|
}
|
||||||
|
|
||||||
#mine-wrapper .game-wrapper .game-overlay .game-overlay-window .clippy {
|
#mine-wrapper .game-wrapper .game-overlay .game-overlay-window .clippy {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#mine-wrapper .game-wrapper .game-overlay .game-overlay-window .clippy input {
|
#mine-wrapper .game-wrapper .game-overlay .game-overlay-window .clippy input {
|
||||||
border: 0;
|
border: 0;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
width: 90%;
|
width: 100%;
|
||||||
padding: 0 20px;
|
padding: 0 20px;
|
||||||
|
|
||||||
-webkit-border-top-left-radius: 3px;
|
-webkit-border-radius: 3px;
|
||||||
border-top-left-radius: 3px;
|
border-radius: 3px;
|
||||||
-webkit-border-bottom-left-radius: 3px;
|
|
||||||
border-bottom-left-radius: 3px;
|
|
||||||
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);
|
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);
|
||||||
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);
|
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);
|
||||||
}
|
}
|
||||||
|
|
||||||
#mine-wrapper .game-wrapper .game-overlay .game-overlay-window .clippy button {
|
|
||||||
border: 0;
|
|
||||||
width: 10%;
|
|
||||||
height: 40px;
|
|
||||||
|
|
||||||
cursor: pointer;
|
|
||||||
|
|
||||||
-webkit-border-top-right-radius: 3px;
|
|
||||||
border-top-right-radius: 3px;
|
|
||||||
-webkit-border-bottom-right-radius: 3px;
|
|
||||||
border-bottom-right-radius: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mine-wrapper .game-wrapper .game-overlay .game-overlay-window .clippy button img {
|
|
||||||
width: 15px;
|
|
||||||
height: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mine-wrapper .game-wrapper .game-overlay .game-overlay-window a {
|
#mine-wrapper .game-wrapper .game-overlay .game-overlay-window a {
|
||||||
background: #d8e3ea;
|
background: #d8e3ea;
|
||||||
display: inline-table;
|
display: inline-table;
|
||||||
@@ -326,7 +312,6 @@ main {
|
|||||||
color: #fdf612;
|
color: #fdf612;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#mine-wrapper .game-wrapper .users .user-container .user-control {
|
#mine-wrapper .game-wrapper .users .user-container .user-control {
|
||||||
background: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.5) 0%, rgba(125, 185, 232, 0) 100%);
|
background: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.5) 0%, rgba(125, 185, 232, 0) 100%);
|
||||||
background: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.5) 0%, rgba(125, 185, 232, 0) 100%);
|
background: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.5) 0%, rgba(125, 185, 232, 0) 100%);
|
||||||
@@ -734,7 +719,7 @@ main {
|
|||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
width: 642px;
|
width: 643px;
|
||||||
border: 1px solid #cac3e5;
|
border: 1px solid #cac3e5;
|
||||||
|
|
||||||
cursor: none;
|
cursor: none;
|
||||||
@@ -973,3 +958,70 @@ main {
|
|||||||
#mine-wrapper .grid .field-wrapper .field img {
|
#mine-wrapper .grid .field-wrapper .field img {
|
||||||
width: 80%;
|
width: 80%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.back-from-game {
|
||||||
|
display: inline-block;
|
||||||
|
position: fixed;
|
||||||
|
top: 20px;
|
||||||
|
left: 20px;
|
||||||
|
|
||||||
|
-ms-transform: scale(1); /* IE 9 */
|
||||||
|
-webkit-transform: scale(1); /* Safari */
|
||||||
|
transform: scale(1);
|
||||||
|
-webkit-transition: all 250ms cubic-bezier(.17, .67, .83, .67);
|
||||||
|
transition: all 250ms cubic-bezier(.17, .67, .83, .67);
|
||||||
|
}
|
||||||
|
|
||||||
|
.back-from-game img {
|
||||||
|
width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.back-from-game:hover {
|
||||||
|
-ms-transform: scale(1.2); /* IE 9 */
|
||||||
|
-webkit-transform: scale(1.2); /* Safari */
|
||||||
|
transform: scale(1.2);
|
||||||
|
-webkit-transition: all 250ms cubic-bezier(.17, .67, .83, .67);
|
||||||
|
transition: all 250ms cubic-bezier(.17, .67, .83, .67);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 900px) {
|
||||||
|
#mine-wrapper .game-wrapper .users {
|
||||||
|
visibility: hidden;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mine-wrapper {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mine-wrapper .game-wrapper {
|
||||||
|
width: 100%;
|
||||||
|
flex-direction: column-reverse;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mine-wrapper .grid-container {
|
||||||
|
width: 100%;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mine-wrapper .grid {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mine-wrapper .grid .field-wrapper {
|
||||||
|
width: 6.25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mine-wrapper .grid .field-wrapper > img.field-target {
|
||||||
|
width: 105%;
|
||||||
|
top: -2.5%;
|
||||||
|
left: -2.5%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mine-wrapper .grid .field-wrapper .field {
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
BIN
src/Mine/SeekerBundle/Resources/public/images/avatar/bg-avatar-default-1.png
Executable file
|
After Width: | Height: | Size: 26 KiB |
BIN
src/Mine/SeekerBundle/Resources/public/images/avatar/bg-avatar-default-2.png
Executable file
|
After Width: | Height: | Size: 35 KiB |
BIN
src/Mine/SeekerBundle/Resources/public/images/avatar/bg-avatar-default-3.png
Executable file
|
After Width: | Height: | Size: 27 KiB |
BIN
src/Mine/SeekerBundle/Resources/public/images/avatar/bg-avatar-default-4.png
Executable file
|
After Width: | Height: | Size: 29 KiB |
BIN
src/Mine/SeekerBundle/Resources/public/images/avatar/bg-avatar-default-5.png
Executable file
|
After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 9.7 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 9.8 KiB |
|
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 166 KiB |
|
After Width: | Height: | Size: 282 KiB |
|
Before Width: | Height: | Size: 456 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 7.0 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 7.0 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 7.0 KiB |
|
After Width: | Height: | Size: 7.0 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
@@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<browserconfig>
|
||||||
|
<msapplication>
|
||||||
|
<tile>
|
||||||
|
<square150x150logo src="/mstile-150x150.png"/>
|
||||||
|
<TileColor>#2d89ef</TileColor>
|
||||||
|
</tile>
|
||||||
|
</msapplication>
|
||||||
|
</browserconfig>
|
||||||
|
After Width: | Height: | Size: 621 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 15 KiB |
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "\/android-chrome-192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image\/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/android-chrome-512x512.png",
|
||||||
|
"sizes": "512x512",
|
||||||
|
"type": "image\/png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"theme_color": "#ffffff",
|
||||||
|
"display": "standalone"
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 4.5 KiB |