├── .codeclimate.yml ├── .csslintrc ├── .env.example ├── .env.travis ├── .eslintrc ├── .gitattributes ├── .gitignore ├── .travis.yml ├── CONTRIBUTING.md ├── Envoy.blade.php ├── INSTALLING.md ├── LICENSE.txt ├── TROUBLESHOOTING.md ├── app ├── AuthenticateUser.php ├── AuthenticateUserListener.php ├── Bootstrap │ └── ConfigureLogging.php ├── Console │ ├── Commands │ │ ├── AutopublishBusinessVacancies.php │ │ ├── SendBusinessReport.php │ │ ├── SendRootReport.php │ │ └── SyncICal.php │ └── Kernel.php ├── Events │ ├── AppointmentWasCanceled.php │ ├── AppointmentWasConfirmed.php │ ├── Event.php │ ├── NewAppointmentWasBooked.php │ ├── NewContactWasRegistered.php │ ├── NewSoftAppointmentWasBooked.php │ └── NewUserWasRegistered.php ├── Exceptions │ ├── BusinessAlreadyRegistered.php │ └── Handler.php ├── Http │ ├── Controllers │ │ ├── API │ │ │ ├── AvailabilityController.php │ │ │ └── BookingController.php │ │ ├── Auth │ │ │ ├── ForgotPasswordController.php │ │ │ ├── LoginController.php │ │ │ ├── OAuthController.php │ │ │ ├── RegisterController.php │ │ │ └── ResetPasswordController.php │ │ ├── Controller.php │ │ ├── Guest │ │ │ └── BusinessController.php │ │ ├── LanguageController.php │ │ ├── Manager │ │ │ ├── AddressbookController.php │ │ │ ├── BusinessAgendaController.php │ │ │ ├── BusinessController.php │ │ │ ├── BusinessNotificationsController.php │ │ │ ├── BusinessPreferencesController.php │ │ │ ├── BusinessServiceController.php │ │ │ ├── BusinessVacancyController.php │ │ │ ├── HumanresourceController.php │ │ │ ├── Search.php │ │ │ └── ServiceTypeController.php │ │ ├── Root │ │ │ └── RootController.php │ │ ├── User │ │ │ ├── AgendaController.php │ │ │ ├── BusinessController.php │ │ │ ├── ContactController.php │ │ │ ├── ICalController.php │ │ │ ├── UserPreferencesController.php │ │ │ └── WizardController.php │ │ ├── WelcomeController.php │ │ └── WhoopsController.php │ ├── Kernel.php │ ├── Middleware │ │ ├── Authenticate.php │ │ ├── EncryptCookies.php │ │ ├── Language.php │ │ ├── RedirectIfAuthenticated.php │ │ ├── RoleMiddleware.php │ │ └── VerifyCsrfToken.php │ ├── Requests │ │ ├── AlterAppointmentRequest.php │ │ ├── AlterContactRequest.php │ │ ├── BusinessFormRequest.php │ │ ├── ContactFormRequest.php │ │ └── Request.php │ └── ViewComposers │ │ ├── AuthComposer.php │ │ ├── NavComposer.php │ │ ├── NavLanguageComposer.php │ │ └── UserHelpComposer.php ├── Jobs │ ├── FetchICalFile.php │ └── Job.php ├── Listeners │ ├── .gitkeep │ ├── AutoConfigureUserPreferences.php │ ├── LinkContactToExistingUser.php │ ├── SendAppointmentCancellationNotification.php │ ├── SendAppointmentConfirmationNotification.php │ ├── SendBookingNotification.php │ ├── SendMailUserWelcome.php │ ├── SendSoftAppointmentValidationRequest.php │ └── UserEventListener.php ├── Models │ ├── Permission.php │ ├── Preference.php │ ├── Role.php │ └── User.php ├── Policies │ ├── BusinessPolicy.php │ └── ContactPolicy.php ├── Providers │ ├── AppServiceProvider.php │ ├── AuthServiceProvider.php │ ├── BroadcastServiceProvider.php │ ├── ComposerServiceProvider.php │ ├── EventServiceProvider.php │ └── RouteServiceProvider.php ├── TG │ ├── Availability │ │ ├── AvailabilityService.php │ │ └── ICalSyncService.php │ ├── Business │ │ ├── Dashboard.php │ │ ├── Setup │ │ │ └── SetupStaff.php │ │ └── Token.php │ ├── BusinessService.php │ ├── DetectTimezone.php │ ├── ICalChecker.php │ ├── Repositories │ │ └── UserRepository.php │ ├── SearchEngine.php │ └── TransMail.php ├── Traits │ ├── HasRoles.php │ └── Preferenceable.php └── helpers.php ├── artisan ├── bootstrap ├── app.php ├── autoload.php └── cache │ └── .gitignore ├── bower.json ├── composer.json ├── composer.lock ├── config ├── analytics.php ├── app.php ├── auth.php ├── beautymail.php ├── bootstrapper.php ├── cache.php ├── captcha.php ├── compile.php ├── countries.php ├── database.php ├── debugbar.php ├── filesystems.php ├── geoip.php ├── gravatar.php ├── image.php ├── imagecache.php ├── javascript.php ├── languages.php ├── laravel-cookie-consent.php ├── laravel-localization-helpers.php ├── location.php ├── mail.php ├── markdown.php ├── marketplace.php ├── notifynder.php ├── plans.php ├── preferences.php ├── queue.php ├── root.php ├── services.php ├── session.php ├── snappy.php ├── tidiochat.php └── view.php ├── database ├── .gitignore ├── factories │ └── ModelFactory.php ├── maxmind │ └── GeoLite2-City.mmdb ├── migrations │ ├── .gitkeep │ ├── 2014_02_10_145728_notification_categories.php │ ├── 2014_08_01_210813_create_notification_groups_table.php │ ├── 2014_08_01_211045_create_notification_category_notification_group_table.php │ ├── 2014_10_12_000000_create_users_table.php │ ├── 2014_10_12_100000_create_password_resets_table.php │ ├── 2015_02_06_000000_create_categories_table.php │ ├── 2015_02_07_000000_create_businesses_table.php │ ├── 2015_02_07_000001_create_business_user_pivot_table.php │ ├── 2015_02_07_000007_create_services_table.php │ ├── 2015_02_07_000009_create_contacts_table.php │ ├── 2015_02_07_000010_create_business_contact_pivot_table.php │ ├── 2015_02_07_000011_create_appointments_table.php │ ├── 2015_02_07_000100_setup_countries_table.php │ ├── 2015_02_07_000200_charify_countries_table.php │ ├── 2015_02_07_172606_create_roles_table.php │ ├── 2015_02_07_172633_create_role_user_table.php │ ├── 2015_02_07_172649_create_permissions_table.php │ ├── 2015_02_07_172657_create_permission_role_table.php │ ├── 2015_02_17_152439_create_permission_user_table.php │ ├── 2015_05_05_212549_create_notifications_table.php │ ├── 2015_06_06_211555_add_expire_time_column_to_notification_table.php │ ├── 2015_06_06_211555_change_type_to_extra_in_notifications_table.php │ ├── 2015_06_07_211555_alter_category_name_to_unique.php │ ├── 2015_07_06_230816_create_vacancies_table.php │ ├── 2015_07_22_171719_create_preferences_table.php │ ├── 2015_11_24_191838_add_vacancy_id_column_to_appointments_table.php │ ├── 2015_12_14_080609_alter_businesses_table.php │ ├── 2015_12_15_122923_add_login_audit_fields_to_users_table.php │ ├── 2015_12_16_091837_add_finish_at_field_to_appointments_table.php │ ├── 2015_12_20_013720_create_domains_table.php │ ├── 2015_12_20_014958_add_domain_id_to_businesses_table.php │ ├── 2015_12_22_163507_create_service_types_table.php │ ├── 2015_12_22_163530_add_service_type_column_to_services_table.php │ ├── 2015_12_26_145900_add_color_field_to_services_table.php │ ├── 2016_03_17_142339_fix_appointment_vacancy_reference_on_delete.php │ ├── 2016_03_18_000001_create_humanresources_table.php │ ├── 2016_03_18_000002_add_humanresources_foreigns.php │ ├── 2016_07_09_000001_add_humanresource_calendar_link.php │ ├── 2016_11_08_131509_patch_update_preferences_keys.php │ └── 2016_12_12_181704_add_listing_mode_field_to_businesses_table.php └── seeds │ ├── .gitkeep │ ├── CategoriesSeeder.php │ ├── CountriesSeeder.php │ ├── DatabaseSeeder.php │ ├── NotifynderCategoriesSeeder.php │ ├── RolesTableSeeder.php │ └── TestingDatabaseSeeder.php ├── gulpfile.js ├── integrated.json ├── package.json ├── phpunit.xml ├── public ├── .htaccess ├── css │ ├── app.min.css │ ├── app.min.css.map │ ├── datetime.css │ ├── datetime.css.map │ ├── forms.css │ ├── forms.css.map │ ├── highlight.css │ ├── highlight.css.map │ ├── iCheck │ │ ├── aero.png │ │ ├── aero@2x.png │ │ ├── blue.png │ │ ├── blue@2x.png │ │ ├── green.png │ │ ├── green@2x.png │ │ ├── grey.png │ │ ├── grey@2x.png │ │ ├── icheck.min.css │ │ ├── icheck.min.css.map │ │ ├── orange.png │ │ ├── orange@2x.png │ │ ├── pink.png │ │ ├── pink@2x.png │ │ ├── purple.png │ │ ├── purple@2x.png │ │ ├── red.png │ │ ├── red@2x.png │ │ ├── square.png │ │ ├── square@2x.png │ │ ├── yellow.png │ │ └── yellow@2x.png │ ├── intlTelInput │ │ └── intlTelInput.css │ ├── ionicons.min.css │ ├── notifications.css │ ├── sidebar.css │ ├── styles.css │ ├── styles.css.map │ ├── tooltipster │ │ └── themes │ │ │ └── tooltipster-timegrid.css │ ├── tour.css │ └── tour.css.map ├── favicon.ico ├── favicon.png ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ ├── glyphicons-halflings-regular.woff2 │ ├── ionicons.eot │ ├── ionicons.svg │ ├── ionicons.ttf │ └── ionicons.woff ├── img │ ├── bootstrap-colorpicker │ │ ├── alpha-horizontal.png │ │ ├── alpha.png │ │ ├── hue-horizontal.png │ │ ├── hue.png │ │ └── saturation.png │ ├── icons │ │ ├── icon-128x128.png │ │ ├── icon-144x144.png │ │ ├── icon-152x152.png │ │ ├── icon-192x192.png │ │ ├── icon-384x384.png │ │ ├── icon-512x512.png │ │ ├── icon-72x72.png │ │ └── icon-96x96.png │ ├── industries │ │ ├── doctor.png │ │ ├── garage.png │ │ ├── photography.png │ │ └── spa.png │ ├── intlTelInput │ │ ├── flags.png │ │ └── flags@2x.png │ ├── jumbo │ │ ├── contact.png │ │ ├── do.png │ │ ├── love.png │ │ └── optimize.png │ ├── payment │ │ └── logos │ │ │ └── paypal-logo.png │ ├── timegrid-logo-gray.png │ ├── timegrid-logo-white-md.png │ ├── timegrid-logo-white-sm.png │ ├── timegrid-logo-white.png │ ├── userhelp.png │ └── wizard │ │ ├── panel-business.png │ │ └── panel-user.png ├── index.php ├── js │ ├── app.min.js │ ├── app.min.js.map │ ├── bloodhound.min.js │ ├── bootstrap-select │ │ └── i18n │ │ │ ├── defaults-ar_AR.min.js │ │ │ ├── defaults-bg_BG.min.js │ │ │ ├── defaults-cro_CRO.min.js │ │ │ ├── defaults-cs_CZ.min.js │ │ │ ├── defaults-da_DK.min.js │ │ │ ├── defaults-de_DE.min.js │ │ │ ├── defaults-en_US.min.js │ │ │ ├── defaults-es_CL.min.js │ │ │ ├── defaults-eu.min.js │ │ │ ├── defaults-fa_IR.min.js │ │ │ ├── defaults-fi_FI.min.js │ │ │ ├── defaults-fr_FR.min.js │ │ │ ├── defaults-hu_HU.min.js │ │ │ ├── defaults-id_ID.min.js │ │ │ ├── defaults-it_IT.min.js │ │ │ ├── defaults-ko_KR.min.js │ │ │ ├── defaults-nb_NO.min.js │ │ │ ├── defaults-nl_NL.min.js │ │ │ ├── defaults-pl_PL.min.js │ │ │ ├── defaults-pt_BR.min.js │ │ │ ├── defaults-pt_PT.min.js │ │ │ ├── defaults-ro_RO.min.js │ │ │ ├── defaults-ru_RU.min.js │ │ │ ├── defaults-sk_SK.min.js │ │ │ ├── defaults-sl_SI.min.js │ │ │ ├── defaults-sv_SE.min.js │ │ │ ├── defaults-tr_TR.min.js │ │ │ ├── defaults-ua_UA.min.js │ │ │ ├── defaults-zh_CN.min.js │ │ │ └── defaults-zh_TW.min.js │ ├── bootstrap-tour.min.js │ ├── bootstrap-validator.min.js │ ├── bootstrap3-typeahead.min.js │ ├── clipboard │ │ ├── clipboard.min.js │ │ └── clipboard.min.js.map │ ├── datetime.js │ ├── datetime.js.map │ ├── forms.js │ ├── forms.js.map │ ├── gender │ │ └── gender.min.js │ ├── highlight.js │ ├── highlight.js.map │ ├── iCheck │ │ ├── icheck.min.js │ │ └── icheck.min.js.map │ ├── intlTelInput │ │ └── intlTelInput.min.js │ ├── lib │ │ └── utils.js │ ├── newsbox.js │ ├── newsbox.js.map │ ├── tour.js │ ├── tour.js.map │ ├── typeahead.bundle.min.js │ └── typeahead.jquery.min.js ├── manifest.json ├── robots.txt ├── storage │ └── debugbar │ │ └── .gitignore └── vendor │ └── beautymail │ ├── .gitkeep │ └── assets │ └── images │ ├── ark │ ├── fb.png │ ├── logo.png │ └── twitter.png │ ├── minty │ └── logo.png │ ├── sunny │ ├── fb.png │ ├── logo.png │ └── twitter.png │ └── widgets │ ├── facebook.gif │ ├── flickr.gif │ ├── logo.png │ ├── spacer.gif │ └── twitter.gif ├── readme.md ├── resources ├── assets │ └── less │ │ ├── app.less │ │ ├── bootstrap │ │ ├── .csscomb.json │ │ ├── .csslintrc │ │ ├── alerts.less │ │ ├── badges.less │ │ ├── bootstrap.less │ │ ├── breadcrumbs.less │ │ ├── button-groups.less │ │ ├── buttons.less │ │ ├── carousel.less │ │ ├── close.less │ │ ├── code.less │ │ ├── component-animations.less │ │ ├── dropdowns.less │ │ ├── forms.less │ │ ├── glyphicons.less │ │ ├── grid.less │ │ ├── input-groups.less │ │ ├── jumbotron.less │ │ ├── labels.less │ │ ├── list-group.less │ │ ├── media.less │ │ ├── mixins.less │ │ ├── mixins │ │ │ ├── alerts.less │ │ │ ├── background-variant.less │ │ │ ├── border-radius.less │ │ │ ├── buttons.less │ │ │ ├── center-block.less │ │ │ ├── clearfix.less │ │ │ ├── forms.less │ │ │ ├── gradients.less │ │ │ ├── grid-framework.less │ │ │ ├── grid.less │ │ │ ├── hide-text.less │ │ │ ├── image.less │ │ │ ├── labels.less │ │ │ ├── list-group.less │ │ │ ├── nav-divider.less │ │ │ ├── nav-vertical-align.less │ │ │ ├── opacity.less │ │ │ ├── pagination.less │ │ │ ├── panels.less │ │ │ ├── progress-bar.less │ │ │ ├── reset-filter.less │ │ │ ├── reset-text.less │ │ │ ├── resize.less │ │ │ ├── responsive-visibility.less │ │ │ ├── size.less │ │ │ ├── tab-focus.less │ │ │ ├── table-row.less │ │ │ ├── text-emphasis.less │ │ │ ├── text-overflow.less │ │ │ └── vendor-prefixes.less │ │ ├── modals.less │ │ ├── navbar.less │ │ ├── navs.less │ │ ├── normalize.less │ │ ├── pager.less │ │ ├── pagination.less │ │ ├── panels.less │ │ ├── popovers.less │ │ ├── print.less │ │ ├── progress-bars.less │ │ ├── responsive-embed.less │ │ ├── responsive-utilities.less │ │ ├── scaffolding.less │ │ ├── tables.less │ │ ├── theme.less │ │ ├── thumbnails.less │ │ ├── tooltip.less │ │ ├── type.less │ │ ├── utilities.less │ │ ├── variables.less │ │ └── wells.less │ │ └── bootswatch │ │ ├── cosmo │ │ ├── bootswatch.less │ │ └── variables.less │ │ ├── darkly │ │ ├── bootswatch.less │ │ └── variables.less │ │ ├── flatly │ │ ├── bootswatch.less │ │ └── variables.less │ │ └── paper │ │ ├── bootswatch.less │ │ └── variables.less ├── lang │ ├── en_US │ │ ├── app.php │ │ ├── appointments.php │ │ ├── auth.php │ │ ├── booking.php │ │ ├── datetime.php │ │ ├── emails.php │ │ ├── emptystate.php │ │ ├── errors.php │ │ ├── manager.php │ │ ├── nav.php │ │ ├── notifications.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── preferences.php │ │ ├── pricing.php │ │ ├── servicetype.php │ │ ├── tour.php │ │ ├── user.php │ │ ├── validation.php │ │ ├── welcome.php │ │ └── wizard.php │ ├── es_AR │ │ ├── app.php │ │ ├── appointments.php │ │ ├── auth.php │ │ ├── booking.php │ │ ├── datetime.php │ │ ├── emails.php │ │ ├── emptystate.php │ │ ├── errors.php │ │ ├── manager.php │ │ ├── nav.php │ │ ├── notifications.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── preferences.php │ │ ├── pricing.php │ │ ├── servicetype.php │ │ ├── tour.php │ │ ├── user.php │ │ ├── validation.php │ │ ├── welcome.php │ │ └── wizard.php │ ├── es_ES │ │ ├── app.php │ │ ├── appointments.php │ │ ├── auth.php │ │ ├── booking.php │ │ ├── datetime.php │ │ ├── emails.php │ │ ├── emptystate.php │ │ ├── errors.php │ │ ├── manager.php │ │ ├── nav.php │ │ ├── notifications.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── preferences.php │ │ ├── pricing.php │ │ ├── servicetype.php │ │ ├── tour.php │ │ ├── user.php │ │ ├── validation.php │ │ ├── welcome.php │ │ └── wizard.php │ ├── fr_FR │ │ ├── app.php │ │ ├── appointments.php │ │ ├── auth.php │ │ ├── booking.php │ │ ├── datetime.php │ │ ├── emails.php │ │ ├── emptystate.php │ │ ├── errors.php │ │ ├── manager.php │ │ ├── nav.php │ │ ├── notifications.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── preferences.php │ │ ├── pricing.php │ │ ├── servicetype.php │ │ ├── tour.php │ │ ├── user.php │ │ ├── validation.php │ │ ├── welcome.php │ │ └── wizard.php │ ├── hy_AM │ │ ├── app.php │ │ ├── appointments.php │ │ ├── auth.php │ │ ├── booking.php │ │ ├── datetime.php │ │ ├── emails.php │ │ ├── emptystate.php │ │ ├── errors.php │ │ ├── manager.php │ │ ├── nav.php │ │ ├── notifications.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── preferences.php │ │ ├── pricing.php │ │ ├── servicetype.php │ │ ├── tour.php │ │ ├── user.php │ │ ├── validation.php │ │ ├── welcome.php │ │ └── wizard.php │ ├── it_IT │ │ ├── app.php │ │ ├── appointments.php │ │ ├── auth.php │ │ ├── booking.php │ │ ├── datetime.php │ │ ├── emails.php │ │ ├── emptystate.php │ │ ├── errors.php │ │ ├── manager.php │ │ ├── nav.php │ │ ├── notifications.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── preferences.php │ │ ├── pricing.php │ │ ├── servicetype.php │ │ ├── tour.php │ │ ├── user.php │ │ ├── validation.php │ │ ├── welcome.php │ │ └── wizard.php │ ├── ru_RU │ │ ├── app.php │ │ ├── appointments.php │ │ ├── auth.php │ │ ├── booking.php │ │ ├── datetime.php │ │ ├── emails.php │ │ ├── emptystate.php │ │ ├── errors.php │ │ ├── manager.php │ │ ├── nav.php │ │ ├── notifications.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── preferences.php │ │ ├── pricing.php │ │ ├── servicetype.php │ │ ├── tour.php │ │ ├── user.php │ │ ├── validation.php │ │ ├── welcome.php │ │ └── wizard.php │ └── vendor │ │ └── cookieConsent │ │ ├── en_US │ │ └── texts.php │ │ ├── es_AR │ │ └── texts.php │ │ ├── es_ES │ │ └── texts.php │ │ └── it_IT │ │ └── texts.php └── views │ ├── _errors.blade.php │ ├── _footer.blade.php │ ├── _github-forkme.blade.php │ ├── _navi18n.blade.php │ ├── _user-account-menu.blade.php │ ├── auth │ ├── emails │ │ └── password.blade.php │ ├── login.blade.php │ ├── passwords │ │ ├── email.blade.php │ │ └── reset.blade.php │ ├── register.blade.php │ └── social.blade.php │ ├── emails │ ├── guest │ │ └── appointment-validation │ │ │ ├── _appointment.blade.php │ │ │ └── validation.blade.php │ ├── manager │ │ ├── appointment-notification │ │ │ ├── _appointment.blade.php │ │ │ └── notification.blade.php │ │ └── business-report │ │ │ ├── _table.blade.php │ │ │ └── schedule.blade.php │ ├── password.blade.php │ ├── root │ │ └── report │ │ │ └── report.blade.php │ └── user │ │ ├── appointment-cancellation │ │ ├── _appointment.blade.php │ │ └── notification.blade.php │ │ ├── appointment-confirmation │ │ ├── _appointment.blade.php │ │ └── notification.blade.php │ │ ├── appointment-notification │ │ ├── _appointment.blade.php │ │ └── notification.blade.php │ │ └── welcome │ │ └── welcome.blade.php │ ├── errors │ ├── 403.blade.php │ ├── 404.blade.php │ └── 503.blade.php │ ├── guest │ ├── appointment │ │ ├── invalid.blade.php │ │ └── show.blade.php │ └── businesses │ │ ├── index.blade.php │ │ └── show.blade.php │ ├── layouts │ ├── app.blade.php │ ├── bare.blade.php │ ├── public.blade.php │ └── user.blade.php │ ├── manager │ ├── _navmenu.blade.php │ ├── _search.blade.php │ ├── _sidebar-menu-i18n.blade.php │ ├── _sidebar-menu.blade.php │ ├── _sidebar-userpanel.blade.php │ ├── businesses │ │ ├── _contacts.blade.php │ │ ├── _form.blade.php │ │ ├── _notification.blade.php │ │ ├── _notifications.blade.php │ │ ├── appointments │ │ │ ├── calendar.blade.php │ │ │ ├── dateslot │ │ │ │ ├── index.blade.php │ │ │ │ └── widgets │ │ │ │ │ ├── table.blade.php │ │ │ │ │ └── tableRow.blade.php │ │ │ ├── empty.blade.php │ │ │ ├── index.blade.php │ │ │ └── timeslot │ │ │ │ └── index.blade.php │ │ ├── create.blade.php │ │ ├── edit.blade.php │ │ ├── humanresources │ │ │ ├── _form.blade.php │ │ │ ├── create.blade.php │ │ │ ├── edit.blade.php │ │ │ ├── index.blade.php │ │ │ └── show.blade.php │ │ ├── index.blade.php │ │ ├── notifications.blade.php │ │ ├── preferences │ │ │ ├── _form.blade.php │ │ │ └── edit.blade.php │ │ ├── services │ │ │ ├── _appointment.blade.php │ │ │ ├── _availability.blade.php │ │ │ ├── _form.blade.php │ │ │ ├── create.blade.php │ │ │ ├── edit.blade.php │ │ │ ├── index.blade.php │ │ │ └── show.blade.php │ │ ├── servicetype │ │ │ ├── _form.blade.php │ │ │ └── edit.blade.php │ │ ├── show.blade.php │ │ └── vacancies │ │ │ ├── _days.blade.php │ │ │ ├── _form.blade.php │ │ │ ├── _form_advanced.blade.php │ │ │ ├── _services.blade.php │ │ │ ├── edit.blade.php │ │ │ └── show.blade.php │ ├── components │ │ └── info-box.blade.php │ ├── contacts │ │ ├── _appointment.blade.php │ │ ├── _form.blade.php │ │ ├── create.blade.php │ │ ├── edit.blade.php │ │ ├── index.blade.php │ │ └── show.blade.php │ ├── pricing.blade.php │ ├── search │ │ ├── _appointment.blade.php │ │ ├── _appointments.blade.php │ │ ├── _contact.blade.php │ │ ├── _contacts.blade.php │ │ ├── _service.blade.php │ │ ├── _services.blade.php │ │ └── index.blade.php │ └── terms.blade.php │ ├── root │ ├── app.blade.php │ └── dashboard.blade.php │ ├── tour │ └── _template.blade.php │ ├── user │ ├── _navmenu.blade.php │ ├── _notifications-menu.blade.php │ ├── appointments │ │ ├── dateslot │ │ │ ├── _timetable.blade.php │ │ │ ├── book.blade.php │ │ │ └── show.blade.php │ │ ├── index.blade.php │ │ └── timeslot │ │ │ ├── _contact-register.blade.php │ │ │ ├── _date-picker.blade.php │ │ │ ├── _recap.blade.php │ │ │ ├── _service-picker.blade.php │ │ │ ├── _time-picker.blade.php │ │ │ └── book.blade.php │ ├── businesses │ │ ├── _row.blade.php │ │ ├── index.blade.php │ │ ├── show.blade.php │ │ └── subscriptions.blade.php │ ├── contacts │ │ ├── _appointment.blade.php │ │ ├── _form.blade.php │ │ ├── create.blade.php │ │ ├── edit.blade.php │ │ └── show.blade.php │ ├── dashboard.blade.php │ ├── notifications.blade.php │ └── preferences │ │ ├── _form.blade.php │ │ └── edit.blade.php │ ├── vendor │ ├── .gitkeep │ ├── cookieConsent │ │ ├── dialogContents.blade.php │ │ └── index.blade.php │ └── flash │ │ ├── message.blade.php │ │ └── modal.blade.php │ ├── welcome.blade.php │ ├── whoops.blade.php │ ├── widgets │ └── appointment │ │ ├── panel │ │ ├── _body.blade.php │ │ └── _buttons.blade.php │ │ ├── row │ │ ├── _body.blade.php │ │ └── _buttons.blade.php │ │ └── table │ │ └── _body.blade.php │ └── wizard.blade.php ├── routes ├── api.php ├── console.php └── web.php ├── server.php ├── storage ├── .gitignore ├── app │ └── .gitignore ├── debugbar │ └── .gitignore ├── framework │ ├── .gitignore │ ├── cache │ │ └── .gitignore │ ├── sessions │ │ └── .gitignore │ └── views │ │ └── .gitignore └── logs │ └── .gitignore ├── tests ├── TestCase.php ├── acceptance │ ├── ManagerTest.php │ ├── UserRegistrationProcessTest.php │ ├── compliance │ │ └── EUCookieLegalComplianceTest.php │ ├── emails │ │ ├── BusinessReportEmailTest.php │ │ ├── UserWelcomeEmailTest.php │ │ └── readme.md │ └── scenarios │ │ ├── consulting │ │ └── ConsultingScenarioTest.php │ │ ├── courses │ │ └── CoursesScenarioTest.php │ │ ├── doctor-dateslot │ │ └── DoctorDateslotScenarioTest.php │ │ └── hairdresser │ │ └── HairdresserScenarioTest.php ├── helpers │ ├── ArrangeFixture.php │ ├── CreateAppointment.php │ ├── CreateBusiness.php │ ├── CreateContact.php │ ├── CreateDomain.php │ ├── CreateHumanresource.php │ ├── CreatePermission.php │ ├── CreateRole.php │ ├── CreateService.php │ ├── CreateServiceType.php │ ├── CreateUser.php │ ├── CreateVacancy.php │ └── stubs │ │ └── PreferenceableStub.php ├── integration │ └── controllers │ │ ├── API │ │ ├── AvailabilityControllerTest.php │ │ ├── BookingControllerTest.php │ │ └── ICalControllerTest.php │ │ ├── Guest │ │ └── GuestBusinessControllerTest.php │ │ ├── LanguageControllerTest.php │ │ ├── Manager │ │ ├── ManagerAddressbookControllerTest.php │ │ ├── ManagerBusinessAgendaControllerTest.php │ │ ├── ManagerBusinessControllerTest.php │ │ ├── ManagerBusinessNotificationsControllerTest.php │ │ ├── ManagerBusinessPreferencesControllerTest.php │ │ ├── ManagerBusinessServiceControllerTest.php │ │ ├── ManagerBusinessServiceTypeControllerTest.php │ │ ├── ManagerBusinessVacancyControllerTest.php │ │ ├── ManagerHumanresourceControllerTest.php │ │ └── ManagerSearchControllerTest.php │ │ ├── Root │ │ └── RootControllerTest.php │ │ ├── User │ │ ├── PasswordResetTest.php │ │ ├── UserAgendaControllerTest.php │ │ ├── UserBusinessControllerTest.php │ │ ├── UserContactControllerTest.php │ │ ├── UserLoginTest.php │ │ ├── UserPreferencesControllerTest.php │ │ ├── UserRegisterTest.php │ │ └── UserWizardControllerTest.php │ │ └── WelcomeControllerTest.php └── unit │ ├── Console │ └── Commands │ │ ├── AutopublishBusinessVacanciesTest.php │ │ ├── SendBusinessReportTest.php │ │ ├── SendRootReportTest.php │ │ └── SyncICalTest.php │ ├── Http │ └── ViewComposers │ │ └── AuthComposerUnitTest.php │ ├── Listeners │ ├── SendMailUserWelcomeTest.php │ └── SendSoftAppointmentValidationRequestTest.php │ ├── NewRegisteredUserUnitTest.php │ ├── Repositories │ └── UserRepositoryTest.php │ ├── SeedingUnitTest.php │ ├── Services │ ├── Availability │ │ ├── AvailabilityServiceUnitTest.php │ │ └── ICalSyncServiceUnitTest.php │ ├── DetectTimezoneUnitTest.php │ └── ICal │ │ ├── ICalCheckerUnitTest.php │ │ └── stubs │ │ └── ical-stub.ics │ ├── TransMailTest.php │ ├── migration │ └── MigrationTest.php │ ├── models │ ├── PermissionTest.php │ ├── RoleTest.php │ └── UserTest.php │ └── traits │ └── PreferenceableTest.php ├── timegrid.sublime-project ├── travis-codeclimate-report.sh └── travis.phpunit.xml /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.css linguist-vendored 3 | *.less linguist-vendored 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor_local 2 | /vendor 3 | /packages/ 4 | /node_modules 5 | /tests/logs 6 | /build 7 | /bower_components 8 | .env 9 | .env.testing 10 | *.sublime-workspace 11 | .wakatime-project 12 | .DS_Store 13 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | 3 | php: 4 | - "5.6" 5 | - "7.1" 6 | 7 | before_install: 8 | - sudo apt-get update 9 | 10 | install: 11 | - composer self-update 12 | 13 | before_script: 14 | - mv .env.travis .env 15 | - mv travis.phpunit.xml phpunit.xml 16 | - mysql -e 'create database test_timegrid;' 17 | - composer install --dev --no-interaction 18 | - php artisan config:clear 19 | - php artisan migrate 20 | - php artisan db:seed 21 | - php artisan geoip:update 22 | - php artisan config:cache 23 | 24 | script: 25 | - vendor/bin/phpunit --coverage-clover build/logs/clover.xml 26 | 27 | after_success: 28 | - ./travis-codeclimate-report.sh 29 | -------------------------------------------------------------------------------- /Envoy.blade.php: -------------------------------------------------------------------------------- 1 | @servers(['moongate' => 'timegrid']) 2 | 3 | @task('deploy', ['on' => 'moongate']) 4 | sudo su deploy -c "/usr/local/bin/deploy.sh {{ $environment }}" 5 | @endtask 6 | -------------------------------------------------------------------------------- /app/AuthenticateUserListener.php: -------------------------------------------------------------------------------- 1 | useSyslog(config('root.app.name', 'dev.timegrid')); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/Events/AppointmentWasCanceled.php: -------------------------------------------------------------------------------- 1 | user = $user; 25 | $this->appointment = $appointment; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/Events/AppointmentWasConfirmed.php: -------------------------------------------------------------------------------- 1 | user = $user; 25 | $this->appointment = $appointment; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/Events/Event.php: -------------------------------------------------------------------------------- 1 | user = $user; 25 | $this->appointment = $appointment; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/Events/NewContactWasRegistered.php: -------------------------------------------------------------------------------- 1 | contact = $contact; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/Events/NewSoftAppointmentWasBooked.php: -------------------------------------------------------------------------------- 1 | appointment = $appointment; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/Events/NewUserWasRegistered.php: -------------------------------------------------------------------------------- 1 | user = $user; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/Exceptions/BusinessAlreadyRegistered.php: -------------------------------------------------------------------------------- 1 | authorize('manage', $business); 22 | 23 | $criteria = $request->input('criteria'); 24 | 25 | $search = new SearchEngine($criteria); 26 | $search->setBusinessScope([$business->id])->run(); 27 | 28 | $results = $search->results(); 29 | 30 | return view('manager.search.index')->with(compact('results', 'criteria')); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/Http/Controllers/WhoopsController.php: -------------------------------------------------------------------------------- 1 | info(__METHOD__); 24 | 25 | return view('whoops'); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/Http/Middleware/Authenticate.php: -------------------------------------------------------------------------------- 1 | guest()) { 22 | if ($request->ajax()) { 23 | return response('Unauthorized.', 401); 24 | } 25 | redirect()->guest('/login'); 26 | } 27 | return $next($request); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/Http/Middleware/EncryptCookies.php: -------------------------------------------------------------------------------- 1 | user()->hasRole($role)) { 22 | return new RedirectResponse(url('/')); 23 | } 24 | 25 | return $next($request); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/Http/Middleware/VerifyCsrfToken.php: -------------------------------------------------------------------------------- 1 | with('business', session()->get('selected.business')); 20 | $view->with('route', Request::route()->getName()); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/Http/ViewComposers/NavLanguageComposer.php: -------------------------------------------------------------------------------- 1 | with('availableLanguages', config('languages')); 19 | $view->with('appLocale', app()->getLocale()); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/Http/ViewComposers/UserHelpComposer.php: -------------------------------------------------------------------------------- 1 | getLocale(); 22 | 23 | $filename = Request::route()->getName().'.md'; 24 | 25 | $filepath = 'userhelp'.DIRECTORY_SEPARATOR.$locale.DIRECTORY_SEPARATOR.$filename; 26 | 27 | $help = Storage::exists($filepath) 28 | ? Markdown::convertToHtml(Storage::get($filepath)) 29 | : ''; 30 | 31 | $view->with(compact('help')); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/Jobs/Job.php: -------------------------------------------------------------------------------- 1 | detectTimezone = $detectTimezone; 16 | } 17 | 18 | /** 19 | * Handle the event. 20 | * 21 | * @param NewUserWasRegistered $event 22 | * 23 | * @return void 24 | */ 25 | public function handle(NewUserWasRegistered $event) 26 | { 27 | logger()->info(__METHOD__); 28 | 29 | $this->saveUserTimezone($event->user); 30 | } 31 | 32 | protected function saveUserTimezone(User $user) 33 | { 34 | $timezone = $this->detectTimezone->get(); 35 | 36 | $user->pref('timezone', $timezone); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/Models/Permission.php: -------------------------------------------------------------------------------- 1 | belongsToMany(Role::class); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/Models/Role.php: -------------------------------------------------------------------------------- 1 | belongsToMany(Permission::class); 20 | } 21 | 22 | /** 23 | * Grant the given permission to a role. 24 | * 25 | * @param App\Models\Permission $permission 26 | * 27 | * @return mixed 28 | */ 29 | public function givePermissionTo(Permission $permission) 30 | { 31 | return $this->permissions()->save($permission); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/Providers/AuthServiceProvider.php: -------------------------------------------------------------------------------- 1 | \App\Policies\BusinessPolicy::class, 17 | \Timegridio\Concierge\Models\Contact::class => \App\Policies\ContactPolicy::class, 18 | ]; 19 | 20 | /** 21 | * Register any authentication / authorization services. 22 | * 23 | * @return void 24 | */ 25 | public function boot() 26 | { 27 | $this->registerPolicies(); 28 | 29 | // 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/Providers/BroadcastServiceProvider.php: -------------------------------------------------------------------------------- 1 | id === (int) $userId; 24 | }); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/TG/Business/Setup/SetupStaff.php: -------------------------------------------------------------------------------- 1 | owner()->name; 13 | $capacity = 1; 14 | 15 | $humanresource = new Humanresource(compact('name', 'capacity')); 16 | 17 | $business->humanresources()->save($humanresource); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/TG/Business/Token.php: -------------------------------------------------------------------------------- 1 | business = $business; 14 | } 15 | 16 | public function generate() 17 | { 18 | return md5($this->business->slug.'>'.$this->business->created_at->timestamp); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/TG/DetectTimezone.php: -------------------------------------------------------------------------------- 1 | geoip = app('geoip'); 14 | 15 | $this->detect(); 16 | } 17 | 18 | public function __toString() 19 | { 20 | return $this->get(); 21 | } 22 | 23 | public function get() 24 | { 25 | return $this->timezone; 26 | } 27 | 28 | protected function detect() 29 | { 30 | $location = $this->geoip->getLocation(); 31 | 32 | $this->timezone = $location['timezone']; 33 | 34 | return $this->timezone; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/TG/ICalChecker.php: -------------------------------------------------------------------------------- 1 | icalevents = app()->make('ical'); 14 | } 15 | 16 | public function loadString($contents) 17 | { 18 | $this->icalevents->loadString($contents); 19 | } 20 | 21 | public function isBusy(Carbon $atDateTime) 22 | { 23 | return $this->icalevents->isBusy($atDateTime); 24 | } 25 | 26 | public function all() 27 | { 28 | return $this->icalevents->get()->all(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/TG/Repositories/UserRepository.php: -------------------------------------------------------------------------------- 1 | email)->orWhere('username', '=', $userData->nickname)->first(); 17 | if ($user !== null) { 18 | return $user; 19 | } 20 | 21 | return User::create([ 22 | 'username' => $userData->nickname, 23 | 'name' => $userData->nickname, 24 | 'email' => $userData->email, 25 | ]); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /bootstrap/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /config/beautymail.php: -------------------------------------------------------------------------------- 1 | [ 9 | '.button-content .button { background: red }', 10 | ], 11 | */ 12 | 13 | 'colors' => [ 14 | 15 | 'highlight' => '#004ca3', 16 | 'button' => '#004cad', 17 | 18 | ], 19 | 20 | 'view' => [ 21 | 'senderName' => env('MAIL_FROM_NAME', 'example@localhost'), 22 | 'reminder' => null, 23 | 'unsubscribe' => null, 24 | 'address' => null, 25 | 26 | 'logo' => [ 27 | 'path' => '%PUBLIC%/img/timegrid-logo-white-sm.png', 28 | 'width' => '', 29 | 'height' => '', 30 | ], 31 | 32 | 'twitter' => null, 33 | 'facebook' => null, 34 | 'flickr' => null, 35 | ], 36 | 37 | ]; 38 | -------------------------------------------------------------------------------- /config/bootstrapper.php: -------------------------------------------------------------------------------- 1 | '3.3.4', 8 | 'jqueryVersion' => '2.1.0', 9 | 'icon_prefix' => 'glyphicon', 10 | ]; 11 | -------------------------------------------------------------------------------- /config/captcha.php: -------------------------------------------------------------------------------- 1 | env('NOCAPTCHA_SECRET'), 5 | 'sitekey' => env('NOCAPTCHA_SITEKEY'), 6 | ]; 7 | -------------------------------------------------------------------------------- /config/countries.php: -------------------------------------------------------------------------------- 1 | 'countries', 14 | 15 | ]; 16 | -------------------------------------------------------------------------------- /config/image.php: -------------------------------------------------------------------------------- 1 | 'gd', 19 | 20 | ]; 21 | -------------------------------------------------------------------------------- /config/languages.php: -------------------------------------------------------------------------------- 1 | 'English', 5 | 'es_ES' => 'Español', 6 | 'es_AR' => 'Español Argentina', 7 | 'it_IT' => 'Italiano', 8 | 'fr_FR' => 'Français', 9 | 'ru_RU' => 'Russian', 10 | 'hy_AM' => 'Armenian', 11 | ]; 12 | -------------------------------------------------------------------------------- /config/laravel-cookie-consent.php: -------------------------------------------------------------------------------- 1 | env('COOKIE_CONSENT_ENABLED', true), 9 | 10 | /* 11 | * The name of the cookie in which we store if the user 12 | * has agreed to accept the conditions. 13 | */ 14 | 'cookie_name' => 'laravel_cookie_consent', 15 | ]; 16 | -------------------------------------------------------------------------------- /config/marketplace.php: -------------------------------------------------------------------------------- 1 | [ 9 | 'currency_price' => env('MARKETPLACE_CURRENCY_PRICE', 'SOON'), 10 | ], 11 | 12 | ]; 13 | -------------------------------------------------------------------------------- /config/snappy.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'enabled' => true, 6 | 'binary' => '/usr/local/bin/wkhtmltopdf', 7 | 'timeout' => false, 8 | 'options' => [], 9 | ], 10 | 'image' => [ 11 | 'enabled' => true, 12 | 'binary' => '/usr/local/bin/wkhtmltoimage', 13 | 'timeout' => false, 14 | 'options' => [], 15 | ], 16 | ]; 17 | -------------------------------------------------------------------------------- /config/tidiochat.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * Your key is the 32 characters long name of the js script file 11 | */ 12 | 13 | return [ 14 | 'key' => env('TIDIO_KEY', ''), 15 | ]; 16 | -------------------------------------------------------------------------------- /database/.gitignore: -------------------------------------------------------------------------------- 1 | *.sqlite 2 | -------------------------------------------------------------------------------- /database/maxmind/GeoLite2-City.mmdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/database/maxmind/GeoLite2-City.mmdb -------------------------------------------------------------------------------- /database/migrations/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/database/migrations/.gitkeep -------------------------------------------------------------------------------- /database/migrations/2014_02_10_145728_notification_categories.php: -------------------------------------------------------------------------------- 1 | increments('id'); 17 | $table->string('name')->index(); 18 | $table->string('text'); 19 | }); 20 | } 21 | 22 | /** 23 | * Reverse the migrations. 24 | * 25 | * @return void 26 | */ 27 | public function down() 28 | { 29 | Schema::drop('notification_categories'); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2014_08_01_210813_create_notification_groups_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 17 | $table->string('name', 50)->index()->unique(); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | Schema::drop('notification_groups'); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /database/migrations/2014_10_12_100000_create_password_resets_table.php: -------------------------------------------------------------------------------- 1 | string('email')->index(); 17 | $table->string('token')->index(); 18 | $table->timestamp('created_at')->useCurrent(); 19 | }); 20 | } 21 | 22 | /** 23 | * Reverse the migrations. 24 | * 25 | * @return void 26 | */ 27 | public function down() 28 | { 29 | Schema::drop('password_resets'); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2015_02_07_172606_create_roles_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 17 | $table->string('name')->unique(); 18 | $table->string('slug')->unique(); 19 | $table->text('description')->nullable(); 20 | $table->nullableTimestamps(); 21 | }); 22 | } 23 | 24 | /** 25 | * Reverse the migrations. 26 | * 27 | * @return void 28 | */ 29 | public function down() 30 | { 31 | Schema::drop('roles'); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2015_06_06_211555_add_expire_time_column_to_notification_table.php: -------------------------------------------------------------------------------- 1 | timestamp('expire_time')->nullable(); 16 | }); 17 | } 18 | 19 | /** 20 | * Reverse the migrations. 21 | * 22 | * @return void 23 | */ 24 | public function down() 25 | { 26 | Schema::table('notifications', function ($table) { 27 | $table->dropColumn('expire_time'); 28 | }); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /database/migrations/2015_06_07_211555_alter_category_name_to_unique.php: -------------------------------------------------------------------------------- 1 | unique('name'); 16 | }); 17 | } 18 | 19 | /** 20 | * Reverse the migrations. 21 | * 22 | * @return void 23 | */ 24 | public function down() 25 | { 26 | Schema::table('notification_categories', function ($table) { 27 | $table->dropUnique('notification_categories_name_unique'); 28 | }); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /database/migrations/2015_11_24_191838_add_vacancy_id_column_to_appointments_table.php: -------------------------------------------------------------------------------- 1 | integer('vacancy_id')->unsigned()->nullable(); 16 | $table->foreign('vacancy_id')->references('id')->on('vacancies')->onDelete('set null'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | Schema::table('appointments', function ($table) { 28 | $table->dropForeign('appointments_vacancy_id_foreign'); 29 | $table->dropColumn('vacancy_id'); 30 | }); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /database/migrations/2015_12_14_080609_alter_businesses_table.php: -------------------------------------------------------------------------------- 1 | string('country_code', 2)->nullable()->index(); 16 | $table->string('locale', 10)->nullable(); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | Schema::table('businesses', function ($table) { 28 | $table->dropColumn('country_code'); 29 | $table->dropColumn('locale'); 30 | }); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /database/migrations/2015_12_15_122923_add_login_audit_fields_to_users_table.php: -------------------------------------------------------------------------------- 1 | timestamp('last_login_at')->nullable(); 19 | $table->string('last_ip', IPV6_STR_MAX_LENGTH)->nullable(); 20 | }); 21 | } 22 | 23 | /** 24 | * Reverse the migrations. 25 | * 26 | * @return void 27 | */ 28 | public function down() 29 | { 30 | Schema::table('users', function ($table) { 31 | $table->dropColumn('last_login_at'); 32 | $table->dropColumn('last_ip'); 33 | }); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /database/migrations/2015_12_16_091837_add_finish_at_field_to_appointments_table.php: -------------------------------------------------------------------------------- 1 | timestamp('finish_at')->after('start_at')->nullable()->index(); 16 | }); 17 | } 18 | 19 | /** 20 | * Reverse the migrations. 21 | * 22 | * @return void 23 | */ 24 | public function down() 25 | { 26 | Schema::table('appointments', function ($table) { 27 | $table->dropColumn('finish_at'); 28 | }); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /database/migrations/2015_12_20_013720_create_domains_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 17 | $table->string('slug', 50)->unique(); 18 | $table->integer('owner_id')->unsigned(); 19 | $table->foreign('owner_id')->references('id')->on('users')->onDelete('cascade'); 20 | $table->nullableTimestamps(); 21 | $table->softdeletes(); 22 | }); 23 | } 24 | 25 | /** 26 | * Reverse the migrations. 27 | * 28 | * @return void 29 | */ 30 | public function down() 31 | { 32 | Schema::drop('domains'); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /database/migrations/2015_12_20_014958_add_domain_id_to_businesses_table.php: -------------------------------------------------------------------------------- 1 | integer('domain_id')->unsigned()->nullable()->after('category_id'); 16 | $table->foreign('domain_id')->references('id')->on('domains')->onDelete('set null'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | Schema::table('businesses', function ($table) { 28 | $table->dropForeign('businesses_domain_id_foreign'); 29 | $table->dropColumn('domain_id'); 30 | }); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /database/migrations/2015_12_22_163530_add_service_type_column_to_services_table.php: -------------------------------------------------------------------------------- 1 | integer('type_id')->unsigned()->nullable()->after('id'); 16 | $table->foreign('type_id')->references('id')->on('service_types')->onDelete('cascade'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | Schema::table('services', function ($table) { 28 | $table->dropForeign('services_type_id_foreign'); 29 | $table->dropColumn('type_id'); 30 | }); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /database/migrations/2015_12_26_145900_add_color_field_to_services_table.php: -------------------------------------------------------------------------------- 1 | string('color', 12)->nullable()->after('prerequisites'); 16 | }); 17 | } 18 | 19 | /** 20 | * Reverse the migrations. 21 | * 22 | * @return void 23 | */ 24 | public function down() 25 | { 26 | Schema::table('services', function ($table) { 27 | $table->dropColumn('color'); 28 | }); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /database/migrations/2016_07_09_000001_add_humanresource_calendar_link.php: -------------------------------------------------------------------------------- 1 | string('calendar_link')->nullable(); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | Schema::table('humanresources', function (Blueprint $table) { 28 | $table->dropColumn('calendar_link'); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2016_12_12_181704_add_listing_mode_field_to_businesses_table.php: -------------------------------------------------------------------------------- 1 | boolean('listed')->default(false); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | Schema::table('businesses', function (Blueprint $table) { 29 | $table->dropColumn('listed'); 30 | }); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /database/seeds/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/database/seeds/.gitkeep -------------------------------------------------------------------------------- /database/seeds/DatabaseSeeder.php: -------------------------------------------------------------------------------- 1 | call('NotifynderCategoriesSeeder'); 18 | $this->command->info('Seeded the Notifynder Categories!'); 19 | 20 | $this->call('CategoriesSeeder'); 21 | $this->command->info('Seeded the Param Categories!'); 22 | 23 | $this->call('CountriesSeeder'); 24 | $this->command->info('Seeded the Param Countries!'); 25 | 26 | $this->call('RolesTableSeeder'); 27 | $this->command->info('Seeded the Param Roles!'); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /database/seeds/RolesTableSeeder.php: -------------------------------------------------------------------------------- 1 | 'root'], ['name' => 'Root', 'description' => 'System administration only']); 15 | // Role::updateOrCreate(['slug' => 'manager'], ['name' => 'Manager', 'description' => 'Business manager']); 16 | // Role::updateOrCreate(['slug' => 'collaborator'], ['name' => 'Collaborator', 'description' => 'Business manager with restricted access']); 17 | // Role::updateOrCreate(['slug' => 'user'], ['name' => 'User', 'description' => 'Business customer/user']); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /integrated.json: -------------------------------------------------------------------------------- 1 | { 2 | "baseUrl": "http://localhost:8000" 3 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "devDependencies": { 4 | "gulp": "^3.8.8", 5 | "laravel-elixir": "*" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /public/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | 3 | Options -MultiViews 4 | 5 | 6 | RewriteEngine On 7 | 8 | # Redirect Trailing Slashes... 9 | RewriteRule ^(.*)/$ /$1 [L,R=301] 10 | 11 | # Handle Front Controller... 12 | RewriteCond %{REQUEST_FILENAME} !-d 13 | RewriteCond %{REQUEST_FILENAME} !-f 14 | RewriteRule ^ index.php [L] 15 | 16 | -------------------------------------------------------------------------------- /public/css/highlight.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery highlightTextarea 3.1.3 3 | * Copyright 2014-2016 Damien "Mistic" Sorel (http://www.strangeplanet.fr) 4 | * Licensed under MIT (http://opensource.org/licenses/MIT) 5 | */ 6 | .highlightTextarea{position:relative}.highlightTextarea .highlightTextarea-container{position:absolute;margin:0;overflow:hidden}.highlightTextarea .highlightTextarea-highlighter{position:relative;border:none;padding:0;margin:0;color:transparent;cursor:text;overflow:hidden;white-space:pre-wrap;word-wrap:break-word}.highlightTextarea.debug .highlightTextarea-highlighter{color:red;border:1px solid red;margin:-1px}.highlightTextarea mark{line-height:inherit;color:transparent;margin:0;padding:0}.highlightTextarea input,.highlightTextarea textarea{position:absolute;left:0;top:0;resize:none;white-space:pre-wrap;word-wrap:break-word}.highlightTextarea .ui-wrapper{margin:0!important}.highlightTextarea .ui-resizable-se{bottom:15px;right:0} 7 | /*# sourceMappingURL=highlight.css.map */ 8 | -------------------------------------------------------------------------------- /public/css/iCheck/aero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/css/iCheck/aero.png -------------------------------------------------------------------------------- /public/css/iCheck/aero@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/css/iCheck/aero@2x.png -------------------------------------------------------------------------------- /public/css/iCheck/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/css/iCheck/blue.png -------------------------------------------------------------------------------- /public/css/iCheck/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/css/iCheck/blue@2x.png -------------------------------------------------------------------------------- /public/css/iCheck/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/css/iCheck/green.png -------------------------------------------------------------------------------- /public/css/iCheck/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/css/iCheck/green@2x.png -------------------------------------------------------------------------------- /public/css/iCheck/grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/css/iCheck/grey.png -------------------------------------------------------------------------------- /public/css/iCheck/grey@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/css/iCheck/grey@2x.png -------------------------------------------------------------------------------- /public/css/iCheck/orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/css/iCheck/orange.png -------------------------------------------------------------------------------- /public/css/iCheck/orange@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/css/iCheck/orange@2x.png -------------------------------------------------------------------------------- /public/css/iCheck/pink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/css/iCheck/pink.png -------------------------------------------------------------------------------- /public/css/iCheck/pink@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/css/iCheck/pink@2x.png -------------------------------------------------------------------------------- /public/css/iCheck/purple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/css/iCheck/purple.png -------------------------------------------------------------------------------- /public/css/iCheck/purple@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/css/iCheck/purple@2x.png -------------------------------------------------------------------------------- /public/css/iCheck/red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/css/iCheck/red.png -------------------------------------------------------------------------------- /public/css/iCheck/red@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/css/iCheck/red@2x.png -------------------------------------------------------------------------------- /public/css/iCheck/square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/css/iCheck/square.png -------------------------------------------------------------------------------- /public/css/iCheck/square@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/css/iCheck/square@2x.png -------------------------------------------------------------------------------- /public/css/iCheck/yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/css/iCheck/yellow.png -------------------------------------------------------------------------------- /public/css/iCheck/yellow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/css/iCheck/yellow@2x.png -------------------------------------------------------------------------------- /public/css/notifications.css: -------------------------------------------------------------------------------- 1 | .glyphicon { 2 | margin-right: 4px !important; /*override*/ 3 | } 4 | .pagination .glyphicon { 5 | margin-right: 0px !important; /*override*/ 6 | } 7 | .pagination a { 8 | color: #eee; 9 | } 10 | .panel ul { 11 | padding: 0px; 12 | margin: 0px; 13 | list-style: none; 14 | } 15 | .news-item { 16 | padding: 4px 4px; 17 | margin: 0px; 18 | border-bottom: 1px dashed #eee; 19 | color:#666; 20 | } -------------------------------------------------------------------------------- /public/css/tooltipster/themes/tooltipster-timegrid.css: -------------------------------------------------------------------------------- 1 | .tooltipster-timegrid { 2 | border-radius: 5px; 3 | border: 1px solid #C70000; 4 | background: #C70000; 5 | color: #ffffff; 6 | } 7 | .tooltipster-timegrid .tooltipster-content { 8 | font-family: Arial, sans-serif; 9 | font-size: 14px; 10 | line-height: 16px; 11 | padding: 8px 10px; 12 | } -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/favicon.ico -------------------------------------------------------------------------------- /public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/favicon.png -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /public/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/fonts/ionicons.eot -------------------------------------------------------------------------------- /public/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/fonts/ionicons.ttf -------------------------------------------------------------------------------- /public/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/fonts/ionicons.woff -------------------------------------------------------------------------------- /public/img/bootstrap-colorpicker/alpha-horizontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/bootstrap-colorpicker/alpha-horizontal.png -------------------------------------------------------------------------------- /public/img/bootstrap-colorpicker/alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/bootstrap-colorpicker/alpha.png -------------------------------------------------------------------------------- /public/img/bootstrap-colorpicker/hue-horizontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/bootstrap-colorpicker/hue-horizontal.png -------------------------------------------------------------------------------- /public/img/bootstrap-colorpicker/hue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/bootstrap-colorpicker/hue.png -------------------------------------------------------------------------------- /public/img/bootstrap-colorpicker/saturation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/bootstrap-colorpicker/saturation.png -------------------------------------------------------------------------------- /public/img/icons/icon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/icons/icon-128x128.png -------------------------------------------------------------------------------- /public/img/icons/icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/icons/icon-144x144.png -------------------------------------------------------------------------------- /public/img/icons/icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/icons/icon-152x152.png -------------------------------------------------------------------------------- /public/img/icons/icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/icons/icon-192x192.png -------------------------------------------------------------------------------- /public/img/icons/icon-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/icons/icon-384x384.png -------------------------------------------------------------------------------- /public/img/icons/icon-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/icons/icon-512x512.png -------------------------------------------------------------------------------- /public/img/icons/icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/icons/icon-72x72.png -------------------------------------------------------------------------------- /public/img/icons/icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/icons/icon-96x96.png -------------------------------------------------------------------------------- /public/img/industries/doctor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/industries/doctor.png -------------------------------------------------------------------------------- /public/img/industries/garage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/industries/garage.png -------------------------------------------------------------------------------- /public/img/industries/photography.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/industries/photography.png -------------------------------------------------------------------------------- /public/img/industries/spa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/industries/spa.png -------------------------------------------------------------------------------- /public/img/intlTelInput/flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/intlTelInput/flags.png -------------------------------------------------------------------------------- /public/img/intlTelInput/flags@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/intlTelInput/flags@2x.png -------------------------------------------------------------------------------- /public/img/jumbo/contact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/jumbo/contact.png -------------------------------------------------------------------------------- /public/img/jumbo/do.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/jumbo/do.png -------------------------------------------------------------------------------- /public/img/jumbo/love.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/jumbo/love.png -------------------------------------------------------------------------------- /public/img/jumbo/optimize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/jumbo/optimize.png -------------------------------------------------------------------------------- /public/img/payment/logos/paypal-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/payment/logos/paypal-logo.png -------------------------------------------------------------------------------- /public/img/timegrid-logo-gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/timegrid-logo-gray.png -------------------------------------------------------------------------------- /public/img/timegrid-logo-white-md.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/timegrid-logo-white-md.png -------------------------------------------------------------------------------- /public/img/timegrid-logo-white-sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/timegrid-logo-white-sm.png -------------------------------------------------------------------------------- /public/img/timegrid-logo-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/timegrid-logo-white.png -------------------------------------------------------------------------------- /public/img/userhelp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/userhelp.png -------------------------------------------------------------------------------- /public/img/wizard/panel-business.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/wizard/panel-business.png -------------------------------------------------------------------------------- /public/img/wizard/panel-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/img/wizard/panel-user.png -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-cs_CZ.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nic není vybráno",noneResultsText:"Žádné výsledky {0}",countSelectedText:"Označeno {0} z {1}",maxOptionsText:["Limit překročen ({n} {var} max)","Limit skupiny překročen ({n} {var} max)",["položek","položka"]],multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-da_DK.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Intet valgt",noneResultsText:"Ingen resultater fundet {0}",countSelectedText:function(a,b){return"{0} valgt"},maxOptionsText:function(a,b){return[1==a?"Begrænsning nået (max {n} valgt)":"Begrænsning nået (max {n} valgte)",1==b?"Gruppe-begrænsning nået (max {n} valgt)":"Gruppe-begrænsning nået (max {n} valgte)"]},selectAllText:"Markér alle",deselectAllText:"Afmarkér alle",multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-de_DE.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Bitte wählen...",noneResultsText:"Keine Ergebnisse für {0}",countSelectedText:"{0} von {1} ausgewählt",maxOptionsText:["Limit erreicht ({n} {var} max.)","Gruppen-Limit erreicht ({n} {var} max.)",["Eintrag","Einträge"]],multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-en_US.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nothing selected",noneResultsText:"No results match {0}",countSelectedText:function(a,b){return 1==a?"{0} item selected":"{0} items selected"},maxOptionsText:function(a,b){return[1==a?"Limit reached ({n} item max)":"Limit reached ({n} items max)",1==b?"Group limit reached ({n} item max)":"Group limit reached ({n} items max)"]},selectAllText:"Select All",deselectAllText:"Deselect All",multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-es_CL.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"No hay selección",noneResultsText:"No hay resultados {0}",countSelectedText:"Seleccionados {0} de {1}",maxOptionsText:["Límite alcanzado ({n} {var} max)","Límite del grupo alcanzado({n} {var} max)",["elementos","element"]],multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-eu.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Hautapenik ez",noneResultsText:"Emaitzarik ez {0}",countSelectedText:"{1}(e)tik {0} hautatuta",maxOptionsText:["Mugara iritsita ({n} {var} gehienez)","Taldearen mugara iritsita ({n} {var} gehienez)",["elementu","elementu"]],multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-fa_IR.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"چیزی انتخاب نشده است",noneResultsText:"هیج مشابهی برای {0} پیدا نشد",countSelectedText:"{0} از {1} مورد انتخاب شده",maxOptionsText:["بیشتر ممکن نیست {حداکثر {n} عدد}","بیشتر ممکن نیست {حداکثر {n} عدد}"],selectAllText:"انتخاب همه",deselectAllText:"انتخاب هیچ کدام",multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-fi_FI.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Ei valintoja",noneResultsText:"Ei hakutuloksia {0}",countSelectedText:function(a,b){return 1==a?"{0} valittu":"{0} valitut"},maxOptionsText:function(a,b){return["Valintojen maksimimäärä ({n} saavutettu)","Ryhmän maksimimäärä ({n} saavutettu)"]},selectAllText:"Valitse kaikki",deselectAllText:"Poista kaikki",multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-fr_FR.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Aucune sélection",noneResultsText:"Aucun résultat pour {0}",countSelectedText:function(a,b){return a>1?"{0} éléments sélectionnés":"{0} élément sélectionné"},maxOptionsText:function(a,b){return[a>1?"Limite atteinte ({n} éléments max)":"Limite atteinte ({n} élément max)",b>1?"Limite du groupe atteinte ({n} éléments max)":"Limite du groupe atteinte ({n} élément max)"]},multipleSeparator:", ",selectAllText:"Tout Sélectionner",deselectAllText:"Tout Dé-selectionner"}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-hu_HU.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Válasszon!",noneResultsText:"Nincs találat {0}",countSelectedText:function(a,b){return"{0} elem kiválasztva"},maxOptionsText:function(a,b){return["Legfeljebb {n} elem választható","A csoportban legfeljebb {n} elem választható"]},selectAllText:"Mind",deselectAllText:"Egyik sem",multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-id_ID.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Tidak ada yang dipilih",noneResultsText:"Tidak ada yang cocok {0}",countSelectedText:"{0} terpilih",maxOptionsText:["Mencapai batas (maksimum {n})","Mencapai batas grup (maksimum {n})"],selectAllText:"Pilih Semua",deselectAllText:"Hapus Semua",multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-it_IT.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nessuna selezione",noneResultsText:"Nessun risultato per {0}",countSelectedText:"Selezionati {0} di {1}",maxOptionsText:["Limite raggiunto ({n} {var} max)","Limite del gruppo raggiunto ({n} {var} max)",["elementi","elemento"]],multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-ko_KR.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"항목을 선택해주세요",noneResultsText:"{0} 검색 결과가 없습니다",countSelectedText:function(a,b){return"{0}개를 선택하였습니다"},maxOptionsText:function(a,b){return["{n}개까지 선택 가능합니다","해당 그룹은 {n}개까지 선택 가능합니다"]},selectAllText:"전체선택",deselectAllText:"전체해제",multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-nl_NL.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Niets geselecteerd",noneResultsText:"Geen resultaten gevonden voor {0}",countSelectedText:"{0} van {1} geselecteerd",maxOptionsText:["Limiet bereikt ({n} {var} max)","Groep limiet bereikt ({n} {var} max)",["items","item"]],multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-pl_PL.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nic nie zaznaczono",noneResultsText:"Brak wyników wyszukiwania {0}",countSelectedText:"Zaznaczono {0} z {1}",maxOptionsText:["Osiągnięto limit ({n} {var} max)","Limit grupy osiągnięty ({n} {var} max)",["elementy","element"]],selectAll:"Zaznacz wszystkie",deselectAll:"Odznacz wszystkie",multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-pt_BR.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nada selecionado",noneResultsText:"Nada encontrado contendo {0}",countSelectedText:"Selecionado {0} de {1}",maxOptionsText:["Limite excedido (máx. {n} {var})","Limite do grupo excedido (máx. {n} {var})",["itens","item"]],multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-pt_PT.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nenhum seleccionado",noneResultsText:"Sem resultados contendo {0}",countSelectedText:"Selecionado {0} de {1}",maxOptionsText:["Limite ultrapassado (máx. {n} {var})","Limite de seleções ultrapassado (máx. {n} {var})",["itens","item"]],multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-ro_RO.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nu a fost selectat nimic",noneResultsText:"Nu exista niciun rezultat {0}",countSelectedText:"{0} din {1} selectat(e)",maxOptionsText:["Limita a fost atinsa ({n} {var} max)","Limita de grup a fost atinsa ({n} {var} max)",["iteme","item"]],multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-ru_RU.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Ничего не выбрано",noneResultsText:"Совпадений не найдено {0}",countSelectedText:"Выбрано {0} из {1}",maxOptionsText:["Достигнут предел ({n} {var} максимум)","Достигнут предел в группе ({n} {var} максимум)",["items","item"]],doneButtonText:"Закрыть",multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-sk_SK.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Vyberte zo zoznamu",noneResultsText:"Pre výraz {0} neboli nájdené žiadne výsledky",countSelectedText:"Vybrané {0} z {1}",maxOptionsText:["Limit prekročený ({n} {var} max)","Limit skupiny prekročený ({n} {var} max)",["položiek","položka"]],selectAllText:"Vybrať všetky",deselectAllText:"Zrušiť výber",multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-sl_SI.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nič izbranega",noneResultsText:"Ni zadetkov za {0}",countSelectedText:function(a,b){"Število izbranih: {0}"},maxOptionsText:function(a,b){return["Omejitev dosežena (max. izbranih: {n})","Omejitev skupine dosežena (max. izbranih: {n})"]},selectAllText:"Izberi vse",deselectAllText:"Počisti izbor",multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-sv_SE.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Inget valt",noneResultsText:"Inget sökresultat matchar {0}",countSelectedText:function(a,b){return 1===a?"{0} alternativ valt":"{0} alternativ valda"},maxOptionsText:function(a,b){return["Gräns uppnåd (max {n} alternativ)","Gräns uppnåd (max {n} gruppalternativ)"]},selectAllText:"Markera alla",deselectAllText:"Avmarkera alla",multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-tr_TR.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Hiçbiri seçilmedi",noneResultsText:"Hiçbir sonuç bulunamadı {0}",countSelectedText:function(a,b){return"{0} öğe seçildi"},maxOptionsText:function(a,b){return[1==a?"Limit aşıldı (maksimum {n} sayıda öğe )":"Limit aşıldı (maksimum {n} sayıda öğe)","Grup limiti aşıldı (maksimum {n} sayıda öğe)"]},selectAllText:"Tümünü Seç",deselectAllText:"Seçiniz",multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-ua_UA.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Нічого не вибрано",noneResultsText:"Збігів не знайдено {0}",countSelectedText:"Вибрано {0} із {1}",maxOptionsText:["Досягнута межа ({n} {var} максимум)","Досягнута межа в групі ({n} {var} максимум)",["items","item"]],multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-zh_CN.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"没有选中任何项",noneResultsText:"没有找到匹配项",countSelectedText:"选中{1}中的{0}项",maxOptionsText:["超出限制 (最多选择{n}项)","组选择超出限制(最多选择{n}组)"],multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/js/bootstrap-select/i18n/defaults-zh_TW.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.9.4 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2016 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"沒有選取任何項目",noneResultsText:"沒有找到符合的結果",countSelectedText:"已經選取{0}個項目",maxOptionsText:["超過限制 (最多選擇{n}項)","超過限制(最多選擇{n}組)"],selectAllText:"選取全部",deselectAllText:"全部取消",multipleSeparator:", "}}(a)}); -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /public/storage/debugbar/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /public/vendor/beautymail/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/vendor/beautymail/.gitkeep -------------------------------------------------------------------------------- /public/vendor/beautymail/assets/images/ark/fb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/vendor/beautymail/assets/images/ark/fb.png -------------------------------------------------------------------------------- /public/vendor/beautymail/assets/images/ark/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/vendor/beautymail/assets/images/ark/logo.png -------------------------------------------------------------------------------- /public/vendor/beautymail/assets/images/ark/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/vendor/beautymail/assets/images/ark/twitter.png -------------------------------------------------------------------------------- /public/vendor/beautymail/assets/images/minty/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/vendor/beautymail/assets/images/minty/logo.png -------------------------------------------------------------------------------- /public/vendor/beautymail/assets/images/sunny/fb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/vendor/beautymail/assets/images/sunny/fb.png -------------------------------------------------------------------------------- /public/vendor/beautymail/assets/images/sunny/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/vendor/beautymail/assets/images/sunny/logo.png -------------------------------------------------------------------------------- /public/vendor/beautymail/assets/images/sunny/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/vendor/beautymail/assets/images/sunny/twitter.png -------------------------------------------------------------------------------- /public/vendor/beautymail/assets/images/widgets/facebook.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/vendor/beautymail/assets/images/widgets/facebook.gif -------------------------------------------------------------------------------- /public/vendor/beautymail/assets/images/widgets/flickr.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/vendor/beautymail/assets/images/widgets/flickr.gif -------------------------------------------------------------------------------- /public/vendor/beautymail/assets/images/widgets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/vendor/beautymail/assets/images/widgets/logo.png -------------------------------------------------------------------------------- /public/vendor/beautymail/assets/images/widgets/spacer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/vendor/beautymail/assets/images/widgets/spacer.gif -------------------------------------------------------------------------------- /public/vendor/beautymail/assets/images/widgets/twitter.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/public/vendor/beautymail/assets/images/widgets/twitter.gif -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/.csslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "adjoining-classes": false, 3 | "box-sizing": false, 4 | "box-model": false, 5 | "compatible-vendor-prefixes": false, 6 | "floats": false, 7 | "font-sizes": false, 8 | "gradients": false, 9 | "important": false, 10 | "known-properties": false, 11 | "outline-none": false, 12 | "qualified-headings": false, 13 | "regex-selectors": false, 14 | "shorthand": false, 15 | "text-indent": false, 16 | "unique-headings": false, 17 | "universal-selector": false, 18 | "unqualified-attributes": false 19 | } 20 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; 8 | margin-bottom: @line-height-computed; 9 | list-style: none; 10 | background-color: @breadcrumb-bg; 11 | border-radius: @border-radius-base; 12 | 13 | > li { 14 | display: inline-block; 15 | 16 | + li:before { 17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space 18 | padding: 0 5px; 19 | color: @breadcrumb-color; 20 | } 21 | } 22 | 23 | > .active { 24 | color: @breadcrumb-active-color; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/close.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: (@font-size-base * 1.5); 9 | font-weight: @close-font-weight; 10 | line-height: 1; 11 | color: @close-color; 12 | text-shadow: @close-text-shadow; 13 | .opacity(.2); 14 | 15 | &:hover, 16 | &:focus { 17 | color: @close-color; 18 | text-decoration: none; 19 | cursor: pointer; 20 | .opacity(.5); 21 | } 22 | 23 | // Additional properties for button version 24 | // iOS requires the button element instead of an anchor tag. 25 | // If you want the anchor version, it requires `href="#"`. 26 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile 27 | button& { 28 | padding: 0; 29 | cursor: pointer; 30 | background: transparent; 31 | border: 0; 32 | -webkit-appearance: none; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | .transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .collapse { 19 | display: none; 20 | 21 | &.in { display: block; } 22 | tr&.in { display: table-row; } 23 | tbody&.in { display: table-row-group; } 24 | } 25 | 26 | .collapsing { 27 | position: relative; 28 | height: 0; 29 | overflow: hidden; 30 | .transition-property(~"height, visibility"); 31 | .transition-duration(.35s); 32 | .transition-timing-function(ease); 33 | } 34 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/alerts.less: -------------------------------------------------------------------------------- 1 | // Alerts 2 | 3 | .alert-variant(@background; @border; @text-color) { 4 | background-color: @background; 5 | border-color: @border; 6 | color: @text-color; 7 | 8 | hr { 9 | border-top-color: darken(@border, 5%); 10 | } 11 | .alert-link { 12 | color: darken(@text-color, 10%); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/background-variant.less: -------------------------------------------------------------------------------- 1 | // Contextual backgrounds 2 | 3 | .bg-variant(@color) { 4 | background-color: @color; 5 | a&:hover, 6 | a&:focus { 7 | background-color: darken(@color, 10%); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/border-radius.less: -------------------------------------------------------------------------------- 1 | // Single side border-radius 2 | 3 | .border-top-radius(@radius) { 4 | border-top-right-radius: @radius; 5 | border-top-left-radius: @radius; 6 | } 7 | .border-right-radius(@radius) { 8 | border-bottom-right-radius: @radius; 9 | border-top-right-radius: @radius; 10 | } 11 | .border-bottom-radius(@radius) { 12 | border-bottom-right-radius: @radius; 13 | border-bottom-left-radius: @radius; 14 | } 15 | .border-left-radius(@radius) { 16 | border-bottom-left-radius: @radius; 17 | border-top-left-radius: @radius; 18 | } 19 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/center-block.less: -------------------------------------------------------------------------------- 1 | // Center-align a block level element 2 | 3 | .center-block() { 4 | display: block; 5 | margin-left: auto; 6 | margin-right: auto; 7 | } 8 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/clearfix.less: -------------------------------------------------------------------------------- 1 | // Clearfix 2 | // 3 | // For modern browsers 4 | // 1. The space content is one way to avoid an Opera bug when the 5 | // contenteditable attribute is included anywhere else in the document. 6 | // Otherwise it causes space to appear at the top and bottom of elements 7 | // that are clearfixed. 8 | // 2. The use of `table` rather than `block` is only necessary if using 9 | // `:before` to contain the top-margins of child elements. 10 | // 11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/ 12 | 13 | .clearfix() { 14 | &:before, 15 | &:after { 16 | content: " "; // 1 17 | display: table; // 2 18 | } 19 | &:after { 20 | clear: both; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/hide-text.less: -------------------------------------------------------------------------------- 1 | // CSS image replacement 2 | // 3 | // Heads up! v3 launched with only `.hide-text()`, but per our pattern for 4 | // mixins being reused as classes with the same name, this doesn't hold up. As 5 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. 6 | // 7 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 8 | 9 | // Deprecated as of v3.0.1 (has been removed in v4) 10 | .hide-text() { 11 | font: ~"0/0" a; 12 | color: transparent; 13 | text-shadow: none; 14 | background-color: transparent; 15 | border: 0; 16 | } 17 | 18 | // New mixin to use as of v3.0.1 19 | .text-hide() { 20 | .hide-text(); 21 | } 22 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/labels.less: -------------------------------------------------------------------------------- 1 | // Labels 2 | 3 | .label-variant(@color) { 4 | background-color: @color; 5 | 6 | &[href] { 7 | &:hover, 8 | &:focus { 9 | background-color: darken(@color, 10%); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/list-group.less: -------------------------------------------------------------------------------- 1 | // List Groups 2 | 3 | .list-group-item-variant(@state; @background; @color) { 4 | .list-group-item-@{state} { 5 | color: @color; 6 | background-color: @background; 7 | 8 | a&, 9 | button& { 10 | color: @color; 11 | 12 | .list-group-item-heading { 13 | color: inherit; 14 | } 15 | 16 | &:hover, 17 | &:focus { 18 | color: @color; 19 | background-color: darken(@background, 5%); 20 | } 21 | &.active, 22 | &.active:hover, 23 | &.active:focus { 24 | color: #fff; 25 | background-color: @color; 26 | border-color: @color; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/nav-divider.less: -------------------------------------------------------------------------------- 1 | // Horizontal dividers 2 | // 3 | // Dividers (basically an hr) within dropdowns and nav lists 4 | 5 | .nav-divider(@color: #e5e5e5) { 6 | height: 1px; 7 | margin: ((@line-height-computed / 2) - 1) 0; 8 | overflow: hidden; 9 | background-color: @color; 10 | } 11 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/nav-vertical-align.less: -------------------------------------------------------------------------------- 1 | // Navbar vertical align 2 | // 3 | // Vertically center elements in the navbar. 4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin. 5 | 6 | .navbar-vertical-align(@element-height) { 7 | margin-top: ((@navbar-height - @element-height) / 2); 8 | margin-bottom: ((@navbar-height - @element-height) / 2); 9 | } 10 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/opacity.less: -------------------------------------------------------------------------------- 1 | // Opacity 2 | 3 | .opacity(@opacity) { 4 | opacity: @opacity; 5 | // IE8 filter 6 | @opacity-ie: (@opacity * 100); 7 | filter: ~"alpha(opacity=@{opacity-ie})"; 8 | } 9 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/pagination.less: -------------------------------------------------------------------------------- 1 | // Pagination 2 | 3 | .pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { 4 | > li { 5 | > a, 6 | > span { 7 | padding: @padding-vertical @padding-horizontal; 8 | font-size: @font-size; 9 | line-height: @line-height; 10 | } 11 | &:first-child { 12 | > a, 13 | > span { 14 | .border-left-radius(@border-radius); 15 | } 16 | } 17 | &:last-child { 18 | > a, 19 | > span { 20 | .border-right-radius(@border-radius); 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/panels.less: -------------------------------------------------------------------------------- 1 | // Panels 2 | 3 | .panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) { 4 | border-color: @border; 5 | 6 | & > .panel-heading { 7 | color: @heading-text-color; 8 | background-color: @heading-bg-color; 9 | border-color: @heading-border; 10 | 11 | + .panel-collapse > .panel-body { 12 | border-top-color: @border; 13 | } 14 | .badge { 15 | color: @heading-bg-color; 16 | background-color: @heading-text-color; 17 | } 18 | } 19 | & > .panel-footer { 20 | + .panel-collapse > .panel-body { 21 | border-bottom-color: @border; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/progress-bar.less: -------------------------------------------------------------------------------- 1 | // Progress bars 2 | 3 | .progress-bar-variant(@color) { 4 | background-color: @color; 5 | 6 | // Deprecated parent class requirement as of v3.2.0 7 | .progress-striped & { 8 | #gradient > .striped(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/reset-filter.less: -------------------------------------------------------------------------------- 1 | // Reset filters for IE 2 | // 3 | // When you need to remove a gradient background, do not forget to use this to reset 4 | // the IE filter for IE9 and below. 5 | 6 | .reset-filter() { 7 | filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); 8 | } 9 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/reset-text.less: -------------------------------------------------------------------------------- 1 | .reset-text() { 2 | font-family: @font-family-base; 3 | // We deliberately do NOT reset font-size. 4 | font-style: normal; 5 | font-weight: normal; 6 | letter-spacing: normal; 7 | line-break: auto; 8 | line-height: @line-height-base; 9 | text-align: left; // Fallback for where `start` is not supported 10 | text-align: start; 11 | text-decoration: none; 12 | text-shadow: none; 13 | text-transform: none; 14 | white-space: normal; 15 | word-break: normal; 16 | word-spacing: normal; 17 | word-wrap: normal; 18 | } 19 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/resize.less: -------------------------------------------------------------------------------- 1 | // Resize anything 2 | 3 | .resizable(@direction) { 4 | resize: @direction; // Options: horizontal, vertical, both 5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` 6 | } 7 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/responsive-visibility.less: -------------------------------------------------------------------------------- 1 | // Responsive utilities 2 | 3 | // 4 | // More easily include all the states for responsive-utilities.less. 5 | .responsive-visibility() { 6 | display: block !important; 7 | table& { display: table !important; } 8 | tr& { display: table-row !important; } 9 | th&, 10 | td& { display: table-cell !important; } 11 | } 12 | 13 | .responsive-invisibility() { 14 | display: none !important; 15 | } 16 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/size.less: -------------------------------------------------------------------------------- 1 | // Sizing shortcuts 2 | 3 | .size(@width; @height) { 4 | width: @width; 5 | height: @height; 6 | } 7 | 8 | .square(@size) { 9 | .size(@size; @size); 10 | } 11 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/tab-focus.less: -------------------------------------------------------------------------------- 1 | // WebKit-style focus 2 | 3 | .tab-focus() { 4 | // Default 5 | outline: thin dotted; 6 | // WebKit 7 | outline: 5px auto -webkit-focus-ring-color; 8 | outline-offset: -2px; 9 | } 10 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/table-row.less: -------------------------------------------------------------------------------- 1 | // Tables 2 | 3 | .table-row-variant(@state; @background) { 4 | // Exact selectors below required to override `.table-striped` and prevent 5 | // inheritance to nested tables. 6 | .table > thead > tr, 7 | .table > tbody > tr, 8 | .table > tfoot > tr { 9 | > td.@{state}, 10 | > th.@{state}, 11 | &.@{state} > td, 12 | &.@{state} > th { 13 | background-color: @background; 14 | } 15 | } 16 | 17 | // Hover states for `.table-hover` 18 | // Note: this is not available for cells or rows within `thead` or `tfoot`. 19 | .table-hover > tbody > tr { 20 | > td.@{state}:hover, 21 | > th.@{state}:hover, 22 | &.@{state}:hover > td, 23 | &:hover > .@{state}, 24 | &.@{state}:hover > th { 25 | background-color: darken(@background, 5%); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/text-emphasis.less: -------------------------------------------------------------------------------- 1 | // Typography 2 | 3 | .text-emphasis-variant(@color) { 4 | color: @color; 5 | a&:hover, 6 | a&:focus { 7 | color: darken(@color, 10%); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/mixins/text-overflow.less: -------------------------------------------------------------------------------- 1 | // Text overflow 2 | // Requires inline-block or block for proper styling 3 | 4 | .text-overflow() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/responsive-embed.less: -------------------------------------------------------------------------------- 1 | // Embeds responsive 2 | // 3 | // Credit: Nicolas Gallagher and SUIT CSS. 4 | 5 | .embed-responsive { 6 | position: relative; 7 | display: block; 8 | height: 0; 9 | padding: 0; 10 | overflow: hidden; 11 | 12 | .embed-responsive-item, 13 | iframe, 14 | embed, 15 | object, 16 | video { 17 | position: absolute; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | height: 100%; 22 | width: 100%; 23 | border: 0; 24 | } 25 | } 26 | 27 | // Modifier class for 16:9 aspect ratio 28 | .embed-responsive-16by9 { 29 | padding-bottom: 56.25%; 30 | } 31 | 32 | // Modifier class for 4:3 aspect ratio 33 | .embed-responsive-4by3 { 34 | padding-bottom: 75%; 35 | } 36 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/thumbnails.less: -------------------------------------------------------------------------------- 1 | // 2 | // Thumbnails 3 | // -------------------------------------------------- 4 | 5 | 6 | // Mixin and adjust the regular image class 7 | .thumbnail { 8 | display: block; 9 | padding: @thumbnail-padding; 10 | margin-bottom: @line-height-computed; 11 | line-height: @line-height-base; 12 | background-color: @thumbnail-bg; 13 | border: 1px solid @thumbnail-border; 14 | border-radius: @thumbnail-border-radius; 15 | .transition(border .2s ease-in-out); 16 | 17 | > img, 18 | a > img { 19 | &:extend(.img-responsive); 20 | margin-left: auto; 21 | margin-right: auto; 22 | } 23 | 24 | // Add a hover state for linked versions only 25 | a&:hover, 26 | a&:focus, 27 | a&.active { 28 | border-color: @link-color; 29 | } 30 | 31 | // Image captions 32 | .caption { 33 | padding: @thumbnail-caption-padding; 34 | color: @thumbnail-caption-color; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /resources/assets/less/bootstrap/wells.less: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: @well-bg; 12 | border: 1px solid @well-border; 13 | border-radius: @border-radius-base; 14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-lg { 23 | padding: 24px; 24 | border-radius: @border-radius-large; 25 | } 26 | .well-sm { 27 | padding: 9px; 28 | border-radius: @border-radius-small; 29 | } 30 | -------------------------------------------------------------------------------- /resources/lang/en_US/appointments.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'cancellation_deadline_past_due' => 'This appointment is anymore cancellable.', 7 | ], 8 | 'status' => [ 9 | 'canceled' => 'Canceled', 10 | 'confirmed' => 'Confirmed', 11 | 'reserved' => 'Reserved', 12 | 'served' => 'Served', 13 | ], 14 | 'text' => [ 15 | 'minutes' => 'minutes', 16 | 'to' => 'to', 17 | 'from' => 'from', 18 | 'arrive_at' => 'Please arrive at :at|we wait for you between :from to :to', 19 | 'today' => 'today', 20 | 'tomorrow' => 'tomorrow', 21 | ], 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/en_US/booking.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'pick-this-time' => 'Pick this time', 7 | ], 8 | 'steps' => [ 9 | 'label' => [ 10 | 'cancel' => 'Cancel', 11 | 'current' => 'Current', 12 | 'finish' => 'Finish', 13 | 'loading' => 'Loading', 14 | 'next' => 'Next', 15 | 'pagination' => 'Pagination', 16 | 'previous' => 'Previous', 17 | ], 18 | 'title' => [ 19 | 'pick-a-date' => 'Pick a date', 20 | 'pick-a-service' => 'Pick a service', 21 | 'pick-a-time' => 'Pick a time', 22 | 'recap' => 'Recap', 23 | ], 24 | ], 25 | ]; 26 | -------------------------------------------------------------------------------- /resources/lang/en_US/datetime.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'days' => 'day|days', 6 | 'hours' => 'hour|hours', 7 | 'minutes' => 'minute|minutes', 8 | 'seconds' => 'second|seconds', 9 | ], 10 | 'weekday' => [ 11 | 'friday' => 'Friday', 12 | 'monday' => 'Monday', 13 | 'saturday' => 'Saturday', 14 | 'sunday' => 'Sunday', 15 | 'thursday' => 'Thursday', 16 | 'tuesday' => 'Tuesday', 17 | 'wednesday' => 'Wednesday', 18 | ], 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/en_US/emptystate.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'appointments' => [ 6 | 'title' => 'Your schedule is empty', 7 | 'hint' => 'Share your timegrid page to your clients to start taking reservations.', 8 | ], 9 | ], 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/en_US/errors.php: -------------------------------------------------------------------------------- 1 | [ 8 | 'description' => '403 Not Authorized', 9 | ], 10 | 404 => [ 11 | 'description' => '404 Not Found', 12 | ], 13 | ]; 14 | -------------------------------------------------------------------------------- /resources/lang/en_US/nav.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'left' => [ 7 | 'dashboard' => 'Dashboard', 8 | 'notifications' => 'Notifications', 9 | 'preferences' => 'Preferences', 10 | 'edit' => 'Edit', 11 | 'addressbook' => 'Addressbook', 12 | 'agenda' => 'Agenda', 13 | 'availability' => 'Availability', 14 | 'calendar' => 'Calendar', 15 | 'services' => 'Services', 16 | 'staff' => 'Staff', 17 | ], 18 | ], 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/en_US/notifications.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'checkingVacancies' => ':user checked your availability', 6 | 'booked' => ':user reserved an appointment at :businessName', 7 | 'visitedShowroom' => ':user seems interested in :businessName', 8 | 'subscribedBusiness' => ':user subscribed to :businessName', 9 | 'registeredBusiness' => ':user registered to :businessName. Congrats!', 10 | 'updatedBusinessPreferences' => ':user changed preferences of :businessName', 11 | ], 12 | 'appointment' => [ 13 | 'reserve' => ':user reserved appointment :code of date :date', 14 | 'cancel' => ':user canceled appointment :code of date :date', 15 | 'confirm' => ':user confirmed appointment :code of date :date', 16 | 'serve' => ':user served appointment :code of date :date', 17 | ], 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/lang/en_US/pagination.php: -------------------------------------------------------------------------------- 1 | '« Previous', 17 | 'next' => 'Next »', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/en_US/passwords.php: -------------------------------------------------------------------------------- 1 | 'Passwords must be at least six characters and match the confirmation.', 17 | 'reset' => 'Your password has been reset!', 18 | 'sent' => 'We have e-mailed your password reset link!', 19 | 'token' => 'This password reset token is invalid.', 20 | 'user' => "We can't find a user with that e-mail address.", 21 | 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/en_US/servicetype.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'edit' => 'Edit Service Types', 7 | 'update' => 'Update', 8 | ], 9 | 10 | 'title' => [ 11 | 'edit' => 'Edit Service Types', 12 | ], 13 | 14 | 'msg' => [ 15 | 'update' => [ 16 | 'success' => 'Service types were updated!', 17 | ], 18 | ], 19 | 20 | ]; 21 | -------------------------------------------------------------------------------- /resources/lang/en_US/wizard.php: -------------------------------------------------------------------------------- 1 | 'Well done! Please tell us what would you like to do', 8 | 'business' => [ 9 | 'btn' => 'I want to provide services', 10 | 'header' => 'I run a business', 11 | 'caption' => 'Do you need to provide online appointments for your services? Register your business and start giving bookings today.', 12 | ], 13 | 'user' => [ 14 | 'btn' => 'I want to make reservations', 15 | 'header' => 'I am a customer', 16 | 'caption' => 'Do you need to make a reservation for a service?', 17 | ], 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/lang/es_AR/appointments.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'cancellation_deadline_past_due' => 'Este turno ya no es cancelable.', 7 | ], 8 | 'status' => [ 9 | 'canceled' => 'Cancelado', 10 | 'confirmed' => 'Confirmado', 11 | 'reserved' => 'Reservado', 12 | 'served' => 'Servido', 13 | ], 14 | 'text' => [ 15 | 'minutes' => 'minutos', 16 | 'to' => 'a', 17 | 'from' => 'de', 18 | 'arrive_at' => 'Por favor venga :at|te esperamos entre :from a :to', 19 | 'today' => 'hoy', 20 | 'tomorrow' => 'mañana', 21 | ], 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/es_AR/booking.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'pick-this-time' => 'Usar este horario', 7 | ], 8 | 'steps' => [ 9 | 'label' => [ 10 | 'cancel' => 'Cancelar', 11 | 'current' => 'Ahora', 12 | 'finish' => 'Terminar', 13 | 'loading' => 'Cargando', 14 | 'next' => 'Siguiente', 15 | 'pagination' => 'Paginado', 16 | 'previous' => 'Volver', 17 | ], 18 | 'title' => [ 19 | 'pick-a-date' => 'Elegí una fecha', 20 | 'pick-a-service' => 'Elegí un servicio', 21 | 'pick-a-time' => 'Elegí un horario', 22 | 'recap' => 'Confirmación', 23 | ], 24 | ], 25 | ]; 26 | -------------------------------------------------------------------------------- /resources/lang/es_AR/datetime.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'days' => 'día|días', 6 | 'hours' => 'hora|horas', 7 | 'minutes' => 'minuto|minutos', 8 | 'seconds' => 'segundo|segundos', 9 | ], 10 | 'weekday' => [ 11 | 'friday' => 'Viernes', 12 | 'monday' => 'Lunes', 13 | 'saturday' => 'Sábado', 14 | 'sunday' => 'Domingo', 15 | 'thursday' => 'Jueves', 16 | 'tuesday' => 'Martes', 17 | 'wednesday' => 'Miércoles', 18 | ], 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/es_AR/emptystate.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'appointments' => [ 6 | 'title' => 'Tu agenda está vacía', 7 | 'hint' => 'Compartí tu página de timegrid con tus clientes para empezar a tomar reservas.', 8 | ], 9 | ], 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/es_AR/errors.php: -------------------------------------------------------------------------------- 1 | [ 8 | 'description' => '403 - Lo siento.', 9 | ], 10 | 404 => [ 11 | 'description' => '404... por donde se fue?', 12 | ], 13 | ]; 14 | -------------------------------------------------------------------------------- /resources/lang/es_AR/nav.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'left' => [ 7 | 'dashboard' => 'Panel', 8 | 'notifications' => 'Notificaciones', 9 | 'preferences' => 'Preferencias', 10 | 'edit' => 'Editar', 11 | 'addressbook' => 'Contactos', 12 | 'agenda' => 'Turnos', 13 | 'availability' => 'Disponibilidad', 14 | 'calendar' => 'Agenda', 15 | 'services' => 'Servicios', 16 | 'staff' => 'Staff', 17 | ], 18 | ], 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/es_AR/notifications.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'checkingVacancies' => ':user consultó la disponibilidad', 6 | 'booked' => ':user reservó un turno en :businessName', 7 | 'visitedShowroom' => ':user pareció interesarse en :businessName', 8 | 'subscribedBusiness' => ':user se suscribió a :businessName', 9 | 'registeredBusiness' => ':user registró el alta :businessName. ¡Bravo!', 10 | 'updatedBusinessPreferences' => ':user ajustó las preferencias de :businessName', 11 | 'importedContacts' => ':user importó :count contactos', 12 | ], 13 | 'appointment' => [ 14 | 'reserve' => ':user reservó el turno :code del día :date', 15 | 'cancel' => ':user canceló el turno :code del día :date', 16 | 'confirm' => ':user confirmó el turno :code del día :date', 17 | 'serve' => ':user atendió el turno :code del día :date', 18 | ], 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/es_AR/pagination.php: -------------------------------------------------------------------------------- 1 | '« Anterior', 17 | 'next' => 'Siguiente »', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/es_AR/passwords.php: -------------------------------------------------------------------------------- 1 | 'Las contraseñas deben coincidir y contener al menos 6 caracteres', 17 | 'reset' => '¡Tu contraseña fue restablecida!', 18 | 'sent' => '¡Te hemos enviado por correo el enlace para restablecer tu contraseña!', 19 | 'token' => 'El token de recuperación de contraseña es inválido.', 20 | 'user' => 'No podemos encontrar ningún usuario con ese correo electrónico.', 21 | 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/es_AR/servicetype.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'edit' => 'Editar Tipos de Servicio', 7 | 'update' => 'Actualizar', 8 | ], 9 | 10 | 'title' => [ 11 | 'edit' => 'Editar Tipos de Servicio', 12 | ], 13 | 14 | 'msg' => [ 15 | 'update' => [ 16 | 'success' => 'Tipos de servicio actualizados!', 17 | ], 18 | ], 19 | 20 | ]; 21 | -------------------------------------------------------------------------------- /resources/lang/es_AR/wizard.php: -------------------------------------------------------------------------------- 1 | '¡Muy bien! Contanos qué te gustaría hacer', 8 | 'business' => [ 9 | 'btn' => 'Quiero otorgar turnos', 10 | 'header' => 'Soy prestador', 11 | 'caption' => '¿Tenés un comercio y querés dar citas? Registrá tu local y empezá a dar citas hoy mismo.', 12 | ], 13 | 'user' => [ 14 | 'btn' => 'Quiero pedir turnos', 15 | 'header' => 'Soy cliente', 16 | 'caption' => '¿Tu prestador te dijo que solicites un turno por Internet? Es acá.', 17 | ], 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/lang/es_ES/appointments.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'cancellation_deadline_past_due' => 'Esta cita ya no es cancelable.', 7 | ], 8 | 'status' => [ 9 | 'canceled' => 'Cancelada', 10 | 'confirmed' => 'Confirmada', 11 | 'reserved' => 'Reservada', 12 | 'served' => 'Servida', 13 | ], 14 | 'text' => [ 15 | 'minutes' => 'minutos', 16 | 'to' => 'a', 17 | 'from' => 'de', 18 | 'arrive_at' => 'Por favor venga :at|te esperamos entre :from a :to', 19 | 'today' => 'hoy', 20 | 'tomorrow' => 'mañana', 21 | ], 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/es_ES/booking.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'pick-this-time' => 'Usar este horario', 7 | ], 8 | 'steps' => [ 9 | 'label' => [ 10 | 'cancel' => 'Cancelar', 11 | 'current' => 'Ahora', 12 | 'finish' => 'Terminar', 13 | 'loading' => 'Cargando', 14 | 'next' => 'Siguiente', 15 | 'pagination' => 'Paginado', 16 | 'previous' => 'Volver', 17 | ], 18 | 'title' => [ 19 | 'pick-a-date' => 'Escoge una fecha', 20 | 'pick-a-service' => 'Escoge un servicio', 21 | 'pick-a-time' => 'Escoge un horario', 22 | 'recap' => 'Confirmación', 23 | ], 24 | ], 25 | ]; 26 | -------------------------------------------------------------------------------- /resources/lang/es_ES/datetime.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'days' => 'día|días', 6 | 'hours' => 'hora|horas', 7 | 'minutes' => 'minuto|minutos', 8 | 'seconds' => 'segundo|segundos', 9 | ], 10 | 'weekday' => [ 11 | 'friday' => 'Viernes', 12 | 'monday' => 'Lunes', 13 | 'saturday' => 'Sábado', 14 | 'sunday' => 'Domingo', 15 | 'thursday' => 'Jueves', 16 | 'tuesday' => 'Martes', 17 | 'wednesday' => 'Miércoles', 18 | ], 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/es_ES/emptystate.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'appointments' => [ 6 | 'title' => 'Tu agenda está vacía', 7 | 'hint' => 'Comparte tu página de timegrid con tus clientes para comenzar a tomar reservas.', 8 | ], 9 | ], 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/es_ES/errors.php: -------------------------------------------------------------------------------- 1 | [ 8 | 'description' => '403 - Lo siento.', 9 | ], 10 | 404 => [ 11 | 'description' => '404... por donde se fue?', 12 | ], 13 | ]; 14 | -------------------------------------------------------------------------------- /resources/lang/es_ES/nav.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'left' => [ 7 | 'dashboard' => 'Tablero', 8 | 'notifications' => 'Notificaciones', 9 | 'preferences' => 'Preferencias', 10 | 'edit' => 'Editar', 11 | 'addressbook' => 'Contactos', 12 | 'agenda' => 'Turnos', 13 | 'availability' => 'Disponibilidad', 14 | 'calendar' => 'Agenda', 15 | 'services' => 'Servicios', 16 | 'staff' => 'Staff', 17 | ], 18 | ], 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/es_ES/notifications.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'checkingVacancies' => ':user consultó la disponibilidad', 6 | 'booked' => ':user reservó una cita en :businessName', 7 | 'visitedShowroom' => ':user pareció interesarse en :businessName', 8 | 'subscribedBusiness' => ':user se suscribió a :businessName', 9 | 'registeredBusiness' => ':user registró el alta :businessName. ¡Bravo!', 10 | 'updatedBusinessPreferences' => ':user ajustó las preferencias de :businessName', 11 | 'importedContacts' => ':user importó :count contactos', 12 | ], 13 | 'appointment' => [ 14 | 'reserve' => ':user reservó la cita :code del día :date', 15 | 'cancel' => ':user canceló la cita :code del día :date', 16 | 'confirm' => ':user confirmó la cita :code del día :date', 17 | 'serve' => ':user atendió la cita :code del día :date', 18 | ], 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/es_ES/pagination.php: -------------------------------------------------------------------------------- 1 | '« Anterior', 17 | 'next' => 'Siguiente »', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/es_ES/passwords.php: -------------------------------------------------------------------------------- 1 | 'Las contraseñas deben coincidir y contener al menos 6 caracteres', 17 | 'reset' => '¡Tu contraseña ha sido restablecida!', 18 | 'sent' => '¡Te hemos enviado por correo el enlace para restablecer tu contraseña!', 19 | 'token' => 'El token de recuperación de contraseña es inválido.', 20 | 'user' => 'No podemos encontrar ningún usuario con ese correo electrónico.', 21 | 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/es_ES/servicetype.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'edit' => 'Editar Tipos de Servicio', 7 | 'update' => 'Actualizar', 8 | ], 9 | 10 | 'title' => [ 11 | 'edit' => 'Editar Tipos de Servicio', 12 | ], 13 | 14 | 'msg' => [ 15 | 'update' => [ 16 | 'success' => 'Tipos de servicio actualizados!', 17 | ], 18 | ], 19 | 20 | ]; 21 | -------------------------------------------------------------------------------- /resources/lang/es_ES/wizard.php: -------------------------------------------------------------------------------- 1 | '¡Muy bien! Contanos qué te gustaría hacer', 8 | 'business' => [ 9 | 'btn' => 'Quiero otorgar cita previa', 10 | 'header' => 'Soy prestador', 11 | 'caption' => '¿Tenés un comercio y querés dar citas? Registrá tu local y empezá a dar citas hoy mismo.', 12 | ], 13 | 'user' => [ 14 | 'btn' => 'Quiero pedir cita previa', 15 | 'header' => 'Soy cliente', 16 | 'caption' => '¿Tu prestador te dijo que solicites una cita previa por Internet? Es por aquí.', 17 | ], 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/lang/fr_FR/appointments.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'cancellation_deadline_past_due' => 'Ce Rendez-vous ne peut plus être annulé', 7 | ], 8 | 'status' => [ 9 | 'canceled' => 'Annulé', 10 | 'confirmed' => 'Confirmé', 11 | 'reserved' => 'Reserved', 12 | 'served' => 'Accompli', 13 | ], 14 | 'text' => [ 15 | 'minutes' => 'minutes', 16 | 'to' => 'à', 17 | 'from' => 'de', 18 | 'arrive_at' => 'Veuillez arriver à :at|Nous vous attendons entre :from et :to', 19 | 'today' => 'aujourd\'hui', 20 | 'tomorrow' => 'demain', 21 | ], 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/fr_FR/booking.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'pick-this-time' => 'Choisissez cette horaire', 7 | ], 8 | 'steps' => [ 9 | 'label' => [ 10 | 'cancel' => 'Annuler', 11 | 'current' => 'Current', 12 | 'finish' => 'Terminer', 13 | 'loading' => 'Chargement', 14 | 'next' => 'Suivant', 15 | 'pagination' => 'Pagination', 16 | 'previous' => 'Précédent', 17 | ], 18 | 'title' => [ 19 | 'pick-a-date' => 'Choisir une Date', 20 | 'pick-a-service' => 'Choisir un service', 21 | 'pick-a-time' => 'Choisir un horaire', 22 | 'recap' => 'Recap', 23 | ], 24 | ], 25 | ]; 26 | -------------------------------------------------------------------------------- /resources/lang/fr_FR/datetime.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'days' => 'jour|jours', 6 | 'hours' => 'heure|heures', 7 | 'minutes' => 'minute|minutes', 8 | 'seconds' => 'seconde|secondes', 9 | ], 10 | 'weekday' => [ 11 | 'friday' => 'Vendredi', 12 | 'monday' => 'Lundi', 13 | 'saturday' => 'Samedi', 14 | 'sunday' => 'Dimanche', 15 | 'thursday' => 'Jeudi', 16 | 'tuesday' => 'Mardi', 17 | 'wednesday' => 'Mercredi', 18 | ], 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/fr_FR/emptystate.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'appointments' => [ 6 | 'title' => 'Vous n\'avez auncun rendez-vous', 7 | 'hint' => 'Partagez votre page timegrid avec vos clients pour commencer à prendre des réservations.', 8 | ], 9 | ], 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/fr_FR/errors.php: -------------------------------------------------------------------------------- 1 | [ 8 | 'description' => '403 Non autorisé', 9 | ], 10 | 404 => [ 11 | 'description' => '404 Introuvable', 12 | ], 13 | ]; 14 | -------------------------------------------------------------------------------- /resources/lang/fr_FR/nav.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'left' => [ 7 | 'dashboard' => 'Dashboard', 8 | 'notifications' => 'Notifications', 9 | 'preferences' => 'Préférences', 10 | 'edit' => 'Modifier', 11 | 'addressbook' => 'Carnet d\'adresses', 12 | 'agenda' => 'Agenda', 13 | 'availability' => 'Disponibilité', 14 | 'calendar' => 'Calendrier', 15 | 'services' => 'Services', 16 | 'staff' => 'Equipe', 17 | ], 18 | ], 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/fr_FR/notifications.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'checkingVacancies' => ':user Vérifié votre disponibilité', 6 | 'booked' => ':user a réservé un rendez-vous avec :businessName', 7 | 'visitedShowroom' => ':user semble intéressé par :businessName', 8 | 'subscribedBusiness' => ':user s\'est abonné à :businessName', 9 | 'registeredBusiness' => ':user s\'est enregistré à :businessName. Félicitations!', 10 | 'updatedBusinessPreferences' => ':user à changé les préférences de :businessName', 11 | ], 12 | 'appointment' => [ 13 | 'reserve' => ':user a réservé un rendez-vous :code à la date :date', 14 | 'cancel' => ':user a annulé un rendez-vous :code à la date :date', 15 | 'confirm' => ':user a confirmé un rendez-vous :code à la date :date', 16 | 'serve' => ':user a accompli le rendez-vous :code à la date :date', 17 | ], 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/lang/fr_FR/pagination.php: -------------------------------------------------------------------------------- 1 | '« Précédent', 17 | 'next' => 'Suivant »', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/fr_FR/servicetype.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'edit' => 'Modifier les types de Service', 7 | 'update' => 'Modifier', 8 | ], 9 | 10 | 'title' => [ 11 | 'edit' => 'Modifier les types de service', 12 | ], 13 | 14 | 'msg' => [ 15 | 'update' => [ 16 | 'success' => 'Les types de service ont été mis à jour!', 17 | ], 18 | ], 19 | 20 | ]; 21 | -------------------------------------------------------------------------------- /resources/lang/fr_FR/wizard.php: -------------------------------------------------------------------------------- 1 | 'Bien joué! Veuillez nous dire quels sont vos projets', 8 | 'business' => [ 9 | 'btn' => 'Je souhaite offrir des services', 10 | 'header' => 'Je dirige une entreprise', 11 | 'caption' => 'Avez-vous besoin de rendez-vous en ligne pour vos services? Enregistrez votre entreprise et commencez à prendre des rendez-vous dès aujourd\'hui.', 12 | ], 13 | 'user' => [ 14 | 'btn' => 'Je veux faire des réservations', 15 | 'header' => 'Je suis un client', 16 | 'caption' => 'Avez-vous besoin de faire une réservation pour un service?', 17 | ], 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/lang/hy_AM/appointments.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'cancellation_deadline_past_due' => 'Գրանցումն այլևս չեք կարող չեղարկել։', 7 | ], 8 | 'status' => [ 9 | 'canceled' => 'Չեղարկված', 10 | 'confirmed' => 'Հաստատված', 11 | 'reserved' => 'Ամրագրված', 12 | 'served' => 'Սպասարկված', 13 | ], 14 | 'text' => [ 15 | 'minutes' => 'րոպե', 16 | 'to' => '-ը', 17 | 'from' => 'ից', 18 | 'arrive_at' => 'Խնդրում ենք գալ :at -ին |Սպասում ենք Ձեզ ժամը:from մինչև :to', 19 | 'today' => 'Այսօր', 20 | 'tomorrow' => 'Վաղը', 21 | ], 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/hy_AM/booking.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'pick-this-time' => 'Ընտրել այս օրը', 7 | ], 8 | 'steps' => [ 9 | 'label' => [ 10 | 'cancel' => 'Չեղարկել', 11 | 'current' => 'Ընթացիկ', 12 | 'finish' => 'Ավարտ', 13 | 'loading' => 'Բեռնվում է', 14 | 'next' => 'Հաջորդ', 15 | 'pagination' => 'Էջ', 16 | 'previous' => 'Նախորդ', 17 | ], 18 | 'title' => [ 19 | 'pick-a-date' => 'Ընտրե՛ք օրը', 20 | 'pick-a-service' => 'Ընտրե՛ք ծառայությունը', 21 | 'pick-a-time' => 'Ընտրե՛ք ժամը', 22 | 'recap' => 'Հաստատել', 23 | ], 24 | ], 25 | ]; 26 | -------------------------------------------------------------------------------- /resources/lang/hy_AM/datetime.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'days' => 'օր|օր', 6 | 'hours' => 'ժամ|ժամ', 7 | 'minutes' => 'րոպե|րոպե', 8 | 'seconds' => 'վայրկյան|վայրկյան', 9 | ], 10 | 'weekday' => [ 11 | 'friday' => 'Ուրբաթ', 12 | 'monday' => 'Երկուշաբթի', 13 | 'saturday' => 'Շաբաթ', 14 | 'sunday' => 'Կիրակի', 15 | 'thursday' => 'Չորեքշաբթի', 16 | 'tuesday' => 'Երեքշաբթի', 17 | 'wednesday' => 'Հինգշաբթի', 18 | ], 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/hy_AM/emptystate.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'appointments' => [ 6 | 'title' => 'Ձեր գրաֆիկը դատարկ է', 7 | 'hint' => 'Նոր գրանցումներ ստանալու համար Ձեր հաճախորդների հետ կիսվեք Ձեր գրաֆիկով։', 8 | ], 9 | ], 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/hy_AM/errors.php: -------------------------------------------------------------------------------- 1 | [ 8 | 'description' => '403 Չի թույլատրվում', 9 | ], 10 | 404 => [ 11 | 'description' => '404 Չգտնվեց', 12 | ], 13 | ]; 14 | -------------------------------------------------------------------------------- /resources/lang/hy_AM/nav.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'left' => [ 7 | 'dashboard' => 'Կառավարման վահանակ', 8 | 'notifications' => 'Ծանուցումներ', 9 | 'preferences' => 'Նախընտրություններ', 10 | 'edit' => 'Խմբագրել', 11 | 'addressbook' => 'Հաճախորդներ', 12 | 'agenda' => 'Գրանցումներ', 13 | 'availability' => 'Աշխատանքային ժամեր', 14 | 'calendar' => 'Օրացույց', 15 | 'services' => 'Ծառայություններ', 16 | 'staff' => 'Մասնագետներ', 17 | ], 18 | ], 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/hy_AM/notifications.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'checkingVacancies' => ':Օգտատերը ստուգել է Ձեր աշխատանքային ժամերը', 6 | 'booked' => ':Օգտատերը կատարել է գրանցում :businessName -ում' , 7 | 'visitedShowroom' => ':Օգտատերը հետաքրքրված է :businessName -ով', 8 | 'subscribedBusiness' => ':Օգտատերը բաժանորդագրվել է :businessName -ին', 9 | 'registeredBusiness' => ':Օգտատերը գրանցվել է :businessName -ում!', 10 | 'updatedBusinessPreferences' => ':Օգտատերը փոխել է :businessName -ի նախընտրությունները', 11 | ], 12 | 'appointment' => [ 13 | 'reserve' => ':Օգտատերը կատարել է գրանցում :code of date :date', 14 | 'cancel' => ':Հաճախորդը չեղարկել է գրանցումը :code of date :date', 15 | 'confirm' => ':Հաճախորդը հաստատել է իր գրանցումը :code of date :date', 16 | 'serve' => ':Հաճախորդը սպասարկվել է :code of date :date', 17 | ], 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/lang/hy_AM/pagination.php: -------------------------------------------------------------------------------- 1 | '« Նախորդ', 17 | 'next' => 'Հաջորդ »', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/hy_AM/passwords.php: -------------------------------------------------------------------------------- 1 | 'Գաղտնաբառը պետք է լինի առնվազն 6 նիշ։', 17 | 'reset' => 'Ձեր գաղտնաբառը վերականգնված է!', 18 | 'sent' => 'Ստուգեք Ձեր Էլեկտրոնային հասցեն գաղտնաբառը վերականգնելու համար!', 19 | 'token' => 'Գաղտնաբառի վերականգնման հղումն անվավեր է։', 20 | 'user' => "Այս Էլեկտրոնային հասցեով օգտատեր չկա։", 21 | 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/hy_AM/servicetype.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'edit' => 'Խմբագրել ծառայությունների տեսակները', 7 | 'update' => 'Թարմացնել', 8 | ], 9 | 10 | 'title' => [ 11 | 'edit' => 'Խմբագրել ծառայությունների տեսակները', 12 | ], 13 | 14 | 'msg' => [ 15 | 'update' => [ 16 | 'success' => 'Թարմացված է!', 17 | ], 18 | ], 19 | 20 | ]; 21 | -------------------------------------------------------------------------------- /resources/lang/hy_AM/wizard.php: -------------------------------------------------------------------------------- 1 | 'Շատ լավ։ Ի՞նչ եք ցանկանում անել', 8 | 'business' => [ 9 | 'btn' => 'Ծառայություններ տրամադրել', 10 | 'header' => 'Ես սրահի ադմինիստրատոր եմ', 11 | 'caption' => 'Օնլայն գրանցումներ ստանալու համար գրանցեք Ձեր սրահը։.', 12 | ], 13 | 'user' => [ 14 | 'btn' => 'Ցանկանում եմ օնլայն գրանցվել', 15 | 'header' => 'Ես հաճախորդ եմ', 16 | 'caption' => 'Ցանկանում եք որևէ ծառայության համար օնլայն գրանցվե՞լ', 17 | ], 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/lang/it_IT/appointments.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'cancellation_deadline_past_due' => 'Appuntamento non Annullabile.', 7 | ], 8 | 'status' => [ 9 | 'canceled' => 'Cancellato', 10 | 'confirmed' => 'Confermato', 11 | 'reserved' => 'Riservato', 12 | 'served' => 'Completato', 13 | ], 14 | 'text' => [ 15 | 'minutes' => 'minuti', 16 | 'to' => 'a', 17 | 'from' => 'da', 18 | 'arrive_at' => 'Si prega di arrivare alle :at|ti aspettiamo dalle :from alle :to', 19 | 'today' => 'oggi', 20 | 'tomorrow' => 'domani', 21 | ], 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/it_IT/booking.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'pick-this-time' => 'Scegli questo orario', 7 | ], 8 | 'steps' => [ 9 | 'label' => [ 10 | 'cancel' => 'Cancella', 11 | 'current' => 'Corrente', 12 | 'finish' => 'Finito', 13 | 'loading' => 'Caricamento', 14 | 'next' => 'Successivo', 15 | 'pagination' => 'Paginazione', 16 | 'previous' => 'Precedente', 17 | ], 18 | 'title' => [ 19 | 'pick-a-date' => 'Scegli una data', 20 | 'pick-a-service' => 'Scegli un servizio', 21 | 'pick-a-time' => 'Scegli un orario', 22 | 'recap' => 'Riepilogo', 23 | ], 24 | ], 25 | ]; 26 | -------------------------------------------------------------------------------- /resources/lang/it_IT/datetime.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'days' => 'giorno|giorni', 6 | 'hours' => 'ora|ore', 7 | 'minutes' => 'minuto|minuti', 8 | 'seconds' => 'secondo|secondi', 9 | ], 10 | 'weekday' => [ 11 | 'friday' => 'Venerdì', 12 | 'monday' => 'Lunedì', 13 | 'saturday' => 'Sabato', 14 | 'sunday' => 'Domenica', 15 | 'thursday' => 'Giovedì', 16 | 'tuesday' => 'Martedì', 17 | 'wednesday' => 'Mercoledì', 18 | ], 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/it_IT/emptystate.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'appointments' => [ 6 | 'title' => 'Non hai nessun appuntamento al momento', 7 | 'hint' => 'Condividi la tua pagina timegrid ai vostri clienti per iniziare a prendere le prenotazioni.', 8 | ], 9 | ], 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/it_IT/errors.php: -------------------------------------------------------------------------------- 1 | [ 8 | 'description' => '403 Not Authorized', 9 | ], 10 | 404 => [ 11 | 'description' => '404 Not Found', 12 | ], 13 | ]; 14 | -------------------------------------------------------------------------------- /resources/lang/it_IT/nav.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'left' => [ 7 | 'addressbook' => 'Rubrica', 8 | 'agenda' => 'Agenda', 9 | 'availability' => 'Disponibilità', 10 | 'calendar' => 'Calendario', 11 | 'dashboard' => 'Dashboard', 12 | 'edit' => 'Modifica', 13 | 'notifications' => 'Notifiche', 14 | 'preferences' => 'Impostazioni', 15 | 'services' => 'Servizi', 16 | 'staff' => 'Staff', 17 | ], 18 | ], 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/it_IT/pagination.php: -------------------------------------------------------------------------------- 1 | '« Precedente', 17 | 'next' => 'Successiva »', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/it_IT/passwords.php: -------------------------------------------------------------------------------- 1 | 'La password deve contenere almeno sei caratteri e uguale a quella richiesta nella conferma.', 17 | 'reset' => 'La tua password è stata resettata!', 18 | 'sent' => 'Ti abbiamo inviato un link per il reset della password sulla tua e-mail!', 19 | 'token' => 'Codice di reset password non valido.', 20 | 'user' => "Indirizzo e-mail non presente nel sistema.", 21 | 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/it_IT/servicetype.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'edit' => 'Modifica i tipi di servizio', 7 | 'update' => 'Aggiorna', 8 | ], 9 | 10 | 'title' => [ 11 | 'edit' => 'Modifica i tipi di servizio', 12 | ], 13 | 14 | 'msg' => [ 15 | 'update' => [ 16 | 'success' => 'Tipi di servizio aggiornati!', 17 | ], 18 | ], 19 | 20 | ]; 21 | -------------------------------------------------------------------------------- /resources/lang/it_IT/wizard.php: -------------------------------------------------------------------------------- 1 | 'Bene! Per favore dicci cosa ti piacerebbe fare', 8 | 'business' => [ 9 | 'btn' => 'Voglio fornire servizi', 10 | 'header' => 'Ho un\'azienda', 11 | 'caption' => 'Hai bisogno di fornire appuntamenti online per i tuoi servizi? Registra la tua azienda ed inizia a fornire appuntamenti oggi stesso.', 12 | ], 13 | 'user' => [ 14 | 'btn' => 'Voglio prendere un appuntamento', 15 | 'header' => 'Sono un cliente', 16 | 'caption' => 'Hai bisogno di prendere un appuntamento per un servizio?', 17 | ], 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/lang/ru_RU/appointments.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'cancellation_deadline_past_due' => 'Вы больше не можете отменить это бронирование.', 7 | ], 8 | 'status' => [ 9 | 'canceled' => 'Отменено', 10 | 'confirmed' => 'Подтверждено', 11 | 'reserved' => 'Зарезервировано', 12 | 'served' => 'Выполнено', 13 | ], 14 | 'text' => [ 15 | 'minutes' => 'минут', 16 | 'to' => 'до', 17 | 'from' => 'от', 18 | 'arrive_at' => 'Пожалуйста, приезжайте в :at|мы ждем вас от :from до :to', 19 | 'today' => 'сегодня', 20 | 'tomorrow' => 'завтра', 21 | ], 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/ru_RU/booking.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'pick-this-time' => 'Выбрать эту дату', 7 | ], 8 | 'steps' => [ 9 | 'label' => [ 10 | 'cancel' => 'Отменить', 11 | 'current' => 'Текущий', 12 | 'finish' => 'Конец', 13 | 'loading' => 'Загрузка', 14 | 'next' => 'Далее', 15 | 'pagination' => 'Нумерация страниц', 16 | 'previous' => 'Предыдущий', 17 | ], 18 | 'title' => [ 19 | 'pick-a-date' => 'Выберите дату', 20 | 'pick-a-service' => 'Выберите услугу', 21 | 'pick-a-time' => 'Выберите время', 22 | 'recap' => 'Резюме', 23 | ], 24 | ], 25 | ]; 26 | -------------------------------------------------------------------------------- /resources/lang/ru_RU/datetime.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'days' => 'день | дней', 6 | 'hours' => 'час | час', 7 | 'minutes' => 'минут | минуты', 8 | 'seconds' => 'секунд | секунды ', 9 | ], 10 | 'weekday' => [ 11 | 'friday' => 'Пятница', 12 | 'monday' => 'Понедельник', 13 | 'saturday' => 'Суббота', 14 | 'sunday' => 'Воскресенье', 15 | 'thursday' => 'Четверг', 16 | 'tuesday' => 'Вторник', 17 | 'wednesday' => 'Среда', 18 | ], 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/ru_RU/emptystate.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'appointments' => [ 6 | 'title' => 'Ваш график пуст', 7 | 'hint' => 'Начните принимать заказы', 8 | ], 9 | ], 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/ru_RU/errors.php: -------------------------------------------------------------------------------- 1 | [ 8 | 'description' => '403 Не авторизован', 9 | ], 10 | 404 => [ 11 | 'description' => '404 Не найдено', 12 | ], 13 | ]; 14 | -------------------------------------------------------------------------------- /resources/lang/ru_RU/nav.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'left' => [ 7 | 'dashboard' => 'Панель', 8 | 'notifications' => 'Уведомления', 9 | 'preferences' => 'Настройки', 10 | 'edit' => 'Редактировать', 11 | 'addressbook' => 'Адресная книга', 12 | 'agenda' => 'График', 13 | 'availability' => 'Доступность', 14 | 'calendar' => 'Календарь', 15 | 'services' => 'Сервисы', 16 | 'staff' => 'Специалисты', 17 | ], 18 | ], 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/ru_RU/notifications.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'checkingVacancies' => ':user проверил вашу доступность', 6 | 'booked' => ':user зарезервировал встречу по адресу :businessName', 7 | 'visitedShowroom' => ':user заинтересован в :businessName', 8 | 'subscribedBusiness' => ':user подписался на :businessName', 9 | 'registeredBusiness' => ':user зарегистрирован в :businessName. Congrats!', 10 | 'updatedBusinessPreferences' => ':user изменил настройки :businessName', 11 | ], 12 | 'appointment' => [ 13 | 'reserve' => ':user забронировал встречу :code of date :date', 14 | 'cancel' => ':user отменил назначение :code of date :date', 15 | 'confirm' => ':user подтвердил назначение :code of date :date', 16 | 'serve' => ':user был отслужен :code of date :date', 17 | ], 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/lang/ru_RU/pagination.php: -------------------------------------------------------------------------------- 1 | '« Предыдущий', 17 | 'next' => 'Следующий »', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/ru_RU/passwords.php: -------------------------------------------------------------------------------- 1 | 'Пароли должны быть не менее шести символов и соответствовать подтверждению.', 17 | 'reset' => 'Ваш пароль сброшен!', 18 | 'sent' => 'Ссылка на сброс пароля отправлен на ваш адрес электронной почты!', 19 | 'token' => 'Этот токен сброса пароля недействителен.', 20 | 'user' => "Мы не смогли найти пользователя с этим адресом электронной почты.", 21 | 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/ru_RU/servicetype.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'edit' => 'Редактировать типы сервисов', 7 | 'update' => 'Обновить', 8 | ], 9 | 10 | 'title' => [ 11 | 'edit' => 'Редактировать типы сервисов', 12 | ], 13 | 14 | 'msg' => [ 15 | 'update' => [ 16 | 'success' => 'Типы сервисов oбновлены!', 17 | ], 18 | ], 19 | 20 | ]; 21 | -------------------------------------------------------------------------------- /resources/lang/ru_RU/wizard.php: -------------------------------------------------------------------------------- 1 | 'Молодец! Пожалуйста, расскажите нам, что вы хотите сделать', 8 | 'business' => [ 9 | 'btn' => 'Я хочу предоставлять услуги', 10 | 'header' => 'У меня есть бизнес', 11 | 'caption' => 'Зарегистрируйте ваш бизнес и начните подавать заявки сегодня.', 12 | ], 13 | 'user' => [ 14 | 'btn' => 'Я хочу бронировать сервис', 15 | 'header' => 'Я клиент', 16 | 'caption' => 'Вам нужно сделать бронирование?', 17 | ], 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/lang/vendor/cookieConsent/en_US/texts.php: -------------------------------------------------------------------------------- 1 | 'Your experience on this site will be improved by allowing cookies.', 5 | 'agree' => 'Allow cookies', 6 | ]; 7 | -------------------------------------------------------------------------------- /resources/lang/vendor/cookieConsent/es_AR/texts.php: -------------------------------------------------------------------------------- 1 | 'Su experiencia en este sitio será mejorada con el uso de cookies.', 5 | 'agree' => 'Aceptar', 6 | ]; 7 | -------------------------------------------------------------------------------- /resources/lang/vendor/cookieConsent/es_ES/texts.php: -------------------------------------------------------------------------------- 1 | 'Su experiencia en este sitio será mejorada con el uso de cookies.', 5 | 'agree' => 'Aceptar', 6 | ]; 7 | -------------------------------------------------------------------------------- /resources/lang/vendor/cookieConsent/it_IT/texts.php: -------------------------------------------------------------------------------- 1 | 'La tua esperienza su questo sito sarà migliorata accettando i cookie.', 5 | 'agree' => 'Accetta cookie', 6 | ]; 7 | -------------------------------------------------------------------------------- /resources/views/_errors.blade.php: -------------------------------------------------------------------------------- 1 | {{-- Validation Error Messages --}} 2 | 3 | {{-- 4 | trans('app.msg.invalid_token') 5 | --}} 6 | 7 | @if (count($errors) > 0) 8 |
9 | 10 | 15 |
16 | @endif 17 | {{-- Validation Error Messages --}} -------------------------------------------------------------------------------- /resources/views/_footer.blade.php: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /resources/views/_github-forkme.blade.php: -------------------------------------------------------------------------------- 1 | @if (app()->environment('demo') || app()->environment('local')) 2 | 3 | Fork me on GitHub 4 | 5 | @endif -------------------------------------------------------------------------------- /resources/views/_navi18n.blade.php: -------------------------------------------------------------------------------- 1 | {{-- Language Switcher Dropdown --}} 2 | 16 | {{-- Language Switcher Dropdown --}} 17 | -------------------------------------------------------------------------------- /resources/views/auth/emails/password.blade.php: -------------------------------------------------------------------------------- 1 | Click here to reset your password: {{ url('/password/reset', $token).'?email='.urlencode($user->getEmailForPasswordReset()) }} 2 | -------------------------------------------------------------------------------- /resources/views/auth/social.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{ trans('auth.social.facebook') }} 4 | {{ trans('auth.social.google') }} 5 | {{ trans('auth.social.github') }} 6 |
7 |
-------------------------------------------------------------------------------- /resources/views/emails/root/report/report.blade.php: -------------------------------------------------------------------------------- 1 | @extends('beautymail::templates.widgets') 2 | 3 | @section('content') 4 | 5 | @include('beautymail::templates.widgets.articleStart') 6 | 7 |

{{ trans('emails.text.user') }}:

8 |

{{ trans('emails.text.there_are') }} {{ $registeredUsersCount }} {{ trans('emails.text.registered') }}

9 | 10 | @include('beautymail::templates.widgets.articleEnd') 11 | 12 | @stop -------------------------------------------------------------------------------- /resources/views/emails/user/appointment-cancellation/_appointment.blade.php: -------------------------------------------------------------------------------- 1 |
 2 | ----------------------------------------------
 3 | {{ trans('emails.text.business') }}: {{ $appointment->business->name }}
 4 |     {{ trans('emails.text.date') }}: {{ $appointment->date }}
 5 |     {{ trans('emails.text.code') }}: {{ $appointment->code() }}
 6 | @if($appointment->business->pref('show_phone'))
 7 |    {{ trans('emails.text.phone') }}: {{ $appointment->business->phone }}
 8 | @endif
 9 | ----------------------------------------------
10 | 
-------------------------------------------------------------------------------- /resources/views/guest/appointment/invalid.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.user') 2 | 3 | @section('content') 4 | 5 | @endsection 6 | -------------------------------------------------------------------------------- /resources/views/guest/appointment/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.user') 2 | 3 | @section('content') 4 | 5 | {!! $appointment->panel() !!} 6 | 7 | @endsection 8 | -------------------------------------------------------------------------------- /resources/views/guest/businesses/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.user') 2 | 3 | @section('content') 4 |
5 |
6 | 14 |
15 |
16 | @endsection 17 | -------------------------------------------------------------------------------- /resources/views/manager/_search.blade.php: -------------------------------------------------------------------------------- 1 | 2 | {!! Form::open(['method' => 'post', 'url' => route('manager.search', $business), 'class' => 'sidebar-form', 'role' => 'search']) !!} 3 |
4 | 5 | 6 | 8 | 9 |
10 | {!! Form::close() !!} 11 | -------------------------------------------------------------------------------- /resources/views/manager/_sidebar-menu-i18n.blade.php: -------------------------------------------------------------------------------- 1 | {{-- Language Switcher Dropdown --}} 2 |
  • 3 | {{ $availableLanguages[app()->getLocale()] }} 4 | 13 |
  • 14 | {{-- Language Switcher Dropdown --}} 15 | -------------------------------------------------------------------------------- /resources/views/manager/_sidebar-userpanel.blade.php: -------------------------------------------------------------------------------- 1 | 2 |
    3 |
    4 | {{ $user->name }} 5 |
    6 |
    7 |

    {{ $user->name }}  

    8 |
    9 |
    -------------------------------------------------------------------------------- /resources/views/manager/businesses/_notifications.blade.php: -------------------------------------------------------------------------------- 1 |
    2 |
    3 | {{trans('app.notifications.title')}} 4 |
    5 |
    6 |
    7 |
    8 |
      9 | @foreach ($notifications as $notification) 10 | @include('manager.businesses._notification', ['notification' => $notification->toArray(), 'timestamp' => Carbon::parse($notification['created_at'])->timezone($business->timezone)]) 11 | @endforeach 12 |
    13 |
    14 |
    15 |
    16 | 17 |
    18 | -------------------------------------------------------------------------------- /resources/views/manager/businesses/appointments/dateslot/widgets/tableRow.blade.php: -------------------------------------------------------------------------------- 1 | 2 | {{ $appointment->status() }} 3 | {{ $appointment->code() }} 4 | {{ $appointment->contact->firstname }} 5 | {{ $appointment->date() }} 6 | {{ $appointment->start_at->timezone($appointment->tz)->toTimeString() }} 7 | {{ $appointment->service->name }} 8 | {{ $appointment->business->name}} 9 | {{ $appointment->start_at->diffForHumans() }} 10 | {!! $actionButtons !!} 11 | -------------------------------------------------------------------------------- /resources/views/manager/businesses/appointments/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app') 2 | 3 | @section('content') 4 | 5 | @endsection 6 | -------------------------------------------------------------------------------- /resources/views/manager/businesses/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app') 2 | 3 | @section('content') 4 |
    5 |
    6 |
    7 |
    {{ trans('manager.businesses.edit.title') }}
    8 | 9 |
    10 | {!! Form::model($business, ['method' => 'put', 'route' => ['manager.business.update', $business], 'id' => 'registration', 'data-toggle' => 'validator']) !!} 11 | @include('manager.businesses._form', ['submitLabel' => trans('manager.businesses.btn.update')]) 12 | {!! Form::close() !!} 13 |
    14 | 15 |
    16 |
    17 |
    18 | @endsection 19 | 20 | 21 | -------------------------------------------------------------------------------- /resources/views/manager/businesses/humanresources/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app') 2 | 3 | @section('title', trans('manager.humanresource.create.title')) 4 | @section('subtitle', trans('manager.humanresource.create.subtitle')) 5 | 6 | @section('content') 7 |
    8 | {!! Alert::info(trans('manager.humanresource.create.instructions')) !!} 9 | 10 |
    11 |
    12 | {{ trans('manager.humanresource.create.title') }} 13 |
    14 | 15 |
    16 | {!! Form::model($humanresource, ['route' => ['manager.business.humanresource.store', $business], 'class' => 'horizontal-form']) !!} 17 | @include('manager.businesses.humanresources._form', ['submitLabel' => trans('manager.humanresource.btn.store')]) 18 | {!! Form::close() !!} 19 |
    20 |
    21 |
    22 | @endsection -------------------------------------------------------------------------------- /resources/views/manager/businesses/humanresources/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app') 2 | 3 | @section('title', trans('manager.humanresource.edit.title')) 4 | @section('subtitle', trans('manager.humanresource.edit.subtitle')) 5 | 6 | @section('content') 7 |
    8 |
    9 |
    10 |
    {{ trans('manager.humanresource.create.title') }}
    11 | 12 |
    13 | {!! Form::model($humanresource, ['method' => 'put', 'route' => ['manager.business.humanresource.update', $humanresource->business, $humanresource->id], 'class' => 'horizontal-form']) !!} 14 | @include('manager.businesses.humanresources._form', ['submitLabel' => trans('manager.humanresource.btn.update')]) 15 | {!! Form::close() !!} 16 |
    17 | 18 |
    19 |
    20 |
    21 | @endsection 22 | -------------------------------------------------------------------------------- /resources/views/manager/businesses/services/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app') 2 | 3 | @section('content') 4 |
    5 |
    6 | 7 | {!! Alert::info(trans('manager.services.create.instructions')) !!} 8 | 9 |
    10 |
    11 | {{ trans('manager.services.create.title') }} 12 |
    13 | 14 |
    15 | {!! Form::model($service, ['route' => ['manager.business.service.store', $business], 'class' => 'form-horizontal']) !!} 16 | @include('manager.businesses.services._form', ['submitLabel' => trans('manager.services.btn.store'), 'extended' => false]) 17 | {!! Form::close() !!} 18 |
    19 |
    20 | 21 |
    22 |
    23 | @endsection -------------------------------------------------------------------------------- /resources/views/manager/businesses/services/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app') 2 | 3 | @section('content') 4 |
    5 |
    6 | 7 |
    8 |
    {{ trans('manager.services.edit.title') }}
    9 | 10 |
    11 | {!! Form::model($service, ['method' => 'put', 'route' => ['manager.business.service.update', $service->business, $service->id], 'class' => 'form-horizontal']) !!} 12 | @include('manager.businesses.services._form', ['submitLabel' => trans('manager.service.btn.update'), 'extended' => true]) 13 | {!! Form::close() !!} 14 |
    15 |
    16 | 17 |
    18 |
    19 | @endsection 20 | -------------------------------------------------------------------------------- /resources/views/manager/businesses/servicetype/_form.blade.php: -------------------------------------------------------------------------------- 1 | @section('css') 2 | 3 | 13 | @endsection 14 | 15 | {{-- Services Form Partial --}} 16 |
    17 | 22 |
    23 | 24 |
    25 |
    26 |
    27 | {!! Button::primary($submitLabel)->large()->block()->submit() !!} 28 |
    29 |
    30 |
    31 | 32 | @push('footer_scripts') 33 | 34 | @endpush -------------------------------------------------------------------------------- /resources/views/manager/businesses/servicetype/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app') 2 | 3 | @section('content') 4 |
    5 |
    6 |
    7 |
    {{ trans('servicetype.title.edit') }}
    8 | 9 |
    10 | {!! Form::open(['method' => 'put', 'route' => ['manager.business.servicetype.update', $business]]) !!} 11 | @include('manager.businesses.servicetype._form', ['submitLabel' => trans('servicetype.btn.update')]) 12 | {!! Form::close() !!} 13 |
    14 | 15 |
    16 |
    17 |
    18 | @endsection 19 | -------------------------------------------------------------------------------- /resources/views/manager/businesses/vacancies/_days.blade.php: -------------------------------------------------------------------------------- 1 | @foreach($timetable as $date => $services) 2 |
    3 | 4 | @foreach($services as $service => $times) 5 | 6 |
    7 | 8 |
    {!! Icon::calendar() !!} {{ $date }}
    9 | 10 |
    11 |

    {!! Icon::tag() !!} {{ $service }}

    12 |
    13 | 14 | @include('manager.businesses.vacancies._services', ['date' => $date, 'times' => $times]) 15 | 16 | 17 | 18 |
    19 | 20 | @endforeach 21 | 22 |
    23 | @endforeach 24 | -------------------------------------------------------------------------------- /resources/views/manager/businesses/vacancies/_services.blade.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/views/manager/businesses/vacancies/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app') 2 | 3 | @section('content') 4 |
    5 | 6 | @include('manager.businesses.vacancies._days', ['dates' => $timetable]) 7 | 8 |
    9 | @endsection -------------------------------------------------------------------------------- /resources/views/manager/components/info-box.blade.php: -------------------------------------------------------------------------------- 1 | 2 |
    3 | 4 |
    5 | {{ trans($title) }} 6 | {{ $number }} 7 |
    8 |
    9 |
    -------------------------------------------------------------------------------- /resources/views/manager/contacts/_appointment.blade.php: -------------------------------------------------------------------------------- 1 | @foreach ($appointments as $appointment) 2 | {!! $appointment->panel() !!} 3 | @endforeach -------------------------------------------------------------------------------- /resources/views/manager/contacts/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app') 2 | 3 | @section('title', trans('manager.contacts.create.title')) 4 | 5 | @section('content') 6 |
    7 | 8 |
    9 | 10 |
    {{ trans('manager.contacts.create.title') }}
    11 | 12 |
    13 | 14 | {!! Form::model($contact, ['route' => ['manager.addressbook.store', $business], 'class' => 'horizontal-form']) !!} 15 | @include('manager.contacts._form', ['submitLabel' => trans('manager.contacts.btn.store'), compact('$contact')]) 16 | {!! Form::close() !!} 17 | 18 |
    19 | 20 |
    21 | 22 |
    23 | @endsection 24 | -------------------------------------------------------------------------------- /resources/views/manager/contacts/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app') 2 | 3 | @section('title', trans('manager.contacts.create.title')) 4 | 5 | @section('content') 6 |
    7 | 8 |
    9 | 10 |
    {{ trans('manager.contacts.create.title') }}
    11 | 12 |
    13 | 14 | {!! Form::model($contact, ['method' => 'put', 'route' => ['manager.addressbook.update', $business, $contact], 'class' => 'form-horizontal']) !!} 15 | @include('manager.contacts._form', ['submitLabel' => trans('manager.contacts.btn.update')]) 16 | {!! Form::close() !!} 17 | 18 |
    19 | 20 |
    21 | 22 |
    23 | @endsection 24 | -------------------------------------------------------------------------------- /resources/views/manager/search/_appointment.blade.php: -------------------------------------------------------------------------------- 1 |
  • 2 |
    3 | {!! Button::normal($appointment->business->name)->large()->withIcon(Icon::home())->asLinkTo(route('manager.business.show', $appointment->business)) !!} 4 | {!! Button::normal($appointment->date)->large()->withIcon(Icon::calendar())->asLinkTo(route('manager.business.agenda.index', $appointment->business)) !!} 5 | {!! Button::normal($appointment->contact->firstname.' '.$appointment->contact->lastname)->large()->withIcon(Icon::user())->asLinkTo(route('manager.addressbook.show', [$appointment->business, $appointment->contact->id])) !!} 6 | {!! Button::normal($appointment->service->name)->large()->withIcon(Icon::tag())->asLinkTo(route('manager.business.service.show', [$appointment->business, $appointment->service->id])) !!} 7 |
    8 |
  • 9 | -------------------------------------------------------------------------------- /resources/views/manager/search/_appointments.blade.php: -------------------------------------------------------------------------------- 1 | @if(count($items)) 2 |
    3 | 6 |
    7 | @endif -------------------------------------------------------------------------------- /resources/views/manager/search/_contact.blade.php: -------------------------------------------------------------------------------- 1 |
  • 2 | @foreach ($contact->businesses as $business) 3 | @if ($user->isOwnerOf($business)) 4 | {!! Button::normal($business->name)->withIcon(Icon::home())->asLinkTo(route('manager.business.show', $business)) !!} 5 | {!! Button::normal($contact->fullname)->withIcon(Icon::user())->asLinkTo(route('manager.addressbook.show', [$business, $contact->id])) !!} 6 | @endif 7 | @endforeach 8 |
  • -------------------------------------------------------------------------------- /resources/views/manager/search/_contacts.blade.php: -------------------------------------------------------------------------------- 1 | @if(count($items)) 2 |
    3 | 6 |
    7 | @endif -------------------------------------------------------------------------------- /resources/views/manager/search/_service.blade.php: -------------------------------------------------------------------------------- 1 |
  • 2 | {!! Button::normal($service->business->name)->withIcon(Icon::home())->asLinkTo(route('manager.business.show', $service->business)) !!} 3 | {!! Button::normal($service->name)->withIcon(Icon::tag())->asLinkTo(route('manager.business.service.show', [$service->business, $service->id])) !!} 4 |
  • -------------------------------------------------------------------------------- /resources/views/manager/search/_services.blade.php: -------------------------------------------------------------------------------- 1 | @if(count($items)) 2 |
    3 | 6 |
    7 | @endif -------------------------------------------------------------------------------- /resources/views/manager/search/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app') 2 | 3 | @section('content') 4 |
    5 | 6 | {{-- TODO: Display a nice empty state for no results --}} 7 | 8 | @foreach ($results as $category => $items) 9 | @include('manager.search._'.$category, compact($items)) 10 | @endforeach 11 | 12 |
    13 | @endsection 14 | -------------------------------------------------------------------------------- /resources/views/manager/terms.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app') 2 | 3 | @section('content') 4 |
    5 |
    6 |

    TERMS AND CONDITIONS

    7 |

    YOUR TERMS AND CONDITIONS GO HERE

    8 |
    9 |
    10 | @endsection -------------------------------------------------------------------------------- /resources/views/root/dashboard.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.user') 2 | 3 | @section('content') 4 |
    5 | 6 |

    Registered Users

    7 | {!! Table::withContents($users->toArray())->striped()->condensed()->hover() !!} 8 | 9 |
    10 | @endsection 11 | -------------------------------------------------------------------------------- /resources/views/tour/_template.blade.php: -------------------------------------------------------------------------------- 1 | {{-- Advice: This is included as a JS string. Multiline MUST be escaped --}} 2 |
    \ 3 |
    \ 4 |

    \ 5 |
    \ 6 |

     

    \ 7 | \ 14 |

     

    \ 15 |
    -------------------------------------------------------------------------------- /resources/views/user/appointments/timeslot/_contact-register.blade.php: -------------------------------------------------------------------------------- 1 |
    2 |
    3 |
    4 | 5 | 6 | 7 |
    8 |
    9 |
    -------------------------------------------------------------------------------- /resources/views/user/contacts/_appointment.blade.php: -------------------------------------------------------------------------------- 1 | @foreach ($appointments as $appointment) 2 | {!! $appointment->panel() !!} 3 | @endforeach -------------------------------------------------------------------------------- /resources/views/user/contacts/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.user') 2 | 3 | @section('content') 4 |
    5 | 6 | {!! Alert::info(trans('user.contacts.create.help')) !!} 7 | 8 |
    9 |
    10 | {{ trans('user.contacts.create.title') }} 11 |
    12 | 13 |
    14 | {!! Form::model($contact, ['route' => ['user.business.contact.store', $business]]) !!} 15 | @include('user.contacts._form', ['submitLabel' => trans('user.contacts.btn.store'), 'contact' => $contact]) 16 | {!! Form::close() !!} 17 |
    18 |
    19 | 20 |
    21 | @endsection -------------------------------------------------------------------------------- /resources/views/user/contacts/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.user') 2 | 3 | @section('content') 4 |
    5 |
    6 |
    7 | 8 |
    {{ trans('user.contacts.create.title') }}
    9 | 10 |
    11 | {!! Form::model($contact, ['method' => 'put', 'route' => ['user.business.contact.update', $business, $contact->id ]]) !!} 12 | @include('user.contacts._form', ['submitLabel' => trans('user.contacts.btn.update')]) 13 | {!! Form::close() !!} 14 |
    15 | 16 |
    17 |
    18 |
    19 | @endsection 20 | -------------------------------------------------------------------------------- /resources/views/user/notifications.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.user') 2 | 3 | @section('content') 4 | 5 | @foreach ($notifications as $notification) 6 |
    7 | {{ $notification->from_id }} {{ $notification->text }} 8 |
    9 | @endforeach 10 | 11 | @endsection -------------------------------------------------------------------------------- /resources/views/user/preferences/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app') 2 | @section('title', trans('user.preferences.title')) 3 | 4 | @section('content') 5 |
    6 |
    7 |
    8 |
    9 |
    10 | {!! Form::open(['route' => ['user.preferences'], 'id' => 'preferences', 'data-toggle' => 'validator']) !!} 11 | @include('user.preferences._form') 12 | {!! Form::close() !!} 13 |
    14 |
    15 |
    16 |
    17 |
    18 | @endsection 19 | -------------------------------------------------------------------------------- /resources/views/vendor/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alariva/timegrid/7a7e2a4c9bed31e4dc710eee5c99057eeba71de5/resources/views/vendor/.gitkeep -------------------------------------------------------------------------------- /resources/views/vendor/cookieConsent/dialogContents.blade.php: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /resources/views/vendor/flash/message.blade.php: -------------------------------------------------------------------------------- 1 | @if (Session::has('flash_notification.message')) 2 | @if (Session::has('flash_notification.overlay')) 3 | @include('flash::modal', ['modalClass' => 'flash-modal', 'title' => Session::get('flash_notification.title'), 'body' => Session::get('flash_notification.message')]) 4 | @else 5 |
    6 | 7 | 8 | {{ Session::get('flash_notification.message') }} 9 |
    10 | @endif 11 | @endif 12 | -------------------------------------------------------------------------------- /resources/views/vendor/flash/modal.blade.php: -------------------------------------------------------------------------------- 1 | 20 | -------------------------------------------------------------------------------- /routes/console.php: -------------------------------------------------------------------------------- 1 | comment(Inspiring::quote()); 18 | // })->describe('Display an inspiring quote'); 19 | -------------------------------------------------------------------------------- /server.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | $uri = urldecode( 8 | parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) 9 | ); 10 | 11 | // This file allows us to emulate Apache's "mod_rewrite" functionality from the 12 | // built-in PHP web server. This provides a convenient way to test a Laravel 13 | // application without having installed a "real" web server software here. 14 | if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { 15 | return false; 16 | } 17 | 18 | require_once __DIR__.'/public/index.php'; 19 | -------------------------------------------------------------------------------- /storage/.gitignore: -------------------------------------------------------------------------------- 1 | laravel.log -------------------------------------------------------------------------------- /storage/app/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/debugbar/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/framework/.gitignore: -------------------------------------------------------------------------------- 1 | config.php 2 | routes.php 3 | compiled.php 4 | services.json 5 | events.scanned.php 6 | routes.scanned.php 7 | -------------------------------------------------------------------------------- /storage/framework/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/framework/sessions/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/views/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /tests/acceptance/compliance/EUCookieLegalComplianceTest.php: -------------------------------------------------------------------------------- 1 | true]); 14 | 15 | $this->visit('/auth/login'); 16 | $this->see(self::NOTICE); 17 | $this->see(self::BUTTON); 18 | } 19 | 20 | /** 21 | * @test 22 | */ 23 | public function it_does_not_display_the_eu_cookie_notice_when_disabled() 24 | { 25 | config(['laravel-cookie-consent.enabled' => false]); 26 | 27 | $this->visit('/auth/login'); 28 | $this->dontSee(self::NOTICE); 29 | $this->dontSee(self::BUTTON); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /tests/acceptance/emails/readme.md: -------------------------------------------------------------------------------- 1 | # Emails Tests 2 | 3 | Tests here intercept outgoing emails to validate important included information 4 | such as destination, subject, and other stuff. 5 | 6 | This way we make sure that the correct emails are sent with the desired content. 7 | -------------------------------------------------------------------------------- /tests/helpers/CreateBusiness.php: -------------------------------------------------------------------------------- 1 | create($overrides); 11 | } 12 | 13 | private function createBusinesses($quantity = 2, $overrides = []) 14 | { 15 | return factory(Business::class, $quantity)->create($overrides); 16 | } 17 | 18 | private function makeBusiness(User $owner, $overrides = []) 19 | { 20 | $business = factory(Business::class)->make($overrides); 21 | $business->save(); 22 | $business->owners()->attach($owner); 23 | 24 | return $business; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /tests/helpers/CreateContact.php: -------------------------------------------------------------------------------- 1 | create($overrides); 11 | } 12 | 13 | private function makeContact(User $user = null) 14 | { 15 | $contact = factory(Contact::class)->make(); 16 | if ($user) { 17 | $contact->user()->associate($user); 18 | } 19 | 20 | return $contact; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /tests/helpers/CreateDomain.php: -------------------------------------------------------------------------------- 1 | create($overrides); 11 | } 12 | 13 | private function createDomains($quantity = 2, $overrides = []) 14 | { 15 | return factory(Domain::class, $quantity)->create($overrides); 16 | } 17 | 18 | private function makeDomain(User $owner, $overrides = []) 19 | { 20 | $domain = factory(Domain::class)->make($overrides); 21 | $domain->save(); 22 | $domain->owners()->attach($owner); 23 | 24 | return $domain; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /tests/helpers/CreateHumanresource.php: -------------------------------------------------------------------------------- 1 | create($overrides); 10 | } 11 | 12 | private function makeHumanresource($override = []) 13 | { 14 | return factory(Humanresource::class)->make($override); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tests/helpers/CreatePermission.php: -------------------------------------------------------------------------------- 1 | create($overrides); 10 | } 11 | 12 | private function makePermission() 13 | { 14 | $permission = factory(Permission::class)->make(); 15 | 16 | return $permission; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /tests/helpers/CreateRole.php: -------------------------------------------------------------------------------- 1 | create($overrides); 10 | } 11 | 12 | private function makeRole() 13 | { 14 | $role = factory(Role::class)->make(); 15 | 16 | return $role; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /tests/helpers/CreateService.php: -------------------------------------------------------------------------------- 1 | create($overrides); 10 | } 11 | 12 | private function makeService($overrides = []) 13 | { 14 | return factory(Service::class)->make($overrides); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tests/helpers/CreateServiceType.php: -------------------------------------------------------------------------------- 1 | create($overrides); 10 | } 11 | 12 | private function makeServiceType($overrides = []) 13 | { 14 | return factory(ServiceType::class)->make($overrides); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tests/helpers/CreateUser.php: -------------------------------------------------------------------------------- 1 | create($overrides); 10 | } 11 | 12 | private function createUser($overrides = []) 13 | { 14 | return factory(User::class)->create($overrides); 15 | } 16 | 17 | private function makeUser() 18 | { 19 | $user = factory(User::class)->make(); 20 | 21 | return $user; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /tests/helpers/CreateVacancy.php: -------------------------------------------------------------------------------- 1 | create($overrides); 10 | } 11 | 12 | private function makeVacancy($override = []) 13 | { 14 | return factory(Vacancy::class)->make($override); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tests/helpers/stubs/PreferenceableStub.php: -------------------------------------------------------------------------------- 1 | createUser(['email' => 'guest@example.org', 'password' => bcrypt('demoguest')]); 17 | 18 | event(new NewUserWasRegistered($user)); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /tests/unit/SeedingUnitTest.php: -------------------------------------------------------------------------------- 1 | seed('TestingDatabaseSeeder'); 13 | 14 | $this->seeInDatabase('users', ['email' => 'demo@timegrid.io']); 15 | $this->seeInDatabase('users', ['email' => 'guest@example.org']); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /tests/unit/migration/MigrationTest.php: -------------------------------------------------------------------------------- 1 | assertNotNull($database); 15 | 16 | $exitCode = Artisan::call('migrate:refresh', ['--database' => $database]); 17 | 18 | $this->assertEquals(0, $exitCode); 19 | 20 | $exitCode = Artisan::call('migrate:rollback', ['--database' => $database]); 21 | 22 | $this->assertEquals(0, $exitCode); 23 | 24 | $exitCode = Artisan::call('migrate', ['--database' => $database]); 25 | 26 | $this->assertEquals(0, $exitCode); 27 | 28 | $exitCode = Artisan::call('db:seed', ['--database' => $database]); 29 | 30 | $this->assertEquals(0, $exitCode); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /tests/unit/models/PermissionTest.php: -------------------------------------------------------------------------------- 1 | createPermission(); 14 | 15 | $this->assertInstanceOf(Illuminate\Database\Eloquent\Relations\BelongsToMany::class, $permission->roles()); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /timegrid.sublime-project: -------------------------------------------------------------------------------- 1 | { 2 | "build_systems": 3 | [ 4 | { 5 | "name": "PHPUnit", 6 | "shell_cmd": "phpunit" 7 | } 8 | ], 9 | "folders": 10 | [ 11 | { 12 | "file_exclude_patterns": 13 | [ 14 | "*.png", 15 | "artisan", 16 | "*.gif", 17 | "*.jpg" 18 | ], 19 | "folder_exclude_patterns": 20 | [ 21 | "node_modules", 22 | "storage", 23 | "public/fonts" 24 | ], 25 | "name": "Application", 26 | "path": "." 27 | } 28 | ], 29 | "settings": 30 | { 31 | "tab_size": 4 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /travis-codeclimate-report.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | ####################################################### 4 | # This script is intended to be run by TravisCI only # 5 | ####################################################### 6 | 7 | if [ "$TRAVIS_BRANCH" = "master" ] 8 | then 9 | 10 | ## Coverage reports should only be sent on master branch 11 | 12 | echo "Submitting Test Coverage Report to CodeClimate..." 13 | 14 | ## Method I 15 | 16 | php vendor/bin/test-reporter 17 | 18 | ## Method II 19 | 20 | # php vendor/bin/test-reporter --stdout > codeclimate.json 21 | 22 | # curl -X POST -d @codeclimate.json -H 'Content-Type: application/json' -H 'User-Agent: Code Climate (PHP Test Reporter v0.1.1)' https://codeclimate.com/test_reports 23 | 24 | else 25 | 26 | echo "Not in Master branch. Will not publish coverage.\n\n" 27 | 28 | fi 29 | 30 | ## Finish 31 | 32 | echo Finish with status $? 33 | --------------------------------------------------------------------------------