Commit d7407903 by Bayu Hendra Winata

integrate laravolt/etalase

parent e05ea6a1
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class TestCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'command:name';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command description';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
//
}
}
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
namespace App\Exceptions; namespace App\Exceptions;
use Exception; use Exception;
use Illuminate\Auth\AuthenticationException;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
class Handler extends ExceptionHandler class Handler extends ExceptionHandler
...@@ -48,4 +49,12 @@ class Handler extends ExceptionHandler ...@@ -48,4 +49,12 @@ class Handler extends ExceptionHandler
{ {
return parent::render($request, $exception); return parent::render($request, $exception);
} }
protected function unauthenticated($request, AuthenticationException $exception)
{
return $request->expectsJson()
? response()->json(['message' => $exception->getMessage()], 401)
: redirect()->guest(route('auth::login'));
}
} }
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
namespace App\Http; namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel; use Illuminate\Foundation\Http\Kernel as HttpKernel;
use Laravolt\Ui\FlashMiddleware;
class Kernel extends HttpKernel class Kernel extends HttpKernel
{ {
...@@ -35,6 +36,7 @@ class Kernel extends HttpKernel ...@@ -35,6 +36,7 @@ class Kernel extends HttpKernel
\Illuminate\View\Middleware\ShareErrorsFromSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class, \App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class, \Illuminate\Routing\Middleware\SubstituteBindings::class,
FlashMiddleware::class,
], ],
'api' => [ 'api' => [
......
...@@ -23,6 +23,18 @@ class AppServiceProvider extends ServiceProvider ...@@ -23,6 +23,18 @@ class AppServiceProvider extends ServiceProvider
*/ */
public function register() public function register()
{ {
// $section = $this->app['laravolt.menu']->add('Sample Menu A');
// $menu = $section->add('Menu', '#')->data('icon', 'circle outline');
// foreach(range(1, 10) as $i) {
// $menu->add('Submenu '.$i, '#');
// }
// //
// $section = $this->app['laravolt.menu']->add('Sample Menu B');
// foreach(range(1, 8) as $h) {
// $menu = $section->add('Menu '.$h, '#')->data('icon', 'circle outline');
// foreach(range(1, 4) as $i) {
// $menu->add('Submenu '.$i, '#');
// }
// }
} }
} }
...@@ -3,27 +3,9 @@ ...@@ -3,27 +3,9 @@
namespace App; namespace App;
use Illuminate\Notifications\Notifiable; use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable; use Laravolt\Epicentrum\Models\User as Authenticatable;
class User extends Authenticatable class User extends Authenticatable
{ {
use Notifiable; use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
} }
...@@ -18,7 +18,13 @@ ...@@ -18,7 +18,13 @@
"fideloper/proxy": "^4.0", "fideloper/proxy": "^4.0",
"laravel/framework": "5.6.*", "laravel/framework": "5.6.*",
"laravel/tinker": "^1.0", "laravel/tinker": "^1.0",
"laravolt/auth": "dev-master" "laravolt/acl": "dev-master",
"laravolt/auth": "dev-master",
"laravolt/epicentrum": "dev-master",
"laravolt/password": "dev-master",
"laravolt/semantic-form": "dev-master",
"laravolt/suitable": "dev-master",
"laravolt/ui": "dev-master"
}, },
"require-dev": { "require-dev": {
"filp/whoops": "^2.0", "filp/whoops": "^2.0",
...@@ -38,6 +44,7 @@ ...@@ -38,6 +44,7 @@
}, },
"autoload-dev": { "autoload-dev": {
"psr-4": { "psr-4": {
"Laravolt\\Etalase\\": "packages/laravolt/etalase/src",
"Tests\\": "tests/" "Tests\\": "tests/"
} }
}, },
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "27b926a3b1ae110e688b9b485163ed16", "content-hash": "82e5fe1dacf79d7988c62c0f666ef09e",
"packages": [ "packages": [
{ {
"name": "anhskohbo/no-captcha", "name": "anhskohbo/no-captcha",
...@@ -66,6 +66,62 @@ ...@@ -66,6 +66,62 @@
"time": "2018-02-09T02:04:49+00:00" "time": "2018-02-09T02:04:49+00:00"
}, },
{ {
"name": "danielstjules/stringy",
"version": "3.1.0",
"source": {
"type": "git",
"url": "https://github.com/danielstjules/Stringy.git",
"reference": "df24ab62d2d8213bbbe88cc36fc35a4503b4bd7e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/danielstjules/Stringy/zipball/df24ab62d2d8213bbbe88cc36fc35a4503b4bd7e",
"reference": "df24ab62d2d8213bbbe88cc36fc35a4503b4bd7e",
"shasum": ""
},
"require": {
"php": ">=5.4.0",
"symfony/polyfill-mbstring": "~1.1"
},
"require-dev": {
"phpunit/phpunit": "~4.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Stringy\\": "src/"
},
"files": [
"src/Create.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Daniel St. Jules",
"email": "danielst.jules@gmail.com",
"homepage": "http://www.danielstjules.com"
}
],
"description": "A string manipulation library with multibyte support",
"homepage": "https://github.com/danielstjules/Stringy",
"keywords": [
"UTF",
"helpers",
"manipulation",
"methods",
"multibyte",
"string",
"utf-8",
"utility",
"utils"
],
"time": "2017-06-12T01:10:27+00:00"
},
{
"name": "dnoegel/php-xdg-base-dir", "name": "dnoegel/php-xdg-base-dir",
"version": "0.1", "version": "0.1",
"source": { "source": {
...@@ -964,6 +1020,76 @@ ...@@ -964,6 +1020,76 @@
"time": "2017-03-20T17:10:46+00:00" "time": "2017-03-20T17:10:46+00:00"
}, },
{ {
"name": "intervention/image",
"version": "2.4.2",
"source": {
"type": "git",
"url": "https://github.com/Intervention/image.git",
"reference": "e82d274f786e3d4b866a59b173f42e716f0783eb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Intervention/image/zipball/e82d274f786e3d4b866a59b173f42e716f0783eb",
"reference": "e82d274f786e3d4b866a59b173f42e716f0783eb",
"shasum": ""
},
"require": {
"ext-fileinfo": "*",
"guzzlehttp/psr7": "~1.1",
"php": ">=5.4.0"
},
"require-dev": {
"mockery/mockery": "~0.9.2",
"phpunit/phpunit": "^4.8 || ^5.7"
},
"suggest": {
"ext-gd": "to use GD library based image processing.",
"ext-imagick": "to use Imagick based image processing.",
"intervention/imagecache": "Caching extension for the Intervention Image library"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.4-dev"
},
"laravel": {
"providers": [
"Intervention\\Image\\ImageServiceProvider"
],
"aliases": {
"Image": "Intervention\\Image\\Facades\\Image"
}
}
},
"autoload": {
"psr-4": {
"Intervention\\Image\\": "src/Intervention/Image"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Oliver Vogel",
"email": "oliver@olivervogel.com",
"homepage": "http://olivervogel.com/"
}
],
"description": "Image handling and manipulation library with support for Laravel integration",
"homepage": "http://image.intervention.io/",
"keywords": [
"gd",
"image",
"imagick",
"laravel",
"thumbnail",
"watermark"
],
"time": "2018-05-29T14:19:03+00:00"
},
{
"name": "jakub-onderka/php-console-color", "name": "jakub-onderka/php-console-color",
"version": "0.1", "version": "0.1",
"source": { "source": {
...@@ -1051,6 +1177,71 @@ ...@@ -1051,6 +1177,71 @@
"time": "2015-04-20T18:58:01+00:00" "time": "2015-04-20T18:58:01+00:00"
}, },
{ {
"name": "jenssegers/date",
"version": "v3.4.0",
"source": {
"type": "git",
"url": "https://github.com/jenssegers/date.git",
"reference": "3f5f94f28bd5108fab011869434209101d4189ae"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/jenssegers/date/zipball/3f5f94f28bd5108fab011869434209101d4189ae",
"reference": "3f5f94f28bd5108fab011869434209101d4189ae",
"shasum": ""
},
"require": {
"nesbot/carbon": "^1.0",
"php": ">=5.6",
"symfony/translation": "^2.7|^3.0|^4.0"
},
"require-dev": {
"phpunit/phpunit": "^5.0|^6.0|^7.0",
"satooshi/php-coveralls": "^2.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.1-dev"
},
"laravel": {
"providers": [
"Jenssegers\\Date\\DateServiceProvider"
],
"aliases": {
"Date": "Jenssegers\\Date\\Date"
}
}
},
"autoload": {
"psr-4": {
"Jenssegers\\Date\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jens Segers",
"homepage": "https://jenssegers.com"
}
],
"description": "A date library to help you work with dates in different languages",
"homepage": "https://github.com/jenssegers/date",
"keywords": [
"carbon",
"date",
"datetime",
"i18n",
"laravel",
"time",
"translation"
],
"time": "2018-05-16T11:53:55+00:00"
},
{
"name": "laravel/framework", "name": "laravel/framework",
"version": "v5.6.26", "version": "v5.6.26",
"source": { "source": {
...@@ -1253,12 +1444,66 @@ ...@@ -1253,12 +1444,66 @@
"time": "2018-05-17T13:42:07+00:00" "time": "2018-05-17T13:42:07+00:00"
}, },
{ {
"name": "laravolt/acl",
"version": "9999999-dev",
"dist": {
"type": "path",
"url": "../acl",
"reference": "33f8a177df9a50270d8df14c5b8359173a631ab0",
"shasum": null
},
"require": {
"illuminate/database": "~5.4",
"illuminate/support": "~5.4",
"php": ">=7.0.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "4.0-dev"
},
"laravel": {
"providers": [
"Laravolt\\Acl\\ServiceProvider"
],
"aliases": {
"Acl": "Laravolt\\Acl\\Facade"
}
}
},
"autoload": {
"psr-4": {
"Laravolt\\Acl\\": "src"
}
},
"license": [
"MIT"
],
"authors": [
{
"name": "Bayu Hendra Winata",
"email": "uyab.exe@gmail.com",
"homepage": "http://id-laravel.com",
"role": "Developer"
}
],
"description": "Basic Laravel ACL",
"homepage": "https://github.com/laravolt/acl",
"keywords": [
"acl",
"laravolt"
],
"transport-options": {
"symlink": true
}
},
{
"name": "laravolt/auth", "name": "laravolt/auth",
"version": "9999999-dev", "version": "9999999-dev",
"dist": { "dist": {
"type": "path", "type": "path",
"url": "../auth", "url": "../auth",
"reference": "4a20bf4b3fb7de4ed2c8bd8dd4062e2e6c1fb55a", "reference": "b228ec66b769dd5a18133a5678bb139cf3adcdfc",
"shasum": null "shasum": null
}, },
"require": { "require": {
...@@ -1328,15 +1573,146 @@ ...@@ -1328,15 +1573,146 @@
} }
}, },
{ {
"name": "laravolt/password", "name": "laravolt/avatar",
"version": "2.0.4",
"source": {
"type": "git",
"url": "https://github.com/laravolt/avatar.git",
"reference": "f2fecdeea44d9e9979f1d701fdead27aa26864a4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravolt/avatar/zipball/f2fecdeea44d9e9979f1d701fdead27aa26864a4",
"reference": "f2fecdeea44d9e9979f1d701fdead27aa26864a4",
"shasum": ""
},
"require": {
"danielstjules/stringy": "~3.1",
"illuminate/cache": "~5.2",
"illuminate/support": "~5.2",
"intervention/image": "^2.1",
"php": ">=7.0"
},
"require-dev": {
"mockery/mockery": "^0.9.1",
"phpunit/phpunit": "~6.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0-dev"
},
"laravel": {
"providers": [
"Laravolt\\Avatar\\ServiceProvider"
],
"aliases": {
"Avatar": "Laravolt\\Avatar\\Facade"
}
}
},
"autoload": {
"psr-4": {
"Laravolt\\Avatar\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Bayu Hendra Winata",
"email": "uyab.exe@gmail.com",
"homepage": "http://id-laravel.com",
"role": "Developer"
}
],
"description": "Turn name, email, and any other string into beautiful, initial-based avatar.",
"homepage": "https://github.com/laravolt/avatar",
"keywords": [
"avatar",
"laravel",
"laravolt"
],
"time": "2018-06-06T21:16:18+00:00"
},
{
"name": "laravolt/epicentrum",
"version": "9999999-dev", "version": "9999999-dev",
"dist": { "dist": {
"type": "path", "type": "path",
"url": "../password", "url": "../epicentrum",
"reference": "f1585ed7a8631e60550203077c30afb7b128e0c7", "reference": "d4dd06e99dc956d799f2b6ef60d51bc7a8de16e9",
"shasum": null "shasum": null
}, },
"require": { "require": {
"illuminate/support": "~5.2",
"laravolt/acl": "dev-master",
"laravolt/avatar": "^2.0",
"laravolt/password": "^1.0",
"laravolt/semantic-form": "^1.3",
"laravolt/suitable": "dev-master",
"league/fractal": "^0.13.0",
"myclabs/php-enum": "^1.4",
"php": ">=7.0.0",
"prettus/l5-repository": "^2.6"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0-dev"
},
"laravel": {
"providers": [
"Laravolt\\Epicentrum\\ServiceProvider",
"Laravolt\\SemanticForm\\ServiceProvider",
"Laravolt\\Password\\ServiceProvider"
],
"aliases": {
"Suitable": "Laravolt\\Suitable\\Facade",
"SemanticForm": "Laravolt\\SemanticForm\\Facade"
}
}
},
"autoload": {
"psr-4": {
"Laravolt\\Epicentrum\\": "src"
}
},
"license": [
"MIT"
],
"authors": [
{
"name": "Bayu Hendra Winata",
"email": "uyab.exe@gmail.com",
"homepage": "http://id-laravel.com",
"role": "Developer"
}
],
"description": "Epic central user management for Laravel",
"homepage": "https://github.com/laravolt/epicentrum",
"keywords": [
"epicentrum",
"laravel",
"laravolt",
"user management"
],
"transport-options": {
"symlink": true
}
},
{
"name": "laravolt/password",
"version": "dev-master",
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravolt/password/zipball/f1585ed7a8631e60550203077c30afb7b128e0c7",
"reference": "f1585ed7a8631e60550203077c30afb7b128e0c7",
"shasum": ""
},
"require": {
"illuminate/auth": "~5.2", "illuminate/auth": "~5.2",
"illuminate/database": "~5.2", "illuminate/database": "~5.2",
"illuminate/support": "~5.2", "illuminate/support": "~5.2",
...@@ -1365,15 +1741,132 @@ ...@@ -1365,15 +1741,132 @@
"Laravolt\\Password\\": "src" "Laravolt\\Password\\": "src"
} }
}, },
"autoload-dev": { "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Bayu Hendra Winata",
"email": "uyab.exe@gmail.com",
"homepage": "http://id-laravel.com",
"role": "Developer"
}
],
"description": "Laravel password extended",
"homepage": "https://github.com/laravolt/password",
"keywords": [
"laravel",
"laravolt",
"password"
],
"time": "2017-10-19T07:14:01+00:00"
},
{
"name": "laravolt/semantic-form",
"version": "1.10.8",
"source": {
"type": "git",
"url": "https://github.com/laravolt/semantic-form.git",
"reference": "b8dee55f43fabcb8b2c76d168ab6f8b053bc97be"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravolt/semantic-form/zipball/b8dee55f43fabcb8b2c76d168ab6f8b053bc97be",
"reference": "b8dee55f43fabcb8b2c76d168ab6f8b053bc97be",
"shasum": ""
},
"require": {
"illuminate/support": "~5.2",
"jenssegers/date": "^3.2",
"nesbot/carbon": "~1.20",
"php": ">=5.5.0"
},
"require-dev": {
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~4.0"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"Laravolt\\SemanticForm\\ServiceProvider"
],
"aliases": {
"SemanticForm": "Laravolt\\SemanticForm\\Facade"
}
}
},
"autoload": {
"psr-4": { "psr-4": {
"Laravolt\\Password\\Test\\": "tests" "Laravolt\\SemanticForm\\": "src"
} }
}, },
"scripts": { "notification-url": "https://packagist.org/downloads/",
"test": [ "license": [
"phpunit" "MIT"
] ],
"authors": [
{
"name": "Bayu Hendra Winata",
"email": "uyab.exe@gmail.com",
"homepage": "http://id-laravel.com",
"role": "Developer"
}
],
"description": "Semantic-UI form helpers",
"homepage": "https://github.com/laravolt/semantic-form",
"keywords": [
"form",
"laravel",
"laravolt",
"semantic-ui"
],
"time": "2017-09-04T00:39:07+00:00"
},
{
"name": "laravolt/suitable",
"version": "9999999-dev",
"dist": {
"type": "path",
"url": "../suitable",
"reference": "dd1bf615517236e9fdb2584ce45b55ac42d1a598",
"shasum": null
},
"require": {
"illuminate/support": "5.2.*|5.3.*|5.4.*|5.5.*|5.6.*",
"php": ">=5.5.9"
},
"require-dev": {
"orchestra/testbench": "^3.2",
"phpunit/phpunit": "~5.0"
},
"suggest": {
"lavary/laravel-menu": "Required to render Dropdown column"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0-dev"
},
"laravel": {
"providers": [
"Laravolt\\Suitable\\ServiceProvider"
],
"aliases": {
"Suitable": "Laravolt\\Suitable\\Facade"
}
}
},
"autoload": {
"psr-4": {
"Laravolt\\Suitable\\": "src"
}
},
"autoload-dev": {
"psr-4": {
"Laravolt\\Suitable\\Test\\": "tests"
}
}, },
"license": [ "license": [
"MIT" "MIT"
...@@ -1386,12 +1879,15 @@ ...@@ -1386,12 +1879,15 @@
"role": "Developer" "role": "Developer"
} }
], ],
"description": "Laravel password extended", "description": "Semantic-UI table builder for Laravel application",
"homepage": "https://github.com/laravolt/password", "homepage": "https://github.com/laravolt/suitable",
"keywords": [ "keywords": [
"crud",
"laravel", "laravel",
"laravolt", "laravolt",
"password" "semantic UI",
"suitable",
"table"
], ],
"transport-options": { "transport-options": {
"symlink": true "symlink": true
...@@ -1403,13 +1899,13 @@ ...@@ -1403,13 +1899,13 @@
"dist": { "dist": {
"type": "path", "type": "path",
"url": "../ui", "url": "../ui",
"reference": "0cb7e802c6c195e54be5d6041088332f9b7c1bed", "reference": "84f5c0a56ec5b940195cf9be64b5c0974fceeac4",
"shasum": null "shasum": null
}, },
"require": { "require": {
"illuminate/console": "~5.4", "illuminate/console": "5.4.*|5.5.*|5.6.*",
"illuminate/support": "~5.4", "illuminate/support": "5.4.*|5.5.*|5.6.*",
"lavary/laravel-menu": "^1.6", "lavary/laravel-menu": "^1.7.2",
"php": ">=7.0.0" "php": ">=7.0.0"
}, },
"type": "library", "type": "library",
...@@ -1589,6 +2085,69 @@ ...@@ -1589,6 +2085,69 @@
"time": "2018-05-07T08:44:23+00:00" "time": "2018-05-07T08:44:23+00:00"
}, },
{ {
"name": "league/fractal",
"version": "0.13.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/fractal.git",
"reference": "3caeefbad51bce7a06947321938128512f42346c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/fractal/zipball/3caeefbad51bce7a06947321938128512f42346c",
"reference": "3caeefbad51bce7a06947321938128512f42346c",
"shasum": ""
},
"require": {
"php": ">=5.4"
},
"require-dev": {
"illuminate/contracts": "~5.0",
"mockery/mockery": "~0.9",
"pagerfanta/pagerfanta": "~1.0.0",
"phpunit/phpunit": "~4.0",
"squizlabs/php_codesniffer": "~1.5",
"zendframework/zend-paginator": "~2.3"
},
"suggest": {
"illuminate/pagination": "The Illuminate Pagination component.",
"pagerfanta/pagerfanta": "Pagerfanta Paginator",
"zendframework/zend-paginator": "Zend Framework Paginator"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "0.13-dev"
}
},
"autoload": {
"psr-4": {
"League\\Fractal\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Phil Sturgeon",
"email": "me@philsturgeon.uk",
"homepage": "http://philsturgeon.uk/",
"role": "Developer"
}
],
"description": "Handle the output of complex data structures ready for API output.",
"homepage": "http://fractal.thephpleague.com/",
"keywords": [
"api",
"json",
"league",
"rest"
],
"time": "2015-10-07T14:48:58+00:00"
},
{
"name": "monolog/monolog", "name": "monolog/monolog",
"version": "1.23.0", "version": "1.23.0",
"source": { "source": {
...@@ -1667,6 +2226,50 @@ ...@@ -1667,6 +2226,50 @@
"time": "2017-06-19T01:22:40+00:00" "time": "2017-06-19T01:22:40+00:00"
}, },
{ {
"name": "myclabs/php-enum",
"version": "1.6.1",
"source": {
"type": "git",
"url": "https://github.com/myclabs/php-enum.git",
"reference": "8c5649e4ed99acd53a40eada270154dcac089f7e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/myclabs/php-enum/zipball/8c5649e4ed99acd53a40eada270154dcac089f7e",
"reference": "8c5649e4ed99acd53a40eada270154dcac089f7e",
"shasum": ""
},
"require": {
"php": ">=5.4"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35|^5.7|^6.0",
"squizlabs/php_codesniffer": "1.*"
},
"type": "library",
"autoload": {
"psr-4": {
"MyCLabs\\Enum\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP Enum contributors",
"homepage": "https://github.com/myclabs/php-enum/graphs/contributors"
}
],
"description": "PHP Enum implementation",
"homepage": "http://github.com/myclabs/php-enum",
"keywords": [
"enum"
],
"time": "2018-05-09T08:09:15+00:00"
},
{
"name": "nesbot/carbon", "name": "nesbot/carbon",
"version": "1.25.0", "version": "1.25.0",
"source": { "source": {
...@@ -1820,6 +2423,109 @@ ...@@ -1820,6 +2423,109 @@
"time": "2018-06-08T15:26:40+00:00" "time": "2018-06-08T15:26:40+00:00"
}, },
{ {
"name": "prettus/l5-repository",
"version": "2.6.32",
"source": {
"type": "git",
"url": "https://github.com/andersao/l5-repository.git",
"reference": "f6ebfffee80a38e1d2dcf479e70b1a9ead397c24"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/andersao/l5-repository/zipball/f6ebfffee80a38e1d2dcf479e70b1a9ead397c24",
"reference": "f6ebfffee80a38e1d2dcf479e70b1a9ead397c24",
"shasum": ""
},
"require": {
"illuminate/config": "~5.0",
"illuminate/console": "~5.0",
"illuminate/database": "~5.0",
"illuminate/filesystem": "~5.0",
"illuminate/http": "~5.0",
"illuminate/pagination": "~5.0",
"illuminate/support": "~5.0",
"prettus/laravel-validation": "1.1.*"
},
"suggest": {
"league/fractal": "Required to use the Fractal Presenter (0.12.*).",
"prettus/laravel-validation": "Required to provide easy validation with the repository (1.1.*)",
"robclancy/presenter": "Required to use the Presenter Model (1.3.*)"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"Prettus\\Repository\\Providers\\RepositoryServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"Prettus\\Repository\\": "src/Prettus/Repository/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Anderson Andrade",
"email": "contato@andersonandra.de",
"role": "Developer"
}
],
"description": "Laravel 5 - Repositories to the database layer",
"keywords": [
"cache",
"eloquent",
"laravel",
"model",
"repository"
],
"time": "2018-01-27T15:53:20+00:00"
},
{
"name": "prettus/laravel-validation",
"version": "1.1.5",
"source": {
"type": "git",
"url": "https://github.com/andersao/laravel-validator.git",
"reference": "d9eb401fb3518a890b117e83bd25a4109fcdb704"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/andersao/laravel-validator/zipball/d9eb401fb3518a890b117e83bd25a4109fcdb704",
"reference": "d9eb401fb3518a890b117e83bd25a4109fcdb704",
"shasum": ""
},
"require": {
"illuminate/support": "~5.4",
"illuminate/validation": "~5.4",
"php": ">=5.4.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Prettus\\Validator\\": "src/Prettus/Validator/"
}
},
"notification-url": "https://packagist.org/downloads/",
"authors": [
{
"name": "Anderson Andrade",
"email": "contato@andersonandra.de"
}
],
"description": "Laravel Validation Service",
"keywords": [
"laravel",
"service",
"validation"
],
"time": "2017-08-28T23:28:32+00:00"
},
{
"name": "psr/container", "name": "psr/container",
"version": "1.0.0", "version": "1.0.0",
"source": { "source": {
...@@ -4885,7 +5591,10 @@ ...@@ -4885,7 +5591,10 @@
"aliases": [], "aliases": [],
"minimum-stability": "dev", "minimum-stability": "dev",
"stability-flags": { "stability-flags": {
"laravolt/auth": 20 "laravolt/acl": 20,
"laravolt/auth": 20,
"laravolt/epicentrum": 20,
"laravolt/suitable": 20
}, },
"prefer-stable": true, "prefer-stable": true,
"prefer-lowest": false, "prefer-lowest": false,
......
...@@ -150,6 +150,7 @@ return [ ...@@ -150,6 +150,7 @@ return [
/* /*
* Package Service Providers... * Package Service Providers...
*/ */
\Laravolt\Etalase\ServiceProvider::class,
/* /*
* Application Service Providers... * Application Service Providers...
......
<div class="example">
<div class="example__title">
<h2 class="ui header">{!! $title !!}</h2>
<div class="ui buttons mini">
<button class="ui button icon button--code"><i class="icon code"></i></button>
<button class="ui button icon button--copy" data-position="bottom right" data-content="Copied to clipboard" data-inverted="" data-variation="mini inverted"><i class="icon copy"></i></button>
</div>
</div>
<div class="example__code">
<pre><code class="html">{{ $content }}</code></pre>
</div>
<div class="example__preview">
{!! $content !!}
</div>
</div>
@extends('etalase::layout')
@section('content-inner')
@etalase('Breadcrumb')
<div class="ui segment basic secondary">
<div class="ui breadcrumb">
<a class="section">Home</a>
<div class="divider"> / </div>
<a class="section">Settings</a>
<div class="divider"> / </div>
<div class="active section">Theme</div>
</div>
</div>
@endetalase
<div class="ui message info">
<p>Letakkan tag breadcrumb di atas tepat di bawah <code>content__body</code> di base layout.</p>
</div>
@endsection
@extends('etalase::layout')
@section('content-inner')
@etalase('Button')
<button class="ui button primary">Primary Button</button>
<button class="ui button">Default Button</button>
@endetalase
<div class="ui message info">
<p>Usahakan dalam satu halaman hanya ada satu
<button class="ui button primary mini">Primary Button</button>
.
</p>
</div>
<div class="ui divider hidden section"></div>
@etalase('Form Button')
<form class="ui form">
<div class="field">
<label>First Name</label>
<input type="text" name="first-name" placeholder="First Name">
</div>
<div class="field">
<label>Last Name</label>
<input type="text" name="last-name" placeholder="Last Name">
</div>
<button class="ui button primary">Simpan</button>
<button class="ui button">Batal</button>
</form>
@endetalase
<div class="ui divider hidden section"></div>
@etalase('Form Button (Boxed)')
<form class="ui form segment very padded">
<div class="field">
<label>First Name</label>
<input type="text" name="first-name" placeholder="First Name">
</div>
<div class="field">
<label>Last Name</label>
<input type="text" name="last-name" placeholder="Last Name">
</div>
<button class="ui button primary">Simpan</button>
<button class="ui button">Batal</button>
</form>
@endetalase
<div class="ui message info">
<p>Posisi tombol dalam sebuah form adalah di <strong>kiri bawah</strong>.</p>
</div>
<div class="ui divider hidden section"></div>
<h3 class="ui header dividing">Referensi</h3>
<div class="ui list">
<a href="http://www.lukew.com/ff/entry.asp?571" class="item" target="_blank">http://www.lukew.com/ff/entry.asp?571
<i class="icon external"></i></a>
</div>
@endsection
@extends('etalase::layout')
@section('content-inner')
@etalase('Dashboard')
<div class="ui grid four column stackable celled">
<div class="column center aligned middle aligned">
<div class="ui statistic red">
<div class="label">
Pegawai
</div>
<div class="value">
45
</div>
<div class="label">
<i class="icon triangle up green"></i><span class="green text">12%</span>
</div>
</div>
</div>
<div class="column center aligned middle aligned">
<div class="ui statistic orange">
<div class="label">
Total Proyek
</div>
<div class="value">
98
</div>
<div class="label">
<i class="icon triangle down red"></i><span class="red text">-5%</span>
</div>
</div>
</div>
<div class="column center aligned middle aligned">
<div class="ui statistic yellow">
<div class="label">
Total Omzet
</div>
<div class="value">
9.1 M
</div>
<div class="label">
<i class="icon triangle down red"></i><span class="red text">-10%</span>
</div>
</div>
</div>
<div class="column center aligned middle aligned">
<div class="ui statistic teal">
<div class="label">
Klien
</div>
<div class="value">
27
</div>
<div class="label">
<i class="icon triangle up green"></i><span class="green text">-17%</span>
</div>
</div>
</div>
</div>
<div class="ui grid four column stackable">
<div class="column">
<div class="ui segment inverted red center aligned">
<div class="ui statistic inverted">
<div class="value">
45
</div>
<div class="label">
Pegawai
</div>
</div>
</div>
</div>
<div class="column">
<div class="ui segment inverted orange center aligned">
<div class="ui statistic inverted">
<div class="value">
98
</div>
<div class="label">
Total Proyek
</div>
</div>
</div>
</div>
<div class="column">
<div class="ui segment inverted yellow center aligned">
<div class="ui statistic inverted">
<div class="value">
9.1 M
</div>
<div class="label">
Total Omzet
</div>
</div>
</div>
</div>
<div class="column">
<div class="ui segment inverted teal center aligned">
<div class="ui statistic inverted">
<div class="value">
27
</div>
<div class="label">
Klien
</div>
</div>
</div>
</div>
</div>
<div class="ui grid stackable">
<div class="ten wide column">
<div class="ui segment padded top attached">
<h3 class="ui header">Top 10 Performer</h3>
<div id="chart-top-performer" style="height: 300px;"></div>
</div>
<div class="ui segment bottom attached" style="padding: 0">
<div class="ui grid four column stackable internally celled" style="margin:0">
<div class="column center aligned middle aligned">
<div class="ui statistic red">
<div class="value">
45
</div>
<div class="label">
Pegawai
</div>
</div>
</div>
<div class="column center aligned middle aligned">
<div class="ui statistic orange">
<div class="value">
98
</div>
<div class="label">
Total Proyek
</div>
</div>
</div>
<div class="column center aligned middle aligned">
<div class="ui statistic yellow">
<div class="value">
9M
</div>
<div class="label">
Total Omzet
</div>
</div>
</div>
<div class="column center aligned middle aligned">
<div class="ui statistic teal">
<div class="value">
27
</div>
<div class="label">
Klien
</div>
</div>
</div>
</div>
</div>
</div>
<div class="six wide column">
<div class="ui segment">
<h3 class="ui header">Project State</h3>
<!-- HTML -->
<div id="chart-pie" style="margin: auto; max-width: 360px;"></div>
<div id="chart-pie-legend" style="max-width: 360px; margin: auto;"></div>
</div>
</div>
</div>
@endetalase
@endsection
@push('head')
<link rel="stylesheet" href="{{ asset('lib/graf/grafs.css') }}">
@endpush
@push('body')
<script src="{{ asset('lib/graf/grafs.js') }}"></script>
<!-- JS -->
<script>
var data = {
labels: ['Ardin', 'Bayu', 'Citra', 'Dani', 'Eko', 'Fitrop', 'Ginanjar', 'Hendra', 'Indra', 'Joko'],
data: [130, 98, 92, 80, 80, 77, 67, 65, 63, 50],
colors: ['#DB2828']
};
var options = {shadow: false};
var line = new Grafs.Bar('#chart-top-performer', data, options);
</script>
<!-- JS -->
<script>
var data = {
labels: ["Active", "Maintenance", "Closed"],
data: [8, 3, 16],
colors: ['#96d759', '#ff8c42', '#ff4053']
};
var options = {
shadow: false,
legend: {
target: '#chart-pie-legend'
}
};
var pie = new Grafs.Pie('#chart-pie', data, options);
</script>
@endpush
@extends('etalase::layout')
@section('content-inner')
@etalase('Control Panel')
<div class="ui cards four item">
<a href="" class="card">
<div class="content">
<div class="ui segment basic center aligned very padded">
<i class="ui icon users big red"></i>
<h3 class="ui header">User Management</h3>
</div>
</div>
</a>
<a href="" class="card">
<div class="content">
<div class="ui segment basic center aligned very padded">
<i class="ui icon circle thin big orange"></i>
<h3 class="ui header">Content Management System</h3>
</div>
</div>
</a>
<a href="" class="card">
<div class="content">
<div class="ui segment basic center aligned very padded">
<i class="ui icon square outline big yellow"></i>
<h3 class="ui header">App 1</h3>
</div>
</div>
</a>
<a href="" class="card">
<div class="content">
<div class="ui segment basic center aligned very padded">
<i class="ui icon flag big olive"></i>
<h3 class="ui header">App 2</h3>
</div>
</div>
</a>
<a href="" class="card">
<div class="content">
<div class="ui segment basic center aligned very padded">
<i class="ui icon options big green"></i>
<h3 class="ui header">Preferences</h3>
</div>
</div>
</a>
<a href="" class="card">
<div class="content">
<div class="ui segment basic center aligned very padded">
<i class="ui icon database big teal"></i>
<h3 class="ui header">Database</h3>
</div>
</div>
</a>
<a href="" class="card">
<div class="content">
<div class="ui segment basic center aligned very padded">
<i class="ui icon file big blue"></i>
<h3 class="ui header">File Manager</h3>
</div>
</div>
</a>
<a href="" class="card">
<div class="content">
<div class="ui segment basic center aligned very padded">
<i class="ui icon settings big purple"></i>
<h3 class="ui header">Settings</h3>
</div>
</div>
</a>
</div>
@endetalase
@endsection
@extends('etalase::layout')
@section('content-inner')
@etalase('Summary Board')
<div class="ui celled grid">
<div class="row">
<div class="six wide column">
<div class="ui segment basic">
<h4 class="ui header centered block">Goals</h4>
<ul class="ui list">
<li>Membuat sistem pengkajian yang membantu perawat dan dokter dalam penanganan pasien</li>
</ul>
</div>
<div class="ui segment basic">
<h4 class="ui header centered block">Stakeholders</h4>
<ul class="ui list relaxed">
<li class="item">
<strong>Bu Intan (Praktisi Keperawatan dari UGM)</strong> sebagai praktisi dan knowledge source
</li>
<li class="item"><strong>Wiley (penerbit internasional)</strong> sebagai pemegang lisensi NANDA
</li>
</ul>
</div>
</div>
<div class="five wide column">
<div class="ui segment basic">
<h4 class="ui header centered block">Issues/Risks</h4>
<ul class="ui list">
<li>Belum pernah requirement secara langsung dengan user</li>
<li>Non-CRUD, secara teknis cukup menantang</li>
<li>Pengurusan lisensi melibatkan pihak asing, tidak bisa cepat</li>
</ul>
</div>
</div>
<div class="five wide column">
<div class="ui segment basic">
<h4 class="ui header centered block">Action Plan</h4>
<ul class="ui list">
<li>-</li>
<li>Assign senior programmer</li>
<li>-</li>
</ul>
</div>
</div>
</div>
<div class="row">
<div class="six wide column">
<h4 class="ui header centered block attached top">Line Up</h4>
<table class="ui table striped attached bottom padded">
<thead>
<tr>
<th>Name</th>
<th>Position</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<img src="http://a4.dev/img/bayu.jpg" class="ui image avatar">
Bayu Hendra Winata
</td>
<td>Manager</td>
</tr>
<tr>
<td>
<img src="http://a4.dev/img/sugihartono.png" class="ui image avatar">
Sugihartono
</td>
<td>Analyst</td>
</tr>
<tr>
<td>
<img src="http://a4.dev/img/dani.jpg" class="ui image avatar">
Dani Ramadani
</td>
<td>Programmer</td>
</tr>
<tr>
<td>
<img src="http://a4.dev/img/akbar.jpg" class="ui image avatar">
Akbar Adhatama
</td>
<td>Programmer</td>
</tr>
</tbody>
</table>
</div>
<div class="ten wide column">
<h4 class="ui header centered block attached top">Schedule</h4>
<table class="ui table attached bottom very compact">
<thead>
<tr>
<th class="left aligned">Agenda</th>
<th class="right aligned" style="width: 100px">Fixtures</th>
<th class="left aligned" style="width: 100px">Results</th>
</tr>
</thead>
<tbody>
<tr class="disabled">
<td><i class="icon soccer"></i> Kick Off</td>
<td class="right aligned">
<div class="ui label basic">22 Dec '15</div>
</td>
<td>
<div class="ui label red">12 Jan '16</div>
</td>
</tr>
<tr class="disabled">
<td>Requirement 1</td>
<td></td>
<td>
<div class="ui label">12 Jan</div>
</td>
</tr>
<tr class="disabled">
<td>Review 1</td>
<td></td>
<td>
<div class="ui label">12 Jan</div>
</td>
</tr>
<tr class="warning">
<td>Launching 1</td>
<td class="right aligned">
<div class="ui label basic">W4 Februari</div>
</td>
<td></td>
</tr>
<tr class="">
<td>Beta testing di RS UGM</td>
<td class="right aligned">
<div class="ui label basic">Mar-Jul</div>
</td>
<td></td>
</tr>
<tr>
<td>Demo di depan Presiden NANDA</td>
<td class="right aligned">
<div class="ui label basic">Agustus</div>
</td>
<td></td>
</tr>
<tr>
<td><i class="icon flag checkered"></i> Final Whistle</td>
<td class="right aligned"></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
@endetalase
@endsection
@extends('etalase::layout')
@section('content-inner')
@etalase('Data Definition')
<table class="ui table definition">
<tr><td>Name</td><td>Jon Dodo</td></tr>
<tr><td>Position</td><td>Web Developer</td></tr>
<tr><td>Department</td><td>Software Development</td></tr>
<tr><td>Join Date</td><td>1 February 2001</td></tr>
<tr>
<td>Skills</td>
<td>
<div class="ui label">Laravel</div>
<div class="ui label">Grails</div>
<div class="ui label">Node JS</div>
<div class="ui label">Angular</div>
<div class="ui label">Vue</div>
</td>
</tr>
</table>
@endetalase
<div class="ui divider hidden section"></div>
@etalase('Card Definition')
<div class="ui card">
<div class="image">
<img src="{{ asset('img/avatar.jpg') }}">
</div>
<div class="extra p-0">
<table class="ui table definition b-0">
<tr><td>Name</td><td>Jon Dodo</td></tr>
<tr><td>Position</td><td>Web Developer</td></tr>
<tr><td>Department</td><td>Software Development</td></tr>
<tr><td>Join Date</td><td>1 February 2001</td></tr>
</table>
</div>
</div>
@endetalase
@endsection
@extends('etalase::layout')
@section('content-inner')
<div class="ui segment basic center aligned">
<h2 class="ui header horizontal divider">Flash Message</h2>
</div>
<a name="basic"></a>
@etalase('Dark', 'etalase::example.flash.dark')
@endsection
@push('body')
<script>
$(function(){
$(document).on('click', '.ui.button.flash--success', function(){
Messenger({}).post({"message":"Success bro, good job!","type":"success"});
});
$(document).on('click', '.ui.button.flash--error', function(){
Messenger({}).post({"message":"Opps, error bro!","type":"error"});
});
$(document).on('click', '.ui.button.flash--info', function(){
Messenger({}).post({"message":"Woro-woro!","type":"info"});
});
});
</script>
@endpush
<button class="ui button flash--success"><i class="icon circle green"></i>Success</button>
<button class="ui button flash--info"><i class="icon circle blue"></i>Info</button>
<button class="ui button flash--error"><i class="icon circle red"></i>Error</button>
<script>
// Taruh kode dibawah di layout global
// Messenger.options = {
// extraClasses: 'messenger-fixed messenger-on-top animated',
// theme: 'dark' // or 'light' if you wish
// };
// Tampilkan pesan
//Messenger({}).post({"message":"Success bro, good job!","type":"success"});
//Messenger({}).post({"message":"Opps, error bro!","type":"error"});
//Messenger({}).post({"message":"Woro-woro!","type":"info"});
</script>
@extends('etalase::layout')
@section('page.title', 'Form')
@section('content-inner')
{{--<div class="ui segment basic center aligned">--}}
{{--<h2 class="ui header horizontal divider">Form</h2>--}}
{{--<div class="ui list">--}}
{{--<a href="#basic" class="item">Basic</a>--}}
{{--<a href="#advance" class="item">Advance</a>--}}
{{--<a href="#error" class="item">Error Message</a>--}}
{{--<a href="#datepicker" class="item">Datepicker</a>--}}
{{--</div>--}}
{{--</div>--}}
<div class="ui grid stackable two column">
<div class="column">
<div class="ui segment blue padded">
@etalase('Quick Example', 'etalase::example.form.quick')
</div>
<div class="ui segment green padded">
@etalase('Different Size', 'etalase::example.form.size')
</div>
<div class="ui segment orange padded">
@etalase('Input Addon', 'etalase::example.form.input')
</div>
</div>
<div class="column">
<div class="ui segment purple padded">
@etalase('Horizontal Form', 'etalase::example.form.horizontal')
</div>
<div class="ui segment red padded">
@etalase('Different Width', 'etalase::example.form.width')
</div>
<div class="ui segment yellow padded">
@etalase('General Elements', 'etalase::example.form.general')
</div>
<div class="ui segment yellow padded">
@etalase('Datepicker', 'etalase::example.form.calendar')
</div>
</div>
</div>
{{--<a name="advance"></a>--}}
{{--@etalase('Advance Form', 'etalase::example.form.advance')--}}
{{--<a name="datepicker"></a>--}}
{{--@etalase('Datepicker', 'etalase::example.form.calendar')--}}
{{--<a name="error-message"></a>--}}
{{--@etalase('Error State', 'etalase::example.form.error')--}}
@endsection
<form class="ui form">
<h4 class="ui dividing header">Shipping Information</h4>
<div class="field">
<label>Name</label>
<div class="two fields">
<div class="field">
<input type="text" name="shipping[first-name]" placeholder="First Name">
</div>
<div class="field">
<input type="text" name="shipping[last-name]" placeholder="Last Name">
</div>
</div>
</div>
<div class="field">
<label>Billing Address</label>
<div class="fields">
<div class="twelve wide field">
<input type="text" name="shipping[address]" placeholder="Street Address">
</div>
<div class="four wide field">
<input type="text" name="shipping[address-2]" placeholder="Apt #">
</div>
</div>
</div>
<div class="two fields">
<div class="field">
<label>State</label>
<select class="ui fluid dropdown search">
<option value="">State</option>
<option value="AL">Alabama</option>
<option value="AL">San Fransisco</option>
</select>
</div>
<div class="field">
<label>Country</label>
<div class="ui fluid search selection dropdown">
<input type="hidden" name="country">
<i class="dropdown icon"></i>
<div class="default text">Select Country</div>
<div class="menu">
<div class="item" data-value="af"><i class="af flag"></i>Afghanistan</div>
<div class="item" data-value="zw"><i class="zw flag"></i>Zimbabwe</div>
</div>
</div>
</div>
</div>
<h4 class="ui dividing header">Billing Information</h4>
<div class="field">
<label>Card Type</label>
<div class="ui selection dropdown">
<input type="hidden" name="card[type]">
<div class="default text">Type</div>
<i class="dropdown icon"></i>
<div class="menu">
<div class="item" data-value="visa">
<i class="visa icon"></i>
Visa
</div>
<div class="item" data-value="amex">
<i class="amex icon"></i>
American Express
</div>
<div class="item" data-value="discover">
<i class="discover icon"></i>
Discover
</div>
</div>
</div>
</div>
<div class="fields">
<div class="seven wide field">
<label>Card Number</label>
<input type="text" name="card[number]" maxlength="16" placeholder="Card #">
</div>
<div class="three wide field">
<label>CVC</label>
<input type="text" name="card[cvc]" maxlength="3" placeholder="CVC">
</div>
<div class="six wide field">
<label>Expiration</label>
<div class="two fields">
<div class="field">
<select class="ui fluid search dropdown" name="card[expire-month]">
<option value="">Month</option>
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
</div>
<div class="field">
<input type="text" name="card[expire-year]" maxlength="4" placeholder="Year">
</div>
</div>
</div>
</div>
<button type="submit" class="ui button primary" tabindex="0">Submit Order</button>
<a class="ui button">Cancel</a>
</form>
<form class="ui form">
<div class="field">
<label>First Name</label>
<input type="text" name="first-name" placeholder="First Name">
</div>
<div class="field">
<label>Last Name</label>
<input type="text" name="last-name" placeholder="Last Name">
</div>
<div class="field">
<label>Nationality</label>
<select class="ui dropdown search">
<option value="1">Indonesia</option>
<option value="2">Malaysia</option>
<option value="3">Thailand</option>
</select>
</div>
<div class="field">
<label>Hobby</label>
<div class="inline fields">
<div class="field">
<div class="ui checkbox">
<input type="checkbox" name="hobby[]">
<label>Coding</label>
</div>
</div>
<div class="field">
<div class="ui checkbox">
<input type="checkbox" name="hobby[]">
<label>Gaming</label>
</div>
</div>
</div>
</div>
<div class="field">
<label>Gender</label>
<div class="field">
<div class="ui checkbox radio">
<input type="radio" name="gender">
<label>Male</label>
</div>
</div>
<div class="field">
<div class="ui checkbox radio">
<input type="radio" name="gender">
<label>Female</label>
</div>
</div>
</div>
<div class="field">
<label>Do you have any feedback for us?</label>
<textarea rows="5"></textarea>
</div>
<div class="ui divider hidden"></div>
<div class="field">
<div class="ui checkbox">
<input type="checkbox">
<label>I agree to the Terms and Conditions</label>
</div>
</div>
<div class="ui divider hidden"></div>
<button class="ui button primary" type="submit">Submit</button>
<a class="ui button">Cancel</a>
</form>
<div class="ui calendar" data-format="YYYY-MM-DD">
<div class="ui input left icon">
<i class="calendar icon"></i>
<input type="text">
</div>
</div>
<form class="ui form">
<div class="field">
<label>First Name</label>
<input type="text" name="first-name" value="Jon Dodo">
</div>
<div class="field error">
<label>Last Name</label>
<input type="text" name="last-name" placeholder="Last Name">
</div>
<div class="field error">
<label>Nationality</label>
<select class="ui dropdown search">
<option value="1">Indonesia</option>
<option value="2">Malaysia</option>
<option value="3">Thailand</option>
</select>
</div>
<button class="ui button primary" type="submit">Submit</button>
<a class="ui button">Cancel</a>
</form>
<form action="" class="ui form">
<div class="field">
<label for="">Text</label>
<input type="text">
</div>
<div class="field disabled">
<label for="">Text Disabled</label>
<input type="text" disabled>
</div>
<div class="field">
<label for="">Textarea</label>
<textarea name="" id="" cols="30" rows="3"></textarea>
</div>
<div class="field disabled">
<label for="">Textarea Disabled</label>
<textarea name="" id="" cols="30" rows="3" disabled></textarea>
</div>
<div class="field error">
<label>Input with error</label>
<input type="text" name="first-name" value="Jon Dodo">
</div>
<div class="field">
<label>Hobby</label>
<div class="inline fields">
<div class="field">
<div class="ui checkbox">
<input type="checkbox" name="hobby[]">
<label>Coding</label>
</div>
</div>
<div class="field">
<div class="ui checkbox">
<input type="checkbox" name="hobby[]">
<label>Gaming</label>
</div>
</div>
</div>
</div>
<div class="field">
<label>Gender</label>
<div class="field">
<div class="ui checkbox radio">
<input type="radio" name="gender">
<label>Male</label>
</div>
</div>
<div class="field">
<div class="ui checkbox radio">
<input type="radio" name="gender">
<label>Female</label>
</div>
</div>
</div>
<div class="field">
<label>Select</label>
<select class="ui dropdown search">
<option value="1">Indonesia</option>
<option value="2">Malaysia</option>
<option value="3">Thailand</option>
</select>
</div>
<div class="field disabled">
<label>Select Disabled</label>
<select class="ui dropdown search" disabled>
<option value="1">Indonesia</option>
<option value="2">Malaysia</option>
<option value="3">Thailand</option>
</select>
</div>
<div class="field">
<label>Multiple Select</label>
<select class="ui dropdown search" multiple>
<option value="1">Indonesia</option>
<option value="2">Malaysia</option>
<option value="3">Thailand</option>
</select>
</div>
</form>
<div class="ui form">
<div class="inline fields">
<label class="field four wide column">Email</label>
<div class="field twelve wide column">
<input type="text" placeholder="Email">
</div>
</div>
<div class="inline fields">
<label class="field four wide column">Password</label>
<div class="field twelve wide column">
<input type="text" placeholder="Password">
</div>
</div>
<div class="inline fields">
<label class="field four wide column"></label>
<div class="field twelve wide column">
<div class="ui checkbox">
<input type="checkbox">
<label>Remember Me</label>
</div>
</div>
</div>
<div class="inline fields">
<label class="field four wide column"></label>
<div class="field twelve wide column">
<button class="ui button primary" type="submit">Sign In</button>
</div>
</div>
</div>
<form class="ui form">
<div class="field">
{!! SemanticForm::input('username')->placeholder('Username')->prependLabel('@') !!}
</div>
<div class="field">
{!! SemanticForm::input('username')->placeholder('Username')->appendLabel('.00', 'basic') !!}
</div>
<div class="field">
{!! SemanticForm::input('username')->placeholder('Username')->prependLabel('$', 'basic')->appendLabel('.00') !!}
</div>
<div class="field">
{!! SemanticForm::input('username')->placeholder('Email')->prependIcon('mail') !!}
</div>
<div class="field">
{!! SemanticForm::input('username')->placeholder('')->appendIcon('check') !!}
</div>
<div class="field">
{!! SemanticForm::input('username')->placeholder('')->appendIcon('check', 'green') !!}
</div>
<div class="field">
<div class="ui icon input loading">
<input type="text" placeholder="Search...">
<i class="search icon"></i>
</div>
</div>
<div class="field">
<div class="ui right labeled input">
<input type="text" placeholder="Find domain">
<div class="ui dropdown label">
<div class="text">.com</div>
<i class="dropdown icon"></i>
<div class="menu">
<div class="item">.com</div>
<div class="item">.net</div>
<div class="item">.org</div>
</div>
</div>
</div>
</div>
<div class="field">
<div class="ui action input">
<input type="text" placeholder="Search...">
<select class="ui compact selection dropdown">
<option value="all">All</option>
<option selected="" value="articles">Articles</option>
<option value="products">Products</option>
</select>
<div type="submit" class="ui button">Search</div>
</div>
</div>
</form>
<form class="ui form">
<div class="field">
<label>Email address</label>
<input type="text" name="email" placeholder="Enter email">
</div>
<div class="field">
<label>Password</label>
<input type="password" name="password" placeholder="Password">
</div>
<div class="field">
<label>File input</label>
<input type="file">
</div>
<div class="field">
<div class="ui checkbox">
<input type="checkbox">
<label>I agree to the Terms and Conditions</label>
</div>
</div>
<div class="field">
<button class="ui button primary" type="submit">Submit</button>
</div>
</form>
<form class="ui form mini">
<div class="field">
<input type="text" name="email" placeholder="mini">
</div>
</form>
<div class="ui divider hidden"></div>
<form class="ui form tiny">
<div class="field">
<input type="text" name="email" placeholder="tiny">
</div>
</form>
<div class="ui divider hidden"></div>
<form class="ui form small">
<div class="field">
<input type="text" name="email" placeholder="small">
</div>
</form>
<div class="ui divider hidden"></div>
<form class="ui form">
<div class="field">
<input type="text" name="email" placeholder="default">
</div>
</form>
<div class="ui divider hidden"></div>
<form class="ui form large">
<div class="field">
<input type="text" name="email" placeholder="large">
</div>
</form>
<div class="ui divider hidden"></div>
<form class="ui form big">
<div class="field">
<input type="text" name="email" placeholder="big">
</div>
</form>
<div class="ui divider hidden"></div>
<form class="ui form huge">
<div class="field">
<input type="text" name="email" placeholder="huge">
</div>
</form>
<div class="ui divider hidden"></div>
<form class="ui form massive">
<div class="field">
<input type="text" name="email" placeholder="massive">
</div>
</form>
<form class="ui form">
<div class="fields">
<div class="field">
<input type="text" name="email" placeholder="equal width">
</div>
<div class="field">
<input type="text" name="email" placeholder="equal width">
</div>
<div class="field">
<input type="text" name="email" placeholder="equal width">
</div>
</div>
<div class="fields">
<div class="three wide field">
<input type="text" name="email" placeholder="three wide">
</div>
<div class="four wide field">
<input type="text" name="email" placeholder="four wide">
</div>
<div class="nine wide field">
<input type="text" name="email" placeholder="nine wide">
</div>
</div>
</form>
@extends('etalase::layout')
@section('page.title', 'Inbox')
@section('content-inner')
<div class="ui grid stackable">
<div class="column four wide">
<div class="ui vertical menu">
<a class="active item">
<div class="ui small label">19</div>
<i class="icon inbox"></i>
Inbox
</a>
<a class="item">
<div class="ui small label">1</div>
<i class="icon star yellow"></i>
Starred
</a>
<a class="item">
<div class="ui small label">5</div>
<i class="icon bookmark"></i>
Important
</a>
<a class="item">
<div class="ui small label">12</div>
<i class="icon mail"></i>
Sent Mail
</a>
<a class="item">
<div class="ui small label">51</div>
<i class="icon ban"></i>
Spam
</a>
</div>
<div class="ui vertical menu">
<div class="item"><h4 class="ui header">Filter by label:</h4></div>
<a class="item">
<div class="ui red empty circular label"></div>
Important
</a>
<a class="item">
<div class="ui teal empty circular label"></div>
Work
</a>
<a class="item">
<div class="ui blue empty circular label"></div>
Interesting
</a>
<a class="item">
<div class="ui orange empty circular label"></div>
Discussion
</a>
</div>
</div>
<div class="column twelve wide">
<div class="ui segment top attached">
<form action="" class="ui form">
<div class="field">
<div class="ui icon input transparent">
<input type="text" placeholder="Search...">
<i class="search icon"></i>
</div>
</div>
</form>
</div>
<div class="ui segment attached secondary">
<div class="ui checkbox" data-toggle="checkall" data-selector=".checkbox[data-type='check-all-child']">
<input type="checkbox">
</div>
<div class="ui buttons small">
<div class="ui button icon" data-tooltip="Archive" data-inverted="true"><i class="icon archive"></i></div>
<div class="ui button icon" data-tooltip="Label" data-inverted="true"><i class="icon tag"></i></div>
<div class="ui button icon" data-tooltip="Move to trash" data-inverted="true"><i class="icon trash"></i></div>
</div>
<button class="ui button primary right floated"><i class="icon plus"></i> Compose</button>
</div>
<table class="ui table attached single line fixed">
@foreach(range(1, 23) as $i => $item)
<tr>
<td width="60">
<div class="ui checkbox" data-type="check-all-child">
<input type="checkbox" name="_ids[]" value="{{ $i }}">
</div>
<i class="icon star {{ $faker->randomElement(['empty', 'yellow']) }}"></i>
</td>
<td width="120"><strong>{{ $faker->name }}</strong></td>
<td>
@if($i % 4 == 0)
<div class="ui label red mini">Important</div>
@endif
@if($i % 3 == 0)
<div class="ui label red teal mini">Work</div>
@endif
{{ $faker->paragraph(3) }}
</td>
<td width="70">{{ $faker->date('j M') }}</td>
</tr>
@endforeach
</tbody>
</table>
<div class="ui menu bottom attached">
<div class="item borderless">
<small>Menampilkan 1-9 dari total 9</small>
</div>
<ul class="menu attached right bottom">
<div class="item disabled"><i class="icon angle left"></i></div>
<a class="item active">1</a>
<a class="item">2</a>
<a class="item"><i class="icon angle right"></i></a>
</ul>
</div>
</div>
</div>
@endsection
@extends('etalase::layout')
@section('content-inner')
@etalase('Application Launcher')
<div class="ui cards four item">
<a href="" class="card">
<div class="content">
<div class="ui segment basic center aligned padded">
<img src="http://www.lkpp.go.id/v3/files/apps/inaproc.png" alt="" class="ui image tiny">
<h3 class="ui header">INAPROC</h3>
</div>
</div>
</a>
<a href="" class="card">
<div class="content">
<div class="ui segment basic center aligned padded">
<img src="http://www.lkpp.go.id/v3/files/apps/portalintranet.jpg" alt="" class="ui image tiny">
<h3 class="ui header">Portal Intranet</h3>
</div>
</div>
</a>
<a href="" class="card">
<div class="content">
<div class="ui segment basic center aligned padded">
<img src="http://www.lkpp.go.id/v3/files/apps/k_smart_report.png" alt="" class="ui image tiny">
<h3 class="ui header">Smart Report</h3>
</div>
</div>
</a>
<a href="" class="card">
<div class="content">
<div class="ui segment basic center aligned padded">
<img src="http://www.lkpp.go.id/v3/files/apps/monev-trans.png" alt="" class="ui image tiny">
<h3 class="ui header">Monev</h3>
</div>
</div>
</a>
<a href="" class="card">
<div class="content">
<div class="ui segment basic center aligned padded">
<img src="http://www.lkpp.go.id/v3/files/apps/icon-e-proc.png" alt="" class="ui image tiny">
<h3 class="ui header">Portal Eproc</h3>
</div>
</div>
</a>
<a href="" class="card">
<div class="content">
<div class="ui segment basic center aligned padded">
<img src="http://www.lkpp.go.id/v3/files/apps/18-Agustus-2016---Ikon-Logo-SiULP-Revisi-1.png" alt="" class="ui image tiny">
<h3 class="ui header">SIULP</h3>
</div>
</div>
</a>
<a href="" class="card">
<div class="content">
<div class="ui segment basic center aligned padded">
<img src="http://www.lkpp.go.id/v3/files/apps/b2g.png" alt="" class="ui image tiny">
<h3 class="ui header">B2G</h3>
</div>
</div>
</a>
<a href="" class="card">
<div class="content">
<div class="ui segment basic center aligned padded">
<img src="http://www.lkpp.go.id/v3/files/apps/k_adp.png" alt="" class="ui image tiny">
<h3 class="ui header">ADP</h3>
</div>
</div>
</a>
</div>
@endetalase
@endsection
@extends('ui::layouts.app')
@section('content')
<div class="ui container">
<div class="ui message">Standard content</div>
</div>
<div class="ui divider hidden section"></div>
<div class="ui segment secondary attached very padded">
Full width content
</div>
<div class="ui divider hidden section"></div>
<div class="ui container text">
<h3 class="ui header">Text Content (Readable)</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad alias aspernatur consectetur cupiditate debitis delectus et, eum fuga, impedit magni mollitia natus perferendis porro quia sit temporibus veritatis. Eveniet, labore.</p>
</div>
@endsection
@extends('etalase::layout')
@section('content-inner')
<div class="ui message">Content goes here...</div>
@endsection
@extends('etalase::layout')
@section('content-inner')
<form action="" class="ui form">
<div class="field">
<label for="">Destination</label>
<select class="ui search">
</select>
</div>
</form>
@endsection
@push('body')
<script>
$(function () {
$('.ui.search')
.dropdown({
apiSettings: {
url: '{{ url('etalase/search') }}/{query}'
},
saveRemoteData: false
});
});
</script>
@endpush
@extends('etalase::layout')
@section('content-inner')
@etalase('Padding')
<div class="ui segment p-0">
No padding
</div>
<div class="ui segment p-x-0">
No horizontal padding
</div>
<div class="ui segment p-y-0">
No vertical padding
</div>
<div class="ui segment p-2">
Double padding
</div>
@endetalase
<div class="ui divider hidden section"></div>
@etalase('Margin')
<div class="ui segment m-0">
No margin
</div>
<p>content here...</p>
<div class="ui segment m-1">
Margin all
</div>
<p>content here...</p>
<div class="ui segment m-2">
Double margin all
</div>
<p>content here...</p>
@endetalase
<div class="ui divider hidden section"></div>
<h2 class="ui header">Available Class</h2>
<div class="ui grid stackable two column">
<div class="column">
<h3 class="ui header">Padding</h3>
<pre><code>
.p-0
.p-t-0
.p-r-0
.p-b-0
.p-l-0
.p-x-0
.p-y-0
.p-1
.p-t-1
.p-r-1
.p-b-1
.p-l-1
.p-x-1
.p-y-1
.p-2
.p-t-2
.p-r-2
.p-b-2
.p-l-2
.p-x-2
.p-y-2
</code></pre>
</div>
<div class="column">
<h3 class="ui header">Margin</h3>
<pre><code>
.m-0
.m-t-0
.m-r-0
.m-b-0
.m-l-0
.m-x-0
.m-y-0
.m-1
.m-t-1
.m-r-1
.m-b-1
.m-l-1
.m-x-1
.m-y-1
.m-2
.m-t-2
.m-r-2
.m-b-2
.m-l-2
.m-x-2
.m-y-2
</code></pre>
</div>
</div>
@endsection
@extends('etalase::layout')
@section('content-inner')
<div class="ui segment basic center aligned">
<h2 class="ui header horizontal divider">Table</h2>
<div class="ui list">
<a href="#basic" class="item">Basic</a>
<a href="#dropdown" class="item">Dropdown Action</a>
<a href="#single-line" class="item">Single Line</a>
<a href="#datatable" class="item">Datatable</a>
</div>
</div>
<a name="basic"></a>
@etalase('Basic Table', 'etalase::example.table.basic')
<div class="ui message warning">
Gunakan inline action jika tombol aksinya tidak terlalu banyak (maksimal 3).
Jika pilihan aksi lebih dari 3, gunakan dropdown seperti contoh di bawah ini.
</div>
<div class="ui divider hidden section"></div>
<a name="dropdown"></a>
@etalase('Dropdown Action', 'etalase::example.table.dropdown')
<div class="ui divider hidden section"></div>
<a name="single-line"></a>
@etalase('Single Line', 'etalase::example.table.single')
<div class="ui message warning">
<p>Jika konten yang ditampilkan sangat panjang, gunakan jenis tabel single line agar tampilan lebih nyaman dilihat.</p>
<p>Jangan lupa untuk <strong>mengatur width</strong> masing-masing kolom.</p>
</div>
<div class="ui divider hidden section"></div>
<a name="datatable"></a>
@etalase('Datatable', 'etalase::example.table.datatable')
@endsection
<table class="ui table fixed">
<thead>
<tr>
<th>Nama</th>
<th width="25%">Email</th>
<th width="25%">Status</th>
<th width="150">Action</th>
</tr>
</thead>
<tbody>
@foreach(range(1,3) as $item)
<tr>
<td>{{ $faker->name }}</td>
<td>{{ $faker->safeEmail }}</td>
<td>
<div class="ui label">ACTIVE</div>
</td>
<td>
<a class="ui button mini" href="">Edit</a>
<a class="ui button icon mini" href=""><i class="icon trash"></i></a>
</td>
</tr>
@endforeach
</tbody>
</table>
<div class="ui menu top attached">
<div class="item borderless">
<h3>Datatable</h3>
</div>
<div class="right menu">
<div class="item">
<form>
<div class="ui transparent icon input">
<input class="prompt" name="search" value="" type="text" placeholder="Cari...">
<i class="search link icon"></i>
</div>
</form>
</div>
</div>
</div>
<table class="ui table attached single line fixed">
<thead>
<tr>
<th width="50">
<div class="ui checkbox" data-toggle="checkall" data-selector=".checkbox[data-type='check-all-child']">
<input type="checkbox">
</div>
</th>
<th>Title</th>
<th width="50%">Content</th>
<th width="150">Category</th>
<th width="100">Published Date</th>
</tr>
</thead>
<tbody>
@foreach(range(1,3) as $i => $item)
<tr>
<td>
<div class="ui checkbox" data-type="check-all-child">
<input type="checkbox" name="_ids[]" value="{{ $i }}">
</div>
</td>
<td>{{ $faker->sentence(3) }}</td>
<td>{{ $faker->paragraph(3) }}</td>
<td>Uncategorize</td>
<td>{{ $faker->date('j F Y') }}</td>
</tr>
@endforeach
</tbody>
</table>
<div class="ui menu bottom attached">
<div class="item borderless">
<small>Menampilkan 1-9 dari total 9</small>
</div>
<ul class="menu attached right bottom">
<div class="item disabled"><i class="icon angle left"></i></div>
<a class="item active">1</a>
<a class="item">2</a>
<a class="item"><i class="icon angle right"></i></a>
</ul>
</div>
<table class="ui table">
<thead>
<tr>
<th>Nama</th>
<th width="25%">Email</th>
<th width="25%">Status</th>
<th width="150"></th>
</tr>
</thead>
<tbody>
@foreach(range(1,3) as $item)
<tr>
<td>{{ $faker->name }}</td>
<td>{{ $faker->safeEmail }}</td>
<td>
<div class="ui label">ACTIVE</div>
</td>
<td>
<div class="ui dropdown button mini">
Action
<i class="dropdown icon"></i>
<div class="menu">
<a href="#" class="item"><i class="icon user"></i> View Profile</a>
<a href="#" class="item"><i class="icon edit"></i> Edit</a>
<a href="#" class="item"><i class="icon ban"></i> Ban...</a>
<div class="divider"></div>
<a href="#" class="item"><i class="icon trash"></i> Delete...</a>
</div>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
<table class="ui table single line fixed">
<thead>
<tr>
<th>Title</th>
<th width="50%">Content</th>
<th width="150">Category</th>
<th width="150">Published Date</th>
</tr>
</thead>
<tbody>
@foreach(range(1,3) as $item)
<tr>
<td>{{ $faker->sentence(10) }}</td>
<td>{{ $faker->paragraph(3) }}</td>
<td>Uncategorized</td>
<td>{{ $faker->date('j F Y') }}</td>
</tr>
@endforeach
</tbody>
</table>
@extends('etalase::layout')
@section('content-inner')
@etalase('Text Color')
@foreach(['red', 'orange', 'yellow', 'olive', 'green', 'teal', 'blue', 'violet', 'purple', 'pink', 'brown', 'grey', 'black'] as $color)
<div class="{{ $color }} text">{{ $color }}</div>
@endforeach
@endetalase
@endsection
@extends('ui::layouts.app')
@section('content')
@yield('content-inner')
@endsection
@push('head')
<link rel="stylesheet" type="text/css" href="{{ asset('lib/highlightjs/github.css') }}"/>
<style>
.example {
position: relative;
}
.example .example__title {
margin-bottom: 2rem;
}
.example .example__title .ui.header {
}
.example .example__title .buttons {
position: absolute;
top: 0;
right: 0;
}
.example .example__code {
display: none;
max-height: 400px;
overflow: auto;
margin-bottom: 2rem;
}
.example .example__code pre {
margin: 0;
}
</style>
@endpush
@push('body')
<script type="text/javascript" src="{{ asset('lib/highlightjs/highlight.pack.js') }}"></script>
<script src="{{ asset('lib/clipboard/clipboard.min.js') }}"></script>
<script>
$(document).ready(function () {
$('.example pre code').each(function (i, block) {
hljs.highlightBlock(block);
});
$('.example').on('click', '.button--code', function (e) {
$(e.delegateTarget).find('.example__code').toggle();
});
$('.example .button--copy').popup({
on: 'manual'
});
clipboard = new Clipboard('.example .button--copy', {
text: function (trigger) {
return $(trigger).closest('.example').find('.example__preview').html();
}
});
clipboard.on('success', function (e) {
$(e.trigger).popup('show');
setTimeout(function(){
$(e.trigger).popup('hide');
}, 2000);
});
$('.ui.calendar').each(function (idx, elm) {
elm = $(elm);
var format = elm.data('format');
if (!format) {
format = 'YYYY/MM/DD';
}
elm.calendar({
type: 'date',
formatter: {
date: function (date, settings) {
if (!date) {
return '';
}
var DD = ("0" + date.getDate()).slice(-2);
var MM = ("0" + (date.getMonth() + 1)).slice(-2);
var MMMM = settings.text.months[date.getMonth()];
var YY = date.getFullYear().toString().substr(2, 2);
var YYYY = date.getFullYear();
return format.replace('DD', DD).replace('MMMM', MMMM).replace('MM', MM).replace('YYYY', YYYY).replace('YY', YY);
}
}
});
});
Messenger.options = {
extraClasses: 'messenger-fixed messenger-on-top animated',
theme: 'dark'
};
});
</script>
@endpush
@extends('ui::layouts.back')
@section('content')
<div class="ui message warning">Halaman yang Anda minta tidak tersedia.</div>
@endsection
<?php
namespace Laravolt\Etalase;
class Etalase
{
protected $title = 'Untitled';
public function start($title, $view = '')
{
$this->title = $title;
if ($view === '') {
ob_start();
} else {
$content = view($view)->render();
$title = $this->title;
return view('etalase::container', compact('content', 'title'));
}
}
public function stop()
{
$content = ob_get_clean();
$title = $this->title;
return view('etalase::container', compact('content', 'title'));
}
}
<?php
namespace Laravolt\Etalase;
use App\User;
use Faker\Factory;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider as BaseServiceProvider;
/**
* Class PackageServiceProvider
*
* @package Laravolt\Ui
* @see http://laravel.com/docs/master/packages#service-providers
* @see http://laravel.com/docs/master/providers
*/
class ServiceProvider extends BaseServiceProvider
{
public function register()
{
$this->app->singleton('laravolt.etalase', function(){
return new Etalase();
});
}
public function boot()
{
$this->loadViewsFrom(realpath(__DIR__.'/../resources/views'), 'etalase');
$this->loadRoutes();
$this->registerMenu();
$this->registerBlade();
$this->registerVariables();
//auth()->login(User::first());
}
protected function loadRoutes()
{
/**
* @var \Illuminate\Routing\Router $router
*/
$router = $this->app['router'];
$router->group(['prefix' => 'etalase', 'middleware' => ['web']], function () use ($router) {
$router->get('search/{query?}', function($query){
$data = \Indonesia::search($query)->paginateVillages();
$results = [];
foreach($data as $village) {
$data->load('district.city.province');
$results[] = [
'name' => "<strong>$village->name</strong>, $village->district_name, $village->city_name, $village->province_name",
'description' => "$village->name, $village->district_name, $village->city_name, $village->province_name",
'value' => $village->id,
];
}
$json = ['success' => true, 'results' => $results];
return response()->json($json);
});
$router->get('{page}', function ($page) {
try {
return view('etalase::example.'.$page);
} catch (\Exception $e) {
return view('etalase::missing', compact('page'));
}
})->where('page', '.*');
});
}
protected function registerMenu()
{
if ($this->app->bound('laravolt.menu')) {
$menu = $this->app['laravolt.menu']->add('UI Element')->data('icon', 'puzzle');
$menu->add('Button', url('etalase/button'));
$menu->add('Definition', url('etalase/definition'));
$menu->add('Table', url('etalase/table'));
$menu->add('Form', url('etalase/form'));
$menu->add('Flash Message', url('etalase/flash'));
$menu->add('Breadcrumb', url('etalase/breadcrumb'));
$menu = $this->app['laravolt.menu']->add('Layout')->data('icon', 'block layout');
$menu->add('Sidebar', url('etalase/layout/sidebar'));
$menu->add('Minimalist', url('etalase/layout/minimalist'));
$menu = $this->app['laravolt.menu']->add('Utility')->data('icon', 'high battery');
$menu->add('Text Color', url('etalase/text'));
$menu->add('Spacing', url('etalase/spacing'));
$menu = $this->app['laravolt.menu']->add('Sample Page')->data('icon', 'browser');
$menu->add('Dashboard', url('etalase/dashboard'));
$menu->add('Control Panel', url('etalase/dashboard/control-panel'));
$menu->add('Launcher', url('etalase/launcher'));
$menu->add('Summary Board', url('etalase/dashboard/summary'));
$menu->add('Inbox', url('etalase/inbox'));
$menu->add('Dropdown Shipping', url('etalase/shipping'));
}
}
protected function registerBlade()
{
Blade::directive('etalase', function($expression) {
return "<?php echo app('laravolt.etalase')->start($expression); ?>";
});
Blade::directive('endetalase', function($expression) {
return "<?php echo app('laravolt.etalase')->stop(); ?>";
});
}
protected function registerVariables()
{
View::composer('etalase::*', function($view){
$faker = Factory::create();
$view->with('faker', $faker);
});
}
}
/Volumes/Uyab/Code/laravolt/ui/src/../public
\ No newline at end of file
/*!
* clipboard.js v1.5.12
* https://zenorocha.github.io/clipboard.js
*
* Licensed MIT © Zeno Rocha
*/
!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Clipboard=t()}}(function(){var t,e,n;return function t(e,n,o){function i(a,c){if(!n[a]){if(!e[a]){var s="function"==typeof require&&require;if(!c&&s)return s(a,!0);if(r)return r(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=n[a]={exports:{}};e[a][0].call(u.exports,function(t){var n=e[a][1][t];return i(n?n:t)},u,u.exports,t,e,n,o)}return n[a].exports}for(var r="function"==typeof require&&require,a=0;a<o.length;a++)i(o[a]);return i}({1:[function(t,e,n){var o=t("matches-selector");e.exports=function(t,e,n){for(var i=n?t:t.parentNode;i&&i!==document;){if(o(i,e))return i;i=i.parentNode}}},{"matches-selector":5}],2:[function(t,e,n){function o(t,e,n,o,r){var a=i.apply(this,arguments);return t.addEventListener(n,a,r),{destroy:function(){t.removeEventListener(n,a,r)}}}function i(t,e,n,o){return function(n){n.delegateTarget=r(n.target,e,!0),n.delegateTarget&&o.call(t,n)}}var r=t("closest");e.exports=o},{closest:1}],3:[function(t,e,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){var e=Object.prototype.toString.call(t);return"[object Function]"===e}},{}],4:[function(t,e,n){function o(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!c.string(e))throw new TypeError("Second argument must be a String");if(!c.fn(n))throw new TypeError("Third argument must be a Function");if(c.node(t))return i(t,e,n);if(c.nodeList(t))return r(t,e,n);if(c.string(t))return a(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function i(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}function r(t,e,n){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,n)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,n)})}}}function a(t,e,n){return s(document.body,t,e,n)}var c=t("./is"),s=t("delegate");e.exports=o},{"./is":3,delegate:2}],5:[function(t,e,n){function o(t,e){if(r)return r.call(t,e);for(var n=t.parentNode.querySelectorAll(e),o=0;o<n.length;++o)if(n[o]==t)return!0;return!1}var i=Element.prototype,r=i.matchesSelector||i.webkitMatchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector;e.exports=o},{}],6:[function(t,e,n){function o(t){var e;if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName)t.focus(),t.setSelectionRange(0,t.value.length),e=t.value;else{t.hasAttribute("contenteditable")&&t.focus();var n=window.getSelection(),o=document.createRange();o.selectNodeContents(t),n.removeAllRanges(),n.addRange(o),e=n.toString()}return e}e.exports=o},{}],7:[function(t,e,n){function o(){}o.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){function o(){i.off(t,o),e.apply(n,arguments)}var i=this;return o._=e,this.on(t,o,n)},emit:function(t){var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,i=n.length;for(o;i>o;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],i=[];if(o&&e)for(var r=0,a=o.length;a>r;r++)o[r].fn!==e&&o[r].fn._!==e&&i.push(o[r]);return i.length?n[t]=i:delete n[t],this}},e.exports=o},{}],8:[function(e,n,o){!function(i,r){if("function"==typeof t&&t.amd)t(["module","select"],r);else if("undefined"!=typeof o)r(n,e("select"));else{var a={exports:{}};r(a,i.select),i.clipboardAction=a.exports}}(this,function(t,e){"use strict";function n(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var i=n(e),r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},a=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),c=function(){function t(e){o(this,t),this.resolveOptions(e),this.initSelection()}return t.prototype.resolveOptions=function t(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.action=e.action,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""},t.prototype.initSelection=function t(){this.text?this.selectFake():this.target&&this.selectTarget()},t.prototype.selectFake=function t(){var e=this,n="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return e.removeFake()},this.fakeHandler=document.body.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[n?"right":"left"]="-9999px",this.fakeElem.style.top=(window.pageYOffset||document.documentElement.scrollTop)+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,document.body.appendChild(this.fakeElem),this.selectedText=(0,i.default)(this.fakeElem),this.copyText()},t.prototype.removeFake=function t(){this.fakeHandler&&(document.body.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(document.body.removeChild(this.fakeElem),this.fakeElem=null)},t.prototype.selectTarget=function t(){this.selectedText=(0,i.default)(this.target),this.copyText()},t.prototype.copyText=function t(){var e=void 0;try{e=document.execCommand(this.action)}catch(n){e=!1}this.handleResult(e)},t.prototype.handleResult=function t(e){e?this.emitter.emit("success",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)}):this.emitter.emit("error",{action:this.action,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})},t.prototype.clearSelection=function t(){this.target&&this.target.blur(),window.getSelection().removeAllRanges()},t.prototype.destroy=function t(){this.removeFake()},a(t,[{key:"action",set:function t(){var e=arguments.length<=0||void 0===arguments[0]?"copy":arguments[0];if(this._action=e,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function t(){return this._action}},{key:"target",set:function t(e){if(void 0!==e){if(!e||"object"!==("undefined"==typeof e?"undefined":r(e))||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=e}},get:function t(){return this._target}}]),t}();t.exports=c})},{select:6}],9:[function(e,n,o){!function(i,r){if("function"==typeof t&&t.amd)t(["module","./clipboard-action","tiny-emitter","good-listener"],r);else if("undefined"!=typeof o)r(n,e("./clipboard-action"),e("tiny-emitter"),e("good-listener"));else{var a={exports:{}};r(a,i.clipboardAction,i.tinyEmitter,i.goodListener),i.clipboard=a.exports}}(this,function(t,e,n,o){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function c(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function s(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}var l=i(e),u=i(n),f=i(o),d=function(t){function e(n,o){r(this,e);var i=a(this,t.call(this));return i.resolveOptions(o),i.listenClick(n),i}return c(e,t),e.prototype.resolveOptions=function t(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText},e.prototype.listenClick=function t(e){var n=this;this.listener=(0,f.default)(e,"click",function(t){return n.onClick(t)})},e.prototype.onClick=function t(e){var n=e.delegateTarget||e.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new l.default({action:this.action(n),target:this.target(n),text:this.text(n),trigger:n,emitter:this})},e.prototype.defaultAction=function t(e){return s("action",e)},e.prototype.defaultTarget=function t(e){var n=s("target",e);return n?document.querySelector(n):void 0},e.prototype.defaultText=function t(e){return s("text",e)},e.prototype.destroy=function t(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)},e}(u.default);t.exports=d})},{"./clipboard-action":8,"good-listener":4,"tiny-emitter":7}]},{},[9])(9)});
\ No newline at end of file
/*
github.com style (c) Vasily Polovnyov <vast@whiteants.net>
*/
.hljs {
display: block;
overflow-x: auto;
padding: 0.5em;
color: #333;
background: #f8f8f8;
}
.hljs-comment,
.hljs-quote {
color: #998;
font-style: italic;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-subst {
color: #333;
font-weight: bold;
}
.hljs-number,
.hljs-literal,
.hljs-variable,
.hljs-template-variable,
.hljs-tag .hljs-attr {
color: #008080;
}
.hljs-string,
.hljs-doctag {
color: #d14;
}
.hljs-title,
.hljs-section,
.hljs-selector-id {
color: #900;
font-weight: bold;
}
.hljs-subst {
font-weight: normal;
}
.hljs-type,
.hljs-class .hljs-title {
color: #458;
font-weight: bold;
}
.hljs-tag,
.hljs-name,
.hljs-attribute {
color: #000080;
font-weight: normal;
}
.hljs-regexp,
.hljs-link {
color: #009926;
}
.hljs-symbol,
.hljs-bullet {
color: #990073;
}
.hljs-built_in,
.hljs-builtin-name {
color: #0086b3;
}
.hljs-meta {
color: #999;
font-weight: bold;
}
.hljs-deletion {
background: #fdd;
}
.hljs-addition {
background: #dfd;
}
.hljs-emphasis {
font-style: italic;
}
.hljs-strong {
font-weight: bold;
}
/*! highlight.js v9.7.0 | BSD3 License | git.io/hljslicense */
!function(e){var n="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof exports?e(exports):n&&(n.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return n.hljs}))}(function(e){function n(e){return e.replace(/[&<>]/gm,function(e){return I[e]})}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0===t.index}function a(e){return k.test(e)}function i(e){var n,t,r,i,o=e.className+" ";if(o+=e.parentNode?e.parentNode.className:"",t=B.exec(o))return R(t[1])?t[1]:"no-highlight";for(o=o.split(/\s+/),n=0,r=o.length;r>n;n++)if(i=o[n],a(i)||R(i))return i}function o(e,n){var t,r={};for(t in e)r[t]=e[t];if(n)for(t in n)r[t]=n[t];return r}function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3===i.nodeType?a+=i.nodeValue.length:1===i.nodeType&&(n.push({event:"start",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:a,node:i}));return a}(e,0),n}function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!==r[0].offset?e[0].offset<r[0].offset?e:r:"start"===r[0].event?e:r:e.length?e:r}function o(e){function r(e){return" "+e.nodeName+'="'+n(e.value)+'"'}l+="<"+t(e)+w.map.call(e.attributes,r).join("")+">"}function u(e){l+="</"+t(e)+">"}function c(e){("start"===e.event?o:u)(e.node)}for(var s=0,l="",f=[];e.length||r.length;){var g=i();if(l+=n(a.substr(s,g[0].offset-s)),s=g[0].offset,g===e){f.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g===e&&g.length&&g[0].offset===s);f.reverse().forEach(o)}else"start"===g[0].event?f.push(g[0].node):f.pop(),c(g.splice(0,1)[0])}return l+n(a.substr(s))}function s(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),"m"+(e.cI?"i":"")+(r?"g":""))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var u={},c=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(" ").forEach(function(e){var t=e.split("|");u[t[0]]=[n,t[1]?Number(t[1]):1]})};"string"==typeof a.k?c("keyword",a.k):E(a.k).forEach(function(e){c(e,a.k[e])}),a.k=u}a.lR=t(a.l||/\w+/,!0),i&&(a.bK&&(a.b="\\b("+a.bK.split(" ").join("|")+")\\b"),a.b||(a.b=/\B|\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||"",a.eW&&i.tE&&(a.tE+=(a.e?"|":"")+i.tE)),a.i&&(a.iR=t(a.i)),null==a.r&&(a.r=1),a.c||(a.c=[]);var s=[];a.c.forEach(function(e){e.v?e.v.forEach(function(n){s.push(o(e,n))}):s.push("self"===e?a:e)}),a.c=s,a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var l=a.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=l.length?t(l.join("|"),!0):{exec:function(){return null}}}}r(e)}function l(e,t,a,i){function o(e,n){var t,a;for(t=0,a=n.c.length;a>t;t++)if(r(n.c[t].bR,e))return n.c[t]}function u(e,n){if(r(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}return e.eW?u(e.parent,n):void 0}function c(e,n){return!a&&r(n.iR,e)}function g(e,n){var t=N.cI?n[0].toLowerCase():n[0];return e.k.hasOwnProperty(t)&&e.k[t]}function h(e,n,t,r){var a=r?"":y.classPrefix,i='<span class="'+a,o=t?"":C;return i+=e+'">',i+n+o}function p(){var e,t,r,a;if(!E.k)return n(B);for(a="",t=0,E.lR.lastIndex=0,r=E.lR.exec(B);r;)a+=n(B.substr(t,r.index-t)),e=g(E,r),e?(M+=e[1],a+=h(e[0],n(r[0]))):a+=n(r[0]),t=E.lR.lastIndex,r=E.lR.exec(B);return a+n(B.substr(t))}function d(){var e="string"==typeof E.sL;if(e&&!x[E.sL])return n(B);var t=e?l(E.sL,B,!0,L[E.sL]):f(B,E.sL.length?E.sL:void 0);return E.r>0&&(M+=t.r),e&&(L[E.sL]=t.top),h(t.language,t.value,!1,!0)}function b(){k+=null!=E.sL?d():p(),B=""}function v(e){k+=e.cN?h(e.cN,"",!0):"",E=Object.create(e,{parent:{value:E}})}function m(e,n){if(B+=e,null==n)return b(),0;var t=o(n,E);if(t)return t.skip?B+=n:(t.eB&&(B+=n),b(),t.rB||t.eB||(B=n)),v(t,n),t.rB?0:n.length;var r=u(E,n);if(r){var a=E;a.skip?B+=n:(a.rE||a.eE||(B+=n),b(),a.eE&&(B=n));do E.cN&&(k+=C),E.skip||(M+=E.r),E=E.parent;while(E!==r.parent);return r.starts&&v(r.starts,""),a.rE?0:n.length}if(c(n,E))throw new Error('Illegal lexeme "'+n+'" for mode "'+(E.cN||"<unnamed>")+'"');return B+=n,n.length||1}var N=R(e);if(!N)throw new Error('Unknown language: "'+e+'"');s(N);var w,E=i||N,L={},k="";for(w=E;w!==N;w=w.parent)w.cN&&(k=h(w.cN,"",!0)+k);var B="",M=0;try{for(var I,j,O=0;;){if(E.t.lastIndex=O,I=E.t.exec(t),!I)break;j=m(t.substr(O,I.index-O),I[0]),O=I.index+j}for(m(t.substr(O)),w=E;w.parent;w=w.parent)w.cN&&(k+=C);return{r:M,value:k,language:e,top:E}}catch(T){if(T.message&&-1!==T.message.indexOf("Illegal"))return{r:0,value:n(t)};throw T}}function f(e,t){t=t||y.languages||E(x);var r={r:0,value:n(e)},a=r;return t.filter(R).forEach(function(n){var t=l(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}),a.language&&(r.second_best=a),r}function g(e){return y.tabReplace||y.useBR?e.replace(M,function(e,n){return y.useBR&&"\n"===e?"<br>":y.tabReplace?n.replace(/\t/g,y.tabReplace):void 0}):e}function h(e,n,t){var r=n?L[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}function p(e){var n,t,r,o,s,p=i(e);a(p)||(y.useBR?(n=document.createElementNS("http://www.w3.org/1999/xhtml","div"),n.innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n")):n=e,s=n.textContent,r=p?l(p,s,!0):f(s),t=u(n),t.length&&(o=document.createElementNS("http://www.w3.org/1999/xhtml","div"),o.innerHTML=r.value,r.value=c(t,u(o),s)),r.value=g(r.value),e.innerHTML=r.value,e.className=h(e.className,p,r.language),e.result={language:r.language,re:r.r},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.r}))}function d(e){y=o(y,e)}function b(){if(!b.called){b.called=!0;var e=document.querySelectorAll("pre code");w.forEach.call(e,p)}}function v(){addEventListener("DOMContentLoaded",b,!1),addEventListener("load",b,!1)}function m(n,t){var r=x[n]=t(e);r.aliases&&r.aliases.forEach(function(e){L[e]=n})}function N(){return E(x)}function R(e){return e=(e||"").toLowerCase(),x[e]||x[L[e]]}var w=[],E=Object.keys,x={},L={},k=/^(no-?highlight|plain|text)$/i,B=/\blang(?:uage)?-([\w-]+)\b/i,M=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,C="</span>",y={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},I={"&":"&amp;","<":"&lt;",">":"&gt;"};return e.highlight=l,e.highlightAuto=f,e.fixMarkup=g,e.highlightBlock=p,e.configure=d,e.initHighlighting=b,e.initHighlightingOnLoad=v,e.registerLanguage=m,e.listLanguages=N,e.getLanguage=R,e.inherit=o,e.IR="[a-zA-Z]\\w*",e.UIR="[a-zA-Z_]\\w*",e.NR="\\b\\d+(\\.\\d+)?",e.CNR="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BNR="\\b(0b[01]+)",e.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BE={b:"\\\\[\\s\\S]",r:0},e.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[e.BE]},e.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[e.BE]},e.PWM={b:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/},e.C=function(n,t,r){var a=e.inherit({cN:"comment",b:n,e:t,c:[]},r||{});return a.c.push(e.PWM),a.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),a},e.CLCM=e.C("//","$"),e.CBCM=e.C("/\\*","\\*/"),e.HCM=e.C("#","$"),e.NM={cN:"number",b:e.NR,r:0},e.CNM={cN:"number",b:e.CNR,r:0},e.BNM={cN:"number",b:e.BNR,r:0},e.CSSNM={cN:"number",b:e.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},e.RM={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[e.BE,{b:/\[/,e:/\]/,r:0,c:[e.BE]}]},e.TM={cN:"title",b:e.IR,r:0},e.UTM={cN:"title",b:e.UIR,r:0},e.METHOD_GUARD={b:"\\.\\s*"+e.UIR,r:0},e});hljs.registerLanguage("xml",function(s){var e="[A-Za-z0-9\\._:-]+",t={eW:!0,i:/</,r:0,c:[{cN:"attr",b:e,r:0},{b:/=\s*/,r:0,c:[{cN:"string",endsParent:!0,v:[{b:/"/,e:/"/},{b:/'/,e:/'/},{b:/[^\s"'=<>`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],cI:!0,c:[{cN:"meta",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},s.C("<!--","-->",{r:10}),{b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{b:/<\?(php)?/,e:/\?>/,sL:"php",c:[{b:"/\\*",e:"\\*/",skip:!0}]},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{name:"style"},c:[t],starts:{e:"</style>",rE:!0,sL:["css","xml"]}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{name:"script"},c:[t],starts:{e:"</script>",rE:!0,sL:["actionscript","javascript","handlebars","xml"]}},{cN:"meta",v:[{b:/<\?xml/,e:/\?>/,r:10},{b:/<\?\w+/,e:/\?>/}]},{cN:"tag",b:"</?",e:"/?>",c:[{cN:"name",b:/[^\/><\s]+/,r:0},t]}]}});hljs.registerLanguage("javascript",function(e){var r="[A-Za-z$_][0-9A-Za-z$_]*",t={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},a={cN:"number",v:[{b:"\\b(0[bB][01]+)"},{b:"\\b(0[oO][0-7]+)"},{b:e.CNR}],r:0},n={cN:"subst",b:"\\$\\{",e:"\\}",k:t,c:[]},c={cN:"string",b:"`",e:"`",c:[e.BE,n]};n.c=[e.ASM,e.QSM,c,a,e.RM];var s=n.c.concat([e.CBCM,e.CLCM]);return{aliases:["js","jsx"],k:t,c:[{cN:"meta",r:10,b:/^\s*['"]use (strict|asm)['"]/},{cN:"meta",b:/^#!/,e:/$/},e.ASM,e.QSM,c,e.CLCM,e.CBCM,a,{b:/[{,]\s*/,r:0,c:[{b:r+"\\s*:",rB:!0,r:0,c:[{cN:"attr",b:r,r:0}]}]},{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[e.CLCM,e.CBCM,e.RM,{cN:"function",b:"(\\(.*?\\)|"+r+")\\s*=>",rB:!0,e:"\\s*=>",c:[{cN:"params",v:[{b:r},{b:/\(\s*\)/},{b:/\(/,e:/\)/,eB:!0,eE:!0,k:t,c:s}]}]},{b:/</,e:/(\/\w+|\w+\/)>/,sL:"xml",c:[{b:/<\w+\s*\/>/,skip:!0},{b:/<\w+/,e:/(\/\w+|\w+\/)>/,skip:!0,c:[{b:/<\w+\s*\/>/,skip:!0},"self"]}]}],r:0},{cN:"function",bK:"function",e:/\{/,eE:!0,c:[e.inherit(e.TM,{b:r}),{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,c:s}],i:/\[|%/},{b:/\$[(.]/},e.METHOD_GUARD,{cN:"class",bK:"class",e:/[{;=]/,eE:!0,i:/[:"\[\]]/,c:[{bK:"extends"},e.UTM]},{bK:"constructor",e:/\{/,eE:!0}],i:/#(?!!)/}});hljs.registerLanguage("css",function(e){var c="[a-zA-Z-][a-zA-Z0-9_-]*",t={b:/[A-Z\_\.\-]+\s*:/,rB:!0,e:";",eW:!0,c:[{cN:"attribute",b:/\S/,e:":",eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\w-]+\(/,rB:!0,c:[{cN:"built_in",b:/[\w-]+/},{b:/\(/,e:/\)/,c:[e.ASM,e.QSM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"number",b:"#[0-9A-Fa-f]+"},{cN:"meta",b:"!important"}]}}]};return{cI:!0,i:/[=\/|'\$]/,c:[e.CBCM,{cN:"selector-id",b:/#[A-Za-z0-9_-]+/},{cN:"selector-class",b:/\.[A-Za-z0-9_-]+/},{cN:"selector-attr",b:/\[/,e:/\]/,i:"$"},{cN:"selector-pseudo",b:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{b:"@",e:"[{;]",i:/:/,c:[{cN:"keyword",b:/\w+/},{b:/\s/,eW:!0,eE:!0,r:0,c:[e.ASM,e.QSM,e.CSSNM]}]},{cN:"selector-tag",b:c,r:0},{b:"{",e:"}",i:/\S/,c:[e.CBCM,t]}]}});
\ No newline at end of file
# LARAVOLT
## Getting Started
### 1. Symlink assets (css, js, icons, dll) dari laravolt/ui ke folder `public`
- Jalankan perintah `php artisan laravolt:link-assets`
### 2. Ubah redirect route ketika mengakses halaman yang butuh autentikasi
- Tambahkan potongan kode berikut ke file `app/Exceptions/Handler.php`:
```php
protected function unauthenticated($request, AuthenticationException $exception)
{
return $request->expectsJson()
? response()->json(['message' => $exception->getMessage()], 401)
: redirect()->guest(route('auth::login'));
}
```
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment