Mejora Turnos, Parcial Ui Modo TV: Commit Authored 2 Weeks Ago by

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

29/6/2020 Mejora turnos, parcial ui modo tv (41df2d69) · Commits · Guillermo Agudelo / transito-frontend · GitLab

Please ensure your account's recovery settings are up to date.

Commit 41df2d69 authored 2 weeks ago by Guillermo Agudelo

Mejora turnos, parcial ui modo tv

parent 48ad322b master

No related merge requests found

Showing 29 changed files  with 7133 additions and 60098 deletions

  app/Events/TurnCalled.php 0 → 100644

1 + <?php
2 +
3 + namespace App\Events;
4 +
5 + use Illuminate\Broadcasting\Channel;
6 + use Illuminate\Broadcasting\InteractsWithSockets;
7 + use Illuminate\Broadcasting\PresenceChannel;
8 + use Illuminate\Broadcasting\PrivateChannel;
9 + use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
10 + use Illuminate\Foundation\Events\Dispatchable;
11 + use Illuminate\Queue\SerializesModels;
12 +
13 + class TurnCalled implements ShouldBroadcast
14 +{
15 + use Dispatchable, InteractsWithSockets, SerializesModels;
16 +
17 + public $data;
18 +
19 + /**
20 + * Create a new event instance.
21 + *
22 + * @return void
23 + */
24 + public function __construct($data)
25 + {
26 + $this->data = $data;
27 + }
28 +
29 + /**
30 + * Get the channels the event should broadcast on.
31 + *
32 + * @return \Illuminate\Broadcasting\Channel|array
33 + */
34 + public function broadcastOn()
35 + {
36 + return new Channel('turns');
37 + }
38 +}

  app/Http/Controllers/API/TurnController.php
... ... @@ -3,6 +3,7 @@
3 3 namespace App\Http\Controllers\API;
4 4
5 5 use App\Client;
6 + use App\Events\TurnCalled;
6 7 use App\Http\Controllers\Controller;
7 8 use App\Queue;
8 9 use App\Turn;
... ... @@ -11,8 +12,23 @@ use Illuminate\Http\Request;
11 12
12 13 class TurnController extends Controller
13 14 {

https://gitlab.com/guille.agudelo/transito-frontend/-/commit/41df2d69cd8bce4ac47c3e17270397cde4469fab 1/15
29/6/2020 Mejora turnos, parcial ui modo tv (41df2d69) · Commits · Guillermo Agudelo / transito-frontend · GitLab

14 - public function store()


15 + public function create()
15 16 {
17 + //
18 + // $turnData = [
19 + // 'turnOrder' => $queue->field('order'),
20 + // 'userName' => $client->field('name'),
21 + // 'label' => \State::get('employee.id'),
22 + // ];
23 +
24 + $turnData = [
25 + 'order' => 2,
26 + 'name' => 'Pepe Locuaz',
27 + 'label' => \State::get('employee.label'),
28 + ];
29 +
30 + event(new TurnCalled($turnData));
31 + dd($turnData);
16 32 if (Turn::isThereTurnWaiting()) {
17 33 return response()->json(['status' => 'failed', 'data' => ['waiting' => true]]);
18 34 }
... ... @@ -41,31 +57,39 @@ class TurnController extends Controller
41 57 }
42 58
43 59
44 - public function update(Request $request, $id)
60 + public function start(Request $request, $id)
45 61 {
46 62 $data = $request->validate([
47 - 'dateIni' => 'nullable',
48 - 'dateFin' => 'nullable',
49 - 'state' => 'required'
63 + 'dateIni' => 'required',
50 64 ]);
51 65
66 + $dateIni = date_create(\Carbon\Carbon::make($data['dateIni'])->subHours(5));
52 67 $recorData = [
53 - ['path' => 'state', 'value' => $data['state']],
68 + ['path' => 'state', 'value' => 'Atendiendo'],
69 + ['path' => 'dateIni', 'value' => $dateIni]
54 70 ];
55 71
56 - if ($request->has('dateIni')) {
57 - $dateIni = date_create(\Carbon\Carbon::make($data['dateIni'])->subHours(5));
58 - $recorData[] = ['path' => 'dateIni', 'value' => $dateIni];
59 - }
72 + $turn = Turn::update($id, $recorData);
73 + return response()->json(['status' => 'success', 'data' => compact('turn')]);
74 + }
60 75
61 - if ($request->has('dateFin')) {
62 - $dateFin = date_create(\Carbon\Carbon::make($data['dateFin'])->subHours(5));
63 - $recorData[] = ['path' => 'dateFin', 'value' => $dateFin];
64 - }
76 + public function finish(Request $request, $id)
77 + {
78 + $data = $request->validate([
79 + 'dateFin' => 'required',
80 + ]);
65 81
66 - //TODO: Actualziar el queue
82 + $dateFin = date_create(\Carbon\Carbon::make($data['dateFin'])->subHours(5));
83 + $recorData = [
84 + ['path' => 'state', 'value' => 'Terminado'],
85 + ['path' => 'dateFin', 'value' => $dateFin]
86 + ];
67 87
68 88 $turn = Turn::update($id, $recorData);
69 - return response()->json(['status' => 'success', 'data' => compact('turn')]);
89 + $queue = Queue::update($turn->field('idQueue'), [
90 + ['path' => 'state', 'value' => 'Terminado'],
91 + ]);
92 +
93 + return response()->json(['status' => 'success', 'data' => compact('turn', 'queue')]);
70 94 }

https://gitlab.com/guille.agudelo/transito-frontend/-/commit/41df2d69cd8bce4ac47c3e17270397cde4469fab 2/15
29/6/2020 Mejora turnos, parcial ui modo tv (41df2d69) · Commits · Guillermo Agudelo / transito-frontend · GitLab

71 95 }

  app/Http/Controllers/HomeController.php
... ... @@ -2,6 +2,8 @@
2 2
3 3 namespace App\Http\Controllers;
4 4
5 + use App\Events\TurnCalled;
6 +
5 7 class HomeController extends Controller
6 8 {
7 9
... ... @@ -14,4 +16,10 @@ class HomeController extends Controller
14 16 {
15 17 return view('dashboard');
16 18 }
19 +
20 + public function tv()
21 + {
22 + return view('pages.tv');
23 + }
24 +
17 25 }

  app/Http/Controllers/QueueController.php
... ... @@ -16,8 +16,7 @@ class QueueController extends Controller
16 16
17 17 $lastQueueOrder = Queue::getNextOrder()-1;
18 18
19 -
20 - $services = Service::where('idBranch', '=', \State::get('branch.id'))->get();
19 + $services = Service::whereGetInstances('idBranch', '=', \State::get('branch.id'));
21 20
22 21 return view('queue.index', compact('services', 'queue', 'lastQueueOrder'));
23 22 }
... ... @@ -70,7 +69,7 @@ class QueueController extends Controller
70 69 'idCompany' => $data['id-company'],
71 70 'idService' => $data['id-service'],
72 71 'isPriority' => (bool)$request->has('is-priority'),
73 - 'uid' => $client->id(),
72 + 'uid' => $client->field('uid'),
74 73 'createdBy' => \LfAuth::id(),
75 74 'createdAt' => date_create(),
76 75 ];
... ...

  app/Http/Controllers/TurnController.php
... ... @@ -2,6 +2,8 @@
2 2
3 3 namespace App\Http\Controllers;
4 4
5 + use App\Client;
6 + use App\Queue;
5 7 use Illuminate\Http\Request;
6 8
7 9 class TurnController extends Controller
... ...

  app/Queue.php

... ... @@ -10,24 +10,24 @@ class Queue extends LarafireModel


10 10
11 11 public static function getNextOrder()
12 12 {
13 - $instance = new Queue;
14 - $result = $instance->where('createdAt', '>', date_create(now()->toDateString()))
13 + $result = Queue::where('createdAt', '>', date_create(now()->toDateString()))
15 14 ->where('createdAt', '<', date_create(now()->addDays(1)->toDateString()))
16 15 ->orderBy('createdAt', 'DESC')
17 16 ->orderBy('order', 'DESC')
18 - ->get();
17 + ->documents()->rows();
19 18

https://gitlab.com/guille.agudelo/transito-frontend/-/commit/41df2d69cd8bce4ac47c3e17270397cde4469fab 3/15
29/6/2020 Mejora turnos, parcial ui modo tv (41df2d69) · Commits · Guillermo Agudelo / transito-frontend · GitLab

20 - return count($result) == 0 ? 1 : (int)$result[0]->field('order')+1;


19 + return count($result) == 0 ? 1 : (int)$result[0]->get('order')+1;
21 20 }
22 21
23 22 public static function getNextToBeAttended()
24 23 {
25 - $instance = new Queue;
26 - return $instance->where('state','=','Activo')//->getFirebaseObject()->documents();
24 + $rows = Queue::where('state','=','Activo')
27 25 ->where('createdAt', '>', date_create(now()->toDateString()))
28 26 ->where('createdAt', '<', date_create(now()->addDays(1)->toDateString()))
29 27 ->orderBy('createdAt')
30 - ->orderBy('order', 'asc')
31 - ->get()[0];
28 + ->orderBy('order', 'asc')->documents()->rows();
29 +
30 + if (count($rows) == 0) throw new \Exception('No hay mas turnos pendientes');
31 + else return Queue::rowsToInstances($rows)[0];
32 32 }
33 33 }

  app/Support/LarafireModel.php
... ... @@ -29,7 +29,7 @@ class LarafireModel implements JsonSerializable
29 29
30 30 // HELPERS
31 31
32 - private static function rowsToInstances(array $rows)
32 + public static function rowsToInstances(array $rows)
33 33 {
34 34 return array_map(function($row) {
35 35 $instance = self::getNewInstance();
... ... @@ -76,24 +76,31 @@ class LarafireModel implements JsonSerializable
76 76
77 77 public static function where($field, $operation, $value)
78 78 {
79 - // $instance = self::getNewInstance();
80 - //
79 + $instance = self::getNewInstance();
80 +
81 81 // if (!self::$isInstance) $instance = $this;
82 82
83 - $instance = self::getNewInstance();
84 - if (!$instance->firebaseObject) $instance->firebaseObject = $instance->collection;
85 - // dd('la',$instance->getFirebaseObject()->documents());
83 + // $instance = self::getNewInstance();
84 + // if (!$instance->firebaseObject) $instance->firebaseObject = $instance->collection;
86 85
87 - $instance->firebaseObject = $instance->firebaseObject->where($field, $operation, $value);
86 + // $instance->firebaseObject = $instance->firebaseObject->where($field, $operation, $value);
87 + return $instance->collection->where($field, $operation, $value);
88 88
89 - return $instance;
89 + // return $instance;
90 + }
91 +
92 + public static function whereGetInstances($field, $operation, $value)
93 + {
94 + $rows = self::where($field, $operation, $value)->documents()->rows();
95 +
96 + return self::rowsToInstances($rows);
90 97 }
91 98
92 99 public static function first($field, $operation, $value)
93 100 {
94 101 $instance = self::getNewInstance();
95 102
96 - if (!self::$isInstance) $instance = $this;
103 + // if (!self::$isInstance) $instance = $this;
97 104
98 105 $results = $instance->collection->where($field, $operation, $value)->limit(1)->documents()->rows();
99 106
... ... @@ -125,25 +132,13 @@ class LarafireModel implements JsonSerializable
125 132 // $instance = self::getInstance();
126 133 $instance = self::getNewInstance();

https://gitlab.com/guille.agudelo/transito-frontend/-/commit/41df2d69cd8bce4ac47c3e17270397cde4469fab 4/15
29/6/2020 Mejora turnos, parcial ui modo tv (41df2d69) · Commits · Guillermo Agudelo / transito-frontend · GitLab

127 134 // if (!self::$isInstance) $instance = $this;


128 - if (!$instance->firebaseObject) $instance->firebaseObject = $instance->collection;
129 - $instance->checkFirebaseObjectIsQuery();
130 - $instance->firebaseObject = $instance->firebaseObject->orderBy($field, $direction);
131 - return $instance;
135 + // if (!$instance->firebaseObject) $instance->firebaseObject = $instance->collection;
136 + // $instance->checkFirebaseObjectIsQuery();
137 + // $instance->firebaseObject = $instance->firebaseObject->orderBy($field, $direction);
138 + return $instance->collection->orderBy($field, $direction);
139 + // return $instance;
132 140 }
133 141
134 - public static function latest()
135 - {
136 - $instance = self::getNewInstance();
137 - $results = static::orderBy('createdAt', 'desc')->firebaseObject->limit(1)->documents()->rows();
138 -
139 - if (count($results) > 0) {
140 - $instance->firebaseObject = $results[0];
141 - } else {
142 - $instance = null;
143 - }
144 -
145 - return $instance;
146 - }
147 142
148 143 public static function createdToday()
149 144 {
... ...

  app/Turn.php

... ... @@ -12,7 +12,7 @@ class Turn extends LarafireModel


12 12 public static function isThereTurnWaiting()
13 13 {
14 14 $instance = new Turn;
15 - $records = $instance->createdToday()->where('state', '=', 'Esperando')->get();
15 + $records = $instance->createdToday()->where('state', '=', 'Esperando')->documents()->rows();
16 16 return count($records) > 0;
17 17 }
18 18
... ...

  bootstrap/cache/.gitignore deleted 100644 → 0

1 -*
2 - !.gitignore

  bootstrap/cache/config.php 0 → 100644

This diff is collapsed.

  bootstrap/cache/packages.php 0 → 100755

1 + <?php return array (


2 + 'facade/ignition' =>
3 + array (
4 + 'providers' =>
5 + array (
6 + 0 => 'Facade\\Ignition\\IgnitionServiceProvider',
7 + ),
8 + 'aliases' =>
9 + array (
10 + 'Flare' => 'Facade\\Ignition\\Facades\\Flare',
11 + ),
12 + ),
13 + 'fideloper/proxy' =>
14 + array (
15 + 'providers' =>
16 + array (
17 + 0 => 'Fideloper\\Proxy\\TrustedProxyServiceProvider',
18 + ),
19 + ),
20 + 'fruitcake/laravel-cors' =>
21 + array (
https://gitlab.com/guille.agudelo/transito-frontend/-/commit/41df2d69cd8bce4ac47c3e17270397cde4469fab 5/15
29/6/2020 Mejora turnos, parcial ui modo tv (41df2d69) · Commits · Guillermo Agudelo / transito-frontend · GitLab

22 + 'providers' =>
23 + array (
24 + 0 => 'Fruitcake\\Cors\\CorsServiceProvider',
25 + ),
26 + ),
27 + 'kreait/laravel-firebase' =>
28 + array (
29 + 'providers' =>
30 + array (
31 + 0 => 'Kreait\\Laravel\\Firebase\\ServiceProvider',
32 + ),
33 + 'aliases' =>
34 + array (
35 + 'FirebaseAuth' => 'Kreait\\Laravel\\Firebase\\Facades\\FirebaseAuth',
36 + 'FirebaseDatabase' => 'Kreait\\Laravel\\Firebase\\Facades\\FirebaseDatabase',
37 + 'FirebaseDynamicLinks' => 'Kreait\\Laravel\\Firebase\\Facades\\FirebaseDynamicLinks',
38 + 'FirebaseFirestore' => 'Kreait\\Laravel\\Firebase\\Facades\\FirebaseFirestore',
39 + 'FirebaseMessaging' => 'Kreait\\Laravel\\Firebase\\Facades\\FirebaseMessaging',
40 + 'FirebaseRemoteConfig' => 'Kreait\\Laravel\\Firebase\\Facades\\FirebaseRemoteConfig',
41 + 'FirebaseStorage' => 'Kreait\\Laravel\\Firebase\\Facades\\FirebaseStorage',
42 + ),
43 + ),
44 + 'laravel-frontend-presets/argon' =>
45 + array (
46 + 'providers' =>
47 + array (
48 + 0 => 'LaravelFrontendPresets\\ArgonPreset\\ArgonPresetServiceProvider',
49 + ),
50 + ),
51 + 'laravel/tinker' =>
52 + array (
53 + 'providers' =>
54 + array (
55 + 0 => 'Laravel\\Tinker\\TinkerServiceProvider',
56 + ),
57 + ),
58 + 'laravel/ui' =>
59 + array (
60 + 'providers' =>
61 + array (
62 + 0 => 'Laravel\\Ui\\UiServiceProvider',
63 + ),
64 + ),
65 + 'nesbot/carbon' =>
66 + array (
67 + 'providers' =>
68 + array (
69 + 0 => 'Carbon\\Laravel\\ServiceProvider',
70 + ),
71 + ),
72 + 'nunomaduro/collision' =>
73 + array (
74 + 'providers' =>
75 + array (
76 + 0 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
77 + ),
78 + ),
79 + 'yoeunes/notify' =>
80 + array (
81 + 'providers' =>
82 + array (
83 + 0 => 'Yoeunes\\Notify\\NotifyServiceProvider',
84 + ),
85 + 'aliases' =>
86 + array (
87 + 'Notify' => 'Yoeunes\\Notify\\Facades\\Notify',
88 + ),
89 + ),
90 + );
\ No newline at end of file

  bootstrap/cache/services.php 0 → 100755

This diff is collapsed.

https://gitlab.com/guille.agudelo/transito-frontend/-/commit/41df2d69cd8bce4ac47c3e17270397cde4469fab 6/15
29/6/2020 Mejora turnos, parcial ui modo tv (41df2d69) · Commits · Guillermo Agudelo / transito-frontend · GitLab

  composer.json
... ... @@ -17,7 +17,9 @@
17 17 "laravel-frontend-presets/argon": "^1.1",
18 18 "laravel/framework": "^7.0",
19 19 "laravel/tinker": "^2.0",
20 - "laravel/ui": "^2.0"
20 + "laravel/ui": "^2.0",
21 + "pusher/pusher-php-server": "~4.0",
22 + "yoeunes/notify": "^1.0"
21 23 },
22 24 "require-dev": {
23 25 "facade/ignition": "^2.0",
... ...

  composer.lock

This diff is collapsed.

  config/app.php
... ... @@ -171,7 +171,7 @@ return [
171 171 */
172 172 App\Providers\AppServiceProvider::class,
173 173 App\Providers\AuthServiceProvider::class,
174 - // App\Providers\BroadcastServiceProvider::class,
174 + App\Providers\BroadcastServiceProvider::class,
175 175 App\Providers\EventServiceProvider::class,
176 176 App\Providers\RouteServiceProvider::class,
177 177
... ...

  config/notify.php 0 → 100644
1 + <?php
2 +
3 + return [
4 +
5 + 'default' => 'toastr',
6 +
7 + 'toastr' => [
8 +
9 + 'class' => \Yoeunes\Notify\Notifiers\Toastr::class,
10 +
11 + 'notify_js' => [
12 + 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js',
13 + 'https://cdnjs.cloudflare.com/ajax/libs/toastr.js/2.1.4/toastr.min.js',
14 + ],
15 +
16 + 'notify_css' => [
17 + 'https://cdnjs.cloudflare.com/ajax/libs/toastr.js/2.1.4/toastr.min.css',
18 + ],
19 +
20 + 'types' => [
21 + 'error',
22 + 'info',
23 + 'success',
24 + 'warning',
25 + ],
26 +
27 + 'options' => ['positionClass' => 'toast-position'],
28 + ],
29 +
30 + 'pnotify' => [
31 +
32 + 'class' => \Yoeunes\Notify\Notifiers\Pnotify::class,
33 +
34 + 'notify_js' => [
35 + 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js',
36 + 'https://cdnjs.cloudflare.com/ajax/libs/pnotify/3.2.1/pnotify.js',
37 + ],
38 +
39 + 'notify_css' => [
40 + 'https://cdnjs.cloudflare.com/ajax/libs/pnotify/3.2.1/pnotify.css',
41 + 'https://cdnjs.cloudflare.com/ajax/libs/pnotify/3.2.1/pnotify.brighttheme.css',
https://gitlab.com/guille.agudelo/transito-frontend/-/commit/41df2d69cd8bce4ac47c3e17270397cde4469fab 7/15
29/6/2020 Mejora turnos, parcial ui modo tv (41df2d69) · Commits · Guillermo Agudelo / transito-frontend · GitLab

42 + ],
43 +
44 + 'types' => [
45 + 'alert',
46 + 'error',
47 + 'info',
48 + 'notice',
49 + 'success',
50 + ],
51 +
52 + 'options' => [],
53 + ],
54 +
55 + 'sweetalert2' => [
56 +
57 + 'class' => \Yoeunes\Notify\Notifiers\SweetAlert2::class,
58 +
59 + 'notify_js' => [
60 + 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js',
61 + 'https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/7.28.1/sweetalert2.min.js',
62 + 'https://cdn.jsdelivr.net/npm/promise-polyfill/dist/polyfill.min.js',
63 + ],
64 +
65 + 'notify_css' => [
66 + 'https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/7.28.1/sweetalert2.min.css',
67 + ],
68 +
69 + 'types' => [
70 + 'error',
71 + 'info',
72 + 'question',
73 + 'success',
74 + 'warning',
75 + ],
76 +
77 + 'options' => [],
78 + ],
79 + ];

  package-lock.json

... ... @@ -1609,15 +1609,6 @@


1609 1609 "postcss-value-parser": "^4.1.0"
1610 1610 }
1611 1611 },
1612 - "axios": {
1613 - "version": "0.19.2",
1614 - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz",
1615 - "integrity": "sha512-
fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==",
1616 - "dev": true,
1617 - "requires": {
1618 - "follow-redirects": "1.5.10"
1619 - }
1620 - },
1621 1612 "babel-code-frame": {
1622 1613 "version": "6.26.0",
1623 1614 "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
... ... @@ -1857,12 +1848,6 @@
1857 1848 "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
1858 1849 "dev": true
1859 1850 },
1860 - "bootstrap": {
1861 - "version": "4.5.0",
1862 - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.0.tgz",
1863 - "integrity": "sha512-
Z93QoXvodoVslA+PWNdk23Hze4RBYIkpb5h8I2HY2Tu2h7A0LpAgLcyrhrSUyo2/Oxm2l1fRZPs1e5hnxnliXA==",
1864 - "dev": true
1865 - },
1866 1851 "brace-expansion": {
1867 1852 "version": "1.1.11",
1868 1853 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
... ... @@ -5083,12 +5068,6 @@
5083 5068 }
5084 5069 }

https://gitlab.com/guille.agudelo/transito-frontend/-/commit/41df2d69cd8bce4ac47c3e17270397cde4469fab 8/15
29/6/2020 Mejora turnos, parcial ui modo tv (41df2d69) · Commits · Guillermo Agudelo / transito-frontend · GitLab

5085 5070 },
5086 - "jquery": {
5087 - "version": "3.5.1",
5088 - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz",
5089 - "integrity": "sha512-
XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==",
5090 - "dev": true
5091 - },
5092 5071 "js-tokens": {
5093 5072 "version": "4.0.0",
5094 5073 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
... ... @@ -5167,6 +5146,11 @@
5167 5146 "integrity": "sha512-
dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
5168 5147 "dev": true
5169 5148 },
5149 + "laravel-echo": {
5150 + "version": "1.8.0",
5151 + "resolved": "https://registry.npmjs.org/laravel-echo/-/laravel-echo-1.8.0.tgz",
5152 + "integrity": "sha512-
hEHmNKUgV3fR2Do/2PKxfO3OiLmbjX89tahGEi4urS8JEuy/yoRtFToOJXV9ChtOpRqxo7trrygPOvXLwvc/6A=="
5153 + },
5170 5154 "laravel-mix": {
5171 5155 "version": "5.0.4",
5172 5156 "resolved": "https://registry.npmjs.org/laravel-mix/-/laravel-mix-5.0.4.tgz",
... ... @@ -6447,12 +6431,6 @@
6447 6431 "find-up": "^2.1.0"
6448 6432 }
6449 6433 },
6450 - "popper.js": {
6451 - "version": "1.16.1",
6452 - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz",
6453 - "integrity": "sha512-
Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==",
6454 - "dev": true
6455 - },
6456 6434 "portfinder": {
6457 6435 "version": "1.0.26",
6458 6436 "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.26.tgz",
... ... @@ -7259,6 +7237,14 @@
7259 7237 "integrity": "sha512-
XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
7260 7238 "dev": true
7261 7239 },
7240 + "pusher-js": {
7241 + "version": "6.0.3",
7242 + "resolved": "https://registry.npmjs.org/pusher-js/-/pusher-js-6.0.3.tgz",
7243 + "integrity": "sha512-
l0MHlrpG+D4R6jj+vjqnJNjawBqKCjQ4Y/YARNsWFbXGKNl77xX8pUpbv55Al+dFHGkc7wI2fDXw/BDLleF9Lg==",
7244 + "requires": {
7245 + "tweetnacl": "^1.0.3"
7246 + }
7247 + },
7262 7248 "q": {
7263 7249 "version": "1.5.1",
7264 7250 "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
... ... @@ -7690,9 +7676,9 @@
7690 7676 "dev": true
7691 7677 },
7692 7678 "sass": {
7693 - "version": "1.26.7",
7694 - "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.7.tgz",
7695 - "integrity": "sha512-
xgNazdkr6yvgHEfNaOjKtZzhDZmKYMCmoRKMPrTDo7YvjaITIzU2DDYsIUuN/atAg7/JOxPeCQHH7TtCo5Tq2g==",
7679 + "version": "1.26.8",
7680 + "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.8.tgz",
7681 + "integrity": "sha512-
yvtzyrKLGiXQu7H12ekXqsfoGT/aTKeMDyVzCB675k1HYuaj0py63i8Uf4SI9CHXj6apDhpfwbUr3gGOjdpu2Q==",
7696 7682 "dev": true,
7697 7683 "requires": {
7698 7684 "chokidar": ">=2.0.0 <4.0.0"
... ... @@ -8823,6 +8809,11 @@
8823 8809 "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
8824 8810 "dev": true
8825 8811 },

https://gitlab.com/guille.agudelo/transito-frontend/-/commit/41df2d69cd8bce4ac47c3e17270397cde4469fab 9/15
29/6/2020 Mejora turnos, parcial ui modo tv (41df2d69) · Commits · Guillermo Agudelo / transito-frontend · GitLab

8812 + "tweetnacl": {
8813 + "version": "1.0.3",
8814 + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
8815 + "integrity": "sha512-
6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
8816 + },
8826 8817 "type-is": {
8827 8818 "version": "1.6.18",
8828 8819 "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
... ... @@ -9131,12 +9122,6 @@
9131 9122 "integrity": "sha512-
2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
9132 9123 "dev": true
9133 9124 },
9134 - "vue": {
9135 - "version": "2.6.11",
9136 - "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz",
9137 - "integrity": "sha512-
VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ==",
9138 - "dev": true
9139 - },
9140 9125 "vue-hot-reload-api": {
9141 9126 "version": "2.3.4",
9142 9127 "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
... ...

  package.json

... ... @@ -13,6 +13,12 @@


13 13 "cross-env": "^7.0",
14 14 "laravel-mix": "^5.0.1",
15 15 "resolve-url-loader": "^2.3.1",
16 + "sass": "^1.26.8",
17 + "sass-loader": "^8.0.2",
16 18 "vue-template-compiler": "^2.6.10"
19 + },
20 + "dependencies": {
21 + "laravel-echo": "^1.8.0",
22 + "pusher-js": "^6.0.3"
17 23 }
18 24 }

  public/css/app.css

This diff is collapsed.

  public/css/master.css

1 1 .navbar-brand-img {
2 2 max-height: 4rem !important;
3 3 }
4 +
5 + #toast-container>div {
6 + opacity: 1;
7 +}
8 +
9 + .toast-position {
10 + bottom: 30px;
11 + right: 30px;
12 +}

  public/js/app.js

This diff is collapsed.

  resources/js/app.js

... ... @@ -4,7 +4,7 @@


4 4 * building robust, powerful web applications using Vue and Laravel.
5 5 */
6 6
7 - // require('./bootstrap');
7 + require('./bootstrap');
8 8
https://gitlab.com/guille.agudelo/transito-frontend/-/commit/41df2d69cd8bce4ac47c3e17270397cde4469fab 10/15
29/6/2020 Mejora turnos, parcial ui modo tv (41df2d69) · Commits · Guillermo Agudelo / transito-frontend · GitLab

9 9 // window.Vue = require('vue');
10 10
... ...

  resources/js/bootstrap.js

... ... @@ -29,13 +29,13 @@


29 29 * allows your team to easily build robust real-time web applications.
30 30 */
31 31
32 - // import Echo from 'laravel-echo';
32 + import Echo from 'laravel-echo';
33 33
34 - // window.Pusher = require('pusher-js');
34 + window.Pusher = require('pusher-js');
35 35
36 - // window.Echo = new Echo({
37 - // broadcaster: 'pusher',
38 - // key: process.env.MIX_PUSHER_APP_KEY,
39 - // cluster: process.env.MIX_PUSHER_APP_CLUSTER,
40 - // forceTLS: true
41 - // });
36 + window.Echo = new Echo({
37 + broadcaster: 'pusher',
38 + key: process.env.MIX_PUSHER_APP_KEY,
39 + cluster: process.env.MIX_PUSHER_APP_CLUSTER,
40 + forceTLS: true,
41 + });

  resources/views/layouts/app.blade.php

... ... @@ -20,6 +20,8 @@


20 20 <link type="text/css" href="{{ asset('argon') }}/css/argon.css?v=1.0.0" rel="stylesheet">
21 21 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/pretty-checkbox@3.0/dist/pretty-
checkbox.min.css">
22 22 <link rel="stylesheet" href="https://unpkg.com/nprogress@0.2.0/nprogress.css">
23 +
24 + @notify_css
23 25 <link rel="stylesheet" href="{{ asset('css/master.css') }}">
24 26 </head>
25 27 <body class="{{ $class ?? '' }}">
... ... @@ -39,6 +41,8 @@
39 41 @include('layouts.footers.guest')
40 42 @endlfguest
41 43
44 + @notify_js
45 + @notify_render
42 46 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
43 47 <!-- <script src="https://cdn.jsdelivr.net/npm/vue"></script> -->
44 48 <script src="{{ asset('argon') }}/vendor/jquery/dist/jquery.min.js"></script>
... ... @@ -46,6 +50,7 @@
46 50 <script src="https://cdnjs.cloudflare.com/ajax/libs/bootbox.js/5.4.0/bootbox.min.js"></script>
47 51 <script src="https://unpkg.com/nprogress@0.2.0/nprogress.js"></script>
48 52 <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
53 + <script src="{{ asset('js/app.js') }}"></script>
49 54 <script src="{{ asset('js/master.js') }}"></script>
50 55
51 56 @stack('js')
... ...

  resources/views/layouts/navbars/sidebar.blade.php

... ... @@ -65,7 +65,7 @@


65 65 <ul class="navbar-nav">
66 66 <li class="nav-item">
67 67 <a class="nav-link" href="{{ route('home') }}">
68 - <i class="ni ni-tv-2 text-primary"></i>Tablero
68 + <i class="fa fa-tachometer-alt text-primary"></i>Tablero
69 69 </a>
70 70 </li>
71 71 <!-- MENU DROPDOWN -->
... ... @@ -93,12 +93,17 @@
93 93
94 94 <li class="nav-item">
95 95 <a class="nav-link" href="{{ route('queue.index') }}">
96 - <i class="fa fa-angle-double-right text-blue"></i>Cola
https://gitlab.com/guille.agudelo/transito-frontend/-/commit/41df2d69cd8bce4ac47c3e17270397cde4469fab 11/15
29/6/2020 Mejora turnos, parcial ui modo tv (41df2d69) · Commits · Guillermo Agudelo / transito-frontend · GitLab

96 + <i class="fa fa-angle-double-right text-orange"></i>Cola


97 97 </a>
98 98 </li>
99 99 <li class="nav-item">
100 100 <a class="nav-link" href="{{ route('turns.index') }}">
101 - <i class="fa fa-users text-orange"></i>Turnos
101 + <i class="fa fa-users text-success"></i>Turnos
102 + </a>
103 + </li>
104 + <li class="nav-item">
105 + <a class="nav-link" href="{{ route('tv') }}">
106 + <i class="ni ni-tv-2 text-warning"></i>Modo TV
102 107 </a>
103 108 </li>
104 109 </ul>
... ...

  resources/views/pages/tv.blade.php 0 → 100644

1 + @extends('layouts.app', ['title' => 'Modo TV'])


2 + @section('content')
3 +
4 + <div class="container-fluid" id="tv">
5 +
6 + <div>
7 + <img src="{{ asset('images/logo-company.png') }}" class="pt-4" width="100" alt="">
8 + </div>
9 +
10 + <div class="row" v-show="currentCallingTurn">
11 + <div class="col text-center d-flex flex-column align-items-center">
12 + <h3 class="text-muted mb-2">Llamando turno</h3>
13 + <h1 class="display-1 mb-0 pb-0" style="line-height:1">
14 + <b>@{{ currentCallingTurn?.order }}</b>
15 + </h1>
16 + <h1 class="display-1 mb-0 pb-0">@{{ currentCallingTurn?.name }}</h1>
17 + <h1 class="display-3 mb-0 pb-0">@{{ currentCallingTurn?.label }}</h1>
18 + </div>
19 + </div>
20 +
21 + <div class="row w-100" style="bottom: 7%; position: fixed; max-height:40vh">
22 + <div class="col-md-6">
23 + <div class="w-100">
24 + <img src="http://placehold.it/600x400" style="max-height:40vh">
25 + </div>
26 + </div>
27 + <div class="col-md-6">
28 + <table class="table">
29 + <thead>
30 + <th class="text-center">Turno</th>
31 + <th class="text-center">Lugar</th>
32 + </thead>
33 + <tr v-for="turn in calledTurns">
34 + <td class="text-center">@{{ turn.order }}</td>
35 + <td class="text-center">@{{ turn.label }}</td>
36 + </tr>
37 + </table>
38 + </div>
39 + </div>
40 +
41 + @include('layouts.footers.auth')
42 + </div>
43 + @endsection
44 + @push('js')
45 + <script>
46 + $('.header').remove()
47 + $('#sidenav-main').remove()
48 + $('footer').remove()
49 + const tv = new Vue({
50 + el: '#tv',
51 + data() {
52 + return {
53 + msg: null,
54 + callingTurns: [],
55 + calledTurns: [],
56 + currentCallingTurn: null

https://gitlab.com/guille.agudelo/transito-frontend/-/commit/41df2d69cd8bce4ac47c3e17270397cde4469fab 12/15
29/6/2020 Mejora turnos, parcial ui modo tv (41df2d69) · Commits · Guillermo Agudelo / transito-frontend · GitLab

57 + }
58 + },
59 + watch: {
60 + callingTurns(newValue, oldValue) {
61 + if (oldValue.length == 1) {
62 + this.currentCallingTurn = newValue[newValue.length-1]
63 + }
64 + }
65 + },
66 + mounted() {
67 + Echo.channel('turns')
68 + .listen('TurnCalled', e => {
69 + this.change(e.data)
70 + })
71 + },
72 + methods: {
73 + change(data) {
74 + this.callingTurns.push(data)
75 + this.calledTurns.push(data)
76 + }
77 + }
78 +
79 + })
80 + </script>
81 + @endpush

  resources/views/turns/index.blade.php

... ... @@ -63,13 +63,32 @@


63 63 }
64 64 },
65 65 methods: {
66 + callNextTurn() {
67 + axios.get(@json(route('api.turns.create')))
68 + .then((res) => {
69 + if (res.data.status == 'failed') {
70 + return bootbox.alert('Hay un turno en llamada. Por favor, intente
cuando el turno haya sido respondido.')
71 + }
72 + if (res.data.status == 'success') {
73 + this.client = res.data.data.client
74 + this.queue = res.data.data.queue
75 + this.turn = res.data.data.turn
76 + this.userClient = res.data.data.userClient
77 + this.status = 'waiting'
78 + }
79 + })
80 + .catch((err) => {
81 + let msg = "<p>Ocurrió un error al llamar al siguiente turno.</p>"
82 + msg += err.response.data.message.toUpperCase()
83 + bootbox.alert(msg)
84 + console.log(err.response)
85 + })
86 + },
66 87 startAttention() {
67 - axios.put('/api/turns/'+this.turn.id, {
88 + axios.put('/api/turns/'+this.turn.id+'/start', {
68 89 _token: $('[name=csrf-token]').attr('content'),
69 - state: 'Atendiendo',
70 90 dateIni: new Date()
71 91 }).then(res => {
72 - console.log('res',res)
73 92 if (res.data.status == 'success') {
74 93 this.status = 'attendingTurn'
75 94 this.startTimer()
... ... @@ -80,12 +99,11 @@
80 99 })
81 100 },
82 101 finishAttention() {
83 - axios.put('/api/turns/'+this.turn.id, {
102 + axios.put('/api/turns/'+this.turn.id+'/finish', {
84 103 _token: $('[name=csrf-token]').attr('content'),
85 104 state: 'Terminado',
86 105 dateFin: new Date()
87 106 }).then(res => {

https://gitlab.com/guille.agudelo/transito-frontend/-/commit/41df2d69cd8bce4ac47c3e17270397cde4469fab 13/15
29/6/2020 Mejora turnos, parcial ui modo tv (41df2d69) · Commits · Guillermo Agudelo / transito-frontend · GitLab

88 - console.log('res',res)
89 107 if (res.data.status == 'success') {
90 108 this.status = 'idling'
91 109 this.startTimer()
... ... @@ -106,23 +124,6 @@
106 124 stopTimer() {
107 125 this.timer.stop()
108 126 },
109 - callNextTurn() {
110 - axios.get('api/turns/store')
111 - .then((res) => {
112 - if (res.data.status == 'failed') {
113 - return bootbox.alert('Hay un turno en llamada. Por favor, intente
cuando el turno haya sido respondido.')
114 - }
115 - this.client = res.data.data.client
116 - this.queue = res.data.data.queue
117 - this.turn = res.data.data.turn
118 - this.userClient = res.data.data.userClient
119 - this.status = 'waiting'
120 - })
121 - .catch((err) => {
122 - bootbox.alert('Ocurrió un error al comunicarse con el servidor.')
123 - console.log(err)
124 - })
125 - }
126 127 }
127 128 })
128 129 </script>
... ...

  routes/channels.php

... ... @@ -13,6 +13,10 @@ use Illuminate\Support\Facades\Broadcast;


13 13 |
14 14 */
15 15
16 - Broadcast::channel('App.User.{id}', function ($user, $id) {
17 - return (int) $user->id === (int) $id;
16 + // Broadcast::channel('App.User.{id}', function ($user, $id) {
17 + // return (int) $user->id === (int) $id;
18 + // });
19 +
20 + Broadcast::channel('canal1', function ($user, $data) {
21 + return true;
18 22 });

  routes/web.php

... ... @@ -51,6 +51,8 @@ Route::group([


51 51 });
52 52 });
53 53
54 + Route::get('tv', 'HomeController@tv')->name('tv');
55 +
54 56
55 57 Route::group([
56 58 'prefix' => 'api',
... ... @@ -70,7 +72,9 @@ Route::group([
70 72 'prefix' => 'turns',
71 73 'as' => 'turns.'
72 74 ], function() {
73 - Route::get('store','TurnController@store')->name('store'); //TODO: Debe ser post
74 - Route::put('{id}','TurnController@update')->name('update');
75 + Route::get('create','TurnController@create')->name('create'); //TODO: Debe ser post
76 + Route::put('{id}/start','TurnController@start')->name('start');
77 + Route::put('{id}/finish','TurnController@finish')->name('finish');
75 78 });
76 79 });
80 +

https://gitlab.com/guille.agudelo/transito-frontend/-/commit/41df2d69cd8bce4ac47c3e17270397cde4469fab 14/15
29/6/2020 Mejora turnos, parcial ui modo tv (41df2d69) · Commits · Guillermo Agudelo / transito-frontend · GitLab

Write a comment or drag your files here…

Markdown and quick actions are supported

https://gitlab.com/guille.agudelo/transito-frontend/-/commit/41df2d69cd8bce4ac47c3e17270397cde4469fab 15/15

You might also like