Subiendo proyecto completo sin restricciones de git ignore

This commit is contained in:
Jose Sanchez
2023-08-17 11:44:02 -04:00
parent a0d4f5ba3b
commit 20f1c60600
19921 changed files with 2509159 additions and 45 deletions

View File

@@ -0,0 +1,18 @@
<?php
namespace Laracasts\Flash;
use Illuminate\Support\Facades\Facade;
class Flash extends Facade
{
/**
* Get the binding in the IoC container
*
* @return string
*/
protected static function getFacadeAccessor()
{
return 'flash';
}
}

View File

@@ -0,0 +1,167 @@
<?php
namespace Laracasts\Flash;
use Illuminate\Support\Traits\Macroable;
class FlashNotifier
{
use Macroable;
/**
* The session store.
*
* @var SessionStore
*/
protected $session;
/**
* The messages collection.
*
* @var \Illuminate\Support\Collection
*/
public $messages;
/**
* Create a new FlashNotifier instance.
*
* @param SessionStore $session
*/
function __construct(SessionStore $session)
{
$this->session = $session;
$this->messages = collect();
}
/**
* Flash an information message.
*
* @param string|null $message
* @return $this
*/
public function info($message = null)
{
return $this->message($message, 'info');
}
/**
* Flash a success message.
*
* @param string|null $message
* @return $this
*/
public function success($message = null)
{
return $this->message($message, 'success');
}
/**
* Flash an error message.
*
* @param string|null $message
* @return $this
*/
public function error($message = null)
{
return $this->message($message, 'danger');
}
/**
* Flash a warning message.
*
* @param string|null $message
* @return $this
*/
public function warning($message = null)
{
return $this->message($message, 'warning');
}
/**
* Flash a general message.
*
* @param string|null $message
* @param string|null $level
* @return $this
*/
public function message($message = null, $level = null)
{
// If no message was provided, we should update
// the most recently added message.
if (! $message) {
return $this->updateLastMessage(compact('level'));
}
if (! $message instanceof Message) {
$message = new Message(compact('message', 'level'));
}
$this->messages->push($message);
return $this->flash();
}
/**
* Modify the most recently added message.
*
* @param array $overrides
* @return $this
*/
protected function updateLastMessage($overrides = [])
{
$this->messages->last()->update($overrides);
return $this;
}
/**
* Flash an overlay modal.
*
* @param string|null $message
* @param string $title
* @return $this
*/
public function overlay($message = null, $title = 'Notice')
{
if (! $message) {
return $this->updateLastMessage(['title' => $title, 'overlay' => true]);
}
return $this->message(
new OverlayMessage(compact('title', 'message'))
);
}
/**
* Add an "important" flash to the session.
*
* @return $this
*/
public function important()
{
return $this->updateLastMessage(['important' => true]);
}
/**
* Clear all registered messages.
*
* @return $this
*/
public function clear()
{
$this->messages = collect();
return $this;
}
/**
* Flash all messages to the session.
*/
protected function flash()
{
$this->session->flash('flash_notification', $this->messages);
return $this;
}
}

View File

@@ -0,0 +1,47 @@
<?php
namespace Laracasts\Flash;
use Illuminate\Support\ServiceProvider;
class FlashServiceProvider extends ServiceProvider
{
/**
* Indicates if loading of the provider is deferred.
*
* @var bool
*/
protected $defer = false;
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
$this->app->bind(
'Laracasts\Flash\SessionStore',
'Laracasts\Flash\LaravelSessionStore'
);
$this->app->singleton('flash', function () {
return $this->app->make('Laracasts\Flash\FlashNotifier');
});
}
/**
* Bootstrap the application events.
*
* @return void
*/
public function boot()
{
$this->loadViewsFrom(__DIR__ . '/../../views', 'flash');
$this->publishes([
__DIR__ . '/../../views' => base_path('resources/views/vendor/flash')
]);
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace Laracasts\Flash;
use Illuminate\Session\Store;
class LaravelSessionStore implements SessionStore
{
/**
* @var Store
*/
private $session;
/**
* Create a new session store instance.
*
* @param Store $session
*/
function __construct(Store $session)
{
$this->session = $session;
}
/**
* Flash a message to the session.
*
* @param string $name
* @param array $data
*/
public function flash($name, $data)
{
$this->session->flash($name, $data);
}
}

View File

@@ -0,0 +1,117 @@
<?php
namespace Laracasts\Flash;
class Message implements \ArrayAccess
{
/**
* The title of the message.
*
* @var string
*/
public $title;
/**
* The body of the message.
*
* @var string
*/
public $message;
/**
* The message level.
*
* @var string
*/
public $level = 'info';
/**
* Whether the message should auto-hide.
*
* @var bool
*/
public $important = false;
/**
* Whether the message is an overlay.
*
* @var bool
*/
public $overlay = false;
/**
* Create a new message instance.
*
* @param array $attributes
*/
public function __construct($attributes = [])
{
$this->update($attributes);
}
/**
* Update the attributes.
*
* @param array $attributes
* @return $this
*/
public function update($attributes = [])
{
$attributes = array_filter($attributes);
foreach ($attributes as $key => $attribute) {
$this->$key = $attribute;
}
return $this;
}
/**
* Whether the given offset exists.
*
* @param mixed $offset
* @return bool
*/
#[\ReturnTypeWillChange]
public function offsetExists($offset)
{
return isset($this->$offset);
}
/**
* Fetch the offset.
*
* @param mixed $offset
* @return mixed
*/
#[\ReturnTypeWillChange]
public function offsetGet($offset)
{
return $this->$offset;
}
/**
* Assign the offset.
*
* @param mixed $offset
* @return void
*/
#[\ReturnTypeWillChange]
public function offsetSet($offset, $value)
{
$this->$offset = $value;
}
/**
* Unset the offset.
*
* @param mixed $offset
* @return void
*/
#[\ReturnTypeWillChange]
public function offsetUnset($offset)
{
//
}
}

View File

@@ -0,0 +1,20 @@
<?php
namespace Laracasts\Flash;
class OverlayMessage extends Message
{
/**
* The title of the message.
*
* @var string
*/
public $title = 'Notice';
/**
* Whether the message is an overlay.
*
* @var bool
*/
public $overlay = true;
}

View File

@@ -0,0 +1,14 @@
<?php
namespace Laracasts\Flash;
interface SessionStore
{
/**
* Flash a message to the session.
*
* @param string $name
* @param array $data
*/
public function flash($name, $data);
}

View File

@@ -0,0 +1,23 @@
<?php
if (! function_exists('flash')) {
/**
* Arrange for a flash message.
*
* @param string|null $message
* @param string $level
* @return \Laracasts\Flash\FlashNotifier
*/
function flash($message = null, $level = 'info')
{
$notifier = app('flash');
if (! is_null($message)) {
return $notifier->message($message, $level);
}
return $notifier;
}
}

View File

@@ -0,0 +1,27 @@
@foreach (session('flash_notification', collect())->toArray() as $message)
@if ($message['overlay'])
@include('flash::modal', [
'modalClass' => 'flash-modal',
'title' => $message['title'],
'body' => $message['message']
])
@else
<div class="alert
alert-{{ $message['level'] }}
{{ $message['important'] ? 'alert-important' : '' }}"
role="alert"
>
@if ($message['important'])
<button type="button"
class="close"
data-dismiss="alert"
aria-hidden="true"
>&times;</button>
@endif
{!! $message['message'] !!}
</div>
@endif
@endforeach
{{ session()->forget('flash_notification') }}

View File

@@ -0,0 +1,19 @@
<div id="flash-overlay-modal" class="modal fade {{ isset($modalClass) ? $modalClass : '' }}">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title">{{ $title }}</h4>
</div>
<div class="modal-body">
<p>{!! $body !!}</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>