We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.
@@ -3,7 +3,7 @@ discard block |
||
3 | 3 | <?php |
4 | 4 | $max = isset($field['max']) && (int) $field['max'] > 0 ? $field['max'] : -1; |
5 | 5 | $min = isset($field['min']) && (int) $field['min'] > 0 ? $field['min'] : -1; |
6 | - $item_name = strtolower(isset($field['entity_singular']) && ! empty($field['entity_singular']) ? $field['entity_singular'] : $field['label']); |
|
6 | + $item_name = strtolower(isset($field['entity_singular']) && !empty($field['entity_singular']) ? $field['entity_singular'] : $field['label']); |
|
7 | 7 | |
8 | 8 | $items = old(square_brackets_to_dots($field['name'])) ?? $field['value'] ?? $field['default'] ?? ''; |
9 | 9 | |
@@ -15,12 +15,12 @@ discard block |
||
15 | 15 | } else { |
16 | 16 | $items = '[]'; |
17 | 17 | } |
18 | - } elseif (is_string($items) && ! is_array(json_decode($items))) { |
|
18 | + } elseif (is_string($items) && !is_array(json_decode($items))) { |
|
19 | 19 | $items = '[]'; |
20 | 20 | } |
21 | 21 | |
22 | 22 | // make sure columns are defined |
23 | - if (! isset($field['columns'])) { |
|
23 | + if (!isset($field['columns'])) { |
|
24 | 24 | $field['columns'] = ['value' => 'Value']; |
25 | 25 | } |
26 | 26 | ?> |
@@ -4,7 +4,6 @@ |
||
4 | 4 | |
5 | 5 | use Illuminate\Foundation\Bus\DispatchesJobs; |
6 | 6 | use Illuminate\Foundation\Validation\ValidatesRequests; |
7 | -use Illuminate\Http\Request; |
|
8 | 7 | use Illuminate\Routing\Controller; |
9 | 8 | |
10 | 9 | class CrudController extends Controller |
@@ -27,7 +27,7 @@ |
||
27 | 27 | |
28 | 28 | // call the setup function inside this closure to also have the request there |
29 | 29 | // this way, developers can use things stored in session (auth variables, etc) |
30 | - $this->middleware(function ($request, $next) { |
|
30 | + $this->middleware(function($request, $next) { |
|
31 | 31 | // make a new CrudPanel object, from the one stored in Laravel's service container |
32 | 32 | $this->crud = app()->make('crud'); |
33 | 33 | // ensure crud has the latest request |
@@ -41,7 +41,7 @@ discard block |
||
41 | 41 | { |
42 | 42 | $this->crud->allowAccess('list'); |
43 | 43 | |
44 | - $this->crud->operation('list', function () { |
|
44 | + $this->crud->operation('list', function() { |
|
45 | 45 | $this->crud->loadDefaultOperationSettingsFromConfig(); |
46 | 46 | }); |
47 | 47 | } |
@@ -112,8 +112,8 @@ discard block |
||
112 | 112 | // if there was an order set, this will be the last one (after all others were applied) |
113 | 113 | $orderBy = $this->crud->query->getQuery()->orders; |
114 | 114 | $hasOrderByPrimaryKey = false; |
115 | - collect($orderBy)->each(function ($item, $key) use ($hasOrderByPrimaryKey) { |
|
116 | - if (! isset($item['column'])) { |
|
115 | + collect($orderBy)->each(function($item, $key) use ($hasOrderByPrimaryKey) { |
|
116 | + if (!isset($item['column'])) { |
|
117 | 117 | return false; |
118 | 118 | } |
119 | 119 | |
@@ -123,7 +123,7 @@ discard block |
||
123 | 123 | return false; |
124 | 124 | } |
125 | 125 | }); |
126 | - if (! $hasOrderByPrimaryKey) { |
|
126 | + if (!$hasOrderByPrimaryKey) { |
|
127 | 127 | $this->crud->query->orderByDesc($this->crud->model->getKeyName()); |
128 | 128 | } |
129 | 129 |
@@ -10,7 +10,7 @@ |
||
10 | 10 | $array_of_values = []; |
11 | 11 | |
12 | 12 | foreach ($values as $key => $value) { |
13 | - if (! is_null($value)) { |
|
13 | + if (!is_null($value)) { |
|
14 | 14 | $array_of_values[] = $column['options'][$value]; |
15 | 15 | } else { |
16 | 16 | echo '-'; |
@@ -2,8 +2,8 @@ |
||
2 | 2 | |
3 | 3 | namespace Backpack\CRUD\Tests\Unit\Http; |
4 | 4 | |
5 | -use Backpack\CRUD\app\Library\CrudPanel\CrudPanel; |
|
6 | 5 | use Backpack\CRUD\Tests\BaseTest; |
6 | +use Backpack\CRUD\app\Library\CrudPanel\CrudPanel; |
|
7 | 7 | |
8 | 8 | class CrudControllerTest extends BaseTest |
9 | 9 | { |
@@ -19,7 +19,7 @@ |
||
19 | 19 | $controller = '\Backpack\CRUD\Tests\Unit\Http\Controllers\UserCrudController'; |
20 | 20 | $app['router']->get('users/{id}/edit', "$controller@edit"); |
21 | 21 | $app['router']->put('users/{id}', "$controller@update"); |
22 | - $app->singleton('crud', function ($app) { |
|
22 | + $app->singleton('crud', function($app) { |
|
23 | 23 | return new CrudPanel($app); |
24 | 24 | }); |
25 | 25 | } |
@@ -69,7 +69,7 @@ discard block |
||
69 | 69 | */ |
70 | 70 | public function setRequest($request = null) |
71 | 71 | { |
72 | - if (! $request) { |
|
72 | + if (!$request) { |
|
73 | 73 | $request = \Request::instance(); |
74 | 74 | } |
75 | 75 | $this->request = $request; |
@@ -89,11 +89,11 @@ discard block |
||
89 | 89 | */ |
90 | 90 | public function setModel($model_namespace) |
91 | 91 | { |
92 | - if (! class_exists($model_namespace)) { |
|
92 | + if (!class_exists($model_namespace)) { |
|
93 | 93 | throw new \Exception('The model does not exist.', 500); |
94 | 94 | } |
95 | 95 | |
96 | - if (! method_exists($model_namespace, 'hasCrudTrait')) { |
|
96 | + if (!method_exists($model_namespace, 'hasCrudTrait')) { |
|
97 | 97 | throw new \Exception('Please use CrudTrait on the model.', 500); |
98 | 98 | } |
99 | 99 | |
@@ -156,7 +156,7 @@ discard block |
||
156 | 156 | { |
157 | 157 | $complete_route = $route.'.index'; |
158 | 158 | |
159 | - if (! \Route::has($complete_route)) { |
|
159 | + if (!\Route::has($complete_route)) { |
|
160 | 160 | throw new \Exception('There are no routes for this route name.', 404); |
161 | 161 | } |
162 | 162 | |
@@ -257,7 +257,7 @@ discard block |
||
257 | 257 | */ |
258 | 258 | public function getFirstOfItsTypeInArray($type, $array) |
259 | 259 | { |
260 | - return array_first($array, function ($item) use ($type) { |
|
260 | + return array_first($array, function($item) use ($type) { |
|
261 | 261 | return $item['type'] == $type; |
262 | 262 | }); |
263 | 263 | } |
@@ -274,8 +274,8 @@ discard block |
||
274 | 274 | |
275 | 275 | public function sync($type, $fields, $attributes) |
276 | 276 | { |
277 | - if (! empty($this->{$type})) { |
|
278 | - $this->{$type} = array_map(function ($field) use ($fields, $attributes) { |
|
277 | + if (!empty($this->{$type})) { |
|
278 | + $this->{$type} = array_map(function($field) use ($fields, $attributes) { |
|
279 | 279 | if (in_array($field['name'], (array) $fields)) { |
280 | 280 | $field = array_merge($field, $attributes); |
281 | 281 | } |
@@ -306,15 +306,15 @@ discard block |
||
306 | 306 | { |
307 | 307 | $relationArray = explode('.', $relationString); |
308 | 308 | |
309 | - if (! isset($length)) { |
|
309 | + if (!isset($length)) { |
|
310 | 310 | $length = count($relationArray); |
311 | 311 | } |
312 | 312 | |
313 | - if (! isset($model)) { |
|
313 | + if (!isset($model)) { |
|
314 | 314 | $model = $this->model; |
315 | 315 | } |
316 | 316 | |
317 | - $result = array_reduce(array_splice($relationArray, 0, $length), function ($obj, $method) { |
|
317 | + $result = array_reduce(array_splice($relationArray, 0, $length), function($obj, $method) { |
|
318 | 318 | return $obj->$method()->getRelated(); |
319 | 319 | }, $model); |
320 | 320 | |
@@ -364,7 +364,7 @@ discard block |
||
364 | 364 | $relation = $model->{$firstRelationName}; |
365 | 365 | |
366 | 366 | $results = []; |
367 | - if (! empty($relation)) { |
|
367 | + if (!empty($relation)) { |
|
368 | 368 | if ($relation instanceof Collection) { |
369 | 369 | $currentResults = $relation->toArray(); |
370 | 370 | } else { |
@@ -373,7 +373,7 @@ discard block |
||
373 | 373 | |
374 | 374 | array_shift($relationArray); |
375 | 375 | |
376 | - if (! empty($relationArray)) { |
|
376 | + if (!empty($relationArray)) { |
|
377 | 377 | foreach ($currentResults as $currentResult) { |
378 | 378 | $results = array_merge($results, $this->getRelationModelInstances($currentResult, implode('.', $relationArray))); |
379 | 379 | } |
@@ -30,7 +30,7 @@ |
||
30 | 30 | /** |
31 | 31 | * Execute the console command. |
32 | 32 | * |
33 | - * @return mixed Command-line output |
|
33 | + * @return false|null Command-line output |
|
34 | 34 | */ |
35 | 35 | public function handle() |
36 | 36 | { |
@@ -88,7 +88,7 @@ discard block |
||
88 | 88 | $createUploadDirectoryCommand = 'mkdir -p public/uploads'; |
89 | 89 | break; |
90 | 90 | case '\\': // windows |
91 | - if (! file_exists('public\uploads')) { |
|
91 | + if (!file_exists('public\uploads')) { |
|
92 | 92 | $createUploadDirectoryCommand = 'mkdir public\uploads'; |
93 | 93 | } else { |
94 | 94 | $createUploadDirectoryCommand = ''; |
@@ -133,7 +133,7 @@ discard block |
||
133 | 133 | $this->echo('info', $beforeNotice ? ' '.$beforeNotice : $command); |
134 | 134 | |
135 | 135 | $process = new Process($command, null, null, null, $this->option('timeout')); |
136 | - $process->run(function ($type, $buffer) { |
|
136 | + $process->run(function($type, $buffer) { |
|
137 | 137 | if (Process::ERR === $type) { |
138 | 138 | $this->echo('comment', $buffer); |
139 | 139 | } else { |
@@ -142,7 +142,7 @@ discard block |
||
142 | 142 | }); |
143 | 143 | |
144 | 144 | // executes after the command finishes |
145 | - if (! $process->isSuccessful()) { |
|
145 | + if (!$process->isSuccessful()) { |
|
146 | 146 | throw new ProcessFailedException($process); |
147 | 147 | } |
148 | 148 |
@@ -13,101 +13,101 @@ |
||
13 | 13 | | |
14 | 14 | */ |
15 | 15 | |
16 | - return [ |
|
17 | - 'infoFiltered' => '(filtered from _MAX_ total entries)', |
|
18 | - 'thousands' => ',', |
|
19 | - 'admin' => 'المشرف', |
|
20 | - 'browse_uploads' => 'تصفح التحميلات', |
|
21 | - 'table_cant_add' => 'لا يمكن إضافة :entity جديد', |
|
22 | - 'clear' => 'نظف', |
|
23 | - 'save_action_changed_notification' => 'تم تغيير السلوك الافتراضي بعد الحفظ.', |
|
24 | - 'edit_translations' => 'تعديل الترجمة', |
|
25 | - 'internal_link_placeholder' => "Internal slug. Ex: 'admin/page' (no quotes) for ':url'", |
|
26 | - 'table_max_reached' => 'أقصى عدد :max تم الوصول إليه', |
|
27 | - 'zeroRecords' => 'لم يتم العثور على سجلات متطابقة', |
|
28 | - 'infoEmpty' => 'Showing 0 to 0 of 0 entries', |
|
29 | - 'info' => 'Showing _START_ to _END_ of _TOTAL_ entries', |
|
30 | - 'details_row' => 'هذا هو صف التفاصيل. عدل كما تريد.', |
|
31 | - 'reorder_text' => 'استخدام السحب والإفلات لإعادة الترتيب.', |
|
32 | - 'reorder_success_message' => 'تم حفظ ترتيبك.', |
|
33 | - 'reorder_error_message' => 'لم يتم حفظ ترتيبك.', |
|
34 | - 'lengthMenu' => '_MENU_ records per page', |
|
35 | - 'created_this' => 'أنشئت هذه', |
|
36 | - 'page_link_placeholder' => 'http://example.com/your-desired-page', |
|
37 | - 'actions' => 'أفعال', |
|
38 | - 'remove_filters' => 'إزالة الفلاتر', |
|
39 | - 'add_a_new' => 'إضافة جديد', |
|
40 | - 'reorder' => 'إعادة ترتيب', |
|
41 | - 'cancel' => 'إلغاء', |
|
42 | - 'choose_file' => 'اختر ملف', |
|
43 | - 'restore_this_value' => 'استعادة هذه القيمة', |
|
44 | - 'add' => 'اضافة', |
|
45 | - 'unauthorized_access' => 'الدخول غير مصرح به - ليس لديك الأذونات اللازمة للاطلاع على هذه الصفحة.', |
|
46 | - 'filters' => 'الفلاتر', |
|
47 | - 'to' => 'الى', |
|
48 | - 'reorder_success_title' => 'انتهى', |
|
49 | - 'search' => 'بحث:', |
|
50 | - 'toggle_filters' => 'تبديل الفلاتر', |
|
51 | - 'undo' => 'تراجع', |
|
52 | - 'edit' => 'تعديل', |
|
53 | - 'update_success' => 'تم تعديل العنصر بنجاح.', |
|
54 | - 'delete_confirmation_title' => 'تم حذف العنصر', |
|
55 | - 'delete_confirmation_message' => 'تم حذف العنصر بنجاح.', |
|
56 | - 'insert_success' => 'تمت إضافة العنصر بنجاح.', |
|
57 | - 'revision_restored' => 'تمت استعادة المراجعة بنجاح', |
|
58 | - 'clone' => 'استنساخ', |
|
59 | - 'clone_success' => '<strong>تم إستنساخ العنصر</strong><br>تم إضافة عنصر جديد بنفس معلومات هذا العنصر.', |
|
60 | - 'clone_failure' => '<strong>حدث خطأ</strong><br>لم يتم استنساخ العنصر. الرجاء اعادة المحاولة.', |
|
61 | - 'loadingRecords' => 'جار التحميل...', |
|
62 | - 'infoPostFix' => 'جميع السجلات', |
|
63 | - 'details_row_loading_error' => 'حدث خطأ أثناء تحميل التفاصيل. الرجاء اعادة المحاولة.', |
|
64 | - 'delete_confirmation_not_message' => 'حدث خطأ. ربما لم يتم حذف العنصر.', |
|
65 | - 'guest_user' => 'حساب زائر', |
|
66 | - 'save' => 'حفظ', |
|
67 | - 'save_action_save_and_edit' => 'حفظ هذا العنصر وتعديله', |
|
68 | - 'save_action_save_and_back' => 'حفظ و رجوع', |
|
69 | - 'save_action_save_and_new' => 'حفظ وعنصر جديد', |
|
70 | - 'reorder_error_title' => 'خطأ', |
|
71 | - 'page_link' => 'رابط الصفحة', |
|
72 | - 'external_link' => 'رابط خارجي', |
|
73 | - 'internal_link' => 'رابط داخلي', |
|
74 | - 'preview' => 'عرض', |
|
75 | - 'back_to_all' => 'عودة', |
|
76 | - 'changed_the' => 'غيرت', |
|
77 | - 'in_the_database' => 'في قاعدة البيانات', |
|
78 | - 'list' => 'قائمة', |
|
79 | - 'all' => 'كل', |
|
80 | - 'no' => 'لا', |
|
81 | - 'emptyTable' => 'لا تتوفر بيانات في الجدول', |
|
82 | - 'no_revisions' => 'لا توجد مراجعات', |
|
83 | - 'language' => 'لغة', |
|
84 | - 'delete_confirmation_not_title' => 'لم يتم الحذف', |
|
85 | - 'delete_confirmation_not_deleted_title' => 'لم يتم الحذف', |
|
86 | - 'delete_confirmation_not_deleted_message' => 'لم يحدث شيء. البند الخاص بك هو آمن.', |
|
87 | - 'file_manager' => 'مدير الملفات', |
|
88 | - 'revisions' => 'مراجعات', |
|
89 | - 'delete' => 'مسح', |
|
90 | - 'processing' => 'معالجة...', |
|
91 | - 'from' => 'من', |
|
92 | - 'yes' => 'نعم', |
|
93 | - 'delete_confirm' => 'هل أنت متأكد أنك تريد حذف هذا العنصر؟', |
|
94 | - 'please_fix' => 'يرجى تصحيح الأخطاء التالية:', |
|
95 | - 'aria' => [ |
|
96 | - 'sortAscending' => ': تفعيل لفرز العمود تصاعدي', |
|
97 | - 'sortDescending' => ': تفعيل لفرز العمود تنازلي', |
|
98 | - ], |
|
99 | - 'paginate' => [ |
|
100 | - 'first' => 'الأول', |
|
101 | - 'last' => 'الاخير', |
|
102 | - 'next' => 'التالى', |
|
103 | - 'previous' => 'السابق', |
|
104 | - ], |
|
105 | - 'export' => [ |
|
106 | - 'copy' => 'نسخ', |
|
107 | - 'excel' => 'Excel', |
|
108 | - 'csv' => 'CSV', |
|
109 | - 'pdf' => 'PDF', |
|
110 | - 'print' => 'طباعة', |
|
111 | - 'column_visibility' => 'رؤية العمود', |
|
112 | - ], |
|
113 | - ]; |
|
16 | + return [ |
|
17 | + 'infoFiltered' => '(filtered from _MAX_ total entries)', |
|
18 | + 'thousands' => ',', |
|
19 | + 'admin' => 'المشرف', |
|
20 | + 'browse_uploads' => 'تصفح التحميلات', |
|
21 | + 'table_cant_add' => 'لا يمكن إضافة :entity جديد', |
|
22 | + 'clear' => 'نظف', |
|
23 | + 'save_action_changed_notification' => 'تم تغيير السلوك الافتراضي بعد الحفظ.', |
|
24 | + 'edit_translations' => 'تعديل الترجمة', |
|
25 | + 'internal_link_placeholder' => "Internal slug. Ex: 'admin/page' (no quotes) for ':url'", |
|
26 | + 'table_max_reached' => 'أقصى عدد :max تم الوصول إليه', |
|
27 | + 'zeroRecords' => 'لم يتم العثور على سجلات متطابقة', |
|
28 | + 'infoEmpty' => 'Showing 0 to 0 of 0 entries', |
|
29 | + 'info' => 'Showing _START_ to _END_ of _TOTAL_ entries', |
|
30 | + 'details_row' => 'هذا هو صف التفاصيل. عدل كما تريد.', |
|
31 | + 'reorder_text' => 'استخدام السحب والإفلات لإعادة الترتيب.', |
|
32 | + 'reorder_success_message' => 'تم حفظ ترتيبك.', |
|
33 | + 'reorder_error_message' => 'لم يتم حفظ ترتيبك.', |
|
34 | + 'lengthMenu' => '_MENU_ records per page', |
|
35 | + 'created_this' => 'أنشئت هذه', |
|
36 | + 'page_link_placeholder' => 'http://example.com/your-desired-page', |
|
37 | + 'actions' => 'أفعال', |
|
38 | + 'remove_filters' => 'إزالة الفلاتر', |
|
39 | + 'add_a_new' => 'إضافة جديد', |
|
40 | + 'reorder' => 'إعادة ترتيب', |
|
41 | + 'cancel' => 'إلغاء', |
|
42 | + 'choose_file' => 'اختر ملف', |
|
43 | + 'restore_this_value' => 'استعادة هذه القيمة', |
|
44 | + 'add' => 'اضافة', |
|
45 | + 'unauthorized_access' => 'الدخول غير مصرح به - ليس لديك الأذونات اللازمة للاطلاع على هذه الصفحة.', |
|
46 | + 'filters' => 'الفلاتر', |
|
47 | + 'to' => 'الى', |
|
48 | + 'reorder_success_title' => 'انتهى', |
|
49 | + 'search' => 'بحث:', |
|
50 | + 'toggle_filters' => 'تبديل الفلاتر', |
|
51 | + 'undo' => 'تراجع', |
|
52 | + 'edit' => 'تعديل', |
|
53 | + 'update_success' => 'تم تعديل العنصر بنجاح.', |
|
54 | + 'delete_confirmation_title' => 'تم حذف العنصر', |
|
55 | + 'delete_confirmation_message' => 'تم حذف العنصر بنجاح.', |
|
56 | + 'insert_success' => 'تمت إضافة العنصر بنجاح.', |
|
57 | + 'revision_restored' => 'تمت استعادة المراجعة بنجاح', |
|
58 | + 'clone' => 'استنساخ', |
|
59 | + 'clone_success' => '<strong>تم إستنساخ العنصر</strong><br>تم إضافة عنصر جديد بنفس معلومات هذا العنصر.', |
|
60 | + 'clone_failure' => '<strong>حدث خطأ</strong><br>لم يتم استنساخ العنصر. الرجاء اعادة المحاولة.', |
|
61 | + 'loadingRecords' => 'جار التحميل...', |
|
62 | + 'infoPostFix' => 'جميع السجلات', |
|
63 | + 'details_row_loading_error' => 'حدث خطأ أثناء تحميل التفاصيل. الرجاء اعادة المحاولة.', |
|
64 | + 'delete_confirmation_not_message' => 'حدث خطأ. ربما لم يتم حذف العنصر.', |
|
65 | + 'guest_user' => 'حساب زائر', |
|
66 | + 'save' => 'حفظ', |
|
67 | + 'save_action_save_and_edit' => 'حفظ هذا العنصر وتعديله', |
|
68 | + 'save_action_save_and_back' => 'حفظ و رجوع', |
|
69 | + 'save_action_save_and_new' => 'حفظ وعنصر جديد', |
|
70 | + 'reorder_error_title' => 'خطأ', |
|
71 | + 'page_link' => 'رابط الصفحة', |
|
72 | + 'external_link' => 'رابط خارجي', |
|
73 | + 'internal_link' => 'رابط داخلي', |
|
74 | + 'preview' => 'عرض', |
|
75 | + 'back_to_all' => 'عودة', |
|
76 | + 'changed_the' => 'غيرت', |
|
77 | + 'in_the_database' => 'في قاعدة البيانات', |
|
78 | + 'list' => 'قائمة', |
|
79 | + 'all' => 'كل', |
|
80 | + 'no' => 'لا', |
|
81 | + 'emptyTable' => 'لا تتوفر بيانات في الجدول', |
|
82 | + 'no_revisions' => 'لا توجد مراجعات', |
|
83 | + 'language' => 'لغة', |
|
84 | + 'delete_confirmation_not_title' => 'لم يتم الحذف', |
|
85 | + 'delete_confirmation_not_deleted_title' => 'لم يتم الحذف', |
|
86 | + 'delete_confirmation_not_deleted_message' => 'لم يحدث شيء. البند الخاص بك هو آمن.', |
|
87 | + 'file_manager' => 'مدير الملفات', |
|
88 | + 'revisions' => 'مراجعات', |
|
89 | + 'delete' => 'مسح', |
|
90 | + 'processing' => 'معالجة...', |
|
91 | + 'from' => 'من', |
|
92 | + 'yes' => 'نعم', |
|
93 | + 'delete_confirm' => 'هل أنت متأكد أنك تريد حذف هذا العنصر؟', |
|
94 | + 'please_fix' => 'يرجى تصحيح الأخطاء التالية:', |
|
95 | + 'aria' => [ |
|
96 | + 'sortAscending' => ': تفعيل لفرز العمود تصاعدي', |
|
97 | + 'sortDescending' => ': تفعيل لفرز العمود تنازلي', |
|
98 | + ], |
|
99 | + 'paginate' => [ |
|
100 | + 'first' => 'الأول', |
|
101 | + 'last' => 'الاخير', |
|
102 | + 'next' => 'التالى', |
|
103 | + 'previous' => 'السابق', |
|
104 | + ], |
|
105 | + 'export' => [ |
|
106 | + 'copy' => 'نسخ', |
|
107 | + 'excel' => 'Excel', |
|
108 | + 'csv' => 'CSV', |
|
109 | + 'pdf' => 'PDF', |
|
110 | + 'print' => 'طباعة', |
|
111 | + 'column_visibility' => 'رؤية العمود', |
|
112 | + ], |
|
113 | + ]; |