├── .gitignore
├── .vuepress
└── dist
│ ├── 404.html
│ ├── assets
│ ├── css
│ │ └── styles.95a654ae.css
│ ├── img
│ │ ├── enso.png
│ │ └── search.83621669.svg
│ └── js
│ │ ├── 1.7290c0ac.js
│ │ ├── 10.ef103866.js
│ │ ├── 100.fdf56730.js
│ │ ├── 101.50dd47b8.js
│ │ ├── 102.77e40486.js
│ │ ├── 103.5c397de2.js
│ │ ├── 104.15d78ec3.js
│ │ ├── 105.6d1cfa09.js
│ │ ├── 106.0088fca6.js
│ │ ├── 107.74d41d51.js
│ │ ├── 108.6c68ad06.js
│ │ ├── 109.0fb22f8d.js
│ │ ├── 11.ce273fa6.js
│ │ ├── 110.9db3904e.js
│ │ ├── 111.76450993.js
│ │ ├── 112.d9105124.js
│ │ ├── 113.eb711a4b.js
│ │ ├── 114.1430c22d.js
│ │ ├── 115.89337494.js
│ │ ├── 116.9e6fdf35.js
│ │ ├── 117.8f3cef5b.js
│ │ ├── 12.a5672dcb.js
│ │ ├── 13.22160a69.js
│ │ ├── 14.32f92942.js
│ │ ├── 15.247d51d3.js
│ │ ├── 16.d1b0e72f.js
│ │ ├── 17.7e70b6a2.js
│ │ ├── 18.bd25c401.js
│ │ ├── 19.ab7742c7.js
│ │ ├── 2.9b5dc0ab.js
│ │ ├── 20.2eb8ee5c.js
│ │ ├── 21.55007b88.js
│ │ ├── 22.45598b0e.js
│ │ ├── 23.bb1b6441.js
│ │ ├── 24.e86246d5.js
│ │ ├── 25.7aed54d4.js
│ │ ├── 26.4f2d3c25.js
│ │ ├── 27.c0b1e552.js
│ │ ├── 28.89eabbdf.js
│ │ ├── 29.ff48ccc1.js
│ │ ├── 3.05663b14.js
│ │ ├── 30.6937e26c.js
│ │ ├── 31.db75f9fa.js
│ │ ├── 32.09b1adaf.js
│ │ ├── 33.94ec514f.js
│ │ ├── 34.eee4092c.js
│ │ ├── 35.2dd27500.js
│ │ ├── 36.58c4f731.js
│ │ ├── 37.c2608eaa.js
│ │ ├── 38.0a9ac53e.js
│ │ ├── 39.c9cda278.js
│ │ ├── 4.25c6a26c.js
│ │ ├── 40.f01075e9.js
│ │ ├── 41.9b22423f.js
│ │ ├── 42.577cd5fa.js
│ │ ├── 43.3e5cd8bc.js
│ │ ├── 44.33cd3363.js
│ │ ├── 45.2b5f7b62.js
│ │ ├── 46.cc9b1753.js
│ │ ├── 47.7cf9cba2.js
│ │ ├── 48.210a7aec.js
│ │ ├── 49.afed322c.js
│ │ ├── 5.2a0f1976.js
│ │ ├── 50.94be2c72.js
│ │ ├── 51.0c92da60.js
│ │ ├── 52.d07cd346.js
│ │ ├── 53.5be56437.js
│ │ ├── 54.c14ad9b2.js
│ │ ├── 55.4abf261c.js
│ │ ├── 56.5744bd48.js
│ │ ├── 57.ef216bdc.js
│ │ ├── 58.2961ccf6.js
│ │ ├── 59.7eb23e75.js
│ │ ├── 6.969febdd.js
│ │ ├── 60.7847584a.js
│ │ ├── 61.1e778d21.js
│ │ ├── 62.c5454c97.js
│ │ ├── 63.167e4e25.js
│ │ ├── 64.0d25b23a.js
│ │ ├── 65.921775b9.js
│ │ ├── 66.508a4756.js
│ │ ├── 67.d84f1bb4.js
│ │ ├── 68.cdde7d7d.js
│ │ ├── 69.8a932f16.js
│ │ ├── 7.f8e1fa68.js
│ │ ├── 70.24fea6b6.js
│ │ ├── 71.077b2f0f.js
│ │ ├── 72.3baeaf48.js
│ │ ├── 73.70634a05.js
│ │ ├── 74.9d816814.js
│ │ ├── 75.d9ed19cc.js
│ │ ├── 76.e1eeda77.js
│ │ ├── 77.f4ae54c1.js
│ │ ├── 78.4200a185.js
│ │ ├── 79.0843531e.js
│ │ ├── 8.3e772763.js
│ │ ├── 80.6557234b.js
│ │ ├── 81.5526454b.js
│ │ ├── 82.4ab9605b.js
│ │ ├── 83.5ffb79b2.js
│ │ ├── 84.b5f17442.js
│ │ ├── 85.32d0425d.js
│ │ ├── 86.689331be.js
│ │ ├── 87.58b63ccf.js
│ │ ├── 88.c64b60c4.js
│ │ ├── 89.bca7e295.js
│ │ ├── 9.ba6b569f.js
│ │ ├── 90.8de08315.js
│ │ ├── 91.585952c3.js
│ │ ├── 92.7fac7c32.js
│ │ ├── 93.3de581f9.js
│ │ ├── 94.b516432d.js
│ │ ├── 95.f0afa9ff.js
│ │ ├── 96.f122e154.js
│ │ ├── 97.716d5eaf.js
│ │ ├── 98.b94eefe1.js
│ │ ├── 99.6f51e521.js
│ │ └── app.95a654ae.js
│ └── docs
│ ├── backend
│ ├── action-logger.html
│ ├── activity-log.html
│ ├── addresses-manager.html
│ ├── avatar-manager.html
│ ├── charts.html
│ ├── cli.html
│ ├── comments-manager.html
│ ├── companies.html
│ ├── core.html
│ ├── data-export.html
│ ├── data-import.html
│ ├── discussions.html
│ ├── documents-manager.html
│ ├── file-manager.html
│ ├── form-builder.html
│ ├── helpers.html
│ ├── history-tracker.html
│ ├── how-to-videos.html
│ ├── image-transformer.html
│ ├── impersonate.html
│ ├── index.html
│ ├── io.html
│ ├── localisation.html
│ ├── log-manager.html
│ ├── menu-manager.html
│ ├── migrator.html
│ ├── multitenancy.html
│ ├── notifications.html
│ ├── people.html
│ ├── permission-manager.html
│ ├── rememberable.html
│ ├── role-manager.html
│ ├── searchable.html
│ ├── select.html
│ ├── teams.html
│ ├── track-who.html
│ ├── tutorial-manager.html
│ ├── versioning.html
│ └── vue-datatable.html
│ ├── frontend
│ ├── accessories.html
│ ├── bulma.html
│ ├── card.html
│ ├── charts.html
│ ├── confirmation.html
│ ├── datepicker.html
│ ├── directives.html
│ ├── divider.html
│ ├── dropdown-indicator.html
│ ├── dropdown.html
│ ├── filters.html
│ ├── forms.html
│ ├── index.html
│ ├── loader.html
│ ├── mixins.html
│ ├── modal.html
│ ├── money.html
│ ├── progress-bar.html
│ ├── progress-circle.html
│ ├── scroll-to-top.html
│ ├── select.html
│ ├── switch.html
│ ├── tables.html
│ ├── tabs.html
│ ├── themes.html
│ ├── toastr.html
│ ├── transitions.html
│ ├── typeahead.html
│ ├── ui.html
│ ├── uploader.html
│ └── wysiwyg.html
│ ├── guide
│ ├── getting-started.html
│ ├── index.html
│ ├── license.html
│ ├── thanks.html
│ ├── under-the-hood.html
│ └── usage.html
│ ├── index.html
│ └── packages
│ ├── action-logger.html
│ ├── activity-log.html
│ ├── addresses-manager.html
│ ├── avatar-manager.html
│ ├── charts.html
│ ├── cnp-validator.html
│ ├── comments-manager.html
│ ├── companies.html
│ ├── core.html
│ ├── data-export.html
│ ├── data-import.html
│ ├── discussions.html
│ ├── documents-manager.html
│ ├── file-manager.html
│ ├── form-builder.html
│ ├── helpers.html
│ ├── history-tracker.html
│ ├── how-to-videos.html
│ ├── image-transformer.html
│ ├── impersonate.html
│ ├── index.html
│ ├── localisation.html
│ ├── log-manager.html
│ ├── menu-manager.html
│ ├── multitenancy.html
│ ├── notifications.html
│ ├── people.html
│ ├── permission-manager.html
│ ├── rememberable.html
│ ├── role-manager.html
│ ├── searchable.html
│ ├── select.html
│ ├── structure-manager.html
│ ├── teams.html
│ ├── test-helper.html
│ ├── track-who.html
│ ├── tutorial-manager.html
│ ├── versioning.html
│ ├── vue-components.html
│ └── vue-datatable.html
├── docs
├── .vuepress
│ ├── config.js
│ ├── dist
│ │ ├── 404.html
│ │ ├── assets
│ │ │ ├── css
│ │ │ │ └── 0.styles.609db554.css
│ │ │ ├── img
│ │ │ │ └── search.83621669.svg
│ │ │ └── js
│ │ │ │ ├── 10.7dd3b285.js
│ │ │ │ ├── 100.c85226da.js
│ │ │ │ ├── 101.57cf51e7.js
│ │ │ │ ├── 102.dc20fdab.js
│ │ │ │ ├── 103.057f2f65.js
│ │ │ │ ├── 104.0dcd9377.js
│ │ │ │ ├── 105.23ed730f.js
│ │ │ │ ├── 106.a053de36.js
│ │ │ │ ├── 107.25c1dc34.js
│ │ │ │ ├── 108.f6d46220.js
│ │ │ │ ├── 109.56431665.js
│ │ │ │ ├── 11.13bf55fc.js
│ │ │ │ ├── 110.77cf3a53.js
│ │ │ │ ├── 111.e261ffbc.js
│ │ │ │ ├── 112.1e533086.js
│ │ │ │ ├── 113.98b52632.js
│ │ │ │ ├── 114.b24b1613.js
│ │ │ │ ├── 115.5d0b70c5.js
│ │ │ │ ├── 116.ffdf5a91.js
│ │ │ │ ├── 117.66790972.js
│ │ │ │ ├── 118.3f2c3093.js
│ │ │ │ ├── 119.08fdb883.js
│ │ │ │ ├── 12.6557f856.js
│ │ │ │ ├── 120.22df8542.js
│ │ │ │ ├── 121.3be976e6.js
│ │ │ │ ├── 122.9d6619ed.js
│ │ │ │ ├── 123.0f274c7d.js
│ │ │ │ ├── 13.49671eb7.js
│ │ │ │ ├── 14.5db434cb.js
│ │ │ │ ├── 15.17a0185a.js
│ │ │ │ ├── 16.d1cce4fd.js
│ │ │ │ ├── 17.ab8ffc6a.js
│ │ │ │ ├── 18.d0c96c2f.js
│ │ │ │ ├── 19.6c44d17a.js
│ │ │ │ ├── 2.0d2b62f6.js
│ │ │ │ ├── 20.1869bcbc.js
│ │ │ │ ├── 21.00ab10c4.js
│ │ │ │ ├── 22.992e82d4.js
│ │ │ │ ├── 23.ab17c65c.js
│ │ │ │ ├── 24.e3c5a877.js
│ │ │ │ ├── 25.5405fb3a.js
│ │ │ │ ├── 26.4f9242ec.js
│ │ │ │ ├── 27.b71632a2.js
│ │ │ │ ├── 28.101007c9.js
│ │ │ │ ├── 29.0446696b.js
│ │ │ │ ├── 3.8f9e15cc.js
│ │ │ │ ├── 30.e283f68e.js
│ │ │ │ ├── 31.2659d366.js
│ │ │ │ ├── 32.0c974cb2.js
│ │ │ │ ├── 33.903c4189.js
│ │ │ │ ├── 34.1faffb28.js
│ │ │ │ ├── 35.e47e00e1.js
│ │ │ │ ├── 36.6db5d0c0.js
│ │ │ │ ├── 37.2826f5ea.js
│ │ │ │ ├── 38.88a5b63f.js
│ │ │ │ ├── 39.5d11cdf7.js
│ │ │ │ ├── 4.8e5dbcef.js
│ │ │ │ ├── 40.dc0dadce.js
│ │ │ │ ├── 41.2a361b22.js
│ │ │ │ ├── 42.da117e83.js
│ │ │ │ ├── 43.699df823.js
│ │ │ │ ├── 44.5834a638.js
│ │ │ │ ├── 45.cfcc5b47.js
│ │ │ │ ├── 46.e1709cd2.js
│ │ │ │ ├── 47.671271d5.js
│ │ │ │ ├── 48.3dacf61d.js
│ │ │ │ ├── 49.0210f3cd.js
│ │ │ │ ├── 5.b3b97820.js
│ │ │ │ ├── 50.13678e77.js
│ │ │ │ ├── 51.59af7e6c.js
│ │ │ │ ├── 52.442f9623.js
│ │ │ │ ├── 53.c18b8211.js
│ │ │ │ ├── 54.50bc93b2.js
│ │ │ │ ├── 55.9d50d7f2.js
│ │ │ │ ├── 56.b6a33719.js
│ │ │ │ ├── 57.c0402b3f.js
│ │ │ │ ├── 58.5850d454.js
│ │ │ │ ├── 59.199c84d2.js
│ │ │ │ ├── 6.0b7c7b30.js
│ │ │ │ ├── 60.bc013c9b.js
│ │ │ │ ├── 61.e6094918.js
│ │ │ │ ├── 62.ce6f081b.js
│ │ │ │ ├── 63.35e9e0ef.js
│ │ │ │ ├── 64.5f35f5fe.js
│ │ │ │ ├── 65.48e1867e.js
│ │ │ │ ├── 66.647e4b81.js
│ │ │ │ ├── 67.2c73f975.js
│ │ │ │ ├── 68.9822f5f7.js
│ │ │ │ ├── 69.f22ccbef.js
│ │ │ │ ├── 7.f1aa9c96.js
│ │ │ │ ├── 70.3460351c.js
│ │ │ │ ├── 71.1802bafa.js
│ │ │ │ ├── 72.030c4575.js
│ │ │ │ ├── 73.60e15760.js
│ │ │ │ ├── 74.403aa8ae.js
│ │ │ │ ├── 75.9f99be9f.js
│ │ │ │ ├── 76.1090e038.js
│ │ │ │ ├── 77.b8ca7e3e.js
│ │ │ │ ├── 78.baa14a72.js
│ │ │ │ ├── 79.d6935ee1.js
│ │ │ │ ├── 8.a1966c4f.js
│ │ │ │ ├── 80.332f6e4f.js
│ │ │ │ ├── 81.281128f3.js
│ │ │ │ ├── 82.6043b5c6.js
│ │ │ │ ├── 83.6941cab6.js
│ │ │ │ ├── 84.fddbe04b.js
│ │ │ │ ├── 85.472d4f72.js
│ │ │ │ ├── 86.a9370411.js
│ │ │ │ ├── 87.c062f327.js
│ │ │ │ ├── 88.30e7d8fc.js
│ │ │ │ ├── 89.abe7e9ec.js
│ │ │ │ ├── 9.ce18f2ba.js
│ │ │ │ ├── 90.3f3c9a65.js
│ │ │ │ ├── 91.e4f36277.js
│ │ │ │ ├── 92.17f7a819.js
│ │ │ │ ├── 93.e653f48d.js
│ │ │ │ ├── 94.04a7e87d.js
│ │ │ │ ├── 95.df1b9f0b.js
│ │ │ │ ├── 96.30f1c340.js
│ │ │ │ ├── 97.7e9f9dd7.js
│ │ │ │ ├── 98.029451c2.js
│ │ │ │ ├── 99.e0e341e3.js
│ │ │ │ └── app.8d89e16c.js
│ │ ├── backend
│ │ │ ├── action-logger.html
│ │ │ ├── activity-log.html
│ │ │ ├── addresses.html
│ │ │ ├── avatars.html
│ │ │ ├── charts.html
│ │ │ ├── cli.html
│ │ │ ├── comments.html
│ │ │ ├── companies.html
│ │ │ ├── core.html
│ │ │ ├── data-export.html
│ │ │ ├── data-import.html
│ │ │ ├── discussions.html
│ │ │ ├── documents.html
│ │ │ ├── files.html
│ │ │ ├── forms.html
│ │ │ ├── helpers.html
│ │ │ ├── history-tracker.html
│ │ │ ├── how-to.html
│ │ │ ├── image-transformer.html
│ │ │ ├── impersonate.html
│ │ │ ├── index.html
│ │ │ ├── io.html
│ │ │ ├── localisation.html
│ │ │ ├── logs.html
│ │ │ ├── menus.html
│ │ │ ├── migrator.html
│ │ │ ├── multitenancy.html
│ │ │ ├── notifications.html
│ │ │ ├── people.html
│ │ │ ├── permissions.html
│ │ │ ├── rememberable.html
│ │ │ ├── roles.html
│ │ │ ├── searchable.html
│ │ │ ├── select.html
│ │ │ ├── tables.html
│ │ │ ├── teams.html
│ │ │ ├── track-who.html
│ │ │ ├── tutorials.html
│ │ │ └── versioning.html
│ │ ├── enso.png
│ │ ├── enso.svg
│ │ ├── favicon.ico
│ │ ├── frontend
│ │ │ ├── accessories.html
│ │ │ ├── bulma.html
│ │ │ ├── card.html
│ │ │ ├── charts.html
│ │ │ ├── confirmation.html
│ │ │ ├── datepicker.html
│ │ │ ├── directives.html
│ │ │ ├── divider.html
│ │ │ ├── dropdown-indicator.html
│ │ │ ├── dropdown.html
│ │ │ ├── filters.html
│ │ │ ├── forms.html
│ │ │ ├── index.html
│ │ │ ├── loader.html
│ │ │ ├── mixins.html
│ │ │ ├── modal.html
│ │ │ ├── money.html
│ │ │ ├── progress-bar.html
│ │ │ ├── progress-circle.html
│ │ │ ├── scroll-to-top.html
│ │ │ ├── select.html
│ │ │ ├── switch.html
│ │ │ ├── tables.html
│ │ │ ├── tabs.html
│ │ │ ├── themes.html
│ │ │ ├── toastr.html
│ │ │ ├── transitions.html
│ │ │ ├── typeahead.html
│ │ │ ├── ui.html
│ │ │ ├── uploader.html
│ │ │ └── wysiwyg.html
│ │ ├── guide
│ │ │ ├── development.html
│ │ │ ├── getting-started.html
│ │ │ ├── index.html
│ │ │ ├── license.html
│ │ │ ├── thanks.html
│ │ │ ├── under-the-hood.html
│ │ │ └── usage.html
│ │ ├── icons
│ │ │ ├── android-chrome-192x192.png
│ │ │ └── apple-touch-icon-152x152.png
│ │ ├── index.html
│ │ ├── manifest.json
│ │ └── packages
│ │ │ ├── action-logger.html
│ │ │ ├── activity-log.html
│ │ │ ├── addresses-manager.html
│ │ │ ├── avatar-manager.html
│ │ │ ├── charts.html
│ │ │ ├── cnp-validator.html
│ │ │ ├── comments-manager.html
│ │ │ ├── companies.html
│ │ │ ├── core.html
│ │ │ ├── data-export.html
│ │ │ ├── data-import.html
│ │ │ ├── discussions.html
│ │ │ ├── documents-manager.html
│ │ │ ├── file-manager.html
│ │ │ ├── form-builder.html
│ │ │ ├── helpers.html
│ │ │ ├── history-tracker.html
│ │ │ ├── how-to-videos.html
│ │ │ ├── image-transformer.html
│ │ │ ├── impersonate.html
│ │ │ ├── index.html
│ │ │ ├── localisation.html
│ │ │ ├── log-manager.html
│ │ │ ├── menu-manager.html
│ │ │ ├── multitenancy.html
│ │ │ ├── notifications.html
│ │ │ ├── people.html
│ │ │ ├── permission-manager.html
│ │ │ ├── rememberable.html
│ │ │ ├── role-manager.html
│ │ │ ├── searchable.html
│ │ │ ├── select.html
│ │ │ ├── structure-manager.html
│ │ │ ├── teams.html
│ │ │ ├── test-helper.html
│ │ │ ├── track-who.html
│ │ │ ├── tutorial-manager.html
│ │ │ ├── versioning.html
│ │ │ ├── vue-components.html
│ │ │ └── vue-datatable.html
│ └── public
│ │ ├── enso.png
│ │ ├── enso.svg
│ │ ├── favicon.ico
│ │ ├── icons
│ │ ├── android-chrome-192x192.png
│ │ └── apple-touch-icon-152x152.png
│ │ └── manifest.json
├── README.md
├── backend
│ ├── README.md
│ ├── action-logger.md
│ ├── activity-log.md
│ ├── addresses.md
│ ├── avatars.md
│ ├── calendar.md
│ ├── categories.md
│ ├── charts.md
│ ├── cli.md
│ ├── comments.md
│ ├── companies.md
│ ├── core.md
│ ├── currencies.md
│ ├── data-export.md
│ ├── data-import.md
│ ├── discussions.md
│ ├── documents.md
│ ├── dynamic-methods.md
│ ├── emails.md
│ ├── enums.md
│ ├── excel.md
│ ├── files.md
│ ├── forms.md
│ ├── helpers.md
│ ├── history-tracker.md
│ ├── how-to.md
│ ├── image-transformer.md
│ ├── impersonate.md
│ ├── io.md
│ ├── localisation.md
│ ├── logs.md
│ ├── measurement-units.md
│ ├── menus.md
│ ├── migrator.md
│ ├── multitenancy.md
│ ├── notifications.md
│ ├── pdf.md
│ ├── people.md
│ ├── permissions.md
│ ├── products.md
│ ├── rememberable.md
│ ├── roles.md
│ ├── searchable.md
│ ├── select.md
│ ├── services.md
│ ├── tables.md
│ ├── teams.md
│ ├── track-who.md
│ ├── tutorials.md
│ ├── versioning.md
│ └── versions.md
├── frontend
│ ├── README.md
│ ├── accessories.md
│ ├── activity-log.md
│ ├── bulma.md
│ ├── calendar.md
│ ├── card.md
│ ├── charts.md
│ ├── companies.md
│ ├── confirmation.md
│ ├── data-import.md
│ ├── datepicker.md
│ ├── directives.md
│ ├── divider.md
│ ├── dropdown-indicator.md
│ ├── dropdown.md
│ ├── files.md
│ ├── filters.md
│ ├── forms.md
│ ├── how-to.md
│ ├── loader.md
│ ├── localisation.md
│ ├── login.md
│ ├── menus.md
│ ├── mixins.md
│ ├── modal.md
│ ├── money.md
│ ├── people.md
│ ├── permissions.md
│ ├── products.md
│ ├── progress-bar.md
│ ├── progress-circle.md
│ ├── roles.md
│ ├── route-mapper.md
│ ├── scroll-to-top.md
│ ├── search-mode.md
│ ├── select.md
│ ├── switch.md
│ ├── tables.md
│ ├── tabs.md
│ ├── teams.md
│ ├── themes.md
│ ├── toastr.md
│ ├── transitions.md
│ ├── tree-view.md
│ ├── tutorials.md
│ ├── typeahead.md
│ ├── ui.md
│ ├── uploader.md
│ └── wysiwyg.md
└── guide
│ ├── README.md
│ ├── development.md
│ ├── getting-started.md
│ ├── license.md
│ ├── thanks.md
│ ├── under-the-hood.md
│ └── usage.md
├── package-lock.json
├── package.json
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | /.vscode
3 | /.idea
4 | .DS_STORE
5 |
--------------------------------------------------------------------------------
/.vuepress/dist/assets/img/enso.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/laravel-enso/documentation/b9488b46487801300df8b865828dcb63bb70ffba/.vuepress/dist/assets/img/enso.png
--------------------------------------------------------------------------------
/.vuepress/dist/assets/img/search.83621669.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/.vuepress/dist/assets/js/1.7290c0ac.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[1],{142:function(t,e,n){"use strict";n.r(e);var s=n(0),a=Object(s.a)({},function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"content"},[t._m(0),t._m(1),t._m(2),t._m(3),n("hr"),t._m(4),t._m(5),n("p",[n("strong",[t._v("Special thanks")]),t._v(" to "),n("a",{attrs:{href:"https://laravel.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Taylor Otwell"),n("OutboundLink")],1),t._v(", "),n("a",{attrs:{href:"https://laracasts.com",target:"_blank",rel:"noopener noreferrer"}},[t._v("Jeffrey Way"),n("OutboundLink")],1),t._v(", "),n("a",{attrs:{href:"https://vuejs.org/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Evan You"),n("OutboundLink")],1),t._v(" and "),n("a",{attrs:{href:"https://bulma.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("Jeremy Thomas"),n("OutboundLink")],1),t._v(".")])])},[function(){var t=this.$createElement,e=this._self._c||t;return e("h3",{attrs:{id:"try-it-up"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#try-it-up","aria-hidden":"true"}},[this._v("#")]),this._v(" Try it up")])},function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"language-bash extra-class"},[n("pre",{pre:!0,attrs:{class:"language-bash"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# clone in a new project folder")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" clone https://github.com/laravel-enso/Enso.git ./\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# install composer dependencies")]),t._v("\ncomposer "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Configure the .env file")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Generate the key")]),t._v("\nphp artisan key:generate\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# run the migrations")]),t._v("\nphp artisan migrate\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# install node dependencies")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# compile")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" dev / "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" hot\n")])])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"tip custom-block"},[e("p",{staticClass:"custom-block-title"},[this._v("Login")]),e("p",[this._v("user: admin@laravel-enso.com / password: password")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("p",[e("em",[this._v("fully working in less than 5 minutes!")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("h3",{attrs:{id:"thanks"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#thanks","aria-hidden":"true"}},[this._v("#")]),this._v(" Thanks")])},function(){var t=this.$createElement,e=this._self._c||t;return e("p",[this._v("Built with "),e("span",{staticStyle:{color:"red"}},[this._v(" ❤️")]),this._v("on Laravel 5.8.x, Bulma 0.7.x, Vuejs 2.6.x.")])}],!1,null,null,null);e.default=a.exports}}]);
--------------------------------------------------------------------------------
/.vuepress/dist/assets/js/112.d9105124.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[112],{253:function(e,t,r){"use strict";r.r(t);var a=r(0),s=Object(a.a)({},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"content"},[this._m(0),t("p",[t("a",{attrs:{href:"https://www.codacy.com/app/laravel-enso/TestHelper?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/TestHelper&utm_campaign=badger",target:"_blank",rel:"noopener noreferrer"}},[t("img",{attrs:{src:"https://api.codacy.com/project/badge/Grade/7b030436cab14721b8bab70c2d963e49",alt:"Codacy Badge"}}),t("OutboundLink")],1),t("a",{attrs:{href:"https://styleci.io/repos/98971196",target:"_blank",rel:"noopener noreferrer"}},[t("img",{attrs:{src:"https://styleci.io/repos/98971196/shield?branch=master",alt:"StyleCI"}}),t("OutboundLink")],1),t("a",{attrs:{href:"https://packagist.org/packages/laravel-enso/testhelper",target:"_blank",rel:"noopener noreferrer"}},[t("img",{attrs:{src:"https://poser.pugx.org/laravel-enso/testhelper/license",alt:"License"}}),t("OutboundLink")],1),t("a",{attrs:{href:"https://packagist.org/packages/laravel-enso/testhelper",target:"_blank",rel:"noopener noreferrer"}},[t("img",{attrs:{src:"https://poser.pugx.org/laravel-enso/testhelper/downloads",alt:"Total Downloads"}}),t("OutboundLink")],1),t("a",{attrs:{href:"https://packagist.org/packages/laravel-enso/testhelper",target:"_blank",rel:"noopener noreferrer"}},[t("img",{attrs:{src:"https://poser.pugx.org/laravel-enso/testhelper/version",alt:"Latest Stable Version"}}),t("OutboundLink")],1)]),t("p",[this._v("Test helper dependency for "),t("a",{attrs:{href:"https://github.com/laravel-enso/Enso",target:"_blank",rel:"noopener noreferrer"}},[this._v("Laravel Enso"),t("OutboundLink")],1),this._v(".")]),this._m(1),this._m(2)])},[function(){var e=this.$createElement,t=this._self._c||e;return t("h1",{attrs:{id:"testhelper"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#testhelper","aria-hidden":"true"}},[this._v("#")]),this._v(" TestHelper")])},function(){var e=this.$createElement,t=this._self._c||e;return t("h2",{attrs:{id:"details"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#details","aria-hidden":"true"}},[this._v("#")]),this._v(" Details")])},function(){var e=this.$createElement,t=this._self._c||e;return t("ul",[t("li",[this._v("is a collection of traits used for facilitating the testing of a few common Laravel Enso components")]),t("li",[this._v("SignIn, handles the sign-in stage")]),t("li",[this._v("TestCreateForm, handles testing of back-end form object creation for a route")]),t("li",[this._v("TestDataTable, handles testing of the back-end datatable object creation for a route")])])}],!1,null,null,null);t.default=s.exports}}]);
--------------------------------------------------------------------------------
/.vuepress/dist/assets/js/115.89337494.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[115],{256:function(e,t,r){"use strict";r.r(t);var s=r(0),i=Object(s.a)({},function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"content"},[e._m(0),r("p",[r("a",{attrs:{href:"https://www.codacy.com/app/laravel-enso/Versioning?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/Versioning&utm_campaign=Badge_Grade",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://api.codacy.com/project/badge/Grade/ff415bb65927479a80d173622d3c11ed",alt:"Codacy Badge"}}),r("OutboundLink")],1),r("a",{attrs:{href:"https://github.styleci.io/repos/134861936",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://github.styleci.io/repos/134861936/shield?branch=master",alt:"StyleCI"}}),r("OutboundLink")],1),r("a",{attrs:{href:"https://packagist.org/packages/laravel-enso/versioning",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://poser.pugx.org/laravel-enso/versioning/license",alt:"License"}}),r("OutboundLink")],1),r("a",{attrs:{href:"https://packagist.org/packages/laravel-enso/versioning",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://poser.pugx.org/laravel-enso/versioning/downloads",alt:"Total Downloads"}}),r("OutboundLink")],1),r("a",{attrs:{href:"https://packagist.org/packages/laravel-enso/versioning",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://poser.pugx.org/laravel-enso/versioning/version",alt:"Latest Stable Version"}}),r("OutboundLink")],1)]),r("p",[e._v("Prevents update conflicts using the optimistic lock pattern in Laravel")]),e._m(1),r("ul",[e._m(2),e._m(3),e._m(4),e._m(5),r("li",[e._v("the trait can be used on models that already have records in the database, the versioning starts with the first retrieval of those models")]),e._m(6),e._m(7),r("li",[e._v("tests are included with the package")]),r("li",[e._v("package comes included by default with "),r("a",{attrs:{href:"https://github.com/laravel-enso/Enso",target:"_blank",rel:"noopener noreferrer"}},[e._v("Enso"),r("OutboundLink")],1)])])])},[function(){var e=this.$createElement,t=this._self._c||e;return t("h1",{attrs:{id:"versioning"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#versioning","aria-hidden":"true"}},[this._v("#")]),this._v(" Versioning")])},function(){var e=this.$createElement,t=this._self._c||e;return t("h2",{attrs:{id:"details"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#details","aria-hidden":"true"}},[this._v("#")]),this._v(" Details")])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[this._v("the package creates a "),t("code",[this._v("versionings")]),this._v(" table where it holds versions for all the versionable models")])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[this._v("by using the "),t("code",[this._v("Versionable")]),this._v(" trait on a model, versioning is handled automatically")])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[this._v("by default the trait appends a "),t("code",[this._v("version")]),this._v(" attribute after the model is retrieved, used for tracking versions and expects the same attribute to be present on the model when the update is called")])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[this._v("the default versioning attribute can be customized by using "),t("code",[this._v("protected $versioningAttribute = 'customVersionAttribte'")]),this._v(" on the model")])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[this._v("when a versionable model is deleted, its versioning is deleted also. If the model uses "),t("code",[this._v("SoftDeletes")]),this._v(", the versioning is not deleted, unless doing a "),t("code",[this._v("forceDelete")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("li",[this._v("throws a "),t("code",[this._v("ConflictHttpException")]),this._v(" if the version does not match on update")])}],!1,null,null,null);t.default=i.exports}}]);
--------------------------------------------------------------------------------
/.vuepress/dist/assets/js/2.9b5dc0ab.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[2],{143:function(t,n,e){"use strict";e.r(n);var s=e(0),c=Object(s.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this.$createElement,n=this._self._c||t;return n("div",{staticClass:"content"},[n("p",[this._v("Collection of Back End components")])])}],!1,null,null,null);n.default=c.exports}}]);
--------------------------------------------------------------------------------
/.vuepress/dist/assets/js/55.4abf261c.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[55],{196:function(e,t,s){"use strict";s.r(t);var i=s(0),n=Object(i.a)({},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"content"},[e._m(0),e._m(1),s("p",[e._v("Enso Mixins Package")]),s("p",[e._v("The mixins are used exclusively inside of the Enso ecosystem.")]),s("p",[e._v("For live examples and demos, you may visit "),s("a",{attrs:{href:"https://www.laravel-enso.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("laravel-enso.com"),s("OutboundLink")],1)]),e._m(2),e._m(3),e._m(4),s("p",[e._v("The mixins are available for injection:")]),e._m(5),s("p",[e._v("You may then use them as needed.")]),e._m(6),s("p",[e._v("are welcome. Pull requests are great,\nbut issues are good too.")]),s("p",[e._v("Thank you to all the people who already contributed to Enso!")]),e._m(7),s("p",[s("a",{attrs:{href:"https://opensource.org/licenses/ISC",target:"_blank",rel:"noopener noreferrer"}},[e._v("ISC"),s("OutboundLink")],1)])])},[function(){var e=this.$createElement,t=this._self._c||e;return t("h1",{attrs:{id:"mixins"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mixins","aria-hidden":"true"}},[this._v("#")]),this._v(" Mixins")])},function(){var e=this.$createElement,t=this._self._c||e;return t("p",[t("img",{attrs:{src:"https://img.shields.io/npm/l/@enso-ui/mixins.svg",alt:"NPM License"}}),t("img",{attrs:{src:"https://img.shields.io/npm/dm/@enso-ui/mixins.svg",alt:"npm download"}}),t("img",{attrs:{src:"https://img.shields.io/github/languages/top/enso-ui/mixins.svg",alt:"GitHub top language"}}),t("img",{attrs:{src:"https://img.shields.io/github/issues/enso-ui/mixins.svg",alt:"GitHub issues"}}),t("img",{attrs:{src:"https://img.shields.io/npm/v/@enso-ui/mixins.svg",alt:"npm version"}})])},function(){var e=this.$createElement,t=this._self._c||e;return t("h2",{attrs:{id:"installation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#installation","aria-hidden":"true"}},[this._v("#")]),this._v(" Installation")])},function(){var e=this.$createElement,t=this._self._c||e;return t("p",[this._v("Installed by "),t("code",[this._v("@enso-ui/ui")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("h2",{attrs:{id:"usage"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#usage","aria-hidden":"true"}},[this._v("#")]),this._v(" Usage")])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"language-vue extra-class"},[t("pre",{pre:!0,attrs:{class:"language-vue"}},[t("code",[this._v("export default {\n name: 'EnsoSelect',\n\n inject: ['errorHandler', 'i18n'],\n\n components: { VueSelect },\n")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("h2",{attrs:{id:"contributions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#contributions","aria-hidden":"true"}},[this._v("#")]),this._v(" Contributions")])},function(){var e=this.$createElement,t=this._self._c||e;return t("h2",{attrs:{id:"license"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#license","aria-hidden":"true"}},[this._v("#")]),this._v(" License")])}],!1,null,null,null);t.default=n.exports}}]);
--------------------------------------------------------------------------------
/.vuepress/dist/assets/js/72.3baeaf48.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[72],{213:function(t,e,r){"use strict";r.r(e);var n=r(0),a=Object(n.a)({},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"content"},[this._m(0),e("p",[e("a",{attrs:{href:"https://styleci.io/repos/95136264",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://styleci.io/repos/95136264/shield?branch=master",alt:"StyleCI"}}),e("OutboundLink")],1),e("a",{attrs:{href:"https://waffle.io/laravel-enso/Enso",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://badge.waffle.io/laravel-enso/Enso.svg?columns=all",alt:"Waffle.io - Columns and their card count"}}),e("OutboundLink")],1),e("a",{attrs:{href:"https://travis-ci.org/laravel-enso/Enso",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://travis-ci.org/laravel-enso/Enso.svg?branch=master",alt:"Build Status"}}),e("OutboundLink")],1)]),this._m(1),e("p",[e("a",{attrs:{href:"https://laravel-enso.github.io/enso/videos/bulma_quick_walkthrough.webm",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://laravel-enso.github.io/enso/screenshots/bulma_cap000_thumb.png",alt:"Watch the demo"}}),e("OutboundLink")],1)]),this._m(2),e("p",[this._v("For the v1.x / adminlte version, take a look at the "),e("strong",[e("a",{attrs:{href:"https://github.com/laravel-enso/Enso/tree/adminlte",target:"_blank",rel:"noopener noreferrer"}},[this._v("adminlte"),e("OutboundLink")],1)]),this._v(" branch.")])])},[function(){var t=this.$createElement,e=this._self._c||t;return e("h1",{attrs:{id:"introduction"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#introduction","aria-hidden":"true"}},[this._v("#")]),this._v(" Introduction")])},function(){var t=this.$createElement,e=this._self._c||t;return e("h4",{attrs:{id:"hit-the-ground-running-when-building-your-new-laravel-spa-project-with-boilerplate-and-extra-functionality-out-of-the-box"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#hit-the-ground-running-when-building-your-new-laravel-spa-project-with-boilerplate-and-extra-functionality-out-of-the-box","aria-hidden":"true"}},[this._v("#")]),this._v(" Hit the ground running when building your new Laravel SPA project with boilerplate and extra functionality out of the box!")])},function(){var t=this.$createElement,e=this._self._c||t;return e("p",[e("sup",[this._v("click on the photo to view a short demo in compatible browsers")])])}],!1,null,null,null);e.default=a.exports}}]);
--------------------------------------------------------------------------------
/.vuepress/dist/assets/js/74.9d816814.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[74],{215:function(e,t,s){"use strict";s.r(t);var i=s(0),n=Object(i.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"content"},[t("h1",{attrs:{id:"license"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#license","aria-hidden":"true"}},[this._v("#")]),this._v(" License")]),t("p",[this._v("This package is released under the MIT license.")])])}],!1,null,null,null);t.default=n.exports}}]);
--------------------------------------------------------------------------------
/.vuepress/dist/assets/js/75.d9ed19cc.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[75],{216:function(r,e,t){"use strict";t.r(e);var n=t(0),a=Object(n.a)({},function(){var r=this,e=r.$createElement,t=r._self._c||e;return t("div",{staticClass:"content"},[r._m(0),r._m(1),t("p",[t("a",{attrs:{href:"https://router.vuejs.org/en",target:"_blank",rel:"noopener noreferrer"}},[r._v("Vue Router"),t("OutboundLink")],1),r._v(", "),t("a",{attrs:{href:"https://vuex.vuejs.org/en/",target:"_blank",rel:"noopener noreferrer"}},[r._v("Vuex"),t("OutboundLink")],1),r._v(", "),t("a",{attrs:{href:"https://github.com/axios/axios",target:"_blank",rel:"noopener noreferrer"}},[r._v("Axios"),t("OutboundLink")],1),r._v(",\n"),t("a",{attrs:{href:"https://fontawesome.com",target:"_blank",rel:"noopener noreferrer"}},[r._v("Font awesome 5"),t("OutboundLink")],1),r._v(", "),t("a",{attrs:{href:"https://daneden.github.io/animate.css/",target:"_blank",rel:"noopener noreferrer"}},[r._v("Animate.css"),t("OutboundLink")],1),r._v(",\n"),t("a",{attrs:{href:"https://jenil.github.io/bulmaswatch",target:"_blank",rel:"noopener noreferrer"}},[r._v("Bulmaswatch"),t("OutboundLink")],1),r._v(", "),t("a",{attrs:{href:"https://wikiki.github.io",target:"_blank",rel:"noopener noreferrer"}},[r._v("Bulma-Extensions"),t("OutboundLink")],1),r._v(",\n"),t("a",{attrs:{href:"http://ricostacruz.com/nprogress",target:"_blank",rel:"noopener noreferrer"}},[r._v("Nprogress.js"),t("OutboundLink")],1),r._v(", "),t("a",{attrs:{href:"http://introjs.com/",target:"_blank",rel:"noopener noreferrer"}},[r._v("Intro.js"),t("OutboundLink")],1),r._v(",\n"),t("a",{attrs:{href:"http://chartjs.org",target:"_blank",rel:"noopener noreferrer"}},[r._v("Chart.js"),t("OutboundLink")],1),r._v(", "),t("a",{attrs:{href:"https://chmln.github.io/flatpickr/",target:"_blank",rel:"noopener noreferrer"}},[r._v("Flatpickr"),t("OutboundLink")],1),r._v(".")]),t("p",[r._v("Special thanks to "),t("a",{attrs:{href:"https://laravel.com/",target:"_blank",rel:"noopener noreferrer"}},[r._v("Taylor Otwell"),t("OutboundLink")],1),r._v(", "),t("a",{attrs:{href:"https://laracasts.com",target:"_blank",rel:"noopener noreferrer"}},[r._v("Jeffrey Way"),t("OutboundLink")],1),r._v(", "),t("a",{attrs:{href:"https://vuejs.org/",target:"_blank",rel:"noopener noreferrer"}},[r._v("Evan You"),t("OutboundLink")],1),r._v(" and "),t("a",{attrs:{href:"https://bulma.io",target:"_blank",rel:"noopener noreferrer"}},[r._v("Jeremy Thomas"),t("OutboundLink")],1),r._v(".")])])},[function(){var r=this.$createElement,e=this._self._c||r;return e("h1",{attrs:{id:"thanks"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#thanks","aria-hidden":"true"}},[this._v("#")]),this._v(" Thanks")])},function(){var r=this.$createElement,e=this._self._c||r;return e("p",[this._v("Built with with "),e("span",{staticStyle:{color:"red"}},[this._v(" ❤️")]),this._v(", crafted on Laravel 5.6.x, Bulma 0.6.x, Vuejs 2.5.x and:")])}],!1,null,null,null);e.default=a.exports}}]);
--------------------------------------------------------------------------------
/.vuepress/dist/assets/js/78.4200a185.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[78],{219:function(t,e,a){"use strict";a.r(e);var n=a(0),r=Object(n.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"content"},[e("h1",{attrs:{id:"packages-index"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#packages-index","aria-hidden":"true"}},[this._v("#")]),this._v(" Packages Index")]),e("p",[this._v("Here you can find the documentation\nfor the laravel-enso v2.x packages, that contain both the back-end and front-end components.")]),e("p",[this._v("Starting with v3.x, after a thorough rewrite & refactor, we will migrate to to a different structure,\nwhere most of the front-end components will be available from NPM.")]),e("p",[this._v("To get all the details about a package select the corresponding option from the sidebar.")])])}],!1,null,null,null);e.default=r.exports}}]);
--------------------------------------------------------------------------------
/docs/.vuepress/dist/assets/img/search.83621669.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/docs/.vuepress/dist/assets/js/117.66790972.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[117],{307:function(e,t,r){"use strict";r.r(t);var a=r(2),s=Object(a.a)({},function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"testhelper"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#testhelper","aria-hidden":"true"}},[e._v("#")]),e._v(" TestHelper")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://www.codacy.com/app/laravel-enso/TestHelper?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/TestHelper&utm_campaign=badger",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://api.codacy.com/project/badge/Grade/7b030436cab14721b8bab70c2d963e49",alt:"Codacy Badge"}}),r("OutboundLink")],1),e._v(" "),r("a",{attrs:{href:"https://styleci.io/repos/98971196",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://styleci.io/repos/98971196/shield?branch=master",alt:"StyleCI"}}),r("OutboundLink")],1),e._v(" "),r("a",{attrs:{href:"https://packagist.org/packages/laravel-enso/testhelper",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://poser.pugx.org/laravel-enso/testhelper/license",alt:"License"}}),r("OutboundLink")],1),e._v(" "),r("a",{attrs:{href:"https://packagist.org/packages/laravel-enso/testhelper",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://poser.pugx.org/laravel-enso/testhelper/downloads",alt:"Total Downloads"}}),r("OutboundLink")],1),e._v(" "),r("a",{attrs:{href:"https://packagist.org/packages/laravel-enso/testhelper",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://poser.pugx.org/laravel-enso/testhelper/version",alt:"Latest Stable Version"}}),r("OutboundLink")],1)]),e._v(" "),r("p",[e._v("Test helper dependency for "),r("a",{attrs:{href:"https://github.com/laravel-enso/Enso",target:"_blank",rel:"noopener noreferrer"}},[e._v("Laravel Enso"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h2",{attrs:{id:"details"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#details","aria-hidden":"true"}},[e._v("#")]),e._v(" Details")]),e._v(" "),r("ul",[r("li",[e._v("is a collection of traits used for facilitating the testing of a few common Laravel Enso components")]),e._v(" "),r("li",[e._v("SignIn, handles the sign-in stage")]),e._v(" "),r("li",[e._v("TestCreateForm, handles testing of back-end form object creation for a route")]),e._v(" "),r("li",[e._v("TestDataTable, handles testing of the back-end datatable object creation for a route")])])])},[],!1,null,null,null);t.default=s.exports}}]);
--------------------------------------------------------------------------------
/docs/.vuepress/dist/assets/js/120.22df8542.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[120],{310:function(e,t,r){"use strict";r.r(t);var a=r(2),s=Object(a.a)({},function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"versioning"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#versioning","aria-hidden":"true"}},[e._v("#")]),e._v(" Versioning")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://www.codacy.com/app/laravel-enso/Versioning?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/Versioning&utm_campaign=Badge_Grade",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://api.codacy.com/project/badge/Grade/ff415bb65927479a80d173622d3c11ed",alt:"Codacy Badge"}}),r("OutboundLink")],1),e._v(" "),r("a",{attrs:{href:"https://github.styleci.io/repos/134861936",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://github.styleci.io/repos/134861936/shield?branch=master",alt:"StyleCI"}}),r("OutboundLink")],1),e._v(" "),r("a",{attrs:{href:"https://packagist.org/packages/laravel-enso/versioning",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://poser.pugx.org/laravel-enso/versioning/license",alt:"License"}}),r("OutboundLink")],1),e._v(" "),r("a",{attrs:{href:"https://packagist.org/packages/laravel-enso/versioning",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://poser.pugx.org/laravel-enso/versioning/downloads",alt:"Total Downloads"}}),r("OutboundLink")],1),e._v(" "),r("a",{attrs:{href:"https://packagist.org/packages/laravel-enso/versioning",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://poser.pugx.org/laravel-enso/versioning/version",alt:"Latest Stable Version"}}),r("OutboundLink")],1)]),e._v(" "),r("p",[e._v("Prevents update conflicts using the optimistic lock pattern in Laravel")]),e._v(" "),r("h2",{attrs:{id:"details"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#details","aria-hidden":"true"}},[e._v("#")]),e._v(" Details")]),e._v(" "),r("ul",[r("li",[e._v("the package creates a "),r("code",[e._v("versionings")]),e._v(" table where it holds versions for all the versionable models")]),e._v(" "),r("li",[e._v("by using the "),r("code",[e._v("Versionable")]),e._v(" trait on a model, versioning is handled automatically")]),e._v(" "),r("li",[e._v("by default the trait appends a "),r("code",[e._v("version")]),e._v(" attribute after the model is retrieved, used for tracking versions and expects the same attribute to be present on the model when the update is called")]),e._v(" "),r("li",[e._v("the default versioning attribute can be customized by using "),r("code",[e._v("protected $versioningAttribute = 'customVersionAttribte'")]),e._v(" on the model")]),e._v(" "),r("li",[e._v("the trait can be used on models that already have records in the database, the versioning starts with the first retrieval of those models")]),e._v(" "),r("li",[e._v("when a versionable model is deleted, its versioning is deleted also. If the model uses "),r("code",[e._v("SoftDeletes")]),e._v(", the versioning is not deleted, unless doing a "),r("code",[e._v("forceDelete")])]),e._v(" "),r("li",[e._v("throws a "),r("code",[e._v("ConflictHttpException")]),e._v(" if the version does not match on update")]),e._v(" "),r("li",[e._v("tests are included with the package")]),e._v(" "),r("li",[e._v("package comes included by default with "),r("a",{attrs:{href:"https://github.com/laravel-enso/Enso",target:"_blank",rel:"noopener noreferrer"}},[e._v("Enso"),r("OutboundLink")],1)])])])},[],!1,null,null,null);t.default=s.exports}}]);
--------------------------------------------------------------------------------
/docs/.vuepress/dist/assets/js/123.0f274c7d.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[123],{96:function(n,w,o){}}]);
--------------------------------------------------------------------------------
/docs/.vuepress/dist/assets/js/3.8f9e15cc.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[3],{135:function(t,e,n){},205:function(t,e,n){"use strict";var i=n(135);n.n(i).a},326:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,i=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||i().default)}},r=(n(205),n(2)),a=Object(r.a)(i,void 0,void 0,!1,null,"c13ee5b0",null);e.default=a.exports}}]);
--------------------------------------------------------------------------------
/docs/.vuepress/dist/assets/js/4.8e5dbcef.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[4],{111:function(t,e,s){},154:function(t,e,s){"use strict";var n=s(111);s.n(n).a},207:function(t,e,s){"use strict";s.r(e);var n=["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],o={methods:{getMsg:function(){return n[Math.floor(Math.random()*n.length)]}}},i=(s(154),s(2)),r=Object(i.a)(o,function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"theme-container"},[e("div",{staticClass:"content"},[e("h1",[this._v("404")]),this._v(" "),e("blockquote",[this._v(this._s(this.getMsg()))]),this._v(" "),e("router-link",{attrs:{to:"/"}},[this._v("Take me home.")])],1)])},[],!1,null,null,null);e.default=r.exports}}]);
--------------------------------------------------------------------------------
/docs/.vuepress/dist/assets/js/45.cfcc5b47.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[45],{241:function(t,s,n){"use strict";n.r(s);var a=n(2),e=Object(a.a)({},function(){var t=this,s=t.$createElement,n=t._self._c||s;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h3",{attrs:{id:"front-end-components"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#front-end-components","aria-hidden":"true"}},[t._v("#")]),t._v(" Front-End Components")]),t._v(" "),n("p",[t._v("Collection of Front End components available on NPM,\nunder the "),n("code",[t._v("@enso-ui")]),t._v(" organization.")]),t._v(" "),n("p",[t._v("Select a component on the left to view more.")]),t._v(" "),n("h3",{attrs:{id:"other-dependencies"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#other-dependencies","aria-hidden":"true"}},[t._v("#")]),t._v(" Other Dependencies")]),t._v(" "),n("p",[t._v("Please note that many components use "),n("a",{attrs:{href:"https://github.com/axios/axios",target:"_blank",rel:"noopener noreferrer"}},[t._v("axios"),n("OutboundLink")],1),t._v(" as an HTTP client\nand "),n("a",{attrs:{href:"https://fontawesome.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Font Awesome 5"),n("OutboundLink")],1),t._v(" for icons.")]),t._v(" "),n("p",[t._v("Within Enso, axios is imported and available globally, Font Awesome is also available but you need to import\nthe icons you are using within your components.")]),t._v(" "),n("p",[t._v("Outside of Enso, when using any components that utilize the libraries above, you will need to make sure\nthat these resources are available.")]),t._v(" "),n("div",{staticClass:"language-js extra-class"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" axios "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'axios'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nwindow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("axios "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" axios"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\naxios"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("defaults"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("headers"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("common"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'X-Requested-With'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'XMLHttpRequest'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//only when using Laravel")]),t._v("\n")])])]),n("div",{staticClass:"language-js extra-class"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" FontAwesomeIcon "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@fortawesome/vue-fontawesome'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nVue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'fa'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" FontAwesomeIcon"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])},[],!1,null,null,null);s.default=e.exports}}]);
--------------------------------------------------------------------------------
/docs/.vuepress/dist/assets/js/5.b3b97820.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[5],{208:function(t,e,n){"use strict";n.r(e);var a=n(2),s=Object(a.a)({},function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h3",{attrs:{id:"try-it-up"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#try-it-up","aria-hidden":"true"}},[t._v("#")]),t._v(" Try it up")]),t._v(" "),n("div",{staticClass:"language-bash extra-class"},[n("pre",{pre:!0,attrs:{class:"language-bash"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# clone in a new project folder")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" clone https://github.com/laravel-enso/enso.git ./\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# install composer dependencies")]),t._v("\ncomposer "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Configure the .env file")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Generate the key")]),t._v("\nphp artisan key:generate\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# run the migrations")]),t._v("\nphp artisan migrate\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# install node dependencies")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# compile")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" dev / "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" hot\n")])])]),n("div",{staticClass:"tip custom-block"},[n("p",{staticClass:"custom-block-title"},[t._v("Login")]),t._v(" "),n("p",[t._v("user: admin@laravel-enso.com / password: password")])]),t._v(" "),n("p",[n("em",[t._v("fully working in less than 5 minutes!")])]),t._v(" "),n("hr"),t._v(" "),n("h3",{attrs:{id:"thanks"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#thanks","aria-hidden":"true"}},[t._v("#")]),t._v(" Thanks")]),t._v(" "),n("p",[t._v("Built with "),n("span",{staticStyle:{color:"red"}},[t._v(" ❤️")]),t._v("on Laravel 5.8.x, Bulma 0.7.x, Vuejs 2.6.x.")]),t._v(" "),n("p",[n("strong",[t._v("Special thanks")]),t._v(" to "),n("a",{attrs:{href:"https://laravel.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Taylor Otwell"),n("OutboundLink")],1),t._v(", "),n("a",{attrs:{href:"https://laracasts.com",target:"_blank",rel:"noopener noreferrer"}},[t._v("Jeffrey Way"),n("OutboundLink")],1),t._v(", "),n("a",{attrs:{href:"https://vuejs.org/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Evan You"),n("OutboundLink")],1),t._v(" and "),n("a",{attrs:{href:"https://bulma.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("Jeremy Thomas"),n("OutboundLink")],1),t._v(".")])])},[],!1,null,null,null);e.default=s.exports}}]);
--------------------------------------------------------------------------------
/docs/.vuepress/dist/assets/js/59.199c84d2.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[59],{256:function(e,s,t){"use strict";t.r(s);var a=t(2),i=Object(a.a)({},function(){var e=this,s=e.$createElement,t=e._self._c||s;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"mixins"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mixins","aria-hidden":"true"}},[e._v("#")]),e._v(" Mixins")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://img.shields.io/npm/l/@enso-ui/mixins.svg",alt:"NPM License"}}),e._v(" "),t("img",{attrs:{src:"https://img.shields.io/npm/dm/@enso-ui/mixins.svg",alt:"npm download"}}),e._v(" "),t("img",{attrs:{src:"https://img.shields.io/github/languages/top/enso-ui/mixins.svg",alt:"GitHub top language"}}),e._v(" "),t("img",{attrs:{src:"https://img.shields.io/github/issues/enso-ui/mixins.svg",alt:"GitHub issues"}}),e._v(" "),t("img",{attrs:{src:"https://img.shields.io/npm/v/@enso-ui/mixins.svg",alt:"npm version"}})]),e._v(" "),t("p",[e._v("Enso Mixins Package")]),e._v(" "),t("p",[e._v("The mixins are used exclusively inside of the Enso ecosystem.")]),e._v(" "),t("p",[e._v("For live examples and demos, you may visit "),t("a",{attrs:{href:"https://www.laravel-enso.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("laravel-enso.com"),t("OutboundLink")],1)]),e._v(" "),t("h2",{attrs:{id:"installation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#installation","aria-hidden":"true"}},[e._v("#")]),e._v(" Installation")]),e._v(" "),t("p",[e._v("Installed by "),t("code",[e._v("@enso-ui/ui")])]),e._v(" "),t("h2",{attrs:{id:"usage"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#usage","aria-hidden":"true"}},[e._v("#")]),e._v(" Usage")]),e._v(" "),t("p",[e._v("The mixins are available for injection:")]),e._v(" "),t("div",{staticClass:"language-vue extra-class"},[t("pre",{pre:!0,attrs:{class:"language-vue"}},[t("code",[e._v("export default {\n name: 'EnsoSelect',\n\n inject: ['errorHandler', 'i18n'],\n\n components: { VueSelect },\n")])])]),t("p",[e._v("You may then use them as needed.")]),e._v(" "),t("h2",{attrs:{id:"contributions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#contributions","aria-hidden":"true"}},[e._v("#")]),e._v(" Contributions")]),e._v(" "),t("p",[e._v("are welcome. Pull requests are great,\nbut issues are good too.")]),e._v(" "),t("p",[e._v("Thank you to all the people who already contributed to Enso!")]),e._v(" "),t("h2",{attrs:{id:"license"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#license","aria-hidden":"true"}},[e._v("#")]),e._v(" License")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://opensource.org/licenses/ISC",target:"_blank",rel:"noopener noreferrer"}},[e._v("ISC"),t("OutboundLink")],1)])])},[],!1,null,null,null);s.default=i.exports}}]);
--------------------------------------------------------------------------------
/docs/.vuepress/dist/assets/js/6.0b7c7b30.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[6],{209:function(t,n,e){"use strict";e.r(n);var o=e(2),s=Object(o.a)({},function(){var t=this.$createElement,n=this._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[n("p",[this._v("Collection of Back End components")])])},[],!1,null,null,null);n.default=s.exports}}]);
--------------------------------------------------------------------------------
/docs/.vuepress/dist/assets/js/69.f22ccbef.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[69],{265:function(e,t,s){"use strict";s.r(t);var a=s(2),o=Object(a.a)({},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"themes"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#themes","aria-hidden":"true"}},[e._v("#")]),e._v(" Themes")]),e._v(" "),s("p",[s("img",{attrs:{src:"https://img.shields.io/npm/l/@enso-ui/themes.svg",alt:"NPM License"}}),e._v(" "),s("img",{attrs:{src:"https://img.shields.io/npm/dm/@enso-ui/themes.svg",alt:"npm download"}}),e._v(" "),s("img",{attrs:{src:"https://img.shields.io/github/languages/top/enso-ui/themes.svg",alt:"GitHub top language"}}),e._v(" "),s("img",{attrs:{src:"https://img.shields.io/github/issues/enso-ui/themes.svg",alt:"GitHub issues"}}),e._v(" "),s("img",{attrs:{src:"https://img.shields.io/npm/v/@enso-ui/themes.svg",alt:"npm version"}})]),e._v(" "),s("p",[e._v("Enso UI Themes")]),e._v(" "),s("p",[e._v("This package is meant to be used only in the Enso ecosystem.")]),e._v(" "),s("p",[e._v("For live examples and demos, you may visit "),s("a",{attrs:{href:"https://www.laravel-enso.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("laravel-enso.com"),s("OutboundLink")],1)]),e._v(" "),s("h2",{attrs:{id:"installation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#installation","aria-hidden":"true"}},[e._v("#")]),e._v(" Installation")]),e._v(" "),s("p",[e._v("Install the package:")]),e._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("yarn add @enso-ui/themes\n")])])]),s("p",[e._v("The package has the two default Enso themes, one light and one dark. The themes must be imported in Enso's "),s("code",[e._v("webpack.mix.js")]),e._v(".")]),e._v(" "),s("h2",{attrs:{id:"removing-themes"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#removing-themes","aria-hidden":"true"}},[e._v("#")]),e._v(" Removing themes")]),e._v(" "),s("p",[e._v("If you remove one of your themes, note that the theme selector will no longer be visible in the right settings side bar.")]),e._v(" "),s("h2",{attrs:{id:"customizing-the-themes"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#customizing-the-themes","aria-hidden":"true"}},[e._v("#")]),e._v(" Customizing the themes")]),e._v(" "),s("p",[e._v("You mai copy the theme you want to customize locally, change it as per your requirements, and then simply import your local theme in the "),s("code",[e._v("webpack.mix.js")]),e._v(" file.")]),e._v(" "),s("p",[e._v("If you need to customize the aspect of one or more of the components, the customized styles should go into the\n"),s("code",[e._v("bulma/components")]),e._v(" sub-folder.")]),e._v(" "),s("p",[e._v("Since our themes are built on top of Bulma, its variables are customized in the "),s("code",[e._v("dark")]),e._v(" and "),s("code",[e._v("light")]),e._v(" sub-folders.")]),e._v(" "),s("h2",{attrs:{id:"contributions"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#contributions","aria-hidden":"true"}},[e._v("#")]),e._v(" Contributions")]),e._v(" "),s("p",[e._v("are welcome. Pull requests are great, but issues are good too.")]),e._v(" "),s("p",[e._v("Thank you to all the people who already contributed to Enso!")]),e._v(" "),s("h2",{attrs:{id:"license"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#license","aria-hidden":"true"}},[e._v("#")]),e._v(" License")]),e._v(" "),s("p",[s("a",{attrs:{href:"https://opensource.org/licenses/ISC",target:"_blank",rel:"noopener noreferrer"}},[e._v("ISC"),s("OutboundLink")],1)])])},[],!1,null,null,null);t.default=o.exports}}]);
--------------------------------------------------------------------------------
/docs/.vuepress/dist/assets/js/76.1090e038.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[76],{272:function(t,e,r){"use strict";r.r(e);var a=r(2),n=Object(a.a)({},function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"introduction"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#introduction","aria-hidden":"true"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://styleci.io/repos/95136264",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://styleci.io/repos/95136264/shield?branch=master",alt:"StyleCI"}}),r("OutboundLink")],1),t._v(" "),r("a",{attrs:{href:"https://waffle.io/laravel-enso/Enso",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://badge.waffle.io/laravel-enso/Enso.svg?columns=all",alt:"Waffle.io - Columns and their card count"}}),r("OutboundLink")],1),t._v(" "),r("a",{attrs:{href:"https://travis-ci.org/laravel-enso/Enso",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://travis-ci.org/laravel-enso/Enso.svg?branch=master",alt:"Build Status"}}),r("OutboundLink")],1)]),t._v(" "),r("h4",{attrs:{id:"hit-the-ground-running-when-building-your-new-laravel-spa-project-with-boilerplate-and-extra-functionality-out-of-the-box"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hit-the-ground-running-when-building-your-new-laravel-spa-project-with-boilerplate-and-extra-functionality-out-of-the-box","aria-hidden":"true"}},[t._v("#")]),t._v(" Hit the ground running when building your new Laravel SPA project with boilerplate and extra functionality out of the box!")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://laravel-enso.github.io/enso/videos/bulma_quick_walkthrough.webm",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://laravel-enso.github.io/enso/screenshots/bulma_cap000_thumb.png",alt:"Watch the demo"}}),r("OutboundLink")],1)]),t._v(" "),r("p",[r("sup",[t._v("click on the photo to view a short demo in compatible browsers")])]),t._v(" "),r("p",[t._v("For the v1.x / adminlte version, take a look at the "),r("strong",[r("a",{attrs:{href:"https://github.com/laravel-enso/Enso/tree/adminlte",target:"_blank",rel:"noopener noreferrer"}},[t._v("adminlte"),r("OutboundLink")],1)]),t._v(" branch.")])])},[],!1,null,null,null);e.default=n.exports}}]);
--------------------------------------------------------------------------------
/docs/.vuepress/dist/assets/js/79.d6935ee1.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[79],{274:function(e,t,s){"use strict";s.r(t);var i=s(2),n=Object(i.a)({},function(){var e=this.$createElement,t=this._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"license"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#license","aria-hidden":"true"}},[this._v("#")]),this._v(" License")]),this._v(" "),t("p",[this._v("This package is released under the MIT license.")])])},[],!1,null,null,null);t.default=n.exports}}]);
--------------------------------------------------------------------------------
/docs/.vuepress/dist/assets/js/80.332f6e4f.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[80],{275:function(r,e,t){"use strict";t.r(e);var n=t(2),a=Object(n.a)({},function(){var r=this,e=r.$createElement,t=r._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":r.$parent.slotKey}},[t("h1",{attrs:{id:"thanks"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#thanks","aria-hidden":"true"}},[r._v("#")]),r._v(" Thanks")]),r._v(" "),t("p",[r._v("Built with with "),t("span",{staticStyle:{color:"red"}},[r._v(" ❤️")]),r._v(", crafted on Laravel 5.6.x, Bulma 0.6.x, Vuejs 2.5.x and:")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://router.vuejs.org/en",target:"_blank",rel:"noopener noreferrer"}},[r._v("Vue Router"),t("OutboundLink")],1),r._v(", "),t("a",{attrs:{href:"https://vuex.vuejs.org/en/",target:"_blank",rel:"noopener noreferrer"}},[r._v("Vuex"),t("OutboundLink")],1),r._v(", "),t("a",{attrs:{href:"https://github.com/axios/axios",target:"_blank",rel:"noopener noreferrer"}},[r._v("Axios"),t("OutboundLink")],1),r._v(",\n"),t("a",{attrs:{href:"https://fontawesome.com",target:"_blank",rel:"noopener noreferrer"}},[r._v("Font awesome 5"),t("OutboundLink")],1),r._v(", "),t("a",{attrs:{href:"https://daneden.github.io/animate.css/",target:"_blank",rel:"noopener noreferrer"}},[r._v("Animate.css"),t("OutboundLink")],1),r._v(",\n"),t("a",{attrs:{href:"https://jenil.github.io/bulmaswatch",target:"_blank",rel:"noopener noreferrer"}},[r._v("Bulmaswatch"),t("OutboundLink")],1),r._v(", "),t("a",{attrs:{href:"https://wikiki.github.io",target:"_blank",rel:"noopener noreferrer"}},[r._v("Bulma-Extensions"),t("OutboundLink")],1),r._v(",\n"),t("a",{attrs:{href:"http://ricostacruz.com/nprogress",target:"_blank",rel:"noopener noreferrer"}},[r._v("Nprogress.js"),t("OutboundLink")],1),r._v(", "),t("a",{attrs:{href:"http://introjs.com/",target:"_blank",rel:"noopener noreferrer"}},[r._v("Intro.js"),t("OutboundLink")],1),r._v(",\n"),t("a",{attrs:{href:"http://chartjs.org",target:"_blank",rel:"noopener noreferrer"}},[r._v("Chart.js"),t("OutboundLink")],1),r._v(", "),t("a",{attrs:{href:"https://chmln.github.io/flatpickr/",target:"_blank",rel:"noopener noreferrer"}},[r._v("Flatpickr"),t("OutboundLink")],1),r._v(".")]),r._v(" "),t("p",[r._v("Special thanks to "),t("a",{attrs:{href:"https://laravel.com/",target:"_blank",rel:"noopener noreferrer"}},[r._v("Taylor Otwell"),t("OutboundLink")],1),r._v(", "),t("a",{attrs:{href:"https://laracasts.com",target:"_blank",rel:"noopener noreferrer"}},[r._v("Jeffrey Way"),t("OutboundLink")],1),r._v(", "),t("a",{attrs:{href:"https://vuejs.org/",target:"_blank",rel:"noopener noreferrer"}},[r._v("Evan You"),t("OutboundLink")],1),r._v(" and "),t("a",{attrs:{href:"https://bulma.io",target:"_blank",rel:"noopener noreferrer"}},[r._v("Jeremy Thomas"),t("OutboundLink")],1),r._v(".")])])},[],!1,null,null,null);e.default=a.exports}}]);
--------------------------------------------------------------------------------
/docs/.vuepress/dist/assets/js/83.6941cab6.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[83],{278:function(e,t,a){"use strict";a.r(t);var n=a(2),o=Object(n.a)({},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"packages-index"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#packages-index","aria-hidden":"true"}},[e._v("#")]),e._v(" Packages Index")]),e._v(" "),a("p",[e._v("Here you can find the documentation\nfor the laravel-enso v2.x packages, that contain both the back-end and front-end components.")]),e._v(" "),a("p",[e._v("Starting with v3.x, after a thorough rewrite & refactor, we will migrate to to a different structure,\nwhere most of the front-end components will be available from NPM.")]),e._v(" "),a("p",[e._v("To get all the details about a package select the corresponding option from the sidebar.")])])},[],!1,null,null,null);t.default=o.exports}}]);
--------------------------------------------------------------------------------
/docs/.vuepress/dist/assets/js/84.fddbe04b.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[84],{279:function(e,t,a){"use strict";a.r(t);var r=a(2),o=Object(r.a)({},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"action-logger"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#action-logger","aria-hidden":"true"}},[e._v("#")]),e._v(" Action Logger")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://www.codacy.com/app/laravel-enso/ActionLogger?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/ActionLogger&utm_campaign=Badge_Grade",target:"_blank",rel:"noopener noreferrer"}},[a("img",{attrs:{src:"https://api.codacy.com/project/badge/Grade/dc3819bf2c654b3d8dcaaed8898b214f",alt:"Codacy Badge"}}),a("OutboundLink")],1),e._v(" "),a("a",{attrs:{href:"https://styleci.io/repos/85554059",target:"_blank",rel:"noopener noreferrer"}},[a("img",{attrs:{src:"https://styleci.io/repos/85554059/shield?branch=master",alt:"StyleCI"}}),a("OutboundLink")],1),e._v(" "),a("a",{attrs:{href:"https://packagist.org/packages/laravel-enso/actionlogger",target:"_blank",rel:"noopener noreferrer"}},[a("img",{attrs:{src:"https://poser.pugx.org/laravel-enso/actionlogger/license",alt:"License"}}),a("OutboundLink")],1),e._v(" "),a("a",{attrs:{href:"https://packagist.org/packages/laravel-enso/actionlogger",target:"_blank",rel:"noopener noreferrer"}},[a("img",{attrs:{src:"https://poser.pugx.org/laravel-enso/actionlogger/downloads",alt:"Total Downloads"}}),a("OutboundLink")],1),e._v(" "),a("a",{attrs:{href:"https://packagist.org/packages/laravel-enso/actionlogger",target:"_blank",rel:"noopener noreferrer"}},[a("img",{attrs:{src:"https://poser.pugx.org/laravel-enso/actionlogger/version",alt:"Latest Stable Version"}}),a("OutboundLink")],1)]),e._v(" "),a("p",[e._v("User actions logger dependency for "),a("a",{attrs:{href:"https://laravel.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("Laravel"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h2",{attrs:{id:"features"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#features","aria-hidden":"true"}},[e._v("#")]),e._v(" Features")]),e._v(" "),a("ul",[a("li",[e._v("creates the "),a("code",[e._v("action-logger")]),e._v(" middleware, the "),a("code",[e._v("action_logs")]),e._v(" table and the "),a("code",[e._v("ActionLog")]),e._v(" model")]),e._v(" "),a("li",[e._v("will log all access routes covered by the "),a("code",[e._v("action-logger")]),e._v(" middleware")]),e._v(" "),a("li",[e._v("comes with the "),a("code",[e._v("ActionLogs")]),e._v(" trait that defines the relationship to the "),a("code",[e._v("ActionLog")]),e._v(" model, and should be included in your user model")]),e._v(" "),a("li",[e._v("each entry will record "),a("code",[e._v("user_id")]),e._v(", "),a("code",[e._v("url")]),e._v(", "),a("code",[e._v("route")]),e._v(" name, http "),a("code",[e._v("method")]),e._v(" verb and timestamps")])]),e._v(" "),a("h2",{attrs:{id:"installation-steps"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#installation-steps","aria-hidden":"true"}},[e._v("#")]),e._v(" Installation Steps")]),e._v(" "),a("ol",[a("li",[a("p",[e._v("Run the migrations "),a("code",[e._v("php artisan migrate")])])]),e._v(" "),a("li",[a("p",[e._v("Include the "),a("code",[e._v("action-logger")]),e._v(" middleware on the routes that you want covered")])]),e._v(" "),a("li",[a("p",[e._v("Add the "),a("code",[e._v("ActionLogs")]),e._v(" trait on your user model, so you may retrieve the user's actions")])])]),e._v(" "),a("h2",{attrs:{id:"notes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#notes","aria-hidden":"true"}},[e._v("#")]),e._v(" Notes")]),e._v(" "),a("p",[e._v("The "),a("a",{attrs:{href:"https://github.com/laravel-enso/Core",target:"_blank",rel:"noopener noreferrer"}},[e._v("Laravel Enso Core"),a("OutboundLink")],1),e._v(" package comes with this package included.")]),e._v(" "),a("p",[e._v("If using the package together with Laravel Enso, the list of actions for an user are available in each user's profile page.")])])},[],!1,null,null,null);t.default=o.exports}}]);
--------------------------------------------------------------------------------
/docs/.vuepress/dist/enso.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/laravel-enso/documentation/b9488b46487801300df8b865828dcb63bb70ffba/docs/.vuepress/dist/enso.png
--------------------------------------------------------------------------------
/docs/.vuepress/dist/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/laravel-enso/documentation/b9488b46487801300df8b865828dcb63bb70ffba/docs/.vuepress/dist/favicon.ico
--------------------------------------------------------------------------------
/docs/.vuepress/dist/icons/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/laravel-enso/documentation/b9488b46487801300df8b865828dcb63bb70ffba/docs/.vuepress/dist/icons/android-chrome-192x192.png
--------------------------------------------------------------------------------
/docs/.vuepress/dist/icons/apple-touch-icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/laravel-enso/documentation/b9488b46487801300df8b865828dcb63bb70ffba/docs/.vuepress/dist/icons/apple-touch-icon-152x152.png
--------------------------------------------------------------------------------
/docs/.vuepress/dist/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "VuePress",
3 | "short_name": "VuePress",
4 | "icons": [
5 | {
6 | "src": "/icons/android-chrome-192x192.png",
7 | "sizes": "192x192",
8 | "type": "image/png"
9 | },
10 | {
11 | "src": "/icons/android-chrome-512x512.png",
12 | "sizes": "512x512",
13 | "type": "image/png"
14 | }
15 | ],
16 | "start_url": "/index.html",
17 | "display": "standalone",
18 | "background_color": "#fff",
19 | "theme_color": "#3eaf7c"
20 | }
--------------------------------------------------------------------------------
/docs/.vuepress/public/enso.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/laravel-enso/documentation/b9488b46487801300df8b865828dcb63bb70ffba/docs/.vuepress/public/enso.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/laravel-enso/documentation/b9488b46487801300df8b865828dcb63bb70ffba/docs/.vuepress/public/favicon.ico
--------------------------------------------------------------------------------
/docs/.vuepress/public/icons/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/laravel-enso/documentation/b9488b46487801300df8b865828dcb63bb70ffba/docs/.vuepress/public/icons/android-chrome-192x192.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/icons/apple-touch-icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/laravel-enso/documentation/b9488b46487801300df8b865828dcb63bb70ffba/docs/.vuepress/public/icons/apple-touch-icon-152x152.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "VuePress",
3 | "short_name": "VuePress",
4 | "icons": [
5 | {
6 | "src": "/icons/android-chrome-192x192.png",
7 | "sizes": "192x192",
8 | "type": "image/png"
9 | },
10 | {
11 | "src": "/icons/android-chrome-512x512.png",
12 | "sizes": "512x512",
13 | "type": "image/png"
14 | }
15 | ],
16 | "start_url": "/index.html",
17 | "display": "standalone",
18 | "background_color": "#fff",
19 | "theme_color": "#3eaf7c"
20 | }
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | home: true
3 | # heroImage: /hero.png
4 | actionText: Get Started →
5 | actionLink: /guide/
6 | features:
7 | - title: Single Page App
8 | details: Aims to deliver a robust boilerplate for any complex business application, with superiour performance
9 | - title: Laravel, Vue, Bulma
10 | details: The beauty of Bulma combined with the flexibility of Vue powered by a Laravel Back End
11 | - title: Modular, Extensible
12 | details: Made up of tens of packages and modules. Easily to extend and customize
13 | footer: MIT Licensed | Copyright © 2018-present Laravel Enso
14 | ---
15 |
16 | ### Try it up
17 |
18 | ``` bash
19 | # clone in a new project folder
20 | git clone https://github.com/laravel-enso/enso.git --depth 1
21 |
22 | # install the composer dependencies
23 | composer install
24 |
25 | # create the .env file from the example
26 | cp .env.example .env
27 |
28 | # configure the .env file, entering name, DB details, etc
29 |
30 | # Generate the key
31 | php artisan key:generate
32 |
33 | # run the migrations
34 | php artisan migrate --seed
35 |
36 | # cd into the client server
37 | cd client
38 |
39 | # create the .env file from the example and customize if needed
40 | cp .env.example .env
41 |
42 | # install the npm dependencies
43 | yarn
44 |
45 | # build the assets
46 | yarn build
47 |
48 | #or, for live reload, you can use
49 | yarn serve
50 | ```
51 |
52 | ::: tip Login
53 | user: admin@laravel-enso.com / password: password
54 | :::
55 |
56 | *fully working in less than 5 minutes!*
57 |
58 | ---
59 |
60 | ### Thanks
61 |
62 | Built with ❤️on Laravel 6.x, Bulma 0.7.x, VueJS 2.6.x.
63 |
64 | **Special thanks** to [Taylor Otwell](https://laravel.com/), [Jeffrey Way](https://laracasts.com), [Evan You](https://vuejs.org/) and [Jeremy Thomas](https://bulma.io).
65 |
--------------------------------------------------------------------------------
/docs/backend/README.md:
--------------------------------------------------------------------------------
1 | Collection of Back End components
2 |
--------------------------------------------------------------------------------
/docs/backend/action-logger.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Action Logger
6 | [](https://www.codacy.com/app/laravel-enso/action-logger?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/action-logger&utm_campaign=Badge_Grade)
7 | [](https://github.styleci.io/repos/85554059)
8 | [](https://packagist.org/packages/laravel-enso/action-logger)
9 | [](https://packagist.org/packages/laravel-enso/action-logger)
10 | [](https://packagist.org/packages/laravel-enso/action-logger)
11 |
12 | User actions logger dependency for [Laravel](https://laravel.com).
13 |
14 | This package works exclusively within the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
15 |
16 | The front end assets that utilize this api are present in the [ui](https://github.com/enso-ui/ui) package.
17 |
18 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
19 |
20 | ## Installation
21 |
22 | Comes pre-installed in Enso.
23 |
24 | ## Features
25 |
26 | - creates the `action-logger` middleware, the `action_logs` table and the `ActionLog` model
27 | - will log all access routes covered by the `action-logger` middleware
28 | - comes with the `ActionLogs` trait that defines the relationship to the `ActionLog` model, and should be included in your user model
29 | - each entry will record `user_id`, `url`, `route` name, http `method` verb and timestamps
30 |
31 | ## Usage
32 |
33 | 1. Include the `action-logger` middleware on the routes that you want covered
34 |
35 | 2. Add the `ActionLogs` trait on your user model, so you may retrieve the user's actions
36 |
37 | ::: warning
38 |
39 | Since the logged info contains the user_id, this means you cannot use
40 | the middleware on routes where the user information is unavailable
41 | (e.g. the user is not authenticated).
42 |
43 | :::
44 |
45 | ## Contributions
46 |
47 | are welcome. Pull requests are great, but issues are good too.
48 |
49 | ## License
50 |
51 | This package is released under the MIT license.
52 |
--------------------------------------------------------------------------------
/docs/backend/avatars.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Avatars
6 |
7 | [](https://github.styleci.io/repos/94704466)
8 | [](https://www.codacy.com/app/laravel-enso/avatars?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/avatars&utm_campaign=Badge_Grade)
9 | [](https://packagist.org/packages/laravel-enso/avatars)
10 | [](https://packagist.org/packages/laravel-enso/avatars)
11 | [](https://packagist.org/packages/laravel-enso/avatars)
12 |
13 |
14 | User Avatar manager dependency for [Laravel Enso](https://github.com/laravel-enso/Enso).
15 |
16 | This package works exclusively within the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
17 |
18 | The front end assets that utilize this api are present in the [ui](https://github.com/enso-ui/ui) package.
19 |
20 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
21 |
22 | [](https://laravel-enso.github.io/avatars/videos/bulma_avatar_change.webm)
23 | click on the photo to view a short demo in compatible browsers
24 |
25 | ## Installation
26 |
27 | Comes pre-installed in Enso.
28 |
29 | ## Features
30 |
31 | - comes with a table migration, in order to be able to store avatar related data
32 | - includes model, routes & controllers
33 | - creates a folder used to store the avatar files and a default avatar for users that do not have an avatar set
34 | - uses the [File Manager](https://github.com/laravel-enso/FileManager) package for uploading the avatar files
35 | - uses the [Image Transformer](https://github.com/laravel-enso/ImageTransformer) package for cropping and optimizing the avatar files
36 | - uses the [Laravolt Avatar](https://github.com/laravolt/avatar) for generating avatars from user names
37 | - uses a policy to ensure that normal users can only modify their own avatars, while administrators can modify any avatar
38 |
39 | ## Notes on usage
40 |
41 | Since this package is using image processing libraries and these underlying libraries may use a lot of memory,
42 | especially if the processed files are large (for example, for an 8MB image file, more than 128MB of memory might be used ),
43 | make sure to configure php accordingly and/or do `ini_set(‘memory_limit’, ‘256M’);`
44 |
45 | Failure to do so may result in silent errors if allotted memory is insufficient.
46 |
47 | ## Commands
48 |
49 | - `php artisan enso:avatars:generate` - generates avatars for users which do not already have an avatar
50 |
51 | ## Publishes
52 |
53 | - `php artisan vendor:publish --tag=avatars-storage` - storage folder and default avatar
54 |
55 | ## External dependencies
56 |
57 | - [Laravolt Avatar](https://github.com/laravolt/avatar)
58 |
59 | ## Contributions
60 |
61 | are welcome. Pull requests are great, but issues are good too.
62 |
63 | ## License
64 |
65 | This package is released under the MIT license.
66 |
--------------------------------------------------------------------------------
/docs/backend/categories.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Categories
6 |
7 | [](https://www.codacy.com/app/laravel-enso/categories?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/categories&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/85484767)
9 | [](https://packagist.org/packages/laravel-enso/categories)
10 | [](https://packagist.org/packages/laravel-enso/categories)
11 | [](https://packagist.org/packages/laravel-enso/categories)
12 |
13 | Categories package for [Laravel Enso](https://github.com/laravel-enso/Enso).
14 |
15 | This package cannot work independently of the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
18 |
19 | ## Installation
20 |
21 | * install the package using composer: `composer require laravel-enso/categories`
22 | * install the front-end ui package using yarn: `yarn add @enso-ui/categories`
23 | * adds the following alias in `client/vue.config.js`
24 | ```
25 | configureWebpack: {
26 | resolve: {
27 | alias: {
28 | //other aliases
29 | '@categories': `${__dirname}/node_modules/@enso-ui/categories/src/bulma`,
30 | },
31 | },
32 | ```
33 | * in `client/js/router.js` file, verify that `RouteMerger` is imported, or import it
34 |
35 | `import RouteMerger from '@core-modules/importers/RouteMerger';`
36 |
37 | * make sure `routeImporter` is also imported
38 |
39 | `import routeImporter from '@core-modules/importers/routeImporter';`
40 |
41 | * then use `RouteMerger` to import front-end assets using the alias defined in `vue.config.js`
42 |
43 | ```
44 | (new RouteMerger(routes))
45 | //other routes
46 | .add(routeImporter(require.context('./routes', false, /.*\.js$/)))
47 | .add(routeImporter(require.context('@categories/routes', false, /.*\.js$/)));
48 | ```
49 |
50 | * in `resources/js/app.js` import the package's icons
51 |
52 | `import '@categories/icons';`
53 |
54 | * make sure `hot module replacement` is **not** active, and run `yarn dev` or `npm run dev`
55 |
56 | * run `php artisan migrate` to create table, add menu, permissions etc.
57 |
58 | ## Features
59 |
60 | - features a core categories functionality with a model, migrations,
61 | routes, controllers, resources, index table, etc
62 | - provides CRUD functionality for the `Category` model
63 | - defines the relationships with a parent category as well as multiple child categories
64 | - a `CategoryFactory` is included and can be published
65 | - the `Category` model also supports dynamic methods
66 |
67 | ## Usage
68 |
69 | The package is meant to be installed on an Enso project and customized as required
70 | (or used as it is if that is enough).
71 |
72 | Note that this package is a dependency of the [products](https://docs.laravel-enso.com/backend/products.html) Enso package.
73 |
74 | ## Publishes
75 |
76 | - `php artisan vendor:publish --tag=categories-factories` - the included category factory,
77 |
78 | ### Contributions
79 |
80 | are welcome. Pull requests are great, but issues are good too.
81 |
82 | ### License
83 |
84 | This package is released under the MIT license.
85 |
--------------------------------------------------------------------------------
/docs/backend/charts.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Charts
6 |
7 | [](https://www.codacy.com/app/laravel-enso/charts?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/charts&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/85484767)
9 | [](https://packagist.org/packages/laravel-enso/charts)
10 | [](https://packagist.org/packages/laravel-enso/charts)
11 | [](https://packagist.org/packages/laravel-enso/charts)
12 |
13 | Server-side data builder for charts.
14 |
15 | This package can work independently of the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | The front end implementation that utilizes this api is present in the [enso-ui/charts](https://github.com/enso-ui/charts) package.
18 |
19 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
20 |
21 | [](https://laravel-enso.github.io/charts/videos/bulma_demo_01.webm)
22 |
23 | click on the photo to view a short demo in compatible browsers
24 |
25 | ## Installation
26 |
27 | Comes pre-installed in Enso.
28 |
29 | To install outside of Enso:
30 |
31 | 1. `composer require laravel-enso/charts`
32 |
33 | 2. publish the config with `php artisan vendor:publish --tag=charts-config` and customize as needed
34 |
35 | 3. install the api implementation for the front end: `yarn add @enso-ui/charts`
36 |
37 | ## Features
38 |
39 | - it supports Bar, Bubble, Line, Pie, Doughnut, Polar Area and Radar chart types
40 | - it creates properly formatted data structures, specific for each supported type of chart from a given data-set
41 | - the used colors are configurable through the publishable config file
42 | - can translate labels, legends and data series
43 | - can download the graphical representation of the graph, as a `PNG` file
44 |
45 | ## Usage
46 |
47 | 1. In your controller, add a method that will return the data for each chart:
48 |
49 | ```php
50 | public function line()
51 | {
52 | return (new LineChart())
53 | ->title('Income')
54 | ->labels(['January', 'February', 'March', 'April', 'May', 'June', 'July'])
55 | ->datasets([
56 | 'Sales' => [65, 59, 80, 81, 26, 25, 10],
57 | 'Revenue' => [15, 29, 60, 31, 56, 65, 44],
58 | ])->fill()
59 | ->get();
60 | }
61 | ```
62 |
63 | 2. create a route for each chart dataset, add permissions if needed, etc.
64 |
65 | 3. add the front end components to your pages.
66 | For more information about the front end, see [enso-ui/charts](https://github.com/enso-ui/charts).
67 |
68 | ## Configuration
69 |
70 | The package's configuration file offers a few options for customization:
71 | - `fillBackgroundOpacity` - number, the chart background's opacity, default is `0.25`
72 | - `colors` - array, the list of colors used when drawing the various chart types
73 |
74 | ::: tip Note
75 |
76 | The Chart builder will use the colors from `app/config/enso/charts.php` (in that order) for the given data-sets.
77 |
78 | :::
79 |
80 | ## Publishes
81 |
82 | - `php artisan vendor:publish --tag=charts-config` - the configuration file
83 | - `php artisan vendor:publish --tag=enso-config` - a common alias for when wanting to update the config,
84 | once a newer version is released, usually used with the `--force` flag
85 |
86 | ## Contributions
87 |
88 | are welcome. Pull requests are great, but issues are good too.
89 |
90 | ## License
91 |
92 | This package is released under the MIT license.
93 |
--------------------------------------------------------------------------------
/docs/backend/currencies.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Currencies
6 |
7 | [](https://www.codacy.com/app/laravel-enso/currencies?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/currencies&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/194647672)
9 | [](https://packagist.org/packages/laravel-enso/currencies)
10 | [](https://packagist.org/packages/laravel-enso/currencies)
11 | [](https://packagist.org/packages/laravel-enso/currencies)
12 |
13 | Currencies is an extension of the Laravel Enso environment,
14 | designed for the management of currencies and exchange rates.
15 |
16 | This package works exclusively within the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
17 |
18 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
19 |
20 | ## Installation
21 |
22 | * install the package using composer: `composer require laravel-enso/currencies`
23 | * add the following alias in `vue.config.js`
24 | ```js
25 | configureWebpack: {
26 | resolve: {
27 | alias: {
28 | //other aliases
29 | '@currencies': `${__dirname}/node_modules/@enso-ui/currencies/src/bulma`,
30 | },
31 | },
32 | ```
33 | * in `resources/js/router.js` file, verify that `RouteMerger` is imported, or import it
34 |
35 | `import RouteMerger from '@core-modules/importers/RouteMerger';`
36 |
37 | * make sure `routeImporter` is also imported
38 |
39 | `import routeImporter from '@core-modules/importers/routeImporter';`
40 |
41 | * then use `RouteMerger` to import front-end assets using the alias defined in `vue.config.js`
42 |
43 | ```js
44 | (new RouteMerger(routes))
45 | .add(routeImporter(require.context('./routes', false, /.*\.js$/)))
46 | .add(routeImporter(require.context('@currencies/routes', false, /.*\.js$/)));
47 | ```
48 |
49 | * in `resources/js/app.js` import the package's icons
50 |
51 | `import '@currencies/icons'`
52 |
53 | * make sure `hot module replacement` is not active, and run `yarn dev` or `npm run dev`
54 |
55 | ### Icons
56 | The package uses the following icons:
57 | * `coins`
58 | * `bar-chart`
59 |
60 | ## Features
61 | - handles CRUD operations for currencies and exchange rates
62 | - manages the default currency for your project
63 | - exchange rates can be input for a given day
64 | - comes with an included currencies seeder which can be published and further customized
65 | - includes front-end assets
66 |
67 | ## Publishes
68 |
69 | - `php artisan vendor:publish --tag=currency-seeder` - the currency seeder
70 |
71 | ## Contributions
72 |
73 | are welcome. Pull requests are great, but issues are good too.
74 |
75 | ## License
76 |
77 | This package is released under the MIT license.
78 |
--------------------------------------------------------------------------------
/docs/backend/data-export.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Data Export
6 |
7 | [](https://www.codacy.com/app/laravel-enso/data-export?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/data-export&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/148101651)
9 | [](https://packagist.org/packages/laravel-enso/data-export)
10 | [](https://packagist.org/packages/laravel-enso/data-export)
11 | [](https://packagist.org/packages/laravel-enso/data-export)
12 |
13 | Data Export structure dependency for [Laravel Enso](https://github.com/laravel-enso/Enso).
14 |
15 | This package works exclusively within the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
18 |
19 | [](https://laravel-enso.github.io/data-export/screenshots/bulma_001.png)
20 |
21 | ## Installation
22 |
23 | Comes pre-installed in Enso.
24 |
25 | ## Features
26 | - creates the structures and statuses necessary during the processes of exporting data
27 |
28 | ## Data-Export model
29 | Has the following attributes:
30 | - `id`
31 | - `name`
32 | - `entries`
33 | - `status`
34 | - `created_by`
35 | - `created_at`
36 |
37 | ## Contributions
38 |
39 | are welcome. Pull requests are great, but issues are good too.
40 |
41 | ## License
42 |
43 | This package is released under the MIT license.
44 |
--------------------------------------------------------------------------------
/docs/backend/discussions.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Discussions
6 |
7 | [](https://www.codacy.com/app/laravel-enso/discussions?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/discussions&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/148976842)
9 | [](https://packagist.org/packages/laravel-enso/discussions)
10 | [](https://packagist.org/packages/laravel-enso/discussions)
11 | [](https://packagist.org/packages/laravel-enso/discussions)
12 | [](https://packagist.org/packages/laravel-enso/discussions)
13 |
14 | Discussions for [Laravel Enso](https://github.com/laravel-enso/Enso).
15 |
16 | This package works exclusively within the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
17 |
18 | The front end assets that utilize this api are present in the [accessories](https://github.com/enso-ui/accessories) package.
19 |
20 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
21 |
22 | [](https://laravel-enso.github.io/discussions/videos/bulma_discussions.mp4)
23 |
24 | click on the photo to view a short demo in compatible browsers
25 |
26 | ## Installation
27 |
28 | Comes pre-installed in Enso.
29 |
30 | ## Features
31 |
32 | - discussions are grouped around topics
33 | - users can tag other users in their posts
34 | - the tagged users receive notifications (WIP)
35 | - users can show their appreciation for topics that they like with 'claps'
36 | - powerful what-you-see-is-what-you-get text editor, based on the excellent [Quill](https://quilljs.com/) library
37 | - within Enso, the Discussions module is integrated with the Activity Log
38 | - can be attached to any other model, via a polymorphic relationship
39 | - a `Discussible` trait is available, in order to make it easy to add discussions to a model
40 | - changes to the discussions and posts are enforced through policies, where changes can be made by the original poster or an administrator
41 | - uses its own suite of specialized Bulma styled VueJS components for smooth integration with the rest of the application
42 |
43 | ## Usage
44 |
45 | ### Configuration
46 |
47 | The `config/enso/discussions.php` configuration file, lets you customize the following:
48 |
49 | - `onDelete`, string, option that manages the case when the commentable entity is deleted and it has attached discussions.
50 | Valid options are `cascade`, `restrict` | default is `cascade`
51 |
52 | With the cascade option, when a discussable model is deleted, the discussions attached to it are also deleted.
53 | With the restrict option, when attempting to delete a discussable model with attached discussions, an exception is thrown.
54 |
55 | - `loggableMorph`, the list of entities using the discussable functionality, each mapped to its respective loggable attribute
56 | For example:
57 | ```php
58 | 'discussable' => [
59 | Company::class => 'name',
60 | ],
61 | ```
62 |
63 | This configuration is used for activity logging.
64 |
65 | ### Publishes
66 |
67 | - `php artisan vendor:publish --tag=discussions-config` - configuration files
68 | - `php artisan vendor:publish --tag=discussions-factory` - the factory used for discussions
69 | - `php artisan vendor:publish --tag=enso-factories` - a common alias for when wanting to update the factories
70 | once a newer version is released, usually used with the `--force` flag
71 |
72 | ## Contributions
73 |
74 | are welcome. Pull requests are great, but issues are good too.
75 |
76 | ## License
77 |
78 | This package is released under the MIT license.
79 |
--------------------------------------------------------------------------------
/docs/backend/dynamic-methods.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Dynamic Methods
6 |
7 | [](https://www.codacy.com/app/laravel-enso/dynamic-methods?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/dynamic-methods&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/85492361)
9 | [](https://packagist.org/packages/laravel-enso/datatable)
10 | [](https://packagist.org/packages/laravel-enso/dynamic-methods)
11 | [](https://packagist.org/packages/laravel-enso/dynamic-methods)
12 |
13 | Dynamic method dependency for [Laravel Enso](https://github.com/laravel-enso/Enso).
14 |
15 | This package can work independently of the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
18 |
19 | [](https://laravel-enso.github.io/dynamic-methods/screenshots/bulma_001.png)
20 |
21 | click on the photo to view a a larger screenshot
22 |
23 | ## Installation
24 |
25 | Comes pre-installed in Enso.
26 |
27 | To install outside of Enso:
28 |
29 | 1. install the package `composer require laravel-enso/dynamic-methods`
30 |
31 |
32 | ## Features
33 |
34 | - provides a trait that can be used to dynamically add methods on a class that would not normally have them
35 | - additionally, a series of other traits are available that, within the Laravel ecosystem, can be used to ensure
36 | that the dynamically added methods can be used as/for accessors and relationships
37 | - the traits can be used as an alternative to repeatedly extending classes, which can prove difficult and error prone
38 | in the context of building packages on top of other packages, on top of other packages.
39 |
40 | ## Usage
41 |
42 | #### Methods - `LaravelEnso\DynamicMethods\app\Traits\Methods`
43 |
44 | This is the core trait that permits adding a method to an object via its main method `addDynamicMethod`.
45 | The method takes a method name and a closure.
46 |
47 | Example:
48 | ```php
49 | Product::addDynamicMethod('foo', function () {
50 | return 'bar';
51 | });
52 | ```
53 |
54 | Afterwards, you can simply call the newly added method on Product instances, as if the method had been there all along:
55 | ```php
56 | $p = new Product();
57 | $p->foo(); //'bar'
58 | ```
59 |
60 | #### Mutators - `LaravelEnso\DynamicMethods\app\Traits\Mutators`
61 |
62 | The trait uses `Methods` and overwrites Laravel Model's `hasGetMutator($key)` and `hasSetMutator($key)` methods
63 | so that when dynamically adding mutator methods on models, the newly added methods are used if necessary.
64 |
65 | #### Relations - `LaravelEnso\DynamicMethods\app\Traits\Relations`
66 |
67 | The trait uses `Methods` and overwrites Laravel Model's `getRelationValue($key)` method
68 | so that when dynamically adding relationship methods on models, the newly added methods are used if necessary.
69 |
70 | Example:
71 | ```php
72 | Product::addDynamicMethod('manufacturer', function () {
73 | return $this->belongsTo(Manufacturer::class);
74 | });
75 | ```
76 |
77 | #### StaticMethods - `LaravelEnso\DynamicMethods\app\Traits\StaticMethods`
78 |
79 | Similar to `Methods`, the trait permits adding a static method to an object via its main method `addDynamicStaticMethod`.
80 | The method takes a method name and a closure.
81 |
82 | Of course, when calling the method, the call should be made statically.
83 |
84 | ### Contributions
85 |
86 | are welcome. Pull requests are great, but issues are good too.
87 |
88 | ### License
89 |
90 | This package is released under the MIT license.
91 |
--------------------------------------------------------------------------------
/docs/backend/emails.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Emails
6 |
7 | [](https://www.codacy.com/app/laravel-enso/emails?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/emails&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/134861936)
9 | [](https://packagist.org/packages/laravel-enso/emails)
10 | [](https://packagist.org/packages/laravel-enso/emails)
11 | [](https://packagist.org/packages/laravel-enso/emails)
12 |
13 | The package is an extension for the Laravel Enso environment, designed for sending emails/notifications.
14 |
15 | This package can work independently of the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
18 |
19 | ## Installation
20 |
21 | The package does not installed by default in Enso.
22 |
23 | To install:
24 |
25 | * add the package using composer: `composer require laravel-enso/emails`
26 | * add the following line in the `schedule` function in `app\Console\Kernel.php` class:
27 | ```
28 | ...
29 | protected function schedule(Schedule $schedule)
30 | {
31 | //other stuff
32 | $schedule->job(new ScheduleEmails)->everyMinute();
33 | }
34 | ...
35 | ```
36 | Also make sure that `ScheduleEmails` class is imported.
37 |
38 | **NOTE** *For local schedule testing, you must first run the command:*
39 | ```
40 | php artisan schedule:run
41 | ```
42 |
43 | * add the following alias in `vue.config.js`
44 | ```
45 | configureWebpack: {
46 | resolve: {
47 | alias: {
48 | //other aliases
49 | '@emails': `${__dirname}/../vendor/laravel-enso/emails/src/resources/js`,
50 | },
51 | },
52 | ```
53 | * in `resources/js/router.js` file, verify that `RouteMerger` is imported, or import it
54 | ```
55 | import RouteMerger from '@core-modules/importers/RouteMerger';
56 | ```
57 |
58 | * make sure `routeImporter` is also imported
59 | ```
60 | import routeImporter from '@core-modules/importers/routeImporter';
61 | ```
62 |
63 | * then use `RouteMerger` to import front-end assets using the alias defined in `vue.config.js`
64 | ```
65 | (new RouteMerger(routes))
66 | .add(routeImporter(require.context('./routes', false, /.*\.js$/)))
67 | .add(routeImporter(require.context('@emails/routes', false, /.*\.js$/)));
68 | ```
69 |
70 | * in `resources/js/app.js` import the package's icons
71 |
72 | ```
73 | import '@emails/icons';
74 | ```
75 |
76 | * make sure `hot module replacement` is **not** active, and run `yarn dev` or `npm run dev`
77 |
78 | ## Features
79 | * friendly display of all stored emails together with their status
80 | * default recipients options such as teams or users
81 | * attachments management
82 | * email scheduling management
83 | * email priority
84 | * includes front-end assets
85 |
86 | ## Icons
87 | The package uses the following FontAwesome icons:
88 | * `paper-plane`
89 |
90 | ## Publishes
91 | - `php artisan vendor:publish --tag=emails-config` - the configuration file
92 | - `php artisan vendor:publish --tag=emails-assets` - the front end VueJS/js assets
93 |
94 | ## Contributions
95 |
96 | are welcome. Pull requests are great, but issues are good too.
97 |
98 | ## License
99 |
100 | This package is released under the MIT license.
101 |
--------------------------------------------------------------------------------
/docs/backend/excel.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Excel
6 |
7 | [](https://www.codacy.com/app/laravel-enso/excel?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/excel&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/85624363)
9 | [](https://packagist.org/packages/laravel-enso/excel)
10 | [](https://packagist.org/packages/laravel-enso/excel)
11 | [](https://packagist.org/packages/laravel-enso/excel)
12 |
13 | Excel utility package for [Laravel Enso](https://github.com/laravel-enso/Enso)
14 |
15 | This package can work independently of the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
18 |
19 | ## Installation
20 |
21 | install using composer: `composer require laravel-enso/excel`
22 |
23 | ## Features
24 |
25 | - is a small wrapper that uses [box/spout](https://github.com/box/spout) under the hood
26 | - utilizes two contracts for which require specific methods to be available on the specific Excel file generator
27 | - `ExportsExcel`
28 | - `SavesToDisk`
29 | - the `ExcelExport` service requires an excel generator parameter that must implement at least the `ExportsExcel` contract
30 | and optionally the `SavesToDisk` contract
31 | - can provide the generated excel document inline (for downloads) or save the file to disk
32 |
33 | ## Usage
34 |
35 | In order to generate an Excel, you need to create a generator class that implements the `ExcelExport`
36 | contract. Then you must instantiate an `ExcelExport` class, passing your generator as a constructor parameter,
37 | and finally call the `inline` method:
38 |
39 | ```php
40 | $excel = new MyExcelExporter();
41 | (new ExcelExport($excel))->inline();
42 | ```
43 |
44 | If you want to have the excel file saved to disk, have your generator also implement the `SavesToDisk`
45 | contract, and instead of calling the `inline()` method, call the `save()` method on your
46 | `ExcelExport` instance:
47 |
48 | ```php
49 | $excel = new MyExcelExporter();
50 | (new ExcelExport($excel))->save();
51 | ```
52 |
53 | ## External dependencies
54 |
55 | - [box/spout](https://github.com/box/spout)
56 |
57 | ## Contributions
58 |
59 | are welcome. Pull requests are great, but issues are good too.
60 |
61 | ## License
62 |
63 | This package is released under the MIT license.
64 |
--------------------------------------------------------------------------------
/docs/backend/files.md:
--------------------------------------------------------------------------------
1 | # File Manager
2 |
3 | [](https://www.codacy.com/app/laravel-enso/files?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/files&utm_campaign=Badge_Grade)
4 | [](https://github.styleci.io/repos/85492361)
5 | [](https://packagist.org/packages/laravel-enso/datatable)
6 | [](https://packagist.org/packages/laravel-enso/files)
7 | [](https://packagist.org/packages/laravel-enso/files)
8 |
9 | File manager dependency for [Laravel Enso](https://github.com/laravel-enso/Enso).
10 |
11 | This package works exclusively within the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
12 |
13 | The front end assets that utilize this api are present in the [ui](https://github.com/enso-ui/ui) package.
14 |
15 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
16 |
17 | [](https://laravel-enso.github.io/files/videos/bulma_filemanager.mp4)
18 |
19 | click on the photo to view a short demo in compatible browsers
20 |
21 | ## Installation
22 |
23 | Comes pre-installed in Enso.
24 |
25 | ## Features
26 |
27 | - provides a generic approach when working with files through using a `File` model
28 | - package comes with a `HasFile` trait that can be added to models who work with files
29 | - has utility classes for the upload, download, inline-opening and deletion of files
30 | - on upload, performs validation of the file and checks the extension and the mime type
31 | - handles the optimization and resize for the supported image file types
32 | - for upload and deletion, the changes are committed only if the filesystem operation was successful
33 | - works together with a `FileUploader` VueJS component that handles the selection of files and POSTs them to the specified route
34 | - uses a policy to restrict access/changes to files that don't belong to the respective user
35 | - provides a unified interface where you can view all the files you are working with, that you have access to, as well as search and filter them
36 | - the types of files that are visible in the interfaces are configurable
37 | - offers a configurable storage size limit
38 |
39 | ### Contributions
40 |
41 | are welcome. Pull requests are great, but issues are good too.
42 |
43 | ### License
44 |
45 | This package is released under the MIT license.
46 |
--------------------------------------------------------------------------------
/docs/backend/history-tracker.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # HistoryTracker
6 |
7 | [](https://www.codacy.com/app/laravel-enso/history-tracker?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/history-tracker&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/85500161)
9 | [](https://packagist.org/packages/laravel-enso/history-tracker)
10 | [](https://packagist.org/packages/laravel-enso/history-tracker)
11 | [](https://packagist.org/packages/laravel-enso/history-tracker)
12 |
13 | Simple to use, customizable, Laravel Model history tracking utility trait
14 |
15 | This package can work independently of the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
18 |
19 | ## Installation
20 |
21 | Comes pre-installed in Enso.
22 |
23 | To install outside of Enso: `composer require laravel-enso/history-tracker`
24 |
25 | ## Features
26 |
27 | The trait helps keep track of the changes made to a model by saving a snapshot for each relevant update of the model to a different 'history' table.
28 |
29 | The records in the history table are linked via FK to the original model. Setting a FK *constraint* on the DB column may be set if necessary.
30 |
31 | ## Usage
32 |
33 | You can choose the attributes you want to track from the model by declaring them as fillable in the history model.
34 |
35 | When the model is created, an initial snapshot of the desired attributes is saved. When the model is updated, if any one of the tracked attributes has changed, a new snapshot/history entry is persisted.
36 |
37 | 1. Create a histories table, such as `model_histories` - where model is what you need to keep track of.
38 |
39 | 2. Create a corresponding history model, such as `ModelHistory` and add as fillable the attributes you want tracked:
40 |
41 | ```php
42 | protected $fillable = ['tracked', 'attributes', 'list'];
43 | ```
44 |
45 | ::: warning
46 | Don't forget to also have the FK column for the relationship to the tracked model.
47 | :::
48 |
49 | 3. Use the trait in the tracked model:
50 |
51 | ```php
52 | use HistoryTracker;
53 | ```
54 |
55 | 4. Add the `$historyModel` property to the tracked model:
56 |
57 | ```php
58 | protected $historyModel = ModelHistory::class;
59 | ```
60 |
61 | The trait also defines a relationship to the history model instances,
62 | so you can access the snapshots by calling `histories`:
63 |
64 | ```php
65 | $myModel->histories;
66 | ```
67 |
68 | ## Contributions
69 |
70 | are welcome. Pull requests are great, but issues are good too.
71 |
72 | ## License
73 |
74 | This package is released under the MIT license.
75 |
--------------------------------------------------------------------------------
/docs/backend/how-to.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # How-To
6 |
7 | [](https://www.codacy.com/app/laravel-enso/how-to?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/how-to&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/109481095)
9 | [](https://https://packagist.org/packages/laravel-enso/HowTo)
10 | [](https://packagist.org/packages/laravel-enso/HowTo)
11 | [](https://packagist.org/packages/laravel-enso/HowTo)
12 |
13 | How-to video manager for [Laravel Enso](https://github.com/laravel-enso/Enso).
14 |
15 | This package works exclusively within the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | The front end assets that utilize this api are present in the [ui](https://github.com/enso-ui/ui) package.
18 |
19 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
20 |
21 | [](https://laravel-enso.github.io/how-to/videos/bulma_demo.mp4)
22 |
23 | click on the photo to view a short demo in compatible browsers
24 |
25 | ## Installation
26 |
27 | Comes pre-installed in Enso.
28 |
29 | ## Features
30 |
31 | Allows you to add videos to your application, to show users how to perform a specific action, demonstrate a feature,
32 | present a process flow, etc. This is a complementary package to [Tutorial Manager](https://github.com/laravel-enso/TutorialManager).
33 |
34 | * easily upload media clips from your computer, setting a title and a description
35 | * simple-to-use tag manager
36 | * optionally add a caption/cover picture for each video
37 | * optionally tag the clips and then filter them using the tags
38 | * permissions dependent controls, where regular users can only view the videos.
39 |
40 | ## Publishes
41 |
42 | - `php artisan vendor:publish --tag=howToVideos-storage` - the storage folder
43 | that holds the medial files that will be uploaded
44 |
45 | ## Contributions
46 |
47 | are welcome. Pull requests are great, but issues are good too.
48 |
49 | ## License
50 |
51 | This package is released under the MIT license.
52 |
--------------------------------------------------------------------------------
/docs/backend/image-transformer.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Image Transformer
6 |
7 | [](https://www.codacy.com/app/laravel-enso/ImageTransformer?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/ImageTransformer&utm_campaign=badger)
8 | [](https://github.styleci.io/repos/96102464)
9 | [](https://packagist.org/packages/laravel-enso/image-transformer)
10 | [](https://packagist.org/packages/laravel-enso/image-transformer)
11 | [](https://packagist.org/packages/laravel-enso/image-transformer)
12 |
13 | Image transformer dependency for [Laravel Enso](https://github.com/laravel-enso/Enso).
14 |
15 | This package can work independently of the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
18 |
19 | ## Installation
20 |
21 | Comes pre-installed in Enso.
22 |
23 | To install outside of Enso:
24 |
25 | `composer require laravel-enso/image-transformer`
26 |
27 | In order for the optimization to work, you need to have the following packages installed:
28 | * pngquant
29 | * gifsicle
30 | * jpegoptim
31 | * php7.1-gd or php-imagick
32 |
33 | On Linux, you can do that with: `sudo apt-get install pngquant gifsicle jpegoptim php7.1-gd`
34 |
35 | **IMPORTANT NOTE:**
36 |
37 | The underlying image processing libraries may use a lot of memory,
38 | especially if the processed files are large (for example, for an 8MB file, more than 128MB of memory might be used ),
39 | so make sure to configure php accordingly and/or do `ini_set(‘memory_limit’, ‘256M’);`
40 |
41 | Failure to do so may result in silent errors if allotted memory is insufficient.
42 |
43 | ## Features
44 |
45 | - handles image optimization, using the [Laravel Image Optimizer](https://github.com/spatie/laravel-image-optimizer) library
46 | - handles image cropping, using the [Intervention Image](https://github.com/intervention/image) library
47 | - for the non essential libraries, handles missing libraries gracefully, logging the fact but does not throw an error
48 |
49 | ## Usage
50 | The `ImageTransformer` class has 2 public methods:
51 | - `optimize`, takes no argument and tries to optimize the file
52 | - `resize`, takes the target width and height and resizes the file, possibly changing the aspect ration
53 | - `width`, resizes the file to the given width, maintaining aspect ratio
54 | - `height`, resizes the file to the given height, maintaining aspect ratio
55 |
56 | Note, an `ImageTransformerException` is thrown if:
57 | - the `gd` or `imagick` extensions are missing
58 | - a file type not supported for an uploaded file
59 | - an uploaded file fails the basic validation
60 |
61 | ## External dependencies
62 |
63 | - [Laravel Image Optimizer](https://github.com/spatie/laravel-image-optimizer)
64 | - [Intervention Image](https://github.com/intervention/image)
65 |
66 | ## Contributions
67 |
68 | are welcome. Pull requests are great, but issues are good too.
69 |
70 | ## License
71 |
72 | This package is released under the MIT license.
73 |
--------------------------------------------------------------------------------
/docs/backend/impersonate.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Impersonate
6 |
7 | [](https://www.codacy.com/app/laravel-enso/impersonate?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/impersonate&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/94622194)
9 | [](https://packagist.org/packages/laravel-enso/impersonate)
10 | [](https://packagist.org/packages/laravel-enso/impersonate)
11 | [](https://packagist.org/packages/laravel-enso/impersonate)
12 |
13 | User impersonation dependency for [Laravel Enso](https://github.com/laravel-enso/Enso).
14 |
15 | This package works exclusively within the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | The front end assets that utilize this api are present in the [ui](https://github.com/enso-ui/ui) package.
18 |
19 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
20 |
21 | [](https://laravel-enso.github.io/impersonate/videos/bulma_how_to_impersonate.webm)
22 | click on the photo to view a short demo in compatible browsers
23 |
24 | ## Installation
25 |
26 | Comes pre-installed in Enso.
27 |
28 | ## Features
29 |
30 | - allows a user to impersonate another user, by using a middleware
31 | - permits testing and debugging from the perspective of another user, without needing his credentials
32 | - comes with its own controller and routes that permit starting and stopping the impersonation process
33 | - uses the [Permission Manager](https://github.com/laravel-enso/PermissionManager) package in order to be able to verify permissions
34 | - the access for the impersonation process is determined by the (admin) user's access to the impersonation routes.
35 |
36 | ## Contributions
37 |
38 | are welcome. Pull requests are great, but issues are good too.
39 |
40 | ## License
41 |
42 | This package is released under the MIT license.
43 |
--------------------------------------------------------------------------------
/docs/backend/io.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # IO
6 |
7 | [](https://www.codacy.com/app/laravel-enso/io?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/io&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/168923570)
9 | [](https://packagist.org/packages/laravel-enso/io)
10 | [](https://packagist.org/packages/laravel-enso/io)
11 | [](https://packagist.org/packages/laravel-enso/io)
12 |
13 | IO process monitoring dependency for [Laravel-Enso](https://laravel-enso.com).
14 |
15 | This package works exclusively within the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | The front end assets that utilize this api are present in the [ui](https://github.com/enso-ui/ui) package.
18 |
19 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
20 |
21 | ## Installation
22 |
23 | Comes pre-installed in Enso.
24 |
25 | ## Features
26 |
27 | - provides a series of classes useful when working with long running IO operations
28 | - includes the reusable `IOEvent` broadcastable event class
29 | - is already used in the Data Import and Data Export packages
30 | - comes with Enums for the events, statuses and types
31 | - provides an observer that can be used on models that perform IO operations
32 |
33 | ## Usage
34 |
35 | When wishing to broadcast IO events you need to:
36 | - add the `HasIOStatuses` on the desired model
37 | - the model must implement the `IOOperation` interface
38 | - in `AppServiceProvider`, set the `IOObserver` to observe the model
39 |
40 | Whenever the model will be created, or updated, an event will be dispatched.
41 |
42 | The Enso front end assets are designed to display the progress information available
43 | in the dispatched events.
44 |
45 | ## Contributions
46 |
47 | are welcome. Pull requests are great, but issues are good too.
48 |
49 | ## License
50 |
51 | This package is released under the MIT license.
52 |
--------------------------------------------------------------------------------
/docs/backend/logs.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Logs
6 |
7 | [](https://www.codacy.com/app/laravel-enso/logs?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/logs&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/85624363)
9 | [](https://packagist.org/packages/laravel-enso/logs)
10 | [](https://packagist.org/packages/laravel-enso/logs)
11 | [](https://packagist.org/packages/laravel-enso/logs)
12 |
13 | Log management dependency for [Laravel Enso](https://github.com/laravel-enso/Enso)
14 |
15 | This package works exclusively within the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | The front end assets that utilize this api are present in the [ui](https://github.com/enso-ui/ui) package.
18 |
19 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
20 |
21 | [](https://laravel-enso.github.io/logs/screenshots/bulma_004.png)
22 |
23 | [](https://laravel-enso.github.io/logs/screenshots/bulma_005.png)
24 |
25 | ## Installation
26 |
27 | Comes pre-installed in Enso.
28 |
29 | ## Features
30 |
31 | - is a module meant for administrators which offers a streamlined interaction with the application logs
32 | - permits viewing, downloading and clearing the logs for the application
33 | - shows all log files inside the `logs` folder
34 | - can display in-page the contents of the log file, up to certain file size limit, to avoid locking up the browser
35 | - if the files get too large, only the download option is offered
36 |
37 | ## Contributions
38 |
39 | are welcome. Pull requests are great, but issues are good too.
40 |
41 | ## License
42 |
43 | This package is released under the MIT license.
44 |
--------------------------------------------------------------------------------
/docs/backend/measurement-units.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Measurement Units
6 |
7 | [](https://www.codacy.com/app/laravel-enso/measurement-units?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/measurement-units&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/85624363)
9 | [](https://packagist.org/packages/laravel-enso/measurement-units)
10 | [](https://packagist.org/packages/laravel-enso/measurement-units)
11 | [](https://packagist.org/packages/laravel-enso/measurement-units)
12 |
13 | Measurement units dependency for [Laravel Enso](https://github.com/laravel-enso/enso)
14 |
15 | This package works exclusively within the [Enso](https://github.com/laravel-enso/enso) ecosystem.
16 |
17 | The front end assets that utilize this api are present in the [measurement-units](https://github.com/enso-ui/measurement-units) package.
18 |
19 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
20 |
21 | ## Installation
22 |
23 | - install using composer `composer require laravel-enso/measurement-units`
24 | - run the migrations `php artisan migrate`
25 |
26 | If you want to also insert the default measurement unit, publish both the factory and the seeder:
27 | ```shell script
28 | php artisan vendor:publish --tag=measurement-units-factories
29 | php artisan vendor:publish --tag=measurement-units-seeders
30 | ```
31 |
32 | You may then run the seeder:
33 | ```shell script
34 | php artisan db:seed --class=MeasurementUnitsSeeder
35 | ```
36 |
37 | ## Features
38 |
39 | - features a core measurement units functionality with a model, enums, migrations,
40 | routes, controllers, resources, index table, etc
41 | - provides CRUD functionality for the `MeasurementUnit` model
42 | - a `MeasurementUnitFactory` is included and can be published
43 | - a `MeasurementUnitSeeder` is included and can be published
44 |
45 | ## Usage
46 |
47 | The package is meant to be installed on an Enso project and customized as required
48 | (or used as it is if that is enough).
49 |
50 | ## Publishes
51 |
52 | - `php artisan vendor:publish --tag=measurement-units-factories` - the included factory,
53 | - `php artisan vendor:publish --tag=measurement-units-seeders` - the included seeder,
54 |
55 |
56 | ### Contributions
57 |
58 | are welcome. Pull requests are great, but issues are good too.
59 |
60 | ### License
61 |
62 | This package is released under the MIT license.
63 |
--------------------------------------------------------------------------------
/docs/backend/menus.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Menus
6 |
7 | [](https://www.codacy.com/app/laravel-enso/menus?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/menus&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/94800927)
9 | [](https://packagist.org/packages/laravel-enso/menus)
10 | [](https://packagist.org/packages/laravel-enso/menus)
11 | [](https://packagist.org/packages/laravel-enso/menus)
12 |
13 |
14 | Menu Manager dependency for [Laravel Enso](https://github.com/laravel-enso/Enso)
15 |
16 | This package works exclusively within the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
17 |
18 | The front end assets that utilize this api are present in the [ui](https://github.com/enso-ui/ui) package.
19 |
20 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
21 |
22 | [](https://laravel-enso.github.io/menus/videos/bulma_menu_management.webm)
23 |
24 | click on the photo to view a short demo in compatible browsers
25 |
26 | ## Installation
27 |
28 | Comes pre-installed in Enso.
29 |
30 | ## Features
31 |
32 | - allow for the easy management of the main (sidebar) menus of the application
33 | - permits the creation, update, delete, ordering of the menus
34 |
35 | ## Usage
36 |
37 | Please note that because we want to keep the compiled size down, throughout the enso ecosystem,
38 | icons are imported selectively.
39 |
40 | What this means for the menu editor, is that when adding/changing a menu, you should also make sure you
41 | import the required icons. The proper place to include the new icons is:
42 |
43 | `resources/js/app.js`
44 |
45 | ### Under the Hood
46 |
47 | - a menu element may have several roles attached and is rendered only for the users with the respective roles
48 | - menu element attributes:
49 | - `parent_id`: the id of its parent menu, if he has a parent, or null
50 | - `name`: the label that is translated and visible in the UI
51 | - `icon`: the icon classes, visible in the UI
52 | - `order_index`: used for ordering the elements of the menu in the desired sequence
53 | - `link`: is the link that's going to be accessed when clicking on the menu
54 | - `has_children`: is a flag telling us if a menu element has children and is used when rendering the menu
55 | - for the menu changes to take effect, a page refresh or a re-login is needed
56 |
57 | ## Publishes
58 |
59 | - `php artisan vendor:publish --tag=menus-factory` - the factory for the `Menu` model
60 | - `php artisan vendor:publish --tag=enso-factories` - a common alias for when wanting to update the factories,
61 | once a newer version is released, usually used with the `--force` flag
62 |
63 | ## Contributions
64 |
65 | are welcome. Pull requests are great, but issues are good too.
66 |
67 | ## License
68 |
69 | This package is released under the MIT license.
70 |
--------------------------------------------------------------------------------
/docs/backend/migrator.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Migrator
6 |
7 | [](https://www.codacy.com/app/laravel-enso/migrator?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/migrator&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/186614340)
9 | [](https://packagist.org/packages/laravel-enso/migrator)
10 | [](https://packagist.org/packages/laravel-enso/migrator)
11 | [](https://packagist.org/packages/laravel-enso/migrator)
12 |
13 | Structure Migrator dependency for [Laravel Enso](https://github.com/laravel-enso/Enso)
14 |
15 | This package works exclusively within the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
18 |
19 | ## Installation
20 |
21 | Comes pre-installed in Enso.
22 |
23 | ## Features
24 |
25 | - can be used to easily insert (default) data, during the install of a package, or later when new routes and permissions are required and can create menus, assign default permissions, etc.
26 | - extends Illuminate's `Migration` class and acts like a migration
27 | - can also rollback its own changes
28 | - when adding menus and permissions, automatic access for the configured default role is added
29 |
30 | ## Usage
31 |
32 | You can use it to create:
33 | * menus
34 | * permissions
35 |
36 | :::tip
37 | You can use laravel-enso/cli to generate your structure migrations
38 | :::
39 |
40 | ## Contributions
41 |
42 | are welcome. Pull requests are great, but issues are good too.
43 |
44 | ## License
45 |
46 | This package is released under the MIT license.
47 |
--------------------------------------------------------------------------------
/docs/backend/notifications.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Notifications
6 |
7 | [](https://www.codacy.com/app/laravel-enso/Notifications?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/Notifications&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/85684795)
9 | [](https://packagist.org/packages/laravel-enso/notifications)
10 | [](https://packagist.org/packages/laravel-enso/notifications)
11 | [](https://packagist.org/packages/laravel-enso/notifications)
12 |
13 | Notifications functionality dependency for [Laravel Enso](https://github.com/laravel-enso/Enso)
14 |
15 | This package works exclusively within the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | The front end assets that utilize this api are present in the [ui](https://github.com/enso-ui/ui) package.
18 |
19 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
20 |
21 | [](https://laravel-enso.github.io/notifications/videos/bulma_demo_01.webm)
22 |
23 | click on the photo to view a short demo in compatible browsers
24 |
25 | ## Installation
26 |
27 | Comes pre-installed in Enso.
28 |
29 | ## Features
30 |
31 | - uses [Pusher](https://pusher.com/) and [Laravel's notification infrastructure](https://laravel.com/docs/5.5/broadcasting) to bring minimal-setup notification functionality
32 | - users can also be notified via email
33 | - allows the lazy loading of notifications
34 | - read and unread notifications are visually differentiated and can be manually/automatically marked as read, as well as cleared
35 | - polymorphic relationships are used, in order to be able to attach notifications to any entity
36 | - supports and uses Desktop Notifications if allowed by the user
37 |
38 | ## Usage
39 |
40 | If not registered already, register on [Pusher](https://pusher.com/) and then set your credentials in your `.env` file:
41 |
42 | ```bash
43 | BROADCAST_DRIVER=pusher
44 | PUSHER_APP_ID=
45 | PUSHER_APP_KEY=
46 | PUSHER_APP_SECRET=
47 | ```
48 |
49 | Once set, these credentials are set during the application init phase.
50 |
51 | ## Desktop Notifications
52 |
53 | On the first web application page load, the app will ask the user whether he wants to allow or block Desktop Notifications.
54 |
55 | If enabled, Desktop Notifications are used for any and all notifications that are received when the application is open
56 | in a tab but the tab is not visible, the web browser is minimized, etc.
57 | If any notifications are received while the web application tab is active, Desktop Notifications will not be created - regular toaster notifications will be shown instead.
58 |
59 | When clicking on a desktop notification, the browser will switch to the web application's tab.
60 |
61 | ## Contributions
62 |
63 | are welcome. Pull requests are great, but issues are good too.
64 |
65 | ## License
66 |
67 | This package is released under the MIT license.
68 |
--------------------------------------------------------------------------------
/docs/backend/pdf.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # PDF
6 |
7 | [](https://www.codacy.com/app/laravel-enso/logs?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/pdf&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/85624363)
9 | [](https://packagist.org/packages/laravel-enso/pdf)
10 | [](https://packagist.org/packages/laravel-enso/pdf)
11 | [](https://packagist.org/packages/laravel-enso/pdf)
12 |
13 | PDF utility package for [Laravel Enso](https://github.com/laravel-enso/Enso)
14 |
15 | This package can work independently of the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
18 |
19 | [](https://laravel-enso.github.io/pdf/screenshots/bulma_001.png)
20 |
21 | click on the photo to view a a larger screenshot
22 |
23 | ## Installation
24 |
25 | install using composer: `composer require laravel-enso/pdf`
26 |
27 | ## Features
28 |
29 | - is a small wrapper that uses [laravel-snappy](https://github.com/barryvdh/laravel-snappy) under the hood
30 | using the [pdftk](https://github.com/mikehaertl/php-pdftk) package for this purpose
31 | - utilizes a series of common defaults for the page, with the option of overriding them
32 | - setting the page orientation to landscape (by default is portrait)
33 | - setting options for the snappy pdf object, such as margins, footer, etc. (for more options, look [here](https://wkhtmltopdf.org/usage/wkhtmltopdf.txt))
34 | - can provide the generated pdf document inline (for downloads) or save the file to disk
35 |
36 | ## Usage
37 |
38 | In order to generate a PDF using the default options,
39 | you need to provide a view together with the set of variables for that view,
40 | and then call the `inline` method:
41 | ```php
42 | $pdf = new Pdf();
43 | $pdf->loadView(
44 | 'pdf.myBlade',
45 | [
46 | 'data' => $myData
47 | ]
48 | )
49 | ->inline();
50 | ```
51 |
52 | If you want to customize the defaults, before calling the `inline` method,
53 | you may chain any modifier methods:
54 |
55 | ```php
56 | $pdf = new Pdf();
57 | $pdf->loadView(
58 | 'pdf.myBlade',
59 | [
60 | 'data' => $myData
61 | ]
62 | )
63 | ->landscape()
64 | ->inline();
65 | ```
66 |
67 | ## Available methods
68 |
69 | The following methods are required:
70 | * `loadView(string $view, array $attributes)`, loads/sets the view that is to be used
71 | for the generation of the pdf, together with the attributes used in that view
72 | * `inline()`, generates the pdf and returns it as a stream, for download OR
73 | * `save($filePath)`, generates the pdf and saves it on the given path
74 |
75 | The following modifier methods are available:
76 | * `landscape()`, set the page orientation as landscape (default is portrait)
77 | * `setOption(string $option, $value)`, set the value for the given option.
78 | For a list of options, look [here](https://wkhtmltopdf.org/usage/wkhtmltopdf.txt)
79 |
80 | ## External dependencies
81 |
82 | - [laravel-snappy](https://github.com/barryvdh/laravel-snappy)
83 | - [php-pdftk](https://github.com/mikehaertl/php-pdftk)
84 |
85 | ## Contributions
86 |
87 | are welcome. Pull requests are great, but issues are good too.
88 |
89 | ## License
90 |
91 | This package is released under the MIT license.
92 |
--------------------------------------------------------------------------------
/docs/backend/permissions.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Permissions
6 |
7 | [](https://www.codacy.com/app/laravel-enso/permissions?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/permissions&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/94779938)
9 | [](https://packagist.org/packages/laravel-enso/permissions)
10 | [](https://packagist.org/packages/laravel-enso/permissions)
11 | [](https://packagist.org/packages/laravel-enso/permissions)
12 |
13 | Permissions dependency for [Laravel Enso](https://github.com/laravel-enso/Enso)
14 |
15 | This package works exclusively within the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | The front end assets that utilize this api are present in the [ui](https://github.com/enso-ui/ui) package.
18 |
19 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
20 |
21 | [](https://laravel-enso.github.io/permissionsmanager/screenshots/bulma_029.png)
22 |
23 | ## Installation
24 |
25 | Comes pre-installed in Enso.
26 |
27 | ## Features
28 |
29 | - permissions are managed based on the user role
30 | - allows creating, updating and deleting of permissions for each route
31 | - has the `access-route` policy which can be used to check if the a user is authorized on a given route
32 | - comes with the `VerifyRouteAccess` middleware that checks against unauthorized access
33 |
34 | ## Usage
35 |
36 | - inside `web.php` there is a route for each action within the application, and each route has the `name` attribute defined
37 | - for each route where we need to have authorization checks, we must define a permission, permission which needs to have the same name as the route
38 | - routes:
39 | - are nested, the resulting name looking something like `group1.group2...route`
40 | - when creating new routes, be sure to follow the Enso convention and use camelCase (`myGroup.myRoute`) instead of snake_case(`my_group.my_route`) or mix-n-matching.
41 | This will make for a more consistent feel and also ensure the Enso logic will work as designed.
42 | - for each request we check the existence of the link between the user's role and the permission for the request's route
43 | - permissions' attributes:
44 | - name: see above
45 | - description - is human readable and is used when displaying a user's action history (on his profile page)
46 | - type - may be `read` or `write` and is an informative flag
47 | - is_default - flag which lets us know if a permission needs to be automatically allotted to any new role we create
48 | - for routes where we don't need to have authorization checks, permissions are not mandatory, **BUT**
49 | - if we want to log and display the users' actions, permissions become necessary, as they're used when displaying statistics
50 | - permissions are automatically grouped together, based on their segments, in the UI, for presentation and functional purposes, so
51 | administrators can easily configure roles
52 |
53 | ## Publishes
54 |
55 | once a newer version is released, usually used with the `--force` flag
56 | - `php artisan vendor:publish --tag=permissions-factory` - the factory for the `Permission` model
57 | - `php artisan vendor:publish --tag=enso-factories` - a common alias for when wanting to update the factories,
58 | once a newer version is released, usually used with the `--force` flag
59 |
60 | ## Contributions
61 |
62 | are welcome. Pull requests are great, but issues are good too.
63 |
64 | ## License
65 |
66 | This package is released under the MIT license.
67 |
--------------------------------------------------------------------------------
/docs/backend/rememberable.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Rememberable
6 |
7 | [](https://www.codacy.com/app/laravel-enso/rememberable?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/rememberable&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/90758167)
9 | [](https://packagist.org/packages/laravel-enso/rememberable)
10 | [](https://packagist.org/packages/laravel-enso/rememberable)
11 | [](https://packagist.org/packages/laravel-enso/rememberable)
12 |
13 | Model caching for Laravel
14 |
15 | This package can work independently of the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
18 |
19 | ## Installation
20 |
21 | Comes pre-installed in Enso.
22 |
23 | To install outside of Enso: `composer require laravel-enso/rememberable`
24 |
25 | ## Features
26 |
27 | - comes with a trait that provides helper methods for quick and easy caching usage (setting and retrieving)
28 | - the cache lifetime may be set per model or the per-project
29 | - uses the Laravel `cache()` helper method so it is transparent to the cache mechanism/implementation
30 |
31 | ## Usage
32 |
33 | 1. Use the `Rememberable` trait in the CachedModel that you want to track
34 |
35 | 2. You **MUST** set the caching duration (in minutes) by either:
36 | - adding a `protected $cacheLifetime = 123;` property in your CachedModel
37 | - setting the `enso.config.cacheLifetime` configuration value as desired
38 |
39 | 3. Whenever you need to retrieve a cached model instead of getting it directly from the database:
40 |
41 | ```php
42 | CachedModel::find($id)
43 | ```
44 |
45 | you should get it from cache:
46 |
47 | ```php
48 | CachedModel::cacheGet($id)
49 | ```
50 |
51 | ::: tip
52 |
53 | You may use the global `enso.config.cacheLifetime` configuration together with local/per-model
54 | cache lifetime values.
55 |
56 | If given, the trait favors the per-model cache lifetime value over the global configuration value,
57 | thus you can override the global setting as required.
58 | :::
59 |
60 | ## Contributions
61 |
62 | are welcome. Pull requests are great, but issues are good too.
63 |
64 | ## License
65 |
66 | This package is released under the MIT license.
67 |
--------------------------------------------------------------------------------
/docs/backend/roles.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Roles
6 |
7 | [](https://www.codacy.com/app/laravel-enso/roles?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/roles&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/94814370)
9 | [](https://packagist.org/packages/laravel-enso/roles)
10 | [](https://packagist.org/packages/laravel-enso/roles)
11 | [](https://packagist.org/packages/laravel-enso/roles)
12 |
13 | Role Manager dependency for [Laravel Enso](https://github.com/laravel-enso/Enso)
14 |
15 | This package works exclusively within the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | The front end assets that utilize this api are present in the [ui](https://github.com/enso-ui/ui) package.
18 |
19 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
20 |
21 | [](https://laravel-enso.github.io/roles/videos/bulma_demo_01.webm)
22 |
23 | click on the photo to view a short demo in compatible browsers
24 |
25 | ## Installation
26 |
27 | Comes pre-installed in Enso.
28 |
29 | ## Features
30 |
31 | - manages roles for the users of the application
32 | - uses a hierarchical organization of permissions, which allow for a visual and intuitive update of permissions for a certain role
33 | - comes by default with the `Administrator` and `Supervisor` roles
34 |
35 | ## Publishes
36 |
37 | - `php artisan vendor:publish --tag=roles-factory` - the factory for the `Role` model
38 | - `php artisan vendor:publish --tag=roles-seeder` - a seeder that will allow you to manage roles locally and then sync them with the live instance of the app
39 | - `php artisan vendor:publish --tag=enso-factories` - a common alias for when wanting to update the factories,
40 | once a newer version is released, usually used with the `--force` flag
41 | - `php artisan vendor:publish --tag=enso-seeders` - a common alias for when wanting to update the seeders,
42 | once a newer version is released, usually used with the `--force` flag
43 |
44 | ## Contributions
45 |
46 | are welcome. Pull requests are great, but issues are good too.
47 |
48 | ## License
49 |
50 | This package is released under the MIT license.
51 |
--------------------------------------------------------------------------------
/docs/backend/services.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Services
6 |
7 | [](https://www.codacy.com/app/laravel-enso/services?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/services&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/85492361)
9 | [](https://packagist.org/packages/laravel-enso/datatable)
10 | [](https://packagist.org/packages/laravel-enso/services)
11 | [](https://packagist.org/packages/laravel-enso/services)
12 |
13 | Services package for [Laravel Enso](https://github.com/laravel-enso/Enso).
14 |
15 | This package cannot work independently of the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
18 |
19 |
20 | ## Installation
21 |
22 | install using composer `composer require laravel-enso/services`
23 |
24 | ## Features
25 |
26 | - features a core services functionality with a model, enums, migrations,
27 | routes, controllers, resources, index table, etc
28 | - provides CRUD functionality for the `Service` model
29 | - a `ServiceFactory` is included and can be published
30 |
31 | ## Usage
32 |
33 | The package is meant to be installed on an Enso project and customized as required
34 | (or used as it is if that is enough).
35 |
36 | ## Publishes
37 |
38 | - `php artisan vendor:publish --tag=services-factories` - the included service factory,
39 |
40 |
41 | ### Contributions
42 |
43 | are welcome. Pull requests are great, but issues are good too.
44 |
45 | ### License
46 |
47 | This package is released under the MIT license.
48 |
--------------------------------------------------------------------------------
/docs/backend/teams.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Teams
6 |
7 | [](https://www.codacy.com/app/laravel-enso/teams?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/teams&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/151522931)
9 | [](https://packagist.org/packages/laravel-enso/teams)
10 | [](https://packagist.org/packages/laravel-enso/teams)
11 | [](https://packagist.org/packages/laravel-enso/teams)
12 |
13 | Team management dependency for [Laravel Enso](https://github.com/laravel-enso/Enso).
14 |
15 | This package works exclusively within the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | The front end assets that utilize this api are present in the [ui](https://github.com/enso-ui/ui) package.
18 |
19 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
20 |
21 | [](https://laravel-enso.github.io/teams/videos/bulma_demo_01.mp4)
22 |
23 | click on the photo to view a short demo in compatible browsers
24 |
25 | ### Features
26 |
27 | * simple structure to group users under a team
28 | * the current team structure is basic, and can be further customized as needed
29 | * search through teams as required
30 | * the Team model has its activity tracked (integration with [ActivityLog](https://github.com/laravel-enso/ActivityLog))
31 | * provides a `Teams` trait that defines the `teams` relationship
32 |
33 | ## Installation
34 |
35 | Comes pre-installed in Enso.
36 |
37 | ## Contributions
38 |
39 | are welcome. Pull requests are great, but issues are good too.
40 |
41 | ## License
42 |
43 | This package is released under the MIT license.
44 |
--------------------------------------------------------------------------------
/docs/backend/track-who.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Track Who
6 |
7 | [](https://www.codacy.com/app/laravel-enso/track-who?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/track-who&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/85499255)
9 | [](https://packagist.org/packages/laravel-enso/track-who)
10 | [](https://packagist.org/packages/laravel-enso/track-who)
11 | [](https://packagist.org/packages/laravel-enso/track-who)
12 |
13 | Create, update and delete authoring tracking dependency for Laravel.
14 |
15 | This package can work independently of the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
18 |
19 | ## Installation
20 |
21 | Comes pre-installed in Enso.
22 |
23 | To install outside of Enso: `composer require laravel-enso/trackwho`
24 |
25 | ## Features
26 |
27 | - keeps track of the user that performed various actions on a record / model
28 | - requires the presence of the proper model attributes / table columns
29 | - once the structure is set up, by using the proper trait, the information is added automatically
30 | - the trait works only when the user is authenticated, in order to avoid issues during tests or when using the cli/tinker
31 | - provides a `TrackWho` resource that can be used within Enso
32 |
33 | ## Usage
34 |
35 | 1. In the Model where you want to track the creating, updating or deleting user, add
36 |
37 | ```php
38 | use CreatedBy, UpdatedBy, DeletedBy;
39 | ```
40 |
41 | 2. Make sure that the model's table has the `created_by` | `updated_by` | `deleted_by` column(s)
42 |
43 | ## Contributions
44 |
45 | are welcome. Pull requests are great, but issues are good too.
46 |
47 | ## License
48 |
49 | This package is released under the MIT license.
50 |
--------------------------------------------------------------------------------
/docs/backend/tutorials.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Tutorial Manager
6 |
7 |
8 | [](https://www.codacy.com/app/laravel-enso/tutorials?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/tutorials&utm_campaign=Badge_Grade)
9 | [](https://github.styleci.io/repos/85628545)
10 | [](https://packagist.org/packages/laravel-enso/tutorials)
11 | [](https://packagist.org/packages/laravel-enso/tutorials)
12 | [](https://packagist.org/packages/laravel-enso/tutorials)
13 |
14 | Tutorial management dependency for [Laravel Enso](https://github.com/laravel-enso/Enso).
15 |
16 | This package works exclusively within the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
17 |
18 | The front end assets that utilize this api are present in the [ui](https://github.com/enso-ui/ui) package.
19 |
20 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
21 |
22 | [](https://laravel-enso.github.io/tutorials/screenshots/bulma_023.png)
23 |
24 | [](https://laravel-enso.github.io/tutorials/videos/bulma_demo_01.webm)
25 |
26 | click on the photo to view a short demo in compatible browsers
27 |
28 | ## Installation
29 |
30 | Comes pre-installed in Enso.
31 |
32 | ## Features
33 |
34 | - allows for a user friendly way of teaching users how to use the interface of the application
35 | - permits adding, updating and deleting tutorial entries that can then be played for the selected route
36 | - the tutorial functionality may be started/restarted from the right-hand sidebar, using the `?` button
37 | - the `tutorials` table is used for the tutorial module and has several key attributes:
38 | - `permission_id` - the permission where they're in use, since permissions are tied to routes,
39 | and we're using permissions to know which tutorials to load for a page
40 | - `element` - identifies the element within the DOM, and may be an element, an id, in which case it should be
41 | prefixed with a `#` or a class, in which case it should be prefixed with `.` or a combination of these
42 | - `placement` - sets the position of the tutorial dialog, relative to the DOM element,
43 | and can be: `top`, `bottom`, `left` or `right`
44 | - `order_index` - gives the order in which a particular tutorial element should be displayed,
45 | in the context of the available tutorials for a certain page
46 |
47 | ## Publishes
48 | - `php artisan vendor:publish --tag=tutorials-factory` - the factory for the `Tutorial` model
49 | - `php artisan vendor:publish --tag=enso-factories` - a common alias for when wanting to update the factories,
50 | once a newer version is released, usually used with the `--force` flag
51 |
52 | ## Contributions
53 |
54 | are welcome. Pull requests are great, but issues are good too.
55 |
56 | ## License
57 |
58 | This package is released under the MIT license.
59 |
--------------------------------------------------------------------------------
/docs/backend/versioning.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Versioning
6 |
7 | [](https://www.codacy.com/app/laravel-enso/versioning?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/versioning&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/134861936)
9 | [](https://packagist.org/packages/laravel-enso/versioning)
10 | [](https://packagist.org/packages/laravel-enso/versioning)
11 | [](https://packagist.org/packages/laravel-enso/versioning)
12 |
13 | Prevents update conflicts using the optimistic lock pattern in Laravel.
14 |
15 | This package can work independently of the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
18 |
19 | ## Installation
20 |
21 | Comes pre-installed in Enso.
22 |
23 | To install outside of Enso:
24 |
25 | 1. install the package `composer require laravel-enso/versioning`
26 | 2. run the migrations
27 | 3. use the `Versionable` trait on the models you want versioning on.
28 |
29 | By default, the version value is kept in a 'version' attribute, but this can be customized (see below).
30 |
31 | ## Features
32 |
33 | - the package creates a `versionings` table where it holds versions for all the versionable models
34 | - by using the `Versionable` trait on a model, versioning is handled automatically
35 | - by default the trait appends a `version` attribute after the model is retrieved, used for tracking versions and expects the same attribute to be present on the model when the update is called
36 | - the default versioning attribute can be customized by using `protected $versioningAttribute = 'customVersionAttribte'` on the model
37 | - the trait can be used on models that already have records in the database, the versioning starts with the first retrieval of those models
38 | - when a versionable model is deleted, its versioning is deleted also. If the model uses `SoftDeletes`, the versioning is not deleted, unless doing a `forceDelete`
39 | - throws a `ConflictHttpException` if the version does not match on update
40 | - tests are included with the package
41 |
42 | ## Contributions
43 |
44 | are welcome. Pull requests are great, but issues are good too.
45 |
46 | ## License
47 |
48 | This package is released under the MIT license.
49 |
--------------------------------------------------------------------------------
/docs/backend/versions.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Versions
6 |
7 | [](https://www.codacy.com/app/laravel-enso/versions?utm_source=github.com&utm_medium=referral&utm_content=laravel-enso/versions&utm_campaign=Badge_Grade)
8 | [](https://github.styleci.io/repos/134861936)
9 | [](https://packagist.org/packages/laravel-enso/versions)
10 | [](https://packagist.org/packages/laravel-enso/versions)
11 | [](https://packagist.org/packages/laravel-enso/versions)
12 |
13 | Prevents update conflicts using the optimistic lock pattern in Laravel.
14 |
15 | This package can work independently of the [Enso](https://github.com/laravel-enso/Enso) ecosystem.
16 |
17 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
18 |
19 | ## Installation
20 |
21 | The package does not installed by default in Enso.
22 |
23 | To install:
24 |
25 | 1. add the package using composer `composer require laravel-enso/versions`
26 | 2. use the `Versions` trait on the models you want versioning on
27 | 3. ensure the models/tables have the required column, to hold the version
28 | 4. add and set the `protected $versioningAttribute = 'version'` attribute on the versioned models
29 |
30 | ## Features
31 |
32 | - the package uses a column on your model to store the version (the column name is configurable)
33 | - by using the `Versions` trait on a model, versioning is handled automatically
34 | - by default the trait sets the version to 1, just before the model is created
35 | - the version attribute can be set by using `protected $versioningAttribute = 'customVersionAttribtue'` on the model
36 | - the trait can be used on models that already have records in the database, the versioning will start with the first retrieval of those models
37 | - throws a `ConflictHttpException` if the version does not match on update
38 |
39 | ## Contributions
40 |
41 | are welcome. Pull requests are great, but issues are good too.
42 |
43 | ## License
44 |
45 | This package is released under the MIT license.
46 |
--------------------------------------------------------------------------------
/docs/frontend/README.md:
--------------------------------------------------------------------------------
1 | ### Front-End Components
2 |
3 | Collection of Front End components available on NPM,
4 | under the `@enso-ui` [organization](https://www.npmjs.com/search?q=%40enso-ui).
5 |
6 | Select a component on the left to view more.
7 |
8 | ### Other Dependencies
9 |
10 | Please note that many components use [axios](https://github.com/axios/axios) as an HTTP client
11 | and [Font Awesome 5](https://fontawesome.com/) for icons.
12 |
13 | Within Enso, `axios` is imported and available globally, Font Awesome is also available but you need to import
14 | the icons you are using within your components.
15 |
16 | Outside of Enso, when using any components that utilize the libraries above, you will need to make sure
17 | that these resources are available.
18 |
19 | ```js
20 | import axios from 'axios';
21 |
22 | window.axios = axios;
23 | axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; //only when using Laravel
24 | ```
25 |
26 | ```js
27 | import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
28 | Vue.component('fa', FontAwesomeIcon);
29 | ```
30 |
31 |
32 |
--------------------------------------------------------------------------------
/docs/frontend/activity-log.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Activity Log
6 |
7 | 
8 | 
9 | 
10 | 
11 | 
12 |
13 | ## Usage
14 | The component cannot be used outside of the Enso ecosystem.
15 |
16 | ### Demo
17 |
18 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
19 |
20 | ### Installation
21 |
22 | Install the package:
23 | ```
24 | yarn add @enso-ui/activity-log
25 | ```
26 |
27 | (within Enso, remember to `cd` into the `client` folder before installing front-end assets)
28 |
29 | ## Contributions
30 |
31 | are welcome. Pull requests are great, but issues are good too.
32 |
33 | Thank you to all the people who already contributed to Enso!
34 |
35 | ## License
36 |
37 | [ISC](https://opensource.org/licenses/ISC)
38 |
--------------------------------------------------------------------------------
/docs/frontend/bulma.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Bulma
6 |
7 | 
8 | 
9 | 
10 | 
11 | 
12 |
13 | Aggregator for enso-ui bulma components
14 |
15 | This package provides a common source for all the bulma components available in the various NPM packages.
16 |
17 | ## Installation
18 |
19 | Install the package:
20 | ```
21 | yarn add @enso-ui/bulma
22 | ```
23 |
24 | (within Enso, remember to `cd` into the `client` folder before installing front-end assets)
25 |
26 | ## Usage
27 |
28 | Import the desired component(s):
29 | ```js
30 | import {
31 | Tab, EnsoTabs as Tabs, EnsoDateFilter as DateFilter, Uploader, Chart,
32 | } from '@enso-ui/bulma';
33 | ```
34 |
35 | ## Exports
36 |
37 | - `Accessories`
38 | - `AddressesCard`
39 | - `Addresses`
40 | - `RoAddresses`
41 | - `CommentsCard`
42 | - `Comments`
43 | - `Discussions`
44 | - `DocumentsCard`
45 | - `Documents`
46 | - `Card`
47 | - `CardHeader`
48 | - `CardContent`
49 | - `CardImage`
50 | - `CardFooter`
51 | - `CardFooterItem`
52 | - `CardControl`
53 | - `CardBadge`
54 | - `CardCollapse`
55 | - `CardRefresh`
56 | - `CardRemove`
57 | - `Chart`
58 | - `ChartCard`
59 | - `EnsoChartCard`
60 | - `Confirmation`
61 | - `Datepicker`
62 | - `EnsoDatepicker`
63 | - `Divider`
64 | - `Dropdown`
65 | - `DropdownIndicator`
66 | - `VueForm`
67 | - `EnsoForm`
68 | - `FormField`
69 | - `Action`
70 | - `DateField`
71 | - `InputField`
72 | - `MoneyField`
73 | - `SelectField`
74 | - `SwitchField`
75 | - `TextareaField`
76 | - `TimeField`
77 | - `Loader`
78 | - `Modal`
79 | - `ModalCard`
80 | - `Money`
81 | - `ProgressBar`
82 | - `ProgressCircle`
83 | - `ScrollToTop`
84 | - `VueSelect`
85 | - `EnsoSelect`
86 | - `VueTable`
87 | - `EnsoTable`
88 | - `Tab`
89 | - `Tabs`
90 | - `EnsoTabs`
91 | - `Toastr`
92 | - `ToastrPlugin`
93 | - `Typeahead`
94 | - `EnsoTypeahead`
95 | - `EnsoUploader`
96 | - `Uploader`
97 | - `VueSwitch`
98 | - `IntervalFilter`
99 | - `DateFilter`
100 | - `DateIntervalFilter`
101 | - `EnsoIntervalFilter`
102 | - `EnsoDateFilter`
103 | - `EnsoDateIntervalFilter`
104 | - `BooleanFilter`
105 | - `VueFilter`
106 | - `EnsoFilter`
107 | - `SelectFilter`
108 | - `EnsoSelectFilter`
109 | - `FilterState`
110 |
111 | ## Depends on
112 |
113 | - `enso-ui/accessories`
114 | - `enso-ui/card`
115 | - `enso-ui/charts`
116 | - `enso-ui/confirmation`
117 | - `enso-ui/datepicker`
118 | - `enso-ui/divider`
119 | - `enso-ui/dropdown`
120 | - `enso-ui/dropdown-indicator`
121 | - `enso-ui/filters`
122 | - `enso-ui/forms`
123 | - `enso-ui/loader`
124 | - `enso-ui/modal`
125 | - `enso-ui/money`
126 | - `enso-ui/progress-bar`
127 | - `enso-ui/select`
128 | - `enso-ui/switch`
129 | - `enso-ui/tables`
130 | - `enso-ui/tabs`
131 | - `enso-ui/toastr`
132 | - `enso-ui/typeahead`
133 | - `enso-ui/uploader`
134 | - `bulma`
135 |
136 | ## Contributions
137 |
138 | are welcome. Pull requests are great, but issues are good too.
139 |
140 | Thank you to all the people who already contributed to Enso!
141 |
142 | ## License
143 |
144 | [ISC](https://opensource.org/licenses/ISC)
145 |
--------------------------------------------------------------------------------
/docs/frontend/calendar.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Calendar
6 |
7 | 
8 | 
9 | 
10 | 
11 | 
12 |
13 | [](https://laravel-enso.github.io/calendar/screenshots/bulma_001.png)
14 |
15 | [](https://laravel-enso.github.io/calendar/screenshots/bulma_002.png)
16 |
17 | click on the photo to view a large size screenshot
18 |
19 |
20 | ## Usage
21 | The component cannot be used outside of the Enso ecosystem.
22 |
23 | ### Demo
24 |
25 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
26 |
27 | ## Installation
28 |
29 | Install the package:
30 | ```
31 | yarn add @enso-ui/calendar
32 | ```
33 |
34 | (within Enso, remember to `cd` into the `client` folder before installing front-end assets)
35 |
36 | ## Usage
37 |
38 | In order to start using the calendar functionality, create a new calendar
39 | from the 'plus' button in the calendar page.
40 |
41 | Then:
42 | - to create an event, click and hold on the desired day in the calendar,
43 | on empty/available space
44 | - to edit an event, double click the event
45 | - to delete an event, click and hold an existing event
46 | - to 'resize' an event, drag on the event's edge
47 |
48 | ::: tip
49 | Note that you may not edit events that are read-only - when double-clicking on such events,
50 | nothing will happen.
51 | :::
52 |
53 | ## Contributions
54 |
55 | are welcome. Pull requests are great, but issues are good too.
56 |
57 | Thank you to all the people who already contributed to Enso!
58 |
59 | ## License
60 |
61 | [ISC](https://opensource.org/licenses/ISC)
62 |
--------------------------------------------------------------------------------
/docs/frontend/companies.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Companies
6 |
7 | 
8 | 
9 | 
10 | 
11 | 
12 |
13 | ## Usage
14 | The component cannot be used outside of the Enso ecosystem.
15 |
16 | ### Demo
17 |
18 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
19 |
20 | ## Installation
21 |
22 | Install the package:
23 | ```
24 | yarn add @enso-ui/companies
25 | ```
26 |
27 | (within Enso, remember to `cd` into the `client` folder before installing front-end assets)
28 |
29 | ## Contributions
30 |
31 | are welcome. Pull requests are great, but issues are good too.
32 |
33 | Thank you to all the people who already contributed to Enso!
34 |
35 | ## License
36 |
37 | [ISC](https://opensource.org/licenses/ISC)
38 |
--------------------------------------------------------------------------------
/docs/frontend/confirmation.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Confirmation
6 |
7 | 
8 | 
9 | 
10 | 
11 | 
12 |
13 | Minimalist confirmation dialog
14 |
15 | Can be used outside of the Enso ecosystem.
16 |
17 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
18 |
19 | ## Installation
20 |
21 | Install the package:
22 | ```
23 | yarn add @enso-ui/confirmation
24 | ```
25 |
26 | (within Enso, remember to `cd` into the `client` folder before installing front-end assets)
27 |
28 | Note that this package has a couple of external dependencies.
29 | Read [here](https://docs.laravel-enso.com/frontend/#other-dependencies) for more info.
30 |
31 | ### Exports
32 |
33 | `@enso-ui/confirmation/bulma`:
34 | - `Confirmation`,
35 |
36 | `@enso-ui/confirmation`:
37 | - `CoreConfirmation`,
38 |
39 | ## Usage
40 |
41 | ### bulma/Confirmation.vue
42 | This is the main bulma styled component. It has a default slot where a clickable element should be placed.
43 |
44 | It can optionally have:
45 | - a confirm action button/link
46 | - a cancel action button/link
47 |
48 | Example:
49 | ```vue
50 |
76 |
77 | {{ log.content }}
78 |
79 |
80 | ```
81 |
82 | ### longClick.js
83 |
84 | Permits adding actions when long-clicking elements.
85 | Note that the duration (in milliseconds) is required.
86 |
87 | Example:
88 | ```vue
89 |
98 | ```
99 |
100 | ### selectOnFocus.js
101 |
102 | Selects the contents of the input on focus.
103 |
104 | Example:
105 | ```vue
106 |
111 | ```
112 |
113 | ### Exports
114 |
115 | `@enso-ui/directives/renderless`:
116 | - `clickOutside`,
117 | - `focus`,
118 | - `hljs`,
119 | - `longClick`,
120 | - `selectOnFocus`,
121 |
122 | ## Questions & Issues
123 |
124 | For questions and support please use the issues functionality
125 | for this package's github repository.
126 |
127 | Please make sure to search for existing issues before creating a new issue,
128 | and when opening a new issue, fill the required information in the issue template.
129 |
130 | Issues not conforming to the guidelines may be closed immediately.
131 |
132 | ## External Dependencies
133 |
134 | Uses highlight.js for code formatting
135 |
136 | ## Contributions
137 |
138 | are welcome. Pull requests are great, but issues are good too.
139 |
140 | Thank you to all the people who already contributed to Enso!
141 |
142 | ## License
143 |
144 | [ISC](https://opensource.org/licenses/ISC)
145 |
--------------------------------------------------------------------------------
/docs/frontend/divider.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebarDepth: 3
3 | ---
4 |
5 | # Divider
6 |
7 | 
8 | 
9 | 
10 | 
11 | 
12 |
13 | Vue Divider
14 |
15 | The component can be used outside of the Enso ecosystem.
16 |
17 | For live examples and demos, you may visit [laravel-enso.com](https://www.laravel-enso.com)
18 |
19 | ## Installation
20 |
21 | Install the package:
22 | ```
23 | yarn add @enso-ui/divider
24 | ```
25 |
26 | (within Enso, remember to `cd` into the `client` folder before installing front-end assets)
27 |
28 | ### Exports
29 |
30 | `@enso-ui/divider`:
31 | - `Divider`,
32 |
33 | ## Usage
34 |
35 | ### Divider.vue
36 |
37 | Simple divider component.
38 |
39 | #### Example:
40 | ```vue
41 |