breadcrumbs.php
1 <?php 2 3 use Diglactic\Breadcrumbs\Breadcrumbs; 4 use Diglactic\Breadcrumbs\Generator as BreadcrumbTrail; 5 6 // Dashboard 7 Breadcrumbs::for('dashboard', function (BreadcrumbTrail $trail) { 8 $trail->push('Dashboard', route('dashboard')); 9 }); 10 11 // Dossiers 12 Breadcrumbs::for('dossiers.dossier.index', function (BreadcrumbTrail $trail) { 13 $trail->push(__('dossiers.title'), route('dossiers.dossier.index')); 14 }); 15 16 // Dossiers > {Dossier} 17 Breadcrumbs::for('dossiers.dossier.view', function (BreadcrumbTrail $trail, $entity = null) { 18 $trail->parent('dossiers.dossier.index', route('dossiers.dossier.index')); 19 $trail->push('#' . $entity->code . ' ' . $entity?->toe?->name ?? __('toes.no-toe'), route('dossiers.dossier.view', $entity->id)); 20 }); 21 22 // Dossiers > Creation 23 Breadcrumbs::for('dossiers.dossier.creation', function (BreadcrumbTrail $trail) { 24 $trail->parent('dossiers.dossier.index', route('dossiers.dossier.index')); 25 $trail->push(__('dossiers.creation.title'), route('dossiers.dossier.create')); 26 }); 27 28 // Inbox Files 29 Breadcrumbs::for('validations.inbox-files.index', function (BreadcrumbTrail $trail) { 30 $trail->push(__('inbox-files.title'), route('validations.inbox-files.index')); 31 }); 32 //Non Conformity 33 Breadcrumbs::for('non-conformities.index', function (BreadcrumbTrail $trail) { 34 $trail->push(__('non-conformities.index.title'), route('non-conformities.index')); 35 }); 36 Breadcrumbs::for('non-conformities.view', function (BreadcrumbTrail $trail, $entity = null) { 37 if (session()->has('dossier')) { 38 $trail->parent('dossiers.dossier.view', session()->get('dossier')); 39 } 40 $trail->parent('non-conformities.index', route('non-conformities.index')); 41 $trail->push(($entity->code), route('non-conformities.view', $entity->id)); 42 }); 43 44 Breadcrumbs::for('validations.inbox-files.view', function (BreadcrumbTrail $trail, $entity = null) { 45 if (session()->has('dossier')) { 46 $trail->parent('dossiers.dossier.view', session()->get('dossier')); 47 } 48 $trail->parent('validations.inbox-files.index'); 49 //TODO : Cambiar por un título adecuado 50 $trail->push(__('inbox-files.table.types.' . $entity->type)); 51 }); 52 53 Breadcrumbs::for('validations.inbox-files.validations.index', function (BreadcrumbTrail $trail, $entity = null) { 54 $trail->parent('validations.inbox-files.index'); 55 //TODO : Cambiar por un título adecuado 56 $trail->push(__('inbox-files.breadcrumb.numbered_file') . $entity->id); 57 $trail->push(__('inbox-files.validations.title'), route('validations.inbox-files.validations.index', $entity->id)); 58 }); 59 60 //Reviews 61 Breadcrumbs::for('reviews.files.index', function (BreadcrumbTrail $trail) { 62 $trail->push(__('reviews.title'), route('reviews.files.index')); 63 }); 64 65 //Templates 66 Breadcrumbs::for('dossiers.dossier-templates.index', function (BreadcrumbTrail $trail) { 67 $trail->push(__('dossiers.template.title'), route('dossiers.dossier-templates.index')); 68 }); 69 70 // Documents 71 Breadcrumbs::for('documents', function (BreadcrumbTrail $trail) { 72 if (Auth::user()->can('viewAny', \App\Models\Document::class)) { 73 $trail->push(__('documents.title'), route('documents.index')); 74 } 75 }); 76 77 Breadcrumbs::for('documents.pending', function (BreadcrumbTrail $trail) { 78 $trail->push(__('documents.title'), route('documents.pending')); 79 }); 80 81 Breadcrumbs::for('document.folders', function (BreadcrumbTrail $trail) { 82 $trail->push(__('menu.documents.folders'), route('documents.folders')); 83 }); 84 85 Breadcrumbs::for('document.versions.index', function (BreadcrumbTrail $trail, $entity = null) { 86 if (session()->has('dossier')) { 87 $trail->parent('dossiers.dossier.view', session()->get('dossier')); 88 } 89 $trail->parent('documents'); 90 $trail->push($entity->name, route('document.versions.index', $entity->id)); 91 }); 92 93 Breadcrumbs::for('document.out-puts.index', function (BreadcrumbTrail $trail, $entity = null) { 94 if (session()->has('dossier')) { 95 $trail->parent('dossiers.dossier.view', session()->get('dossier')); 96 } 97 $trail->parent('documents'); 98 $trail->push($entity->name); 99 $trail->push(__('out-puts.title')); 100 }); 101 102 103 Breadcrumbs::for('documents.templates.index', function (BreadcrumbTrail $trail) { 104 $trail->push(__('documents.title')); 105 $trail->push(__('documents.templates.title'), route('documents.templates.index')); 106 }); 107 108 Breadcrumbs::for('documents.templates.tokens.index', function (BreadcrumbTrail $trail) { 109 $trail->parent('documents.templates.index'); 110 $trail->push(__('template-docs.tokens.title'), route('documents.templates.tokens.index')); 111 }); 112 113 114 Breadcrumbs::for('documents.templates.eml.index', function (BreadcrumbTrail $trail) { 115 $trail->push(__('eml.template.cards.index'), route('emls.index')); 116 }); 117 118 // Dossiers > {Dossier} > Meet 119 Breadcrumbs::for('dossiers.dossier.meet.view', function (BreadcrumbTrail $trail, $entity = null) { 120 $trail->parent('dossiers.dossier.index', route('dossiers.dossier.index')); 121 $trail->push('#' . $entity->dossier->code . ' ' . $entity->dossier->toe->name, route('dossiers.dossier.view', $entity->dossier->id)); 122 $trail->push($entity->name, route('dossiers.dossier.meet.view', $entity->id)); 123 }); 124 125 // Entities 126 Breadcrumbs::for('entities.index', function (BreadcrumbTrail $trail) { 127 $trail->push(__('entities.title'), route('entities.index')); 128 }); 129 130 // Entities > {Entity} 131 Breadcrumbs::for('entities.view', function (BreadcrumbTrail $trail, $entity = null) { 132 $trail->parent('entities.index', route('entities.index')); 133 $trail->push($entity->name, route('entities.view', $entity->id)); 134 }); 135 136 // Users 137 Breadcrumbs::for('users.index', function (BreadcrumbTrail $trail) { 138 $trail->push(__('users.title'), route('users.index')); 139 }); 140 141 Breadcrumbs::for('users.view', function (BreadcrumbTrail $trail, $entity = null) { 142 if (session()->has('dossier')) { 143 $trail->parent('dossiers.dossier.view', session()->get('dossier')); 144 } 145 $trail->parent('users.index', route('users.index')); 146 $trail->push($entity->fullname, route('users.view', $entity->id)); 147 }); 148 149 // Task 150 Breadcrumbs::for('tasks.index', function (BreadcrumbTrail $trail) { 151 $trail->push(__('tasks.task.title'), route('tasks.task.index')); 152 }); 153 154 Breadcrumbs::for('tasks.view', function (BreadcrumbTrail $trail, $entity = null) { 155 $trail->parent('tasks.index', route('tasks.task.index')); 156 $trail->push($entity->title, route('tasks.task.view', $entity->id)); 157 }); 158 159 // Milestone 160 Breadcrumbs::for('milestones.view', function (BreadcrumbTrail $trail, $entity = null) { 161 $trail->parent('dossiers.dossier.view', $entity->stage->dossier); 162 $trail->push($entity->title); 163 }); 164 165 // Groups 166 Breadcrumbs::for('norms.groups.index', function (BreadcrumbTrail $trail) { 167 $trail->push(__('norms.group.title'), route('norms.groups.index')); 168 }); 169 170 // Groups > {Group} 171 Breadcrumbs::for('norms.group.view', function (BreadcrumbTrail $trail, $entity = null) { 172 $trail->parent('norms.groups.index', route('norms.groups.index')); 173 $trail->push($entity->name, route('norms.group.view', $entity->id)); 174 }); 175 176 // Groups > {Group} > {Norm} 177 Breadcrumbs::for('norms.norm.view', function (BreadcrumbTrail $trail, $entity = null) { 178 $trail->parent('norms.group.view', $entity->normGroup); 179 $trail->push($entity->name, route('norms.norm.view', ['norm' => $entity->id])); 180 }); 181 182 // TOES 183 Breadcrumbs::for('toes.index', function (BreadcrumbTrail $trail) { 184 $trail->push(__('toes.toe.title'), route('toes.index')); 185 }); 186 187 // TOES > {TOE} 188 Breadcrumbs::for('toes.toe.view', function (BreadcrumbTrail $trail, $entity = null) { 189 $trail->parent('toes.index', route('toes.index')); 190 $trail->push($entity->name, route('toes.toe.view', $entity->id)); 191 }); 192 193 //Deprecated 194 // TOES > Categories 195 //Breadcrumbs::for('toes.categories.index', function (BreadcrumbTrail $trail) { 196 // $trail->parent('toes.index'); 197 // $trail->push(__('toes.category.title'), route('toes.categories.index')); 198 //}); 199 200 201 // App Settings 202 Breadcrumbs::for('app.settings', function (BreadcrumbTrail $trail) { 203 $trail->push(__('app.settings'), route('app.settings')); 204 }); 205 206 Breadcrumbs::for('app.customization', function (BreadcrumbTrail $trail) { 207 $trail->push(__('app.customization'), route('app.customization')); 208 }); 209 210 Breadcrumbs::for('app.schedule', function (BreadcrumbTrail $trail) { 211 $trail->push(__('app.schedule'), route('app.schedule')); 212 }); 213 214 Breadcrumbs::for('audits.index', function (BreadcrumbTrail $trail) { 215 $trail->push(__('audits.title'), route('audits.index')); 216 }); 217 218 //Notifications 219 Breadcrumbs::for('notifications.index', function (BreadcrumbTrail $trail) { 220 $trail->push(__('notifications.title'), route('notifications.index')); 221 }); 222 223 //Role 224 Breadcrumbs::for('roles.index', function (BreadcrumbTrail $trail) { 225 $trail->push(__('roles.index.breadcrumb'), route('roles.index')); 226 }); 227 228 //Role > {Role} 229 Breadcrumbs::for('role.show', function (BreadcrumbTrail $trail, $entity = null) { 230 $trail->parent('roles.index'); 231 $trail->push($entity->name, route('role.show', $entity->id)); 232 }); 233 234 //Permission 235 Breadcrumbs::for('permissions.index', function (BreadcrumbTrail $trail) { 236 $trail->push(__('permissions.index.breadcrumb'), route('permissions.index')); 237 }); 238 239 Breadcrumbs::for('evidences.index', function (BreadcrumbTrail $trail) { 240 $trail->push(__('evidences.title'), route('evidences.index')); 241 }); 242 243 // Inbox de vulnerabilidades 244 Breadcrumbs::for('vulnerability-mail.index', function (BreadcrumbTrail $trail) { 245 $trail->push(__('vulnerabilities.index.breadcrumb'), route('vulnerability-mail.index')); 246 }); 247 248 //Jsons 249 Breadcrumbs::for('jsons.index', function (BreadcrumbTrail $trail) { 250 $trail->push(__('jsons.title'), route('jsons.index')); 251 }); 252 253 Breadcrumbs::for('jsons.view', function (BreadcrumbTrail $trail, $entity = null) { 254 $trail->parent('jsons.index'); 255 $trail->push($entity->schema_name . " - " . $entity->id, route('jsons.view', $entity->id)); 256 }); 257 258 //Resolutions 259 Breadcrumbs::for('resolutions.index', function (BreadcrumbTrail $trail) { 260 $trail->push(__('resolutions.title'), route('resolutions.index')); 261 }); 262 263 //Certified Products 264 Breadcrumbs::for('certified-products.index', function (BreadcrumbTrail $trail) { 265 $trail->push(__('certified-products.title'), route('certified-products.index')); 266 }); 267 268 Breadcrumbs::for('certified-products.view', function (BreadcrumbTrail $trail, $entity = null) { 269 $trail->parent('certified-products.index'); 270 $trail->push($entity->cuid, route('certified-products.view', $entity->id)); 271 }); 272 273 //Protection Profiles 274 Breadcrumbs::for('protection-profiles.index', function (BreadcrumbTrail $trail) { 275 $trail->push(__('protection-profiles.title'), route('protection-profiles.index')); 276 });