|
1 | | -<!DOCTYPE html> |
2 | | -<html lang="{{ app()->getLocale() }}"> |
3 | | -<head> |
4 | | - <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui"> |
5 | | - |
6 | | - <title>{{ trans('Routes list') }} | {{ config('app.name') }}</title> |
7 | | - |
8 | | - <link rel="dns-prefetch" href="https://fonts.googleapis.com"> |
9 | | - <link rel="dns-prefetch" href="https://cdn.jsdelivr.net"> |
10 | | - |
11 | | - <link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900" rel="stylesheet"> |
12 | | - < link href= "https://cdn.jsdelivr.net/npm/@mdi/[email protected]/css/materialdesignicons.min.css" rel= "stylesheet"> |
13 | | - < link href= "https://cdn.jsdelivr.net/npm/[email protected]/dist/vuetify.min.css" rel= "stylesheet"> |
14 | | - |
15 | | - <style> |
16 | | - .spaced { margin: 2px; } |
17 | | -
|
18 | | - .deprecated { text-decoration: line-through; } |
19 | | -
|
20 | | - .link:hover { text-decoration: underline; cursor: pointer; } |
21 | | - </style> |
22 | | -</head> |
23 | | -<body> |
24 | | - |
25 | | -<div id="app"> |
26 | | - <v-app> |
27 | | - <v-app-bar app> |
28 | | - <v-toolbar-title> |
29 | | - <span |
30 | | - v-text="trans('title')" |
31 | | - :class="{link: filterIsFull()}" |
32 | | - @click="resetFilters" |
33 | | - ></span> (<span v-text="countRoutes"></span>) |
34 | | - </v-toolbar-title> |
35 | | - |
36 | | - <v-spacer v-if="hasDeprecated"></v-spacer> |
37 | | - <v-select |
38 | | - v-if="hasDeprecated" |
39 | | - v-model="filter.deprecated" |
40 | | - :label="trans('show')" |
41 | | - :items="items.deprecated" |
42 | | - item-value="key" |
43 | | - item-text="value" |
44 | | - hide-details="true" |
45 | | - ></v-select> |
46 | | - |
47 | | - <v-spacer v-if="hasModules"></v-spacer> |
48 | | - <v-select |
49 | | - v-if="hasModules" |
50 | | - v-model="filter.modules" |
51 | | - :label="trans('module')" |
52 | | - :items="filteredModules" |
53 | | - item-value="key" |
54 | | - item-text="value" |
55 | | - hide-details="true" |
56 | | - ></v-select> |
57 | | - |
58 | | - <v-spacer></v-spacer> |
59 | | - <v-text-field |
60 | | - v-model="filter.value" |
61 | | - :label="trans('search')" |
62 | | - append-icon="mdi-magnify" |
63 | | - hide-details |
64 | | - clearable |
65 | | - ></v-text-field> |
66 | | - |
67 | | - <v-spacer></v-spacer> |
68 | | - <v-btn icon @click="openGitHubRepository"> |
69 | | - <v-avatar size="36"> |
70 | | - <img |
71 | | - :src="repository.icon" |
72 | | - alt="Github Project Page" |
73 | | - > |
74 | | - </v-avatar> |
75 | | - </v-btn> |
76 | | - </v-app-bar> |
77 | | - |
78 | | - <v-main> |
79 | | - <v-data-table |
80 | | - :headers="filteredHeaders" |
81 | | - :items="filteredRoutes" |
82 | | - :items-per-page="itemsPerPage" |
83 | | - :search="filter.value" |
84 | | - :loading="loading" |
85 | | - :loading-text="trans('loading')" |
86 | | - :no-data-text="trans('noDataText')" |
87 | | - :no-results-text="trans('noResultsText')" |
88 | | - :footer-props="{ |
89 | | - itemsPerPageAllText: trans('itemsPerPageAllText'), |
90 | | - itemsPerPageText: trans('itemsPerPageText'), |
91 | | - pageText: trans('pageText') |
92 | | - }" |
93 | | - ref="routes" |
94 | | - multi-sort |
95 | | - > |
96 | | - <template v-slot:item.methods="{ item }"> |
97 | | - <v-chip |
98 | | - v-for="badge in item.methods" |
99 | | - v-text="badge.toUpperCase()" |
100 | | - :color="badges[badge]" |
101 | | - text-color="white" |
102 | | - label |
103 | | - small |
104 | | - class="spaced" |
105 | | - @click="setSearch(badge)" |
106 | | - ></v-chip> |
107 | | - </template> |
108 | | - |
109 | | - <template v-slot:item.path="{ item }"> |
110 | | - <span v-html="highlightParameters(item.path)"></span> |
111 | | - </template> |
112 | | - |
113 | | - <template v-slot:item.module="{ item }"> |
114 | | - <v-chip |
115 | | - v-if="item.module !== null" |
116 | | - v-text="item.module" |
117 | | - label |
118 | | - small |
119 | | - class="spaced" |
120 | | - @click="setModule(item.module)" |
121 | | - ></v-chip> |
122 | | - </template> |
123 | | - |
124 | | - <template v-slot:item.action="{ item }"> |
125 | | - <v-tooltip top v-if="item.deprecated"> |
126 | | - <template v-slot:activator="{ on }"> |
127 | | - <span |
128 | | - v-on="on" |
129 | | - v-html="highlightMethod(item.action)" |
130 | | - class="deprecated" |
131 | | - ></span> |
132 | | - </template> |
133 | | - <span v-text="trans('deprecated')"></span> |
134 | | - </v-tooltip> |
135 | | - |
136 | | - <span v-else v-html="highlightMethod(item.action)"></span> |
137 | | - </template> |
138 | | - |
139 | | - <template v-slot:item.middlewares="{ item }"> |
140 | | - <span |
141 | | - v-for="(middleware, key) in item.middlewares" |
142 | | - v-text="`${middleware}${key !== item.middlewares.length - 1 ? ', ' : ''}`" |
143 | | - @click="setSearch(middleware)" |
144 | | - class="link" |
145 | | - ></span> |
146 | | - </template> |
147 | | - </v-data-table> |
148 | | - </v-main> |
149 | | - </v-app> |
150 | | -</div> |
151 | | - |
152 | 1 | <script src="https://cdn.jsdelivr.net/npm/vue"></script> |
153 | 2 | <script src="https://cdn.jsdelivr.net/npm/vuetify"></script> |
154 | 3 | <script src="https://cdn.jsdelivr.net/npm/axios"></script> |
@@ -181,7 +30,7 @@ class="link" |
181 | 30 | }; |
182 | 31 |
|
183 | 32 | const colorScheme = () => { |
184 | | - switch ({!! json_encode(config('pretty-routes.color_scheme', 'auto')) !!}) { |
| 33 | + switch (@json(config('pretty-routes.color_scheme', 'auto'))) { |
185 | 34 | case 'dark': |
186 | 35 | return true; |
187 | 36 | case 'light': |
@@ -415,6 +264,3 @@ class="link" |
415 | 264 | } |
416 | 265 | }); |
417 | 266 | </script> |
418 | | - |
419 | | -</body> |
420 | | -</html> |
0 commit comments