datatable.directory codebase
				https://datatable.directory/
			
			
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							92 lines
						
					
					
						
							2.9 KiB
						
					
					
				
			
		
		
	
	
							92 lines
						
					
					
						
							2.9 KiB
						
					
					
				| <?php
 | |
| 
 | |
| namespace App\Providers;
 | |
| 
 | |
| use App\Models\User;
 | |
| use App\View\WidgetFactory;
 | |
| use Illuminate\Support\ServiceProvider;
 | |
| 
 | |
| class AppServiceProvider extends ServiceProvider
 | |
| {
 | |
|     /**
 | |
|      * Bootstrap any application services.
 | |
|      *
 | |
|      * @return void
 | |
|      */
 | |
|     public function boot()
 | |
|     {
 | |
|         if($this->app->environment('production')) {
 | |
|             \URL::forceScheme('https');
 | |
|         }
 | |
| 
 | |
|         \Route::bind('user', function ($value) {
 | |
|             // Hack to have the URL case insensitive (also needed a vendor patch for login)
 | |
|             $u = User::whereRaw('LOWER(name)=LOWER(?)', [$value])->first();
 | |
|             // it may also be the _id directly
 | |
|             if (!$u && is_numeric($value)) $u = User::find((int)$value);
 | |
|             if (!$u) abort(404);
 | |
|             return $u;
 | |
|         });
 | |
| 
 | |
|         \Blade::directive('tooltip', function($arg) {
 | |
|             $arg = trim($arg);
 | |
|             $placement = '';
 | |
|             if (starts_with($arg, ['top,', 'bottom,', 'left,', 'right,'])) {
 | |
|                 list($placement, $arg) = explode(',', $arg);
 | |
|                 $arg = trim($arg);
 | |
|             }
 | |
|             $arge = e($arg);
 | |
| 
 | |
|             $html = '';
 | |
|             if ($placement) $html .= 'data-placement="' . $placement . '" ';
 | |
|             return $html . 'data-toggle="tooltip" aria-label="' . $arge . '" title="' . $arge . '"';
 | |
|         });
 | |
| 
 | |
|         \Blade::directive('sr', function($arg) {
 | |
|             $sr = str_replace('~', ' ', e($arg));
 | |
|             return '<span class="sr-only">'.$sr.'</span>';
 | |
|         });
 | |
| 
 | |
|         \Blade::directive('icon', function($arg) {
 | |
|             // arg: classes... , alt text
 | |
|             // tildes in alt text may be used to add nbsp to sr-only, they are removed from the tooltip.
 | |
|             // giving no alt text makes it sr-hidden, with no tooltip
 | |
|             $parts = explode(',', $arg, 2);
 | |
|             if (count($parts) == 2) {
 | |
|                 list($classes, $title) = $parts;
 | |
| 
 | |
|                 $classes = trim($classes);
 | |
|                 $title = trim($title);
 | |
| 
 | |
|                 $notooltip = false;
 | |
| 
 | |
|                 if (strpos($title, 'sr:') === 0) {
 | |
|                     $notooltip = true;
 | |
|                     $title = substr($title, 3);
 | |
|                 }
 | |
| 
 | |
|                 $sr = str_replace('~', ' ', e($title));
 | |
|                 $tit = str_replace('~', '', e(trim($title, " \r\n\t:,")));
 | |
| 
 | |
|                 return '<span class="sr-only">' . $sr . '</span>' .
 | |
|                     '<i class="' . e($classes) . '" '.
 | |
|                     ($notooltip ? '' : 'title="' . $tit . '"') .
 | |
|                     ' aria-hidden=true></i>';
 | |
|             } else {
 | |
|                 return '<i class="' . e(trim($arg)) . '" aria-hidden=true></i>';
 | |
|             }
 | |
|         });
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Register any application services.
 | |
|      *
 | |
|      * @return void
 | |
|      */
 | |
|     public function register()
 | |
|     {
 | |
|         $this->app->singleton(WidgetFactory::class, function () {
 | |
|             return new WidgetFactory();
 | |
|         });
 | |
|     }
 | |
| }
 | |
| 
 |