new Project new things

master
Fábio Reis 2017-12-27 09:43:30 +00:00
parent 90ad9d7391
commit 2376456fa9
498 changed files with 62665 additions and 2122 deletions

BIN
.DS_Store vendored

Binary file not shown.

BIN
laravel/.DS_Store vendored

Binary file not shown.

BIN
laravel/public/.DS_Store → laravel/app/.DS_Store vendored Executable file → Normal file

Binary file not shown.

View File

@ -0,0 +1,17 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Department extends Model
{
protected $fillable = [
'name',
];
public function users()
{
return $this->hasMany(User::class);
}
}

View File

@ -32,12 +32,6 @@ class LoginController extends Controller
*
* @return void
*/
public function index()
{
return View('auth.login');
}
public function __construct()
{
$this->middleware('guest')->except('logout');

View File

@ -68,11 +68,4 @@ class RegisterController extends Controller
'password' => bcrypt($data['password']),
]);
}
public function index()
{
return View('auth.register');
}
}

View File

@ -1,43 +0,0 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
define('YOUR_SERVER_URL', 'http://projeto.dev/');
define('CLIENT_ID', '2');
define('CLIENT_SECRET','kRWo05fZm5NC9zVRJlmd9IOwqUfQGJwf8QjuPWA3');
class LoginControllerAPI extends Controller
{
public function login(Request $request)
{
$http = new \GuzzleHttp\Client;
$response = $http->post(YOUR_SERVER_URL.'/oauth/token', [
'form_params' => [
'grant_type' => 'password',
'client_id' => CLIENT_ID,
'client_secret' => CLIENT_SECRET,
'username' => $request->email,
'password' => $request->password,
'scope' => ''], 'exceptions' => false,]);
$errorCode= $response->getStatusCode();
if ($errorCode=='200') {
return json_decode((string) $response->getBody(), true);
} else {
return response()->json(['msg'=>'User credentials are invalid'], $errorCode);
}
}
public function logout()
{
\Auth::guard('api')->user()->token()->revoke();
\Auth::guard('api')->user()->token()->delete();
return response()->json(['msg'=>'Token revoked'], 200);
}
}

View File

@ -0,0 +1,74 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Contracts\Support\Jsonable;
use App\Http\Resources\User as UserResource;
use Illuminate\Support\Facades\DB;
use App\User;
use App\StoreUserRequest;
use Hash;
class UserControllerAPI extends Controller
{
public function getUsers(Request $request)
{
if ($request->has('page')) {
return UserResource::collection(User::paginate(5));
} else {
return UserResource::collection(User::all());
}
}
public function getUser($id)
{
return new UserResource(User::find($id));
}
public function store(Request $request)
{
$request->validate([
'name' => 'required',
'email' => 'required|email|unique:users,email',
'age' => 'integer|between:18,75',
'password' => 'min:3'
]);
$user = new User();
$user->fill($request->all());
$user->password = Hash::make($user->password);
$user->save();
return response()->json(new UserResource($user), 201);
}
public function update(Request $request, $id)
{
$request->validate([
'name' => 'required',
'email' => 'required|email|unique:users,email,'.$id,
'age' => 'integer|between:18,75'
]);
$user = User::findOrFail($id);
$user->update($request->all());
return new UserResource($user);
}
public function delete($id)
{
$user = User::findOrFail($id);
$user->delete();
return response()->json(null, 204);
}
public function emailAvailable(Request $request)
{
$totalEmail = 1;
if ($request->has('email') && $request->has('id')) {
$totalEmail = DB::table('users')->where('email', '=', $request->email)->where('id', '<>', $request->id)->count();
} else if ($request->has('email')) {
$totalEmail = DB::table('users')->where('email', '=', $request->email)->count();
}
return response()->json($totalEmail == 0);
}
}

View File

@ -0,0 +1,18 @@
<?php
namespace App\Http\Controllers;
class VueController extends Controller
{
public function index()
{
return view('vue.index');
}
public function userProfile()
{
return view('vue.user.profile');
}
}

View File

@ -0,0 +1,30 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class StoreDepartmentRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required|regex:/^[a-zA-Z ]+$/',
];
}
}

View File

@ -0,0 +1,34 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class StoreUserRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required|regex:/^[a-zA-Z ]+$/',
'email' => 'required|email|unique:users',
'password' => 'required|min:8|confirmed',
'age' => 'required|integer|min:18|max:75',
'department_id' => 'required|integer',
];
}
}

View File

@ -0,0 +1,30 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class UpdateDepartmentRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required|regex:/^[a-zA-Z ]+$/',
];
}
}

View File

@ -0,0 +1,34 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class UpdateUserRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required|string|max:255',
'email' => 'required|email|unique:users,email,'.$this->user->id,
'password' => 'nullable|string|min:6|confirmed',
'age' => 'required|integer|min:18|max:75',
'department_id' => 'required|integer',
];
}
}

View File

@ -0,0 +1,25 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\Resource;
class User extends Resource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
'email' => $this->email,
'age' => $this->age,
'nickname' => $this->nickname,
];
}
}

View File

@ -2,7 +2,6 @@
namespace App\Providers;
use Laravel\Passport\Passport;
use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
@ -25,7 +24,6 @@ class AuthServiceProvider extends ServiceProvider
public function boot()
{
$this->registerPolicies();
Passport::routes();
//
}

View File

@ -2,13 +2,12 @@
namespace App;
use Laravel\Passport\HasApiTokens;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use HasApiTokens, Notifiable;
use Notifiable;
/**
* The attributes that are mass assignable.
@ -16,7 +15,11 @@ class User extends Authenticatable
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
'name',
'email',
'age',
'nickname',
'blocked'
];
/**
@ -25,6 +28,8 @@ class User extends Authenticatable
* @var array
*/
protected $hidden = [
'password', 'remember_token',
'password', 'remember_token', 'admin'
];
}

0
laravel/artisan Executable file → Normal file
View File

View File

@ -8,13 +8,12 @@
"php": ">=7.0.0",
"fideloper/proxy": "~3.3",
"laravel/framework": "5.5.*",
"laravel/passport": "^4.0",
"laravel/tinker": "~1.0"
},
"require-dev": {
"filp/whoops": "~2.0",
"fzaninotto/faker": "~1.4",
"mockery/mockery": "~1.0",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~6.0"
},
"autoload": {

1367
laravel/composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -42,7 +42,7 @@ return [
],
'api' => [
'driver' => 'passport',
'driver' => 'token',
'provider' => 'users',
],
],

View File

@ -86,9 +86,6 @@ return [
|
*/
'prefix' => env(
'CACHE_PREFIX',
str_slug(env('APP_NAME', 'laravel'), '_').'_cache'
),
'prefix' => 'laravel',
];

View File

@ -57,9 +57,9 @@ return [
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'key' => env('AWS_KEY'),
'secret' => env('AWS_SECRET'),
'region' => env('AWS_REGION'),
'bucket' => env('AWS_BUCKET'),
],

View File

@ -29,7 +29,7 @@ return [
|
*/
'lifetime' => env('SESSION_LIFETIME', 120),
'lifetime' => 120,
'expire_on_close' => false,

View File

@ -1,32 +0,0 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreatePasswordResetsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('password_resets', function (Blueprint $table) {
$table->string('email')->index();
$table->string('token');
$table->timestamp('created_at')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('password_resets');
}
}

View File

@ -4,7 +4,7 @@ use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration
class InitialMigrations extends Migration
{
/**
* Run the migrations.
@ -17,12 +17,22 @@ class CreateUsersTable extends Migration
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('nickname');
$table->string('password');
$table->rememberToken();
$table->integer('age');
$table->integer('admin');
$table->integer('blocked');
$table->timestamps();
});
Schema::create('password_resets', function (Blueprint $table) {
$table->string('email')->index();
$table->string('token');
$table->timestamp('created_at')->nullable();
});
}
/**
* Reverse the migrations.
*
@ -30,6 +40,7 @@ class CreateUsersTable extends Migration
*/
public function down()
{
Schema::dropIfExists('password_resets');
Schema::dropIfExists('users');
}
}

View File

@ -0,0 +1,34 @@
<?php
use Illuminate\Database\Seeder;
class DepartmentsTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$departments = [
'Ciências Jurídicas',
'Ciências da Linguagem',
'Engenharia do Ambiente',
'Engenharia Civil',
'Engenharia Eletrotécnica',
'Engenharia Informática',
'Engenharia Mecânica',
'Gestão e Economia',
'Matemática'
];
$createdAt = Carbon\Carbon::now()->subMonths(2);
foreach ($departments as $department) {
DB::table('departments')->insert([
'name' => $department,
'created_at' => $createdAt,
'updated_at' => $createdAt,
]);
}
}
}

View File

@ -4,6 +4,7 @@ use Illuminate\Database\Seeder;
class UsersTableSeeder extends Seeder
{
private $numberOfUsers = 30;
/**
* Run the database seeds.
*
@ -11,7 +12,28 @@ class UsersTableSeeder extends Seeder
*/
public function run()
{
//
factory(App\User::class, 50)->create();
$faker = Faker\Factory::create('pt_PT');
for ($i = 0; $i < $this->numberOfUsers; ++$i) {
DB::table('users')->insert($this->fakeUser($faker));
}
}
private function fakeUser(Faker\Generator $faker)
{
static $password;
$createdAt = Carbon\Carbon::now()->subDays(30);
$updatedAt = $faker->dateTimeBetween($createdAt);
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'nickname' => $faker->unique()->name,
'password' => $password ?: $password = bcrypt('secret'),
'remember_token' => str_random(10),
'age' => $faker->numberBetween(18, 75),
'admin' => 0,
'blocked' => 0,
'created_at' => $createdAt,
'updated_at' => $updatedAt,
];
}
}

11013
laravel/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -2,20 +2,20 @@
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"development": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"hot": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
"production": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"axios": "^0.17",
"axios": "^0.16.2",
"bootstrap-sass": "^3.3.7",
"cross-env": "^5.1",
"jquery": "^3.2",
"cross-env": "^5.0.1",
"jquery": "^3.1.1",
"laravel-mix": "^1.0",
"lodash": "^4.17.4",
"vue": "^2.5.7"
"vue": "^2.1.10"
}
}

View File

@ -0,0 +1,21 @@
{
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"axios": "^0.16.2",
"bootstrap-sass": "^3.3.7",
"cross-env": "^5.0.1",
"jquery": "^3.1.1",
"laravel-mix": "^1.0",
"lodash": "^4.17.4",
"vue": "^2.1.10"
}
}

View File

@ -0,0 +1,21 @@
{
"private": true,
"scripts": {
"dev": "npm run development",
"development": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"axios": "^0.16.2",
"bootstrap-sass": "^3.3.7",
"cross-env": "^5.0.1",
"jquery": "^3.1.1",
"laravel-mix": "^1.0",
"lodash": "^4.17.4",
"vue": "^2.1.10"
}
}

0
laravel/public/.htaccess Executable file → Normal file
View File

31
laravel/public/css/app.css vendored Executable file → Normal file
View File

@ -8350,3 +8350,34 @@ button.close {
}
}
.close-btn {
border: none;
float: right;
background-color: transparent;
}
.board {
max-width: 276px;
margin: 0 auto;
border-style: solid;
border-width: 0px 0 0 0px;
border-color: black;
}
.board div {
display: inline-block;
border-style: solid;
border-width: 2px 2px 2px 2px;
border-color: black;
margin-left: -2px;
margin-top: -2px;
}
.board img {
width: 80px;
height: 80px;
margin: 5px;
padding: 0;
border-style: none;
}

34
laravel/public/css/style.css vendored Executable file → Normal file
View File

@ -1,29 +1,9 @@
html {
background: url("/img/background.png");
@charset "utf-8";
/* Custom rules */
.inline {
display: inline-block;
}
footer {
color: white;
}
#divLobby {
background: url("/img/background.png");
border:5px solid green;
}
#divTab {
border:5px solid black;
}
h4 {
text-align: center;
}
.error {
color: red;
}

0
laravel/public/favicon.ico Executable file → Normal file
View File

View File

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 302 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 691 B

0
laravel/public/index.php Executable file → Normal file
View File

76
laravel/public/js/tictactoe.js vendored Normal file
View File

@ -0,0 +1,76 @@
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 53);
/******/ })
/************************************************************************/
/******/ ({
/***/ 53:
/***/ (function(module, exports, __webpack_require__) {
(function webpackMissingModule() { throw new Error("Cannot find module \"/home/vagrant/memoryGame/resources/assets/js/tictactoe.js\""); }());
/***/ })
/******/ });

1339
laravel/public/js/app.js → laravel/public/js/vueapp.js vendored Executable file → Normal file

File diff suppressed because one or more lines are too long

4
laravel/public/mix-manifest.json Executable file → Normal file
View File

@ -1,4 +1,4 @@
{
"/js/app.js": "/js/app.js",
"/css/app.css": "/css/app.css"
"/js/vueapp.js": "/js/vueapp.js",
"/js/tictactoe.js": "/js/tictactoe.js"
}

0
laravel/public/robots.txt Executable file → Normal file
View File

0
laravel/public/web.config Executable file → Normal file
View File

View File

@ -19,31 +19,26 @@ Laravel is a web application framework with expressive, elegant syntax. We belie
- [Robust background job processing](https://laravel.com/docs/queues).
- [Real-time event broadcasting](https://laravel.com/docs/broadcasting).
Laravel is accessible, yet powerful, providing tools needed for large, robust applications.
Laravel is accessible, yet powerful, providing tools needed for large, robust applications. A superb combination of simplicity, elegance, and innovation give you tools you need to build any application with which you are tasked.
## Learning Laravel
Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of any modern web application framework, making it a breeze to get started learning the framework.
Laravel has the most extensive and thorough documentation and video tutorial library of any modern web application framework. The [Laravel documentation](https://laravel.com/docs) is thorough, complete, and makes it a breeze to get started learning the framework.
If you're not in the mood to read, [Laracasts](https://laracasts.com) contains over 1100 video tutorials on a range of topics including Laravel, modern PHP, unit testing, JavaScript, and more. Boost the skill level of yourself and your entire team by digging into our comprehensive video library.
If you're not in the mood to read, [Laracasts](https://laracasts.com) contains over 900 video tutorials on a range of topics including Laravel, modern PHP, unit testing, JavaScript, and more. Boost the skill level of yourself and your entire team by digging into our comprehensive video library.
## Laravel Sponsors
We would like to extend our thanks to the following sponsors for helping fund on-going Laravel development. If you are interested in becoming a sponsor, please visit the Laravel [Patreon page](http://patreon.com/taylorotwell):
- **[Vehikl](https://vehikl.com/)**
- **[Vehikl](http://vehikl.com)**
- **[Tighten Co.](https://tighten.co)**
- **[British Software Development](https://www.britishsoftware.co)**
- **[Styde](https://styde.net)**
- [Fragrantica](https://www.fragrantica.com)
- [SOFTonSOFA](https://softonsofa.com/)
- [User10](https://user10.com)
- [Soumettre.fr](https://soumettre.fr/)
- [CodeBrisk](https://codebrisk.com)
- [1Forge](https://1forge.com)
- [TECPRESSO](https://tecpresso.co.jp/)
- [Pulse Storm](http://www.pulsestorm.net/)
- [Runtime Converter](http://runtimeconverter.com/)
- [WebL'Agence](https://weblagence.com/)
## Contributing
@ -51,7 +46,7 @@ Thank you for considering contributing to the Laravel framework! The contributio
## Security Vulnerabilities
If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed.
If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell at taylor@laravel.com. All security vulnerabilities will be promptly addressed.
## License

BIN
laravel/resources/.DS_Store vendored Normal file

Binary file not shown.

BIN
laravel/resources/assets/.DS_Store vendored Normal file

Binary file not shown.

View File

@ -1,22 +0,0 @@
/**
* First we will load all of this project's JavaScript dependencies which
* includes Vue and other libraries. It is a great starting point when
* building robust, powerful web applications using Vue and Laravel.
*/
require('./bootstrap');
window.Vue = require('vue');
/**
* Next, we will create a fresh Vue application instance and attach it to
* the page. Then, you may begin adding components to this application
* or customize the JavaScript scaffolding to fit your unique needs.
*/
Vue.component('example', require('./components/Example.vue'));
const app = new Vue({
el: '#app'
});

12
laravel/resources/assets/js/bootstrap.js vendored Executable file → Normal file
View File

@ -29,13 +29,13 @@ window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
* a simple convenience so we don't have to attach every token manually.
*/
let token = document.head.querySelector('meta[name="csrf-token"]');
// let token = document.head.querySelector('meta[name="csrf-token"]');
if (token) {
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}
// if (token) {
// window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
// } else {
// console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
// }
/**
* Echo exposes an expressive API for subscribing to channels and listening

View File

@ -1,23 +0,0 @@
<template>
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Example Component</div>
<div class="panel-body">
I'm an example component!
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
mounted() {
console.log('Component mounted.')
}
}
</script>

View File

@ -0,0 +1,58 @@
<template>
<div>
<div>
<h3 class="text-center">{{ title }}</h3>
</div> <!--<br>
<h2>Current Player : {{ currentPlayer }}</h2>
<br>
</div>
<div class="game-zone-content">
<div class="alert alert-success" v-if="showSuccess">
<button type="button" class="close-btn" v-on:click="showSuccess=false">&times;</button>
<strong>{{ successMessage }} &nbsp;&nbsp;&nbsp;&nbsp;<a v-show="gameEnded" v-on:click.prevent="restartGame">Restart</a></strong>
</div>
<div class="board">
<div v-for="(piece, key) of board" >
<img v-bind:src="pieceImageURL(piece)" v-on:click="clickPiece(key)">
</div>
</div>
<hr>
</div> -->
</div>
</template type="text/javascript">
data: function(){
return {
title: 'Memory Game',
showSuccess: false,
showFailure: false,
successMessage: '',
failMessage: '',
currentValue: 1,
gameEnded:false,
player1User: undefined,
player2User: undefined,
board: [0,0,0,0,0,0,0,0,0]
}
}
<script>
</script>
<style>
</style>

View File

@ -0,0 +1,81 @@
<template>
<div>
<div class="jumbotron">
<h1>{{ title }}</h1>
</div>
<user-list :users="users" @edit-click="editUser" @delete-click="deleteUser" @message="childMessage" ref="usersListRef"></user-list>
<div class="alert alert-success" v-if="showSuccess">
<button type="button" class="close-btn" v-on:click="showSuccess=false">&times;</button>
<strong>{{ successMessage }}</strong>
</div>
<user-edit :user="currentUser" @user-saved="savedUser" @user-canceled="cancelEdit" v-if="currentUser"></user-edit>
</div>
</template>
<script type="text/javascript">
import UserList from './userList.vue';
import UserEdit from './userEdit.vue';
export default {
data: {
title: 'User Profile',
editingUser: false,
showSuccess: false,
showFailure: false,
successMessage: '',
failMessage: '',
currentUser: null,
user: null
},
methods: {
editUser: function(user){
this.currentUser = user;
this.editingUser = true;
this.showSuccess = false;
},
saveUser: function(){
this.editingUser = false; // desaparece na vista esta secção
axios.put('api/users/'+this.currentUser.username,this.currentUser)
.then(response=>{
this.showSuccess = true;
this.successMessage = 'Your details have been saved';
// Copies response.data.data properties to this.currentUser
// without changing this.currentUser reference
Object.assign(this.currentUser, response.data.data);
this.currentUser = null;
this.editingUser = false;
});
},
cancelEdit: function(){
this.showSuccess = false;
this.editingUser = false;
axios.get('api/users/'+this.currentUser.username)
.then(response=>{
console.dir (this.currentUser);
// Copies response.data.data properties to this.currentUser
// without changing this.currentUser reference
Object.assign(this.currentUser, response.data.data);
console.dir (this.currentUser);
this.currentUser = null;
});
},
getLoginUser: function() {
axios.get('api/login')
.then(response=>{this.user = response.data.data;});
}
},
mounted() {
}
}
</script>
<style scoped>
p {
font-size: 2em;
text-align: center;
}
</style>

View File

@ -0,0 +1,10 @@
/*jshint esversion: 6 */
require('./bootstrap');
window.Vue = require('vue');
const app = new Vue({
el: '#app',
});

Some files were not shown because too many files have changed in this diff Show More