├── .DS_Store ├── .babelrc ├── .dockerignore ├── .env.action ├── .env.example ├── .eslintrc.json ├── .gitattributes ├── .github ├── CODE_OF_CONDUCT.md ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── 1_Bug_report.md │ ├── 2_Support_question.md │ ├── 3_Feature_request.md │ └── 4_Security_vulnerabilities.md ├── pull_request_template.md └── workflows │ ├── format_php.yml │ ├── standardjs.yml │ └── test.yml ├── .gitignore ├── .php_cs ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE ├── app ├── Activity │ └── Activity.php ├── Authorization │ ├── Authorization.php │ └── AuthorizationServiceProvider.php ├── Base │ ├── Console │ │ ├── Commands │ │ │ ├── AddNamespaceOption.php │ │ │ ├── ChannelMakeCommand.php │ │ │ ├── ComponentMakeCommand.php │ │ │ ├── ConsoleMakeCommand.php │ │ │ ├── EventGenerateCommand.php │ │ │ ├── EventMakeCommand.php │ │ │ ├── ExceptionMakeCommand.php │ │ │ ├── GetRootNamespace.php │ │ │ ├── JobMakeCommand.php │ │ │ ├── ListenerMakeCommand.php │ │ │ ├── MailMakeCommand.php │ │ │ ├── ModelMakeCommand.php │ │ │ ├── NotificationMakeCommand.php │ │ │ ├── ObserverMakeCommand.php │ │ │ ├── PluginDiscoverCommand.php │ │ │ ├── PluginInstallCommand.php │ │ │ ├── PluginUninstallCommand.php │ │ │ ├── PolicyMakeCommand.php │ │ │ ├── ProviderMakeCommand.php │ │ │ ├── RequestMakeCommand.php │ │ │ └── RuleMakeCommand.php │ │ └── Kernel.php │ ├── Contracts │ │ └── HasMembers.php │ ├── Events │ │ ├── DirectMessageCreated.php │ │ ├── MessageCreated.php │ │ ├── MessageUpdated.php │ │ └── NewMessage.php │ ├── Exceptions │ │ ├── Handler.php │ │ ├── InvalidFileFormat.php │ │ ├── OwnerPermissionCantBeRevoked.php │ │ ├── UserIsAlreadyMember.php │ │ └── UserIsNotMember.php │ ├── Http │ │ ├── Controllers │ │ │ ├── AboutController.php │ │ │ ├── ActivityController.php │ │ │ ├── AdminController.php │ │ │ ├── AppSettingController.php │ │ │ ├── Auth │ │ │ │ ├── ForgotPasswordController.php │ │ │ │ ├── LoginController.php │ │ │ │ ├── RegisterController.php │ │ │ │ └── ResetPasswordController.php │ │ │ ├── CategoryController.php │ │ │ ├── CommentController.php │ │ │ ├── ConnectedGithubRepoController.php │ │ │ ├── Controller.php │ │ │ ├── CycleController.php │ │ │ ├── DirectMessageController.php │ │ │ ├── EventController.php │ │ │ ├── FileController.php │ │ │ ├── GithubRepoController.php │ │ │ ├── GroupPermissionController.php │ │ │ ├── GroupSettingsController.php │ │ │ ├── GroupTagsController.php │ │ │ ├── HomeController.php │ │ │ ├── InvitationController.php │ │ │ ├── MemberController.php │ │ │ ├── MessageController.php │ │ │ ├── NotificationController.php │ │ │ ├── PermissionController.php │ │ │ ├── RoadmapController.php │ │ │ ├── RoleController.php │ │ │ ├── RolePermissionController.php │ │ │ ├── ServiceController.php │ │ │ ├── TagController.php │ │ │ ├── UnreadNotificationController.php │ │ │ ├── UserAccountController.php │ │ │ ├── UserAvatarController.php │ │ │ ├── UserController.php │ │ │ ├── UserProfileController.php │ │ │ └── UserUnreadDirectMessageController.php │ │ ├── Kernel.php │ │ ├── Middleware │ │ │ ├── EncryptCookies.php │ │ │ ├── LocalizationMiddleware.php │ │ │ ├── MobileLoginMiddleware.php │ │ │ ├── RedirectIfAuthenticated.php │ │ │ ├── RedirectIfNotAdmin.php │ │ │ ├── TrimStrings.php │ │ │ ├── TrustProxies.php │ │ │ └── VerifyCsrfToken.php │ │ └── Requests │ │ │ ├── AppSettingRequest.php │ │ │ ├── CategoryStoreRequest.php │ │ │ ├── EventStoreRequest.php │ │ │ ├── StoreDirectMessageRequest.php │ │ │ ├── StoreMessageRequest.php │ │ │ ├── UpdateUserAccount.php │ │ │ ├── UpdateUserProfile.php │ │ │ ├── ValidateCommentCreation.php │ │ │ ├── ValidateCycleCreation.php │ │ │ └── ValidateFileCreation.php │ ├── Jobs │ │ └── BackupDatabase.php │ ├── Mail │ │ ├── SendInvitationToRegister.php │ │ └── UserRegistered.php │ ├── Models │ │ ├── AllowedPermission.php │ │ ├── AppSetting.php │ │ ├── Attachment.php │ │ ├── BlockedPermission.php │ │ ├── Board.php │ │ ├── Category.php │ │ ├── Comment.php │ │ ├── Contracts │ │ │ └── Group.php │ │ ├── Cycle.php │ │ ├── DirectMessage.php │ │ ├── Event.php │ │ ├── File.php │ │ ├── GithubRepo.php │ │ ├── Group.php │ │ ├── Invite.php │ │ ├── Label.php │ │ ├── Mention.php │ │ ├── Message.php │ │ ├── Milestone.php │ │ ├── Notification.php │ │ ├── NotificationSetting.php │ │ ├── Permission.php │ │ ├── PermissionSetting.php │ │ ├── Role.php │ │ ├── RoleHasPermission.php │ │ ├── Service.php │ │ ├── Setting.php │ │ ├── Tag.php │ │ ├── Token.php │ │ ├── User.php │ │ └── UserSetting.php │ ├── Notifications │ │ ├── BecameNewMember.php │ │ ├── RevokedMembership.php │ │ ├── UserRegistered.php │ │ └── YouWereMentioned.php │ ├── Observers │ │ └── DirectMessageObserver.php │ ├── Policies │ │ ├── AppSettingPolicy.php │ │ ├── CommentPolicy.php │ │ ├── CyclePolicy.php │ │ ├── DirectMessagePolicy.php │ │ ├── FilePolicy.php │ │ ├── MessagePolicy.php │ │ ├── PermissionPolicy.php │ │ ├── TagPolicy.php │ │ └── UserPolicy.php │ ├── Providers │ │ ├── AppServiceProvider.php │ │ ├── AuthServiceProvider.php │ │ ├── BroadcastServiceProvider.php │ │ ├── DropboxFilesystemServiceProvider.php │ │ ├── EventServiceProvider.php │ │ ├── RouteServiceProvider.php │ │ └── TelescopeServiceProvider.php │ ├── Repositories │ │ ├── CategoryRepository.php │ │ ├── CommentRepository.php │ │ ├── DirectMessageRepository.php │ │ ├── EventRepository.php │ │ ├── FileRepository.php │ │ ├── MentionRepository.php │ │ ├── MessageRepository.php │ │ ├── TagRepository.php │ │ └── UserRepository.php │ └── Utilities │ │ ├── DatabaseNotificationChannel.php │ │ ├── FileUtilities.php │ │ ├── GetRecipientsTrait.php │ │ ├── GithubTrait.php │ │ ├── GroupTrait.php │ │ ├── Notifiable.php │ │ ├── PluginManifest.php │ │ └── helpers.php ├── Discussion │ ├── Controllers │ │ ├── DiscussionController.php │ │ ├── DiscussionFileController.php │ │ └── DraftDiscussionController.php │ ├── DiscussionServiceProvider.php │ ├── Models │ │ └── Discussion.php │ ├── Notifications │ │ └── DiscussionCreatedNotification.php │ ├── Observers │ │ └── DiscussionObserver.php │ ├── Policies │ │ └── DiscussionPolicy.php │ ├── Repositories │ │ └── DiscussionRepository.php │ ├── Requests │ │ ├── UpdateDiscussionRequest.php │ │ └── ValidateDiscussionCreation.php │ └── routes.php ├── Observers │ ├── OfficeObserver.php │ └── TeamObserver.php ├── Office │ ├── Controllers │ │ ├── OfficeController.php │ │ └── PublicOfficeController.php │ ├── Models │ │ ├── Office.php │ │ └── OfficeSetting.php │ ├── OfficeServiceProvider.php │ ├── Policies │ │ └── OfficePolicy.php │ ├── Repositories │ │ └── OfficeRepository.php │ ├── Requests │ │ └── StoreOfficeRequest.php │ └── routes.php ├── Project │ ├── Controllers │ │ ├── ProjectController.php │ │ └── PublicProjectController.php │ ├── Models │ │ ├── Project.php │ │ └── ProjectSetting.php │ ├── Observers │ │ └── ProjectObserver.php │ ├── Policies │ │ └── ProjectPolicy.php │ ├── ProjectServiceProvider.php │ ├── Repositories │ │ └── ProjectRepository.php │ ├── Requests │ │ └── StoreProjectRequest.php │ └── routes.php ├── TaskManager │ ├── Controllers │ │ ├── StatusController.php │ │ ├── TaskController.php │ │ ├── TaskProgressController.php │ │ ├── TaskStatusController.php │ │ └── TaskTagController.php │ ├── Models │ │ ├── Status.php │ │ ├── Step.php │ │ └── Task.php │ ├── Notifications │ │ ├── TaskCreated.php │ │ └── TaskStatusUpdated.php │ ├── Observers │ │ └── TaskObserver.php │ ├── Policies │ │ └── TaskPolicy.php │ ├── Repositories │ │ ├── StatusRepository.php │ │ └── TaskRepository.php │ ├── Requests │ │ ├── UpdateTaskRequest.php │ │ ├── ValidateStatusCreation.php │ │ └── ValidateTaskCreation.php │ ├── TaskManagerServiceProvider.php │ └── routes.php └── Team │ ├── Controllers │ ├── PublicTeamController.php │ └── TeamController.php │ ├── Models │ ├── Team.php │ └── TeamSetting.php │ ├── Policies │ └── TeamPolicy.php │ ├── Repositories │ └── TeamRepository.php │ ├── TeamServiceProvider.php │ └── routes.php ├── artisan ├── bootstrap ├── app.php ├── autoload.php └── cache │ └── .gitignore ├── clover.xml ├── cmd ├── composer.json ├── composer.lock ├── config ├── activitylog.php ├── app.php ├── auth.php ├── backup.php ├── broadcasting.php ├── cache.php ├── compile.php ├── database.php ├── filesystems.php ├── hashing.php ├── insights.php ├── locale.php ├── logging.php ├── mail.php ├── notification.php ├── permission.php ├── queue.php ├── scout.php ├── services.php ├── session.php ├── telescope.php ├── view.php └── websockets.php ├── database ├── .gitignore ├── factories │ ├── CategoryFactory.php │ ├── CommentFactory.php │ ├── CycleFactory.php │ ├── DirectMessageFactory.php │ ├── DiscussionFactory.php │ ├── EventFactory.php │ ├── FileFactory.php │ ├── MessageFactory.php │ ├── ModelFactory.php │ ├── NotificationFactory.php │ ├── OfficeFactory.php │ ├── PermissionFactory.php │ ├── ProjectFactory.php │ ├── StatusFactory.php │ ├── StepFactory.php │ ├── TagFactory.php │ ├── TasksFactory.php │ ├── TeamFactory.php │ ├── TokenFactory.php │ └── UserFactory.php ├── migrations │ ├── 0000_00_00_000000_create_websockets_statistics_entries_table.php │ ├── 0000_00_00_000000_rename_statistics_counters.php │ ├── 2014_10_12_000000_create_users_table.php │ ├── 2014_10_12_100000_create_password_resets_table.php │ ├── 2017_02_15_045753_create_offices_table.php │ ├── 2017_02_15_045757_create_teams_table.php │ ├── 2017_02_15_045759_create_projects_table.php │ ├── 2017_02_15_045759_create_tasks_table.php │ ├── 2017_02_15_045806_create_attachments_table.php │ ├── 2017_02_15_045808_create_messages_table.php │ ├── 2017_02_15_045809_create_categories_table.php │ ├── 2017_02_15_045815_create_discussions_table.php │ ├── 2017_02_15_045821_create_events_table.php │ ├── 2017_02_15_050534_create_files_table.php │ ├── 2017_02_15_050733_create_settings_table.php │ ├── 2017_02_15_051810_create_user_settings_table.php │ ├── 2017_02_15_054700_create_boards_table.php │ ├── 2017_02_15_070104_create_attachables_table.php │ ├── 2017_02_15_071832_create_office_team_table.php │ ├── 2017_02_15_071849_create_office_user_table.php │ ├── 2017_02_15_071910_create_team_user_table.php │ ├── 2017_02_15_074141_create_project_user_table.php │ ├── 2017_02_15_074151_create_office_project_table.php │ ├── 2017_02_15_232710_create_notification_settings_table.php │ ├── 2017_02_18_150110_create_notifications_table.php │ ├── 2017_02_19_052952_create_labels_table.php │ ├── 2017_02_19_053329_create_label_task_table.php │ ├── 2017_02_19_143257_create_tokens_table.php │ ├── 2017_02_19_143509_create_milestones_table.php │ ├── 2017_02_19_143703_create_milestone_task_table.php │ ├── 2017_03_23_224555_create_jobs_table.php │ ├── 2018_08_16_150634_create_failed_jobs_table.php │ ├── 2018_10_10_052558_create_comments_table.php │ ├── 2018_10_11_185823_create_statuses_table.php │ ├── 2018_10_12_180714_update_tasks_columns.php │ ├── 2018_10_14_090946_add_weekstart_column_to_users_table.php │ ├── 2018_10_14_091132_add_lang_column_to_users_table.php │ ├── 2018_10_15_070538_create_tags_table.php │ ├── 2018_10_15_071414_create_task_tags_table.php │ ├── 2018_10_17_100446_add_role_id_column_to_tokens_table.php │ ├── 2018_10_18_090550_add_parent_id_column_to_tasks_table.php │ ├── 2018_10_21_072751_create_mentions_table.php │ ├── 2018_10_21_181126_create_media_table.php │ ├── 2018_10_27_160604_create_services_table.php │ ├── 2018_10_30_083427_create_cycles_table.php │ ├── 2018_11_22_164103_create_github_repos_table.php │ ├── 2018_12_12_082332_create_searches_table.php │ ├── 2019_01_23_103620_add_name_column_to_cycle_table.php │ ├── 2019_02_02_140503_add_active_column_to_services_table.php │ ├── 2019_02_10_120436_create_permissions_table.php │ ├── 2019_05_20_175412_create_roles_table.php │ ├── 2019_05_20_210401_create_role_has_permission_table.php │ ├── 2019_05_22_175136_add_role_id_to_users_table.php │ ├── 2019_05_22_180208_create_allowed_permissions_table.php │ ├── 2019_05_22_180222_create_blocked_permissions_table.php │ ├── 2019_05_22_184604_create_permission_settings_table.php │ ├── 2019_05_26_220227_add_created_by_column_to_tasks_table.php │ ├── 2019_06_10_161724_create_invites_table.php │ ├── 2019_06_17_141953_add_columns_in_notifications_table.php │ ├── 2019_06_18_135056_add_location_column_to_users_table.php │ ├── 2019_06_19_144414_create_direct_messages_table.php │ ├── 2019_06_19_205311_add_hash_column_to_files_table.php │ ├── 2019_06_24_140857_create_project_settings_modal.php │ ├── 2019_06_24_144141_create_team_settings_modal.php │ ├── 2019_06_24_144405_create_office_settings_modal.php │ ├── 2019_06_26_113714_add_implemented_column_to_discussions_table.php │ ├── 2019_07_02_112608_create_group_tag_table.php │ ├── 2019_07_03_185045_add_roadmap_enabled_column.php │ ├── 2019_07_05_081127_make_github_repo_id_column_unique.php │ ├── 2019_07_06_061400_add_public_column_to_group.php │ ├── 2019_07_07_182828_create_steps_table.php │ ├── 2019_10_12_060140_add_owner_id_column_to_files_table.php │ ├── 2019_10_24_161602_add_mimetype_to_files_table.php │ ├── 2020_03_02_141837_update_steps_library.php │ ├── 2020_03_07_061537_add_two_columns_to_notifications_table.php │ ├── 2020_04_08_175850_update_messages_table.php │ └── 2020_05_29_091458_create_app_settings_table.php └── seeders │ ├── AdminUserSeeder.php │ ├── AppSettingTableSeeder.php │ ├── CategorySeeder.php │ ├── DatabaseSeeder.php │ ├── HeadquarterOfficeSeeder.php │ ├── PermissionSettingsTableSeeder.php │ ├── PermissionTableSeeder.php │ ├── RoleHasPermissionTableSeeder.php │ ├── RoleTableSeeder.php │ ├── ServicesTableSeeder.php │ └── StatusesTableSeeder.php ├── docker-compose.dev.yml ├── docker-compose.yml ├── docker ├── dev │ ├── Caddyfile │ └── php.Dockerfile ├── prod │ ├── Caddyfile │ └── php.Dockerfile ├── websocket.Dockerfile └── worker.Dockerfile ├── docs └── overview.md ├── install.sh ├── package.json ├── phpunit.xml ├── plugins └── .gitignore ├── public ├── .htaccess ├── alarm_bell.mp3 ├── css │ ├── editor.css │ ├── editor.min.css │ ├── main.css │ └── main.min.css ├── favicon.ico ├── image │ ├── activity.svg │ ├── avatar-profile.png │ ├── avatar.jpg │ ├── cycle.svg │ ├── discussions.svg │ ├── dm.svg │ ├── email.svg │ ├── events.svg │ ├── files.svg │ ├── group_chat.svg │ ├── password.svg │ ├── register.svg │ ├── select.svg │ ├── tasks.svg │ └── work_chat.svg ├── index.php ├── js │ ├── admin │ │ ├── index.js.LICENSE.txt │ │ └── index.min.js │ ├── auth │ │ ├── login.js.LICENSE.txt │ │ ├── login.min.js │ │ ├── register.js.LICENSE.txt │ │ └── register.min.js │ ├── errors │ │ ├── 404.js.LICENSE.txt │ │ └── 404.min.js │ ├── home.js.LICENSE.txt │ ├── home.min.js │ ├── manifest.js │ ├── offices │ │ ├── single.js.LICENSE.txt │ │ └── single.min.js │ ├── projects │ │ ├── single.js.LICENSE.txt │ │ └── single.min.js │ ├── teams │ │ ├── single.js.LICENSE.txt │ │ └── single.min.js │ ├── users │ │ ├── profile.js.LICENSE.txt │ │ ├── profile.min.js │ │ ├── settings.js.LICENSE.txt │ │ └── settings.min.js │ ├── vendor.js.LICENSE.txt │ └── vendor.min.js ├── logos │ ├── logo-alt.svg │ ├── logo.svg │ └── logo_square.png ├── mix-manifest.json ├── robots.txt ├── vendor │ └── telescope │ │ ├── app-dark.css │ │ ├── app.css │ │ ├── app.js │ │ ├── favicon.ico │ │ └── mix-manifest.json └── web.config ├── readme.md ├── resources ├── .DS_Store ├── assets │ ├── css │ │ ├── editor.css │ │ ├── main.css │ │ └── main.min.css │ └── js │ │ ├── bootstrap.js │ │ ├── components │ │ ├── admin │ │ │ ├── aboutBoard.vue │ │ │ ├── activityBoard.vue │ │ │ ├── authBoard.vue │ │ │ ├── githubModal.vue │ │ │ ├── index.vue │ │ │ ├── integrationBoard.vue │ │ │ ├── invitationBoard.vue │ │ │ ├── rolesBoard.vue │ │ │ ├── settingsBoard.vue │ │ │ ├── showGithubRepo.vue │ │ │ ├── tabMenu.vue │ │ │ └── usersBoard.vue │ │ ├── auth │ │ │ ├── email.vue │ │ │ ├── login.vue │ │ │ ├── register.vue │ │ │ └── reset.vue │ │ ├── forms │ │ │ ├── createCycleForm.vue │ │ │ ├── createDiscussionForm.vue │ │ │ └── createTaskForm.vue │ │ ├── home │ │ │ ├── home.vue │ │ │ ├── index.vue │ │ │ ├── office.vue │ │ │ ├── offices.vue │ │ │ ├── project.vue │ │ │ ├── projects.vue │ │ │ ├── team.vue │ │ │ └── teams.vue │ │ ├── offices │ │ │ └── single.vue │ │ ├── partials │ │ │ ├── activityBoard.vue │ │ │ ├── addMemberForm.vue │ │ │ ├── avatarUpload.vue │ │ │ ├── commentBox.vue │ │ │ ├── cyclesModal.vue │ │ │ ├── discussionBoard.vue │ │ │ ├── discussionDetails.vue │ │ │ ├── eventBoard.vue │ │ │ ├── file.vue │ │ │ ├── fileBoard.vue │ │ │ ├── fileModal.vue │ │ │ ├── fileUpload.vue │ │ │ ├── inviteModal.vue │ │ │ ├── loadingModal.vue │ │ │ ├── membersListModal.vue │ │ │ ├── message.vue │ │ │ ├── messageBox.vue │ │ │ ├── messageDropdown.vue │ │ │ ├── messagesBoard.vue │ │ │ ├── navbar.vue │ │ │ ├── notificationBox.vue │ │ │ ├── notificationDropdown.vue │ │ │ ├── notificationPopup.vue │ │ │ ├── permissionSettingsModal.vue │ │ │ ├── profileCard.vue │ │ │ ├── profileDropdown.vue │ │ │ ├── progressBox.vue │ │ │ ├── roadmapModal.vue │ │ │ ├── settingsModal.vue │ │ │ ├── tabMenu.vue │ │ │ ├── tagsSettings.vue │ │ │ ├── taskBoard.vue │ │ │ ├── taskDetails.vue │ │ │ ├── timer.vue │ │ │ └── userSuggestionBox.vue │ │ ├── projects │ │ │ └── single.vue │ │ ├── teams │ │ │ └── single.vue │ │ └── users │ │ │ ├── account.vue │ │ │ ├── other.vue │ │ │ ├── own.vue │ │ │ ├── profile.vue │ │ │ └── settings.vue │ │ ├── pages │ │ ├── admin │ │ │ └── index.js │ │ ├── auth │ │ │ ├── email.js │ │ │ ├── login.js │ │ │ ├── register.js │ │ │ └── reset.js │ │ ├── commonComponent.js │ │ ├── errors │ │ │ └── 404.js │ │ ├── home.js │ │ ├── offices │ │ │ └── single.js │ │ ├── projects │ │ │ └── single.js │ │ ├── teams │ │ │ └── single.js │ │ └── users │ │ │ ├── profile.js │ │ │ └── settings.js │ │ └── store │ │ ├── admin.js │ │ ├── home.js │ │ ├── modules │ │ ├── cycle.js │ │ ├── dropdown.js │ │ ├── notification.js │ │ └── timer.js │ │ ├── office.js │ │ ├── profile.js │ │ ├── project.js │ │ ├── settings.js │ │ └── team.js ├── lang │ ├── .DS_Store │ ├── ar │ │ ├── admin.php │ │ ├── auth.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── bn │ │ ├── admin.php │ │ ├── auth.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── bs │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ └── user.php │ ├── da │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── de │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── en │ │ ├── admin.php │ │ ├── auth.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── es-CR │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── es-ES │ │ ├── admin.php │ │ ├── auth.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── es-MX │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── fa │ │ ├── admin.php │ │ ├── auth.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── fi │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── fr-FR │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── hi │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── hr │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── id │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── it-IT │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── jp │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── ko_KR │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── la │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── ms │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── ne │ │ ├── admin.php │ │ ├── auth.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── nl-NL │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── pl │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── pt-BR │ │ ├── admin.php │ │ ├── auth.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── ru-RU │ │ ├── admin.php │ │ ├── auth.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── sr │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ └── user.php │ ├── sv-SE │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── th │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── tr-TR │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ ├── vi-VN │ │ ├── admin.php │ │ ├── auth.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php │ └── zh-CN │ │ ├── admin.php │ │ ├── home.php │ │ ├── misc.php │ │ ├── navbar.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── project.php │ │ ├── user.php │ │ └── validation.php └── views │ ├── admin │ └── index.blade.php │ ├── auth │ ├── login.blade.php │ ├── passwords │ │ ├── email.blade.php │ │ └── reset.blade.php │ └── register.blade.php │ ├── emails │ ├── invite.blade.php │ └── user-registered.blade.php │ ├── errors │ ├── 403.blade.php │ └── 404.blade.php │ ├── home.blade.php │ ├── layouts │ └── app.blade.php │ ├── offices │ └── single.blade.php │ ├── plugin-scripts │ └── .gitignore │ ├── projects │ └── single.blade.php │ ├── teams │ └── single.blade.php │ ├── users │ ├── profile.blade.php │ └── settings.blade.php │ └── vendor │ └── passport │ └── authorize.blade.php ├── routes ├── api.php ├── channels.php ├── console.php └── web.php ├── server.php ├── storage ├── app │ ├── .gitignore │ └── public │ │ └── .gitignore ├── config │ └── about.json ├── debugbar │ └── .gitignore ├── framework │ ├── .gitignore │ ├── cache │ │ ├── .gitignore │ │ └── data │ │ │ └── .gitignore │ ├── sessions │ │ └── .gitignore │ └── views │ │ └── .gitignore └── logs │ └── .gitignore ├── stubs ├── cast.stub ├── channel.stub ├── composer.json.stub ├── console.stub ├── controller.api.stub ├── controller.invokable.stub ├── controller.model.api.stub ├── controller.model.stub ├── controller.nested.api.stub ├── controller.nested.stub ├── controller.plain.stub ├── controller.stub ├── event.stub ├── exception-render-report.stub ├── exception-render.stub ├── exception-report.stub ├── exception.stub ├── factory.stub ├── job.queued.stub ├── job.stub ├── listener-duck.stub ├── listener-queued-duck.stub ├── listener-queued.stub ├── listener.stub ├── mail.stub ├── markdown-mail.stub ├── markdown-notification.stub ├── markdown.stub ├── middleware.stub ├── migration.create.stub ├── migration.stub ├── migration.update.stub ├── model.pivot.stub ├── model.stub ├── notification.stub ├── observer.plain.stub ├── observer.stub ├── policy.plain.stub ├── policy.stub ├── provider.stub ├── request.stub ├── resource-collection.stub ├── resource.stub ├── routes.stub ├── rule.stub ├── seeder.stub ├── test.stub ├── test.unit.stub └── view-component.stub ├── tailwind.config.js ├── tests ├── Browser │ ├── console │ │ └── .gitignore │ └── screenshots │ │ └── .gitignore ├── CreatesApplication.php ├── Feature │ ├── ActivityTest.php │ ├── AppSettingTableTest.php │ ├── Auth │ │ ├── ForgotPasswordTest.php │ │ ├── LoginTest.php │ │ └── ResetPasswordTest.php │ ├── AuthorizationTest.php │ ├── CategoryTest.php │ ├── CommentTest.php │ ├── CycleTest.php │ ├── DirectMessageTest.php │ ├── DiscussionNotificationTest.php │ ├── DiscussionTest.php │ ├── EventTest.php │ ├── FileTest.php │ ├── GroupPermissionTest.php │ ├── GroupSettingsTest.php │ ├── GroupTagTest.php │ ├── HomePageTest.php │ ├── IntegrationTest │ │ └── GithubIntegrationTest.php │ ├── MemberTest.php │ ├── MentionTest.php │ ├── MessageTest.php │ ├── NotificationTest.php │ ├── OfficeTest.php │ ├── PermissionSettingsTest.php │ ├── ProgressTest.php │ ├── ProjectTest.php │ ├── RegistrationInvitationTest.php │ ├── RoadmapTest.php │ ├── RoleTest.php │ ├── ServiceIntegrationTest.php │ ├── StatusTest.php │ ├── TagTest.php │ ├── TaskTest.php │ ├── TeamTest.php │ ├── UserRegistrationTest.php │ └── UserTest.php ├── TestCase.php ├── TestExceptionHandler.php └── Unit │ ├── DiscussionTest.php │ ├── EntityTest.php │ └── TaskTest.php ├── webpack.config.js ├── webpack.mix.js └── yarn.lock /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hasnayeen/goodwork/c559b7d4544ee58ac18f5eb00814e780fa0acdb9/.DS_Store -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | [ 4 | "@babel/preset-env", 5 | { 6 | "modules": false 7 | } 8 | ] 9 | ], 10 | "env": { 11 | "test": { 12 | "presets": [ 13 | [ 14 | "@babel/preset-env", 15 | { 16 | "targets": { 17 | "node": "current" 18 | } 19 | } 20 | ] 21 | ] 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | /public/storage 2 | /storage/*.key 3 | /.idea 4 | Homestead.json 5 | Homestead.yaml 6 | .phpintel 7 | npm-debug.log 8 | /.phpcomplete_extended 9 | .env.testing 10 | .env.dusk.local 11 | docker.env 12 | !Dockerfile 13 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.css linguist-vendored 3 | *.scss linguist-vendored 4 | public/* linguist-vendored -------------------------------------------------------------------------------- /.github/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | Be civil. 2 | 3 | Always assume the best intention from other people. 4 | 5 | Straight to the point and keep it relevant to the project. 6 | 7 | **N.B:** Remember, there is always a real ***Human Being*** on the other side of the computer screen. 8 | 9 | Report any misconduct to searching.nehal@gmail.com 10 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | # github: Hasnayeen 4 | open_collective: goodwork 5 | ko_fi: # Replace with a single Ko-fi username 6 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 7 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 8 | custom: # Replace with a single custom sponsorship URL 9 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/1_Bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: "🐛 Bug Report" 3 | about: 'Report a application issue.' 4 | 5 | --- 6 | 7 | ### Your environment: 8 | 9 | 10 | ### Installation Method: 11 | 12 | [] Single file installer 13 | 14 | [] Manually 15 | 16 | ### Description: 17 | 18 | 19 | ### Steps To Reproduce: 20 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/2_Support_question.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: "🧐 Support Question" 3 | about: 'Only reports bugs or problems here. For help, see: https://github.com/iluminar/goodwork/wiki or ask here https://discord.gg/4DvTQsc' 4 | 5 | --- 6 | 7 | This repository is only for reporting bugs or issues. If you need support, please use the discord community server: 8 | 9 | - https://discord.gg/4DvTQsc 10 | 11 | Thanks! 12 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/3_Feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: "💡 Feature Request" 3 | about: 'For ideas or feature requests, open a issue' 4 | 5 | --- 6 | 7 | If you would like to propose new features, please make a pull request, or open an issue starting with `[Feature Request]`. 8 | 9 | Alternatively, you may message Nehal Hasnayeen on the Goodwork Discord server's (https://discord.gg/4DvTQsc). 10 | -------------------------------------------------------------------------------- /.github/workflows/format_php.yml: -------------------------------------------------------------------------------- 1 | name: Format (PHP) 2 | 3 | on: 4 | push: 5 | branches: 6 | - dev 7 | paths: 8 | - '**.php' 9 | - '!vendor/**' 10 | 11 | jobs: 12 | php-cs-fixer: 13 | runs-on: ubuntu-latest 14 | steps: 15 | - uses: actions/checkout@v2 16 | 17 | - name: Install 18 | run: composer install 19 | 20 | - name: Run php-cs-fixer 21 | run: composer cs-fix 22 | 23 | - uses: stefanzweifel/git-auto-commit-action@v2.3.0 24 | with: 25 | commit_message: Apply php-cs-fixer changes 26 | branch: dev 27 | env: 28 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 29 | -------------------------------------------------------------------------------- /.github/workflows/standardjs.yml: -------------------------------------------------------------------------------- 1 | name: standardjs 2 | 3 | on: 4 | push: 5 | branches: 6 | - dev 7 | paths: 8 | - 'resources/**/**.js' 9 | 10 | jobs: 11 | standardjs: 12 | runs-on: ubuntu-latest 13 | 14 | steps: 15 | - uses: actions/checkout@v1 16 | if: github.base_ref == 'dev' 17 | with: 18 | fetch-depth: 1 19 | 20 | - name: StandardJs 21 | uses: jopereyral/standardjs-action@master 22 | if: github.base_ref == 'dev' 23 | with: 24 | args: --fix 25 | 26 | - name: Commit changed files 27 | uses: stefanzweifel/git-auto-commit-action@v2.1.0 28 | if: github.base_ref == 'dev' 29 | with: 30 | commit_message: Apply standardjs changes 31 | branch: ${{ github.head_ref }} 32 | env: 33 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /public/storage 3 | /storage/*.key 4 | /vendor 5 | /.idea 6 | Homestead.json 7 | Homestead.yaml 8 | .env 9 | .phpintel 10 | npm-debug.log 11 | /.phpcomplete_extended 12 | .env.testing 13 | .env.dusk.local 14 | docker.env 15 | /storage/framework/testing 16 | .vscode 17 | /storage/*.index 18 | .DS_Store 19 | .phpunit.result.cache 20 | *.swp 21 | .php_cs.cache 22 | package-lock.json 23 | public/js/**/*.js 24 | !public/js/manifest.js 25 | !public/js/*/*.min.js 26 | public/plugins 27 | *.apollo.* 28 | *.apollo 29 | .rnd -------------------------------------------------------------------------------- /app/Activity/Activity.php: -------------------------------------------------------------------------------- 1 | $groupType, 'group_id' => $groupId])->orderBy('created_at', 'desc')->get()->groupBy('date'); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/Authorization/AuthorizationServiceProvider.php: -------------------------------------------------------------------------------- 1 | app->bind('Authorization', function ($app) { 17 | return new Authorization(auth()->user()); 18 | }); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/Base/Console/Commands/AddNamespaceOption.php: -------------------------------------------------------------------------------- 1 | option('namespace')) { 17 | return "App\\$module\\"; 18 | } 19 | 20 | return 'App\Base\\'; 21 | } 22 | 23 | /** 24 | * Get the destination class path. 25 | * 26 | * @param string $name 27 | * @return string 28 | */ 29 | protected function getPath($name) 30 | { 31 | $name = Str::replaceFirst('App', '', $name); 32 | 33 | return $this->laravel['path'].'/'.str_replace('\\', '/', $name).'.php'; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/Base/Contracts/HasMembers.php: -------------------------------------------------------------------------------- 1 | json([ 18 | 'status' => 'error', 19 | 'message' => 'Unsupported media type', 20 | ], 415); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/Base/Exceptions/OwnerPermissionCantBeRevoked.php: -------------------------------------------------------------------------------- 1 | json([ 18 | 'status' => 'error', 19 | 'message' => 'Can\'t revoke permission from the role "Owner"', 20 | ], 403); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/Base/Exceptions/UserIsAlreadyMember.php: -------------------------------------------------------------------------------- 1 | json([ 12 | 'status' => 'error', 13 | 'message' => 'User is already a member', 14 | ], 409); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/Base/Exceptions/UserIsNotMember.php: -------------------------------------------------------------------------------- 1 | json([ 12 | 'status' => 'error', 13 | 'message' => 'User is not a member', 14 | ], 409); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/Base/Http/Controllers/ActivityController.php: -------------------------------------------------------------------------------- 1 | getActivitiesForGroup(request('group_type'), request('group_id')); 13 | 14 | return response()->json([ 15 | 'status' => 'success', 16 | 'activities' => $activities, 17 | ]); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/Base/Http/Controllers/AdminController.php: -------------------------------------------------------------------------------- 1 | getAllUsers([ 12 | 'id', 'name', 'username', 'email', 'timezone', 'avatar', 'role_id', 13 | ]); 14 | auth()->user()->setAppends(['unread_direct_messages']); 15 | 16 | return view('admin.index', ['users' => $users]); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/Base/Http/Controllers/GithubRepoController.php: -------------------------------------------------------------------------------- 1 | getAccessToken(); 14 | if ($token) { 15 | $repos = $this->getUserRepos($token); 16 | 17 | return response()->json([ 18 | 'status' => 'success', 19 | 'repos' => $repos, 20 | ]); 21 | } 22 | 23 | return response()->json([ 24 | 'status' => 'error', 25 | 'message' => 'Github Access Token is not set', 26 | ], 404); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/Base/Http/Controllers/HomeController.php: -------------------------------------------------------------------------------- 1 | userCurrentlyWorkingOn(auth()->user()->id); 17 | auth()->user()->setAppends(['unread_direct_messages']); 18 | 19 | if (request()->segment(1) === 'api') { 20 | return response()->json([ 21 | 'status' => 'success', 22 | 'current_work' => $currentWork, 23 | ]); 24 | } 25 | 26 | return view('home', ['currentWork' => $currentWork]); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/Base/Http/Controllers/NotificationController.php: -------------------------------------------------------------------------------- 1 | json([ 12 | 'status' => 'success', 13 | 'notifications' => auth()->user()->notifications, 14 | ]); 15 | } 16 | 17 | public function update(): JsonResponse 18 | { 19 | auth()->user()->unreadNotifications->markAsRead(); 20 | 21 | return response()->json([ 22 | 'status' => 'success', 23 | 'message' => 'Notifications are marked as read', 24 | ]); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/Base/Http/Controllers/PermissionController.php: -------------------------------------------------------------------------------- 1 | groupBy('resource'); 12 | 13 | return response()->json([ 14 | 'status' => 'success', 15 | 'permissions' => $permissions, 16 | ]); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/Base/Http/Controllers/RoleController.php: -------------------------------------------------------------------------------- 1 | json([ 14 | 'status' => 'success', 15 | 'roles' => $roles, 16 | ]); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/Base/Http/Controllers/UnreadNotificationController.php: -------------------------------------------------------------------------------- 1 | json([ 12 | 'status' => 'success', 13 | 'notifications' => auth()->user()->unreadNotifications, 14 | ]); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/Base/Http/Controllers/UserProfileController.php: -------------------------------------------------------------------------------- 1 | user()->update($request->all()); 12 | 13 | return response()->json([ 14 | 'status' => 'success', 15 | 'message' => localize('misc.Account profile are updated'), 16 | ]); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/Base/Http/Middleware/EncryptCookies.php: -------------------------------------------------------------------------------- 1 | check()) { 21 | return redirect('/'); 22 | } 23 | 24 | return $next($request); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/Base/Http/Middleware/RedirectIfNotAdmin.php: -------------------------------------------------------------------------------- 1 | userCanViewAdminPage()) { 20 | return $next($request); 21 | } 22 | 23 | return redirect('/'); 24 | } 25 | 26 | private function userCanViewAdminPage() 27 | { 28 | return resolve('Authorization')->userHasPermissionTo('view', 'admin'); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/Base/Http/Middleware/TrimStrings.php: -------------------------------------------------------------------------------- 1 | 'required|boolean' 28 | ]; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/Base/Http/Requests/CategoryStoreRequest.php: -------------------------------------------------------------------------------- 1 | user(); 17 | } 18 | 19 | /** 20 | * Get the validation rules that apply to the request. 21 | * 22 | * @return array 23 | */ 24 | public function rules() 25 | { 26 | return [ 27 | 'name' => 'required', 28 | ]; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/Base/Http/Requests/StoreDirectMessageRequest.php: -------------------------------------------------------------------------------- 1 | 'string|min:1', 28 | 'receiver_id' => 'integer|required', 29 | ]; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/Base/Http/Requests/StoreMessageRequest.php: -------------------------------------------------------------------------------- 1 | 'string|min:1', 28 | 'group_type' => 'string|required', 29 | 'group_id' => 'integer|required', 30 | ]; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/Base/Http/Requests/ValidateFileCreation.php: -------------------------------------------------------------------------------- 1 | 'required|file', 29 | ]; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/Base/Jobs/BackupDatabase.php: -------------------------------------------------------------------------------- 1 | format('j_M_Y_g_i_a') . '.zip'; 25 | Artisan::call('backup:run', ['--only-db' => true, '--filename' => $filename]); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/Base/Models/AllowedPermission.php: -------------------------------------------------------------------------------- 1 | hasMany(\App\Base\Models\Discussion::class); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /app/Base/Models/Contracts/Group.php: -------------------------------------------------------------------------------- 1 | 'datetime:M j, Y', 13 | 'end_date' => 'datetime:M j, Y', 14 | ]; 15 | 16 | /** 17 | * @return \Illuminate\Database\Eloquent\Relations\MorphTo 18 | */ 19 | public function cyclable() 20 | { 21 | return $this->morphTo(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/Base/Models/DirectMessage.php: -------------------------------------------------------------------------------- 1 | belongsTo(User::class, 'sender_id'); 14 | } 15 | 16 | public function user() 17 | { 18 | return $this->sender(); 19 | } 20 | 21 | public function receiver() 22 | { 23 | return $this->belongsTo(User::class, 'receiver_id'); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/Base/Models/Event.php: -------------------------------------------------------------------------------- 1 | 'integer', 15 | ]; 16 | 17 | public function owner() 18 | { 19 | return $this->belongsTo(User::class, 'owner_id'); 20 | } 21 | 22 | public function getDateAttribute() 23 | { 24 | return $this->created_at ? $this->created_at->format('M j') : null; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/Base/Models/GithubRepo.php: -------------------------------------------------------------------------------- 1 | morphTo(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /app/Base/Models/Message.php: -------------------------------------------------------------------------------- 1 | belongsTo(User::class); 14 | } 15 | 16 | public function messageable() 17 | { 18 | return $this->morphTo(); 19 | } 20 | 21 | public function mentions() 22 | { 23 | return $this->morphMany(Mention::class, 'mentionable'); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/Base/Models/Milestone.php: -------------------------------------------------------------------------------- 1 | 'array', 11 | 'read_at' => 'datetime', 12 | 'notifiable_id' => 'integer', 13 | ]; 14 | 15 | protected $appends = ['date', 'time']; 16 | 17 | public function getDateAttribute() 18 | { 19 | return $this->created_at->diffForHumans(); 20 | } 21 | 22 | public function getTimeAttribute() 23 | { 24 | return $this->created_at->format('h:i A'); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/Base/Models/NotificationSetting.php: -------------------------------------------------------------------------------- 1 | belongsToMany(Role::class, 'role_has_permission'); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/Base/Models/PermissionSetting.php: -------------------------------------------------------------------------------- 1 | belongsToMany(Permission::class, 'role_has_permission'); 12 | } 13 | 14 | public function defaultPermissions() 15 | { 16 | return $this->belongsToMany(Permission::class, 'permission_settings'); 17 | } 18 | 19 | public function permissionsOnGroup($groupType, $groupId) 20 | { 21 | return $this->belongsToMany(Permission::class, 'role_has_permission')->wherePivot('group_type', $groupType)->wherePivot('group_id', $groupId); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/Base/Models/RoleHasPermission.php: -------------------------------------------------------------------------------- 1 | 'boolean', 13 | 'enabled' => 'boolean', 14 | ]; 15 | } 16 | -------------------------------------------------------------------------------- /app/Base/Models/Setting.php: -------------------------------------------------------------------------------- 1 | userHasPermissionTo('update', 'app-settings'); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/Base/Policies/DirectMessagePolicy.php: -------------------------------------------------------------------------------- 1 | id == $directMessage->sender_id; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/Base/Policies/FilePolicy.php: -------------------------------------------------------------------------------- 1 | userHasPermissionTo('delete', 'file', $file->id, true, request('group_type'), request('group_id')); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/Base/Policies/TagPolicy.php: -------------------------------------------------------------------------------- 1 | userHasPermissionTo('create', 'tag'); 17 | } 18 | 19 | /** 20 | * @TODO 21 | */ 22 | public function attach(User $user) 23 | { 24 | return (new Authorization($user))->userHasPermissionTo('attach', 'tag'); 25 | } 26 | 27 | /** 28 | * @TODO 29 | */ 30 | public function detach(User $user, Tag $tag) 31 | { 32 | return (new Authorization($user))->userHasPermissionTo('detach', 'tag'); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/Base/Providers/BroadcastServiceProvider.php: -------------------------------------------------------------------------------- 1 | model = $category; 14 | } 15 | 16 | public function getAllCategories() 17 | { 18 | return $this->model->get(); 19 | } 20 | 21 | public function create(array $attributes) 22 | { 23 | return $this->model->create($attributes); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/Base/Repositories/EventRepository.php: -------------------------------------------------------------------------------- 1 | model = $event; 14 | } 15 | 16 | public function getAllEvents() 17 | { 18 | return $this->model->get(); 19 | } 20 | 21 | public function create(array $attributes) 22 | { 23 | return $this->model->create($attributes); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/Base/Repositories/TagRepository.php: -------------------------------------------------------------------------------- 1 | model = $tag; 14 | } 15 | 16 | public function getAllTags() 17 | { 18 | return $this->model->get(['id', 'label']); 19 | } 20 | 21 | public function create() 22 | { 23 | return $this->model->create([ 24 | 'label' => request('label'), 25 | ]); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/Base/Repositories/UserRepository.php: -------------------------------------------------------------------------------- 1 | model = $user; 14 | } 15 | 16 | public function getAllUsers(array $columns = ['id', 'name', 'username', 'avatar']) 17 | { 18 | return $this->model->with('role')->get($columns); 19 | } 20 | 21 | public function getUserByEmail(string $email) 22 | { 23 | return $this->model->where('email', $email)->select(['name', 'username', 'bio', 'designation', 'email', 'timezone', 'week_start', 'lang', 'location'])->first(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/Base/Utilities/FileUtilities.php: -------------------------------------------------------------------------------- 1 | getClientOriginalName(); 11 | $data['path'] = $file->storeAs( 12 | '/', 13 | $data['name'], 14 | ['disk' => 'public'] 15 | ); 16 | $data['fileable_type'] = request('group_type'); 17 | $data['fileable_id'] = request('group_id'); 18 | $data['mime_type'] = $file->getMimeType(); 19 | $data['owner_id'] = auth()->user()->id; 20 | $data['created_at'] = $now; 21 | $data['updated_at'] = $now; 22 | 23 | return $data; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/Base/Utilities/GetRecipientsTrait.php: -------------------------------------------------------------------------------- 1 | first()->members()->get() 21 | ->filter(function (User $user) use ($ownerId) { 22 | return $user->getKey() !== $ownerId; 23 | }); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/Base/Utilities/Notifiable.php: -------------------------------------------------------------------------------- 1 | morphMany(Notification::class, 'notifiable') 18 | ->orderBy('created_at', 'desc'); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/Discussion/DiscussionServiceProvider.php: -------------------------------------------------------------------------------- 1 | loadRoutesFrom(__DIR__.'/routes.php'); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/Observers/OfficeObserver.php: -------------------------------------------------------------------------------- 1 | $office->id]); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/Observers/TeamObserver.php: -------------------------------------------------------------------------------- 1 | $team->id]); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/Office/Models/OfficeSetting.php: -------------------------------------------------------------------------------- 1 | loadRoutesFrom(__DIR__.'/routes.php'); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/Office/Requests/StoreOfficeRequest.php: -------------------------------------------------------------------------------- 1 | 'required|string', 29 | 'description' => 'required|string', 30 | ]; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/Project/Models/ProjectSetting.php: -------------------------------------------------------------------------------- 1 | $project->id]); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/Project/ProjectServiceProvider.php: -------------------------------------------------------------------------------- 1 | loadRoutesFrom(__DIR__.'/routes.php'); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/Project/Requests/StoreProjectRequest.php: -------------------------------------------------------------------------------- 1 | 'required|string', 28 | 'description' => 'required|string', 29 | 'office_id' => 'integer', 30 | 'team_id' => 'integer', 31 | ]; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/TaskManager/Controllers/TaskStatusController.php: -------------------------------------------------------------------------------- 1 | authorize('update', $task); 14 | $task->status_id = $status->id; 15 | $task->save(); 16 | 17 | $task->load('user', 'status', 'tags'); 18 | 19 | return response()->json([ 20 | 'status' => 'success', 21 | 'message' => localize('misc.Task status has been updated'), 22 | 'task' => $task, 23 | ], 201); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/TaskManager/Models/Status.php: -------------------------------------------------------------------------------- 1 | hasMany(Task::class); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/TaskManager/Models/Step.php: -------------------------------------------------------------------------------- 1 | 'integer', 14 | ]; 15 | 16 | public function setTaskAttribute(Task $task) 17 | { 18 | $this->attributes['task_id'] = $task->getKey(); 19 | $this->setRelation('task', $task); 20 | } 21 | 22 | public function getUpdatedAtAttribute($value) 23 | { 24 | return Carbon::parse($value)->diffForHumans(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/TaskManager/Repositories/StatusRepository.php: -------------------------------------------------------------------------------- 1 | model = $status; 14 | } 15 | 16 | public function getAllStatus() 17 | { 18 | return $this->model->get(['id', 'name', 'color']); 19 | } 20 | 21 | public function storeStatus($data) 22 | { 23 | return $this->model->create([ 24 | 'name' => $data['name'], 25 | 'color' => $data['color'], 26 | ]); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/TaskManager/Requests/ValidateStatusCreation.php: -------------------------------------------------------------------------------- 1 | 'required|max:25', 18 | 'color' => 'required|regex:/^#([0-9a-f]{3}){1,2}$/i', 19 | ]; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/TaskManager/TaskManagerServiceProvider.php: -------------------------------------------------------------------------------- 1 | loadRoutesFrom(__DIR__.'/routes.php'); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/Team/Models/TeamSetting.php: -------------------------------------------------------------------------------- 1 | loadRoutesFrom(__DIR__.'/routes.php'); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /bootstrap/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /config/hashing.php: -------------------------------------------------------------------------------- 1 | 'bcrypt', 18 | ]; 19 | -------------------------------------------------------------------------------- /config/notification.php: -------------------------------------------------------------------------------- 1 | explode(',', env('NOTIFICATION_CHANNELS')), 14 | 15 | ]; 16 | -------------------------------------------------------------------------------- /database/.gitignore: -------------------------------------------------------------------------------- 1 | *.sqlite 2 | -------------------------------------------------------------------------------- /database/factories/CategoryFactory.php: -------------------------------------------------------------------------------- 1 | define(\App\Base\Models\Category::class, function (Faker $faker) { 6 | return [ 7 | 'name' => $faker->name, 8 | ]; 9 | }); 10 | -------------------------------------------------------------------------------- /database/factories/DirectMessageFactory.php: -------------------------------------------------------------------------------- 1 | define(DirectMessage::class, function (Faker $faker) { 9 | return [ 10 | 'body' => $faker->sentence(20, true), 11 | 'sender_id' => factory(App\Base\Models\User::class)->create()->id, 12 | 'receiver_id' => factory(App\Base\Models\User::class)->create()->id, 13 | ]; 14 | }); 15 | -------------------------------------------------------------------------------- /database/factories/EventFactory.php: -------------------------------------------------------------------------------- 1 | define(\App\Base\Models\Event::class, function (Faker $faker) { 6 | return [ 7 | 'name' => $faker->name, 8 | 'description' => $faker->sentence, 9 | 'time' => $faker->text, 10 | 'created_by' => 1, 11 | 'eventable_type' => $faker->text, 12 | 'eventable_id' => 1, 13 | ]; 14 | }); 15 | -------------------------------------------------------------------------------- /database/factories/OfficeFactory.php: -------------------------------------------------------------------------------- 1 | define(App\Office\Models\Office::class, function (Faker\Generator $faker) { 7 | $now = Carbon::now(); 8 | 9 | return [ 10 | 'name' => $faker->word, 11 | 'description' => $faker->sentence, 12 | 'created_at' => $now, 13 | 'updated_at' => $now, 14 | 'owner_id' => factory(App\Base\Models\User::class)->create()->id, 15 | ]; 16 | }); 17 | -------------------------------------------------------------------------------- /database/factories/PermissionFactory.php: -------------------------------------------------------------------------------- 1 | define(Permission::class, function (Faker\Generator $faker) { 6 | return [ 7 | 'name' => $faker->word, 8 | 'guard_name' => 'web', 9 | ]; 10 | }); 11 | -------------------------------------------------------------------------------- /database/factories/ProjectFactory.php: -------------------------------------------------------------------------------- 1 | define(App\Project\Models\Project::class, function (Faker\Generator $faker) { 7 | $now = Carbon::now(); 8 | 9 | return [ 10 | 'name' => $faker->name, 11 | 'description' => $faker->sentence, 12 | 'created_at' => $now, 13 | 'updated_at' => $now, 14 | 'owner_id' => factory(App\Base\Models\User::class)->create()->id, 15 | ]; 16 | }); 17 | -------------------------------------------------------------------------------- /database/factories/StatusFactory.php: -------------------------------------------------------------------------------- 1 | define(App\TaskManager\Models\Status::class, function (Faker\Generator $faker) { 4 | return [ 5 | 'name' => $faker->name, 6 | 'color' => $faker->hexColor, 7 | ]; 8 | }); 9 | -------------------------------------------------------------------------------- /database/factories/StepFactory.php: -------------------------------------------------------------------------------- 1 | define(Step::class, function (Faker $faker) { 10 | return [ 11 | 'description' => $faker->sentence(5), 12 | 'unknown' => $faker->boolean(), 13 | 'done' => false, 14 | 'task_id' => factory(Task::class)->create()->id, 15 | ]; 16 | }); 17 | -------------------------------------------------------------------------------- /database/factories/TagFactory.php: -------------------------------------------------------------------------------- 1 | define(App\Base\Models\Tag::class, function (Faker $faker) { 6 | return [ 7 | 'label' => $faker->unique()->word(), 8 | ]; 9 | }); 10 | -------------------------------------------------------------------------------- /database/factories/TokenFactory.php: -------------------------------------------------------------------------------- 1 | define(Token::class, function (Faker $faker) { 8 | $role = Role::first(); 9 | 10 | return [ 11 | 'token' => encrypt(3), 12 | 'email' => $faker->unique()->safeEmail, 13 | 'role_id' => $faker->numberBetween(1, 5), 14 | ]; 15 | }); 16 | -------------------------------------------------------------------------------- /database/migrations/2017_02_15_045809_create_categories_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('name')->unique(); 19 | $table->timestamps(); 20 | }); 21 | } 22 | 23 | /** 24 | * Reverse the migrations. 25 | * 26 | * @return void 27 | */ 28 | public function down() 29 | { 30 | Schema::dropIfExists('categories'); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /database/migrations/2017_02_15_050733_create_settings_table.php: -------------------------------------------------------------------------------- 1 | string('company_name'); 18 | $table->string('company_logo')->nullable(); 19 | $table->timestamps(); 20 | }); 21 | } 22 | 23 | /** 24 | * Reverse the migrations. 25 | * 26 | * @return void 27 | */ 28 | public function down() 29 | { 30 | Schema::dropIfExists('settings'); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /database/migrations/2017_02_19_052952_create_labels_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('name'); 19 | $table->timestamps(); 20 | }); 21 | } 22 | 23 | /** 24 | * Reverse the migrations. 25 | * 26 | * @return void 27 | */ 28 | public function down() 29 | { 30 | Schema::dropIfExists('labels'); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /database/migrations/2017_02_19_143257_create_tokens_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('token')->index(); 19 | $table->string('email'); 20 | $table->timestamps(); 21 | }); 22 | } 23 | 24 | /** 25 | * Reverse the migrations. 26 | * 27 | * @return void 28 | */ 29 | public function down() 30 | { 31 | Schema::dropIfExists('tokens'); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2018_10_11_185823_create_statuses_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('name')->unique(); 19 | $table->char('color', 7); 20 | $table->timestamps(); 21 | }); 22 | } 23 | 24 | /** 25 | * Reverse the migrations. 26 | * 27 | * @return void 28 | */ 29 | public function down() 30 | { 31 | Schema::dropIfExists('statuses'); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2018_10_12_180714_update_tasks_columns.php: -------------------------------------------------------------------------------- 1 | integer('status_id')->unsigned()->nullable(); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | // column is dropped in the base tasks migration 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /database/migrations/2018_10_14_091132_add_lang_column_to_users_table.php: -------------------------------------------------------------------------------- 1 | string('lang')->default('en'); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | Schema::table('users', function (Blueprint $table) { 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2018_10_15_070538_create_tags_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('label')->unique(); 19 | $table->timestamps(); 20 | }); 21 | } 22 | 23 | /** 24 | * Reverse the migrations. 25 | * 26 | * @return void 27 | */ 28 | public function down() 29 | { 30 | Schema::dropIfExists('tags'); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /database/migrations/2018_10_15_071414_create_task_tags_table.php: -------------------------------------------------------------------------------- 1 | unsignedInteger('task_id'); 18 | $table->unsignedInteger('tag_id'); 19 | 20 | $table->primary(['task_id', 'tag_id']); 21 | }); 22 | } 23 | 24 | /** 25 | * Reverse the migrations. 26 | * 27 | * @return void 28 | */ 29 | public function down() 30 | { 31 | Schema::dropIfExists('task_tags'); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2019_02_02_140503_add_active_column_to_services_table.php: -------------------------------------------------------------------------------- 1 | boolean('active')->default(false)->comment('Is the service is set'); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | Schema::table('services', function (Blueprint $table) { 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2019_05_20_175412_create_roles_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('name'); 19 | $table->string('slug'); 20 | $table->timestamps(); 21 | }); 22 | } 23 | 24 | /** 25 | * Reverse the migrations. 26 | * 27 | * @return void 28 | */ 29 | public function down() 30 | { 31 | Schema::dropIfExists('roles'); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2019_06_18_135056_add_location_column_to_users_table.php: -------------------------------------------------------------------------------- 1 | string('location')->nullable(); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | Schema::table('users', function (Blueprint $table) { 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2019_06_19_205311_add_hash_column_to_files_table.php: -------------------------------------------------------------------------------- 1 | string('hash'); 19 | }); 20 | } 21 | } 22 | 23 | /** 24 | * Reverse the migrations. 25 | * 26 | * @return void 27 | */ 28 | public function down() 29 | { 30 | Schema::table('files', function (Blueprint $table) { 31 | }); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2019_07_05_081127_make_github_repo_id_column_unique.php: -------------------------------------------------------------------------------- 1 | unique('github_repo_id'); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | Schema::table('github_repos', function (Blueprint $table) { 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2020_03_02_141837_update_steps_library.php: -------------------------------------------------------------------------------- 1 | string('title')->nullable(); 19 | }); 20 | } 21 | } 22 | 23 | /** 24 | * Reverse the migrations. 25 | * 26 | * @return void 27 | */ 28 | public function down() 29 | { 30 | Schema::table('steps', function (Blueprint $table) { 31 | }); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2020_04_08_175850_update_messages_table.php: -------------------------------------------------------------------------------- 1 | longText('body')->change(); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | Schema::table('messages', function (Blueprint $table) { 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/seeders/DatabaseSeeder.php: -------------------------------------------------------------------------------- 1 | call(PermissionTableSeeder::class); 17 | $this->call(RoleTableSeeder::class); 18 | $this->call(AdminUserSeeder::class); 19 | $this->call(HeadquarterOfficeSeeder::class); 20 | $this->call(CategorySeeder::class); 21 | $this->call(StatusesTableSeeder::class); 22 | $this->call(ServicesTableSeeder::class); 23 | $this->call(PermissionSettingsTableSeeder::class); 24 | $this->call(RoleHasPermissionTableSeeder::class); 25 | $this->call(AppSettingTableSeeder::class); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /database/seeders/RoleTableSeeder.php: -------------------------------------------------------------------------------- 1 | 'Owner', 'slug' => 'owner']); 18 | Role::create(['name' => 'Admin', 'slug' => 'admin']); 19 | Role::create(['name' => 'Member', 'slug' => 'member']); 20 | Role::create(['name' => 'Client', 'slug' => 'client']); 21 | Role::create(['name' => 'Guest', 'slug' => 'guest']); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /database/seeders/ServicesTableSeeder.php: -------------------------------------------------------------------------------- 1 | 'github', 19 | ]); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /docker/dev/Caddyfile: -------------------------------------------------------------------------------- 1 | {env.APP_URL} { 2 | @websockets { 3 | header Connection *Upgrade* 4 | header Upgrade websocket 5 | path /app* 6 | } 7 | root * /var/www/public 8 | reverse_proxy @websockets websocket:6001 9 | php_fastcgi php:9000 10 | 11 | encode gzip 12 | file_server 13 | log { 14 | output file /var/log/access.log 15 | } 16 | tls internal 17 | } 18 | -------------------------------------------------------------------------------- /docker/prod/Caddyfile: -------------------------------------------------------------------------------- 1 | {$APP_URL} { 2 | @websockets { 3 | header Connection *Upgrade* 4 | header Upgrade websocket 5 | path /app* 6 | } 7 | root * /var/www/public 8 | reverse_proxy @websockets websocket:6001 9 | php_fastcgi php:9000 10 | 11 | encode gzip 12 | file_server 13 | log { 14 | output file /var/log/access.log 15 | } 16 | tls internal 17 | } 18 | -------------------------------------------------------------------------------- /docker/websocket.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.4-cli 2 | 3 | LABEL Description="This image is part of Goodwork application setup" 4 | 5 | RUN apt-get update && apt-get -y install --no-install-recommends mariadb-client libzip-dev zlib1g-dev && docker-php-ext-install pdo_mysql bcmath zip 6 | 7 | EXPOSE 6001 8 | 9 | # Set the WORKDIR to /var/www/goodwork so all following commands run in /var/www/goodwork 10 | WORKDIR /var/www 11 | -------------------------------------------------------------------------------- /docker/worker.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.4-cli 2 | 3 | LABEL Description="This image is part of Goodwork application setup" 4 | 5 | RUN apt-get update && apt-get -y install --no-install-recommends mariadb-client libzip-dev zlib1g-dev && docker-php-ext-install pdo_mysql bcmath zip 6 | 7 | # Set the WORKDIR to /var/www/goodwork so all following commands run in /var/www/goodwork 8 | WORKDIR /var/www 9 | -------------------------------------------------------------------------------- /plugins/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | vendor 3 | composer.json 4 | !.gitignore -------------------------------------------------------------------------------- /public/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | 3 | Options -MultiViews 4 | 5 | 6 | RewriteEngine On 7 | 8 | # Redirect Trailing Slashes If Not A Folder... 9 | RewriteCond %{REQUEST_FILENAME} !-d 10 | RewriteRule ^(.*)/$ /$1 [L,R=301] 11 | 12 | # Handle Front Controller... 13 | RewriteCond %{REQUEST_FILENAME} !-d 14 | RewriteCond %{REQUEST_FILENAME} !-f 15 | RewriteRule ^ index.php [L] 16 | 17 | # Handle Authorization Header 18 | RewriteCond %{HTTP:Authorization} . 19 | RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 20 | 21 | -------------------------------------------------------------------------------- /public/alarm_bell.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hasnayeen/goodwork/c559b7d4544ee58ac18f5eb00814e780fa0acdb9/public/alarm_bell.mp3 -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hasnayeen/goodwork/c559b7d4544ee58ac18f5eb00814e780fa0acdb9/public/favicon.ico -------------------------------------------------------------------------------- /public/image/avatar-profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hasnayeen/goodwork/c559b7d4544ee58ac18f5eb00814e780fa0acdb9/public/image/avatar-profile.png -------------------------------------------------------------------------------- /public/image/avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hasnayeen/goodwork/c559b7d4544ee58ac18f5eb00814e780fa0acdb9/public/image/avatar.jpg -------------------------------------------------------------------------------- /public/js/admin/index.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * Pusher JavaScript Library v7.0.0 3 | * https://pusher.com/ 4 | * 5 | * Copyright 2020, Pusher 6 | * Released under the MIT licence. 7 | */ 8 | 9 | /*! 10 | * vuex v3.5.1 11 | * (c) 2020 Evan You 12 | * @license MIT 13 | */ 14 | -------------------------------------------------------------------------------- /public/js/auth/login.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * Pusher JavaScript Library v7.0.0 3 | * https://pusher.com/ 4 | * 5 | * Copyright 2020, Pusher 6 | * Released under the MIT licence. 7 | */ 8 | -------------------------------------------------------------------------------- /public/js/auth/register.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * Pusher JavaScript Library v7.0.0 3 | * https://pusher.com/ 4 | * 5 | * Copyright 2020, Pusher 6 | * Released under the MIT licence. 7 | */ 8 | -------------------------------------------------------------------------------- /public/js/errors/404.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * Pusher JavaScript Library v7.0.0 3 | * https://pusher.com/ 4 | * 5 | * Copyright 2020, Pusher 6 | * Released under the MIT licence. 7 | */ 8 | 9 | /*! 10 | * vuex v3.5.1 11 | * (c) 2020 Evan You 12 | * @license MIT 13 | */ 14 | -------------------------------------------------------------------------------- /public/js/home.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * Pusher JavaScript Library v7.0.0 3 | * https://pusher.com/ 4 | * 5 | * Copyright 2020, Pusher 6 | * Released under the MIT licence. 7 | */ 8 | 9 | /*! 10 | * Quill Editor v1.3.7 11 | * https://quilljs.com/ 12 | * Copyright (c) 2014, Jason Chen 13 | * Copyright (c) 2013, salesforce.com 14 | */ 15 | 16 | /*! 17 | * The buffer module from node.js, for the browser. 18 | * 19 | * @author Feross Aboukhadijeh 20 | * @license MIT 21 | */ 22 | 23 | /*! 24 | * vuex v3.5.1 25 | * (c) 2020 Evan You 26 | * @license MIT 27 | */ 28 | -------------------------------------------------------------------------------- /public/js/offices/single.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * Pusher JavaScript Library v7.0.0 3 | * https://pusher.com/ 4 | * 5 | * Copyright 2020, Pusher 6 | * Released under the MIT licence. 7 | */ 8 | 9 | /*! 10 | * Quill Editor v1.3.7 11 | * https://quilljs.com/ 12 | * Copyright (c) 2014, Jason Chen 13 | * Copyright (c) 2013, salesforce.com 14 | */ 15 | 16 | /*! 17 | * The buffer module from node.js, for the browser. 18 | * 19 | * @author Feross Aboukhadijeh 20 | * @license MIT 21 | */ 22 | 23 | /*! 24 | * vuex v3.5.1 25 | * (c) 2020 Evan You 26 | * @license MIT 27 | */ 28 | -------------------------------------------------------------------------------- /public/js/projects/single.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * Pusher JavaScript Library v7.0.0 3 | * https://pusher.com/ 4 | * 5 | * Copyright 2020, Pusher 6 | * Released under the MIT licence. 7 | */ 8 | 9 | /*! 10 | * Quill Editor v1.3.7 11 | * https://quilljs.com/ 12 | * Copyright (c) 2014, Jason Chen 13 | * Copyright (c) 2013, salesforce.com 14 | */ 15 | 16 | /*! 17 | * The buffer module from node.js, for the browser. 18 | * 19 | * @author Feross Aboukhadijeh 20 | * @license MIT 21 | */ 22 | 23 | /*! 24 | * vuex v3.5.1 25 | * (c) 2020 Evan You 26 | * @license MIT 27 | */ 28 | -------------------------------------------------------------------------------- /public/js/teams/single.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * Pusher JavaScript Library v7.0.0 3 | * https://pusher.com/ 4 | * 5 | * Copyright 2020, Pusher 6 | * Released under the MIT licence. 7 | */ 8 | 9 | /*! 10 | * Quill Editor v1.3.7 11 | * https://quilljs.com/ 12 | * Copyright (c) 2014, Jason Chen 13 | * Copyright (c) 2013, salesforce.com 14 | */ 15 | 16 | /*! 17 | * The buffer module from node.js, for the browser. 18 | * 19 | * @author Feross Aboukhadijeh 20 | * @license MIT 21 | */ 22 | 23 | /*! 24 | * vuex v3.5.1 25 | * (c) 2020 Evan You 26 | * @license MIT 27 | */ 28 | -------------------------------------------------------------------------------- /public/js/users/profile.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * Pusher JavaScript Library v7.0.0 3 | * https://pusher.com/ 4 | * 5 | * Copyright 2020, Pusher 6 | * Released under the MIT licence. 7 | */ 8 | 9 | /*! 10 | * vuex v3.5.1 11 | * (c) 2020 Evan You 12 | * @license MIT 13 | */ 14 | -------------------------------------------------------------------------------- /public/js/users/settings.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * Pusher JavaScript Library v7.0.0 3 | * https://pusher.com/ 4 | * 5 | * Copyright 2020, Pusher 6 | * Released under the MIT licence. 7 | */ 8 | 9 | /*! 10 | * vuex v3.5.1 11 | * (c) 2020 Evan You 12 | * @license MIT 13 | */ 14 | -------------------------------------------------------------------------------- /public/js/vendor.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * Vue.js v2.6.12 3 | * (c) 2014-2020 Evan You 4 | * Released under the MIT License. 5 | */ 6 | -------------------------------------------------------------------------------- /public/logos/logo-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /public/logos/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /public/logos/logo_square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hasnayeen/goodwork/c559b7d4544ee58ac18f5eb00814e780fa0acdb9/public/logos/logo_square.png -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /public/vendor/telescope/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hasnayeen/goodwork/c559b7d4544ee58ac18f5eb00814e780fa0acdb9/public/vendor/telescope/favicon.ico -------------------------------------------------------------------------------- /public/vendor/telescope/mix-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "/app.js": "/app.js?id=7d1766d1d0c3e73a913c", 3 | "/app.css": "/app.css?id=11fa83493c95c672325c", 4 | "/app-dark.css": "/app-dark.css?id=9f68f3c353c3417fd043" 5 | } 6 | -------------------------------------------------------------------------------- /resources/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hasnayeen/goodwork/c559b7d4544ee58ac18f5eb00814e780fa0acdb9/resources/.DS_Store -------------------------------------------------------------------------------- /resources/assets/js/components/partials/eventBoard.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{ 'Is something important coming up? Create a Event' | localize }} 5 | 6 | 7 | 8 | 9 | 10 | 31 | -------------------------------------------------------------------------------- /resources/assets/js/pages/admin/index.js: -------------------------------------------------------------------------------- 1 | import './../../bootstrap' 2 | import componentMixin from './../commonComponent' 3 | import index from './../../components/admin/index.vue' 4 | import store from './../../store/admin' 5 | 6 | /* eslint-disable no-unused-vars */ 7 | const app = new Vue({ 8 | el: '#app', 9 | mixins: [componentMixin], 10 | components: { 11 | index 12 | }, 13 | store 14 | }) 15 | -------------------------------------------------------------------------------- /resources/assets/js/pages/auth/email.js: -------------------------------------------------------------------------------- 1 | import './../../bootstrap' 2 | import email from './../../components/auth/email.vue' 3 | 4 | /* eslint-disable no-unused-vars */ 5 | const app = new Vue({ 6 | el: '#app', 7 | components: { 8 | email 9 | } 10 | }) 11 | -------------------------------------------------------------------------------- /resources/assets/js/pages/auth/login.js: -------------------------------------------------------------------------------- 1 | import './../../bootstrap' 2 | import login from './../../components/auth/login.vue' 3 | 4 | /* eslint-disable no-unused-vars */ 5 | const app = new Vue({ 6 | el: '#app', 7 | components: { 8 | login 9 | } 10 | }) 11 | -------------------------------------------------------------------------------- /resources/assets/js/pages/auth/register.js: -------------------------------------------------------------------------------- 1 | import './../../bootstrap' 2 | import register from './../../components/auth/register.vue' 3 | 4 | /* eslint-disable no-unused-vars */ 5 | const app = new Vue({ 6 | el: '#app', 7 | components: { 8 | register 9 | } 10 | }) 11 | -------------------------------------------------------------------------------- /resources/assets/js/pages/auth/reset.js: -------------------------------------------------------------------------------- 1 | import './../../bootstrap' 2 | import reset from './../../components/auth/reset.vue' 3 | 4 | /* eslint-disable no-unused-vars */ 5 | const app = new Vue({ 6 | el: '#app', 7 | components: { 8 | reset 9 | } 10 | }) 11 | -------------------------------------------------------------------------------- /resources/assets/js/pages/commonComponent.js: -------------------------------------------------------------------------------- 1 | import navbar from './../components/partials/navbar.vue' 2 | import notificationPopup from './../components/partials/notificationPopup.vue' 3 | import messageBox from './../components/partials/messageBox.vue' 4 | import notificationBox from './../components/partials/notificationBox.vue' 5 | import loadingModal from './../components/partials/loadingModal.vue' 6 | import timer from './../components/partials/timer.vue' 7 | 8 | /* eslint-disable no-unused-vars */ 9 | var componentMixin = { 10 | components: { 11 | navbar, notificationPopup, notificationBox, messageBox, loadingModal, timer 12 | } 13 | } 14 | 15 | export default componentMixin 16 | -------------------------------------------------------------------------------- /resources/assets/js/pages/errors/404.js: -------------------------------------------------------------------------------- 1 | import './../../bootstrap' 2 | import componentMixin from './../commonComponent' 3 | 4 | /* eslint-disable no-unused-vars */ 5 | const app = new Vue({ 6 | el: '#app', 7 | mixins: [componentMixin] 8 | }) 9 | -------------------------------------------------------------------------------- /resources/assets/js/pages/home.js: -------------------------------------------------------------------------------- 1 | import './../bootstrap' 2 | import componentMixin from './commonComponent' 3 | import home from './../components/home/index.vue' 4 | import store from '../store/home' 5 | 6 | /* eslint-disable no-unused-vars */ 7 | const app = new Vue({ 8 | el: '#app', 9 | mixins: [componentMixin], 10 | components: { 11 | home 12 | }, 13 | store 14 | }) 15 | -------------------------------------------------------------------------------- /resources/assets/js/pages/offices/single.js: -------------------------------------------------------------------------------- 1 | import './../../bootstrap' 2 | import componentMixin from './../commonComponent' 3 | import single from './../../components/offices/single.vue' 4 | import store from './../../store/office' 5 | 6 | /* eslint-disable no-unused-vars */ 7 | const app = new Vue({ 8 | el: '#app', 9 | mixins: [componentMixin], 10 | components: { 11 | single 12 | }, 13 | store 14 | }) 15 | -------------------------------------------------------------------------------- /resources/assets/js/pages/projects/single.js: -------------------------------------------------------------------------------- 1 | import './../../bootstrap' 2 | import componentMixin from './../commonComponent' 3 | import single from './../../components/projects/single.vue' 4 | import store from './../../store/project' 5 | 6 | /* eslint-disable no-unused-vars */ 7 | const app = new Vue({ 8 | el: '#app', 9 | mixins: [componentMixin], 10 | components: { 11 | single 12 | }, 13 | store 14 | }) 15 | -------------------------------------------------------------------------------- /resources/assets/js/pages/teams/single.js: -------------------------------------------------------------------------------- 1 | import './../../bootstrap' 2 | import componentMixin from './../commonComponent' 3 | import single from './../../components/teams/single.vue' 4 | import store from './../../store/team' 5 | 6 | /* eslint-disable no-unused-vars */ 7 | const app = new Vue({ 8 | el: '#app', 9 | mixins: [componentMixin], 10 | components: { 11 | single 12 | }, 13 | store 14 | }) 15 | -------------------------------------------------------------------------------- /resources/assets/js/pages/users/profile.js: -------------------------------------------------------------------------------- 1 | import './../../bootstrap' 2 | import componentMixin from './../commonComponent' 3 | import profile from './../../components/users/profile.vue' 4 | import store from './../../store/profile' 5 | 6 | /* eslint-disable no-unused-vars */ 7 | const app = new Vue({ 8 | el: '#app', 9 | mixins: [componentMixin], 10 | components: { 11 | profile 12 | }, 13 | store 14 | }) 15 | -------------------------------------------------------------------------------- /resources/assets/js/pages/users/settings.js: -------------------------------------------------------------------------------- 1 | import './../../bootstrap' 2 | import componentMixin from './../commonComponent' 3 | import settings from './../../components/users/settings.vue' 4 | import store from './../../store/settings' 5 | 6 | /* eslint-disable no-unused-vars */ 7 | const app = new Vue({ 8 | el: '#app', 9 | mixins: [componentMixin], 10 | components: { 11 | settings 12 | }, 13 | store 14 | }) 15 | -------------------------------------------------------------------------------- /resources/assets/js/store/admin.js: -------------------------------------------------------------------------------- 1 | import Vuex from 'vuex' 2 | import notification from './modules/notification' 3 | import dropdown from './modules/dropdown' 4 | import timer from './modules/timer' 5 | 6 | window.Vue.use(Vuex) 7 | 8 | export default new Vuex.Store({ 9 | modules: { 10 | notification, 11 | dropdown, 12 | timer 13 | }, 14 | 15 | state: { 16 | loading: false, 17 | users // eslint-disable-line 18 | }, 19 | 20 | mutations: { 21 | toggleLoading (state, status) { 22 | state.loading = status 23 | } 24 | } 25 | }) 26 | -------------------------------------------------------------------------------- /resources/assets/js/store/modules/dropdown.js: -------------------------------------------------------------------------------- 1 | export default { 2 | state: { 3 | currentComponent: '' 4 | }, 5 | 6 | mutations: { 7 | setCurrentComponent (state, component) { 8 | state.currentComponent = component 9 | }, 10 | closeComponent (state) { 11 | state.currentComponent = '' 12 | } 13 | }, 14 | 15 | actions: { 16 | setCurrentComponent ({ commit }, component) { 17 | commit('setCurrentComponent', component) 18 | }, 19 | closeComponent ({ commit }) { 20 | commit('closeComponent') 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /resources/assets/js/store/profile.js: -------------------------------------------------------------------------------- 1 | import Vuex from 'vuex' 2 | import notification from './modules/notification' 3 | import dropdown from './modules/dropdown' 4 | import timer from './modules/timer' 5 | 6 | window.Vue.use(Vuex) 7 | 8 | export default new Vuex.Store({ 9 | modules: { 10 | notification, 11 | dropdown, 12 | timer 13 | }, 14 | 15 | state: { 16 | loading: false 17 | } 18 | }) 19 | -------------------------------------------------------------------------------- /resources/assets/js/store/settings.js: -------------------------------------------------------------------------------- 1 | import Vuex from 'vuex' 2 | import notification from './modules/notification' 3 | import dropdown from './modules/dropdown' 4 | import timer from './modules/timer' 5 | 6 | window.Vue.use(Vuex) 7 | 8 | export default new Vuex.Store({ 9 | modules: { 10 | notification, 11 | dropdown, 12 | timer 13 | }, 14 | 15 | state: { 16 | loading: false 17 | } 18 | }) 19 | -------------------------------------------------------------------------------- /resources/lang/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hasnayeen/goodwork/c559b7d4544ee58ac18f5eb00814e780fa0acdb9/resources/lang/.DS_Store -------------------------------------------------------------------------------- /resources/lang/ar/auth.php: -------------------------------------------------------------------------------- 1 | 'لا تتطابق أوراق الاعتماد هذه مع سجلاتنا.', 16 | 'throttle' => 'عدد كبير جدا من محاولات تسجيل الدخول. الرجاء المحاولة مره أخرى في :seconds ثانيه.', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/ar/home.php: -------------------------------------------------------------------------------- 1 | 'المنزل', 5 | 'Projects' => 'المشاريع', 6 | 'Teams' => 'الفرق', 7 | 'Offices' => 'المكاتب', 8 | 'Add a new project' => 'أضف مشروع جديد', 9 | 'Add a new team' => 'أضف فريق جديد', 10 | 'Add a new office' => 'أضف مكتب جديد', 11 | ]; 12 | -------------------------------------------------------------------------------- /resources/lang/ar/navbar.php: -------------------------------------------------------------------------------- 1 | 'ملفك التعريفي', 5 | 'Your Messages' => 'رسائلك', 6 | 'Admin' => 'الإدارة', 7 | 'Timer' => 'الموقت', 8 | 'Settings' => 'اعدادات', 9 | 'Leave User' => 'ترك المستخدم', 10 | 'Logout' => 'تسجيل الخروج', 11 | ]; 12 | -------------------------------------------------------------------------------- /resources/lang/ar/pagination.php: -------------------------------------------------------------------------------- 1 | '« السابق', 16 | 'next' => 'التالي »', 17 | 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/lang/bn/auth.php: -------------------------------------------------------------------------------- 1 | 'এই প্রমাণপত্রাদি আমাদের রেকর্ডের সাথে মেলে না.', 16 | 'throttle' => 'অনেক লগইন প্রচেষ্টা. অনুগ্রহ করে আবার চেষ্টা করুন :seconds সেকেন্ড.', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/bn/home.php: -------------------------------------------------------------------------------- 1 | 'মূল', 5 | 'Projects' => 'প্রকল্প', 6 | 'Teams' => 'দল', 7 | 'Offices' => 'অফিস', 8 | 'Add a new project' => 'একটি নতুন প্রকল্প জুড়ুন', 9 | 'Add a new team' => 'একটি নতুন দল জুড়ুন', 10 | 'Add a new office' => 'একটি নতুন অফিস জুড়ুন', 11 | ]; 12 | -------------------------------------------------------------------------------- /resources/lang/bn/navbar.php: -------------------------------------------------------------------------------- 1 | 'আপনার প্রোফাইল', 5 | 'Your Messages' => 'আপনার বার্তা', 6 | 'Admin' => 'অ্যাডমিন', 7 | 'Timer' => 'টাইমার', 8 | 'Settings' => 'সেটিংস', 9 | 'Leave User' => 'ব্যবহারকারী ছেড়ে', 10 | 'Logout' => 'লগআউট', 11 | ]; 12 | -------------------------------------------------------------------------------- /resources/lang/bn/pagination.php: -------------------------------------------------------------------------------- 1 | '« পূর্ববর্তী', 16 | 'next' => 'পরবর্তী »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/bs/home.php: -------------------------------------------------------------------------------- 1 | 'Projekti', 5 | 'Teams' => 'Timovi', 6 | 'Offices' => 'Kancelarije', 7 | 'Add a new project' => 'Dodaj novi projekt', 8 | 'Add a new team' => 'Dodaj novi tim', 9 | 'Add a new office' => 'Dodaj novu kancelariju', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/bs/navbar.php: -------------------------------------------------------------------------------- 1 | 'Tvoj Profil', 5 | 'Your Messages' => 'Tvoje Poruke', 6 | 'Admin' => 'Admin', 7 | 'Logout' => 'Izlaz', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/bs/pagination.php: -------------------------------------------------------------------------------- 1 | '« Prethodna', 16 | 'next' => 'Sljedeca »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/bs/project.php: -------------------------------------------------------------------------------- 1 | 'Kreiraj Zadatak', 5 | 'Create New Post' => 'Kreiraj Novi Post', 6 | 'Currently in room' => 'Trenutno u sobi', 7 | 'write your message here' => 'napisi svoju poruku ovde', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/da/home.php: -------------------------------------------------------------------------------- 1 | 'Projekter', 5 | 'Teams' => 'Hold', 6 | 'Offices' => 'Kontorer', 7 | 'Add a new project' => 'Tilføj et nyt projekt', 8 | 'Add a new team' => 'Tilføj et nyt hold', 9 | 'Add a new office' => 'Tilføj et nyt kontor', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/da/navbar.php: -------------------------------------------------------------------------------- 1 | 'Din profil', 5 | 'Your Messages' => 'Dine meddelelser', 6 | 'Admin' => 'Admin', 7 | 'Logout' => 'Log ud', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/da/pagination.php: -------------------------------------------------------------------------------- 1 | '« Tidligere', 16 | 'next' => 'Næste »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/da/project.php: -------------------------------------------------------------------------------- 1 | 'Opret opgave', 5 | 'Create New Post' => 'Opret nyt indlæg', 6 | 'Currently in room' => 'I øjeblikket på værelset', 7 | 'write your message here' => 'skriv din besked her', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/da/user.php: -------------------------------------------------------------------------------- 1 | 'Profil', 5 | 'Account' => 'Konto', 6 | 'Name' => 'Navn', 7 | 'Title' => 'Titel på ' . config('app.company_name'), 8 | 'Short Bio' => 'Short Bio', 9 | 'Time Zone' => 'Tidszone', 10 | 'First Day of the Week' => 'Første dag i ugen', 11 | 'Language' => 'Sprog', 12 | 'Change Your Avatar' => 'Skift din avatar', 13 | 'Email' => 'E-mail', 14 | 'Current Password' => 'Nuværende kodeord', 15 | 'New Password' => 'nyt kodeord', 16 | 'Confirm Password' => 'Bekræft kodeord', 17 | 'Update' => 'Opdatering', 18 | 'Delete Account' => 'Slet konto', 19 | 'Preferred Language' => 'foretrukne sprog', 20 | ]; 21 | -------------------------------------------------------------------------------- /resources/lang/de/home.php: -------------------------------------------------------------------------------- 1 | 'Projekte', 5 | 'Teams' => 'Teams', 6 | 'Offices' => 'Standorte', 7 | 'Add a new project' => 'Neues Projekt hinzufügen', 8 | 'Add a new team' => 'Neues Team hinzufügen', 9 | 'Add a new office' => 'Neuen Standort hinzufügen', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/de/navbar.php: -------------------------------------------------------------------------------- 1 | 'Dein Profil', 5 | 'Admin' => 'Admin', 6 | 'Logout' => 'Abmelden', 7 | ]; 8 | -------------------------------------------------------------------------------- /resources/lang/de/pagination.php: -------------------------------------------------------------------------------- 1 | '« Letzte', 16 | 'next' => 'Nächste »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/de/project.php: -------------------------------------------------------------------------------- 1 | 'Aufgabe erstellen', 5 | 'Create New Post' => 'Neuen Beitrag erstellen', 6 | 'Currently in room' => 'Momentan im Raum', 7 | 'write your message here' => 'schreibe deine Nachricht hier', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/en/navbar.php: -------------------------------------------------------------------------------- 1 | 'Profile', 5 | 'Your Messages' => 'Messages', 6 | 'Admin' => 'Admin', 7 | 'Timer' => 'Timer', 8 | 'Settings' => 'Settings', 9 | 'Leave User' => 'Leave User', 10 | 'Logout' => 'Logout', 11 | ]; 12 | -------------------------------------------------------------------------------- /resources/lang/en/pagination.php: -------------------------------------------------------------------------------- 1 | '« Previous', 16 | 'next' => 'Next »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/es-CR/pagination.php: -------------------------------------------------------------------------------- 1 | '« Anterior', 16 | 'next' => 'Siguiente»', 17 | 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/lang/es-ES/auth.php: -------------------------------------------------------------------------------- 1 | 'Estas credenciales no estan registradas.', 16 | 'throttle' => 'Demasiados intentos de login. Intenta nuevamente en :seconds segundos.', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/es-ES/home.php: -------------------------------------------------------------------------------- 1 | 'Inicio', 5 | 'Projects' => 'Proyectos', 6 | 'Teams' => 'Equipos', 7 | 'Offices' => 'Oficinas', 8 | 'Add a new project' => 'Agregar un nuevo proyecto', 9 | 'Add a new team' => 'Agregar un nuevo equipo', 10 | 'Add a new office' => 'Agregar una nueva oficina', 11 | ]; 12 | -------------------------------------------------------------------------------- /resources/lang/es-ES/navbar.php: -------------------------------------------------------------------------------- 1 | 'Tu Perfil', 5 | 'Your Messages' => 'Tus Mensajes', 6 | 'Admin' => 'Administrador', 7 | 'Timer' => 'Temporizador', 8 | 'Settings' => 'Configuraciones', 9 | 'Leave User' => 'Salir del usuario', 10 | 'Logout' => 'Cerrar sesión', 11 | ]; 12 | -------------------------------------------------------------------------------- /resources/lang/es-ES/pagination.php: -------------------------------------------------------------------------------- 1 | '« Anterior', 16 | 'next' => 'Siguiente»', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/es-MX/home.php: -------------------------------------------------------------------------------- 1 | 'Inicio', 5 | 'Projects' => 'Proyectos', 6 | 'Teams' => 'Equipos', 7 | 'Offices' => 'Oficinas', 8 | 'Add a new project' => 'Agregar Nuevo Proyecto', 9 | 'Add a new team' => 'Agregar Nuevo Equipo', 10 | 'Add a new office' => 'Agregar Nueva Oficina', 11 | ]; 12 | -------------------------------------------------------------------------------- /resources/lang/es-MX/navbar.php: -------------------------------------------------------------------------------- 1 | 'Perfil', 5 | 'Your Messages' => 'Mis Mensajes', 6 | 'Admin' => 'Administración', 7 | 'Timer' => 'Temporizador', 8 | 'Settings' => 'Configuraciones', 9 | 'Leave User' => 'Abandonar Usuario', 10 | 'Logout' => 'Cerrar Sesión', 11 | ]; 12 | -------------------------------------------------------------------------------- /resources/lang/es-MX/pagination.php: -------------------------------------------------------------------------------- 1 | '« Anterior', 16 | 'next' => 'Siguiente »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/fa/auth.php: -------------------------------------------------------------------------------- 1 | 'اطلاعات وارد شده صحیح نیست.', 16 | 'throttle' => 'شما بیش از حد تلاش کردهاید. لطفا در :seconds آینده تلاش کنید.', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/fa/home.php: -------------------------------------------------------------------------------- 1 | 'پروژه ها', 5 | 'Teams' => 'تیم ها', 6 | 'Offices' => 'اداره ها', 7 | 'Add a new project' => 'اضافه کردن پروژه جدید', 8 | 'Add a new team' => 'اضافه کردن تیم جدید', 9 | 'Add a new office' => 'اضافه کردن اداره جدید', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/fa/navbar.php: -------------------------------------------------------------------------------- 1 | 'پروفایل شما', 5 | 'Your Messages' => 'پیام های شما', 6 | 'Admin' => 'ادمین', 7 | 'Logout' => 'خروج', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/fa/pagination.php: -------------------------------------------------------------------------------- 1 | '« قبلی', 16 | 'next' => 'بعدی »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/fa/project.php: -------------------------------------------------------------------------------- 1 | 'تکلیف جدید', 5 | 'Create New Post' => 'ایجاد نوشته جدید', 6 | 'Currently in room' => 'هم اکنون در اتاق', 7 | 'write your message here' => 'پیام خود را اینجا بنویسید', 8 | 'Upload Files' => 'بارگذاری پروندهها', 9 | 'Project has been made public' => 'پروژه به صورت عمومی در دسترس قرار گرفت', 10 | 'Project has been made private' => 'پروژه به صورت خصوصی در دسترس قرار گرفت', 11 | ]; 12 | -------------------------------------------------------------------------------- /resources/lang/fa/user.php: -------------------------------------------------------------------------------- 1 | 'پروفایل', 5 | 'Account' => 'حساب', 6 | 'Name' => 'نام', 7 | 'Title' => 'عنوان ' . config('app.company_name'), 8 | 'Short Bio' => 'بیوگرافی کوتاه', 9 | 'Time Zone' => 'منطقه زمانی', 10 | 'First Day of the Week' => 'اولین روز هفته', 11 | 'Language' => 'زبان', 12 | 'Change Your Avatar' => 'آواتار خود را تغییر دهید', 13 | 'Email' => 'ایمیل', 14 | 'Current Password' => 'رمزعبور جاری', 15 | 'New Password' => 'رمزعبور جدید', 16 | 'Confirm Password' => 'تایید رمز عبور', 17 | 'Update' => 'بروزرسانی', 18 | 'Delete Account' => 'اکانت حذف شد', 19 | 'Preferred Language' => 'زبان ترجیحی', 20 | ]; 21 | -------------------------------------------------------------------------------- /resources/lang/fi/home.php: -------------------------------------------------------------------------------- 1 | 'Projektit', 5 | 'Teams' => 'Tiimit', 6 | 'Offices' => 'Toimistot', 7 | 'Add a new project' => 'Lisää projekti', 8 | 'Add a new team' => 'Lisää tiimi', 9 | 'Add a new office' => 'Lisää toimisto', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/fi/navbar.php: -------------------------------------------------------------------------------- 1 | 'Profiilisi', 5 | 'Your Messages' => 'Viestisi', 6 | 'Admin' => 'Ylläpitäjä', 7 | 'Logout' => 'Kirjaudu ulos', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/fi/pagination.php: -------------------------------------------------------------------------------- 1 | '« Edellinen', 16 | 'next' => 'Seuraava »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/fi/project.php: -------------------------------------------------------------------------------- 1 | 'Luo uusi tehtävä', 5 | 'Create New Post' => 'Luo uusi viesti', 6 | 'Currently in room' => 'Tällä hetkellä huoneessa', 7 | 'write your message here' => 'kirjoita viestisi tähän', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/fr-FR/home.php: -------------------------------------------------------------------------------- 1 | 'Accueil', 5 | 'Projects' => 'Projets', 6 | 'Teams' => 'Équipes', 7 | 'Offices' => 'Bureaux', 8 | 'Add a new project' => 'Ajouter un nouveau projet', 9 | 'Add a new team' => 'Ajouter une nouvelle équipe', 10 | 'Add a new office' => 'Ajouter un nouveau bureau', 11 | ]; 12 | -------------------------------------------------------------------------------- /resources/lang/fr-FR/navbar.php: -------------------------------------------------------------------------------- 1 | 'Votre profil', 5 | 'Your Messages' => 'Vos messages', 6 | 'Admin' => 'Admin', 7 | 'Timer' => 'Chronomètre', 8 | 'Settings' => 'Paramètres', 9 | 'Leave User' => 'Quitter l\'utilisateur', 10 | 'Logout' => 'Déconnexion', 11 | ]; 12 | -------------------------------------------------------------------------------- /resources/lang/fr-FR/pagination.php: -------------------------------------------------------------------------------- 1 | '« Précédent', 16 | 'next' => 'Suivant »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/hi/home.php: -------------------------------------------------------------------------------- 1 | 'परियोजनाओं', 5 | 'Teams' => 'टीमें', 6 | 'Offices' => 'कार्यालयों', 7 | 'Add a new project' => 'एक नई परियोजना जोड़ें', 8 | 'Add a new team' => 'एक नई टीम जोड़ें', 9 | 'Add a new office' => 'एक नया कार्यालय जोड़ें', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/hi/navbar.php: -------------------------------------------------------------------------------- 1 | 'आपकी रूपरेखा', 5 | 'Your Messages' => 'आपके संदेश', 6 | 'Admin' => 'व्यवस्थापक', 7 | 'Logout' => 'लोग आउट', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/hi/pagination.php: -------------------------------------------------------------------------------- 1 | '« पिछला', 16 | 'next' => 'अगला »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/hi/project.php: -------------------------------------------------------------------------------- 1 | 'कार्य बनाएं', 5 | 'Create New Post' => 'नई पोस्ट बनाएं', 6 | 'Currently in room' => 'वर्तमान में कमरे में', 7 | 'write your message here' => 'यहां अपना संदेश लिखें', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/hi/user.php: -------------------------------------------------------------------------------- 1 | 'प्रोफाइल', 5 | 'Account' => 'लेखा', 6 | 'Name' => 'नाम', 7 | 'Title' => 'शीर्षक ' . config('app.company_name'), 8 | 'Short Bio' => 'लघु जीवनी', 9 | 'Time Zone' => 'समय क्षेत्र', 10 | 'First Day of the Week' => 'सप्ताह का पहला दिन', 11 | 'Language' => 'भाषा', 12 | 'Change Your Avatar' => 'अपना अवतार बदलें', 13 | 'Email' => 'ईमेल', 14 | 'Current Password' => 'वर्तमान पासवर्ड', 15 | 'New Password' => 'नया पासवर्ड', 16 | 'Confirm Password' => 'पासवर्ड की पुष्टि कीजिये', 17 | 'Update' => 'अद्यतन करें', 18 | 'Delete Account' => 'खाता हटा दो', 19 | 'Preferred Language' => 'पसंदीदा भाषा', 20 | ]; 21 | -------------------------------------------------------------------------------- /resources/lang/hr/home.php: -------------------------------------------------------------------------------- 1 | 'Projekti', 5 | 'Teams' => 'Timovi', 6 | 'Offices' => 'Uredi', 7 | 'Add a new project' => 'Dodaj novi projekt', 8 | 'Add a new team' => 'Dodaj novi tim', 9 | 'Add a new office' => 'Dodaj novi ured', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/hr/navbar.php: -------------------------------------------------------------------------------- 1 | 'Tvoj Profil', 5 | 'Your Messages' => 'Tvoje Poruke', 6 | 'Admin' => 'Admin', 7 | 'Logout' => 'Odlogiraj se', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/hr/pagination.php: -------------------------------------------------------------------------------- 1 | '« Prethodna', 16 | 'next' => 'Sljedeća »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/hr/project.php: -------------------------------------------------------------------------------- 1 | 'Stvori Zadatak', 5 | 'Create New Post' => 'Stvori Novi Post', 6 | 'Currently in room' => 'Trenutno u sobi', 7 | 'write your message here' => 'napiši svoju poruku ovdje', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/id/home.php: -------------------------------------------------------------------------------- 1 | 'Proyek', 5 | 'Teams' => 'Tim', 6 | 'Offices' => 'Kantor', 7 | 'Add a new project' => 'Tambahkan proyek baru', 8 | 'Add a new team' => 'Tambahkan tim baru', 9 | 'Add a new office' => 'Tambahkan kantor baru', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/id/navbar.php: -------------------------------------------------------------------------------- 1 | 'Profil Anda', 5 | 'Your Messages' => 'Pesan Anda', 6 | 'Admin' => 'Admin', 7 | 'Logout' => 'Keluar', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/id/pagination.php: -------------------------------------------------------------------------------- 1 | '« Sebelumnya', 16 | 'next' => 'Selanjutnya »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/id/project.php: -------------------------------------------------------------------------------- 1 | 'Buat Tugas', 5 | 'Create New Post' => 'Buat Kiriman Baru', 6 | 'Currently in room' => 'Sedang dalam ruangan', 7 | 'write your message here' => 'tulis pesan Anda', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/it-IT/home.php: -------------------------------------------------------------------------------- 1 | 'Progetti', 5 | 'Teams' => 'Gruppi', 6 | 'Offices' => 'Uffici', 7 | 'Add a new project' => 'Aggiungi un nuovo progetto', 8 | 'Add a new team' => 'Aggiungi un nuovo gruppo', 9 | 'Add a new office' => 'Aggiungi un nuovo Ufficio', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/it-IT/navbar.php: -------------------------------------------------------------------------------- 1 | 'Tuo Profilo', 5 | 'Admin' => 'Amministratore', 6 | 'Logout' => 'Disconnetti', 7 | ]; 8 | -------------------------------------------------------------------------------- /resources/lang/it-IT/pagination.php: -------------------------------------------------------------------------------- 1 | '« Precedente', 16 | 'next' => 'Prossimo »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/it-IT/project.php: -------------------------------------------------------------------------------- 1 | 'Crea Compito', 5 | 'Create New Post' => 'Crea Nuovo Post', 6 | 'Currently in room' => 'Attualmente nella stanza', 7 | 'write your message here' => 'Scrivi il tuo messaggio qua', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/jp/home.php: -------------------------------------------------------------------------------- 1 | 'プロジェクト', 5 | 'Teams' => 'チーム', 6 | 'Offices' => 'オフィス', 7 | 'Add a new project' => '新しいプロジェクトを追加する', 8 | 'Add a new team' => '新しいチームを追加する', 9 | 'Add a new office' => '新しいオフィスを追加する', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/jp/navbar.php: -------------------------------------------------------------------------------- 1 | 'あなたのプロフィール', 5 | 'Your Messages' => 'あなたのメッセージ', 6 | 'Admin' => '管理者', 7 | 'Logout' => 'ログアウト', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/jp/pagination.php: -------------------------------------------------------------------------------- 1 | '« 前', 16 | 'next' => '次 »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/jp/passwords.php: -------------------------------------------------------------------------------- 1 | 'パスワードは6文字以上で、確認と一致していなければなりません。', 16 | 'reset' => 'あなたのパスワードはリセットされました!', 17 | 'sent' => 'パスワードリセットリンクが電子メールで送られてきました!', 18 | 'token' => 'このパスワードリセットトークンは無効です。', 19 | 'user' => 'そのメールアドレスを持つユーザーは見つかりません。', 20 | ]; 21 | -------------------------------------------------------------------------------- /resources/lang/jp/project.php: -------------------------------------------------------------------------------- 1 | 'タスクの作成', 5 | 'Create New Post' => '新しい投稿を作成', 6 | 'Currently in room' => '現在部屋にいる', 7 | 'write your message here' => 'ここにあなたのメッセージを書いてください', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/jp/user.php: -------------------------------------------------------------------------------- 1 | 'プロフィール', 5 | 'Account' => 'アカウント', 6 | 'Name' => '名', 7 | 'Title' => 'タイトル ' . config('app.company_name'), 8 | 'Short Bio' => 'ショートバイオ', 9 | 'Time Zone' => 'タイムゾーン', 10 | 'First Day of the Week' => '最初の曜日', 11 | 'Language' => '言語', 12 | 'Change Your Avatar' => 'あなたのアバターを変える', 13 | 'Email' => 'Eメール', 14 | 'Current Password' => '現在のパスワード', 15 | 'New Password' => '新しいパスワード', 16 | 'Confirm Password' => 'パスワードを認証する', 17 | 'Update' => '更新', 18 | 'Delete Account' => 'アカウントを削除する', 19 | 'Preferred Language' => '優先言語', 20 | ]; 21 | -------------------------------------------------------------------------------- /resources/lang/ko_KR/home.php: -------------------------------------------------------------------------------- 1 | '프로젝트', 5 | 'Teams' => '팀', 6 | 'Offices' => '부서', 7 | 'Add a new project' => '프로젝트 추가', 8 | 'Add a new team' => '팀 추가', 9 | 'Add a new office' => '부서 추가', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/ko_KR/navbar.php: -------------------------------------------------------------------------------- 1 | '프로필', 5 | 'Your Messages' => '메세지', 6 | 'Admin' => '관리자', 7 | 'Logout' => '로그아웃', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/ko_KR/pagination.php: -------------------------------------------------------------------------------- 1 | '« 이전', 16 | 'next' => '다음 »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/ko_KR/passwords.php: -------------------------------------------------------------------------------- 1 | '비밀번호는 최소 6자리 이상이어야 하며 비밀번호 확인란과 일치 해야 합니다.', 16 | 'reset' => '비밀번호가 초기화 되었습니다!', 17 | 'sent' => '비밀번호 초기화 링크를 이메일로 보내드렸습니다!', 18 | 'token' => '비밀번호 초기화 토큰이 일치하지 않습니다.', 19 | 'user' => '이메일과 일치하는 유저가 없습니다.', 20 | ]; 21 | -------------------------------------------------------------------------------- /resources/lang/ko_KR/project.php: -------------------------------------------------------------------------------- 1 | '새 업무 만들기', 5 | 'Create New Post' => '새 글 만들기', 6 | 'Currently in room' => 'Currently in room', 7 | 'write your message here' => '메세지를 여기에 입력하세요', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/ko_KR/user.php: -------------------------------------------------------------------------------- 1 | '프로필', 5 | 'Account' => '계정', 6 | 'Name' => '이름', 7 | 'Title' => 'Title at ' . config('app.company_name'), 8 | 'Short Bio' => '간단한 소개', 9 | 'Time Zone' => '시간대', 10 | 'First Day of the Week' => '한 주의 첫 날', 11 | 'Language' => '언어', 12 | 'Change Your Avatar' => '아바타 바꾸기', 13 | 'Email' => '이메일', 14 | 'Current Password' => '현재 비밀번호', 15 | 'New Password' => '새로운 비밀번호', 16 | 'Confirm Password' => '비밀번호 확인', 17 | 'Update' => '업데이트', 18 | 'Delete Account' => '계정 삭제', 19 | 'Preferred Language' => '선호하는 언어', 20 | ]; 21 | -------------------------------------------------------------------------------- /resources/lang/la/home.php: -------------------------------------------------------------------------------- 1 | 'projects', 5 | 'Teams' => 'Teams', 6 | 'Offices' => 'Offices', 7 | 'Add a new project' => 'addere novam project', 8 | 'Add a new team' => 'equos addere novam', 9 | 'Add a new office' => 'addere novum munus', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/la/navbar.php: -------------------------------------------------------------------------------- 1 | 'tua Profile', 5 | 'Your Messages' => 'Nuntius tuus', 6 | 'Admin' => 'Maecenas et ipsum', 7 | 'Logout' => 'Exitus', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/la/pagination.php: -------------------------------------------------------------------------------- 1 | '« priorem', 16 | 'next' => 'deinde »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/la/project.php: -------------------------------------------------------------------------------- 1 | 'Create Negotium', 5 | 'Create New Post' => 'Create New Post', 6 | 'Currently in room' => 'Currently in cubiculum', 7 | 'write your message here' => 'scribere vobis hic inspice', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/ms/home.php: -------------------------------------------------------------------------------- 1 | 'Projek-projek', 5 | 'Teams' => 'Pasukan', 6 | 'Offices' => 'Pejabat', 7 | 'Add a new project' => 'Tambah projek baru', 8 | 'Add a new team' => 'Tambah pasukan baru', 9 | 'Add a new office' => 'Tambah pejabat baru', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/ms/navbar.php: -------------------------------------------------------------------------------- 1 | 'Profil anda', 5 | 'Your Messages' => 'Mesej anda', 6 | 'Admin' => 'Admin', 7 | 'Logout' => 'Log keluar', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/ms/pagination.php: -------------------------------------------------------------------------------- 1 | '« Sebelum ini', 16 | 'next' => 'Seterusnya »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/ms/project.php: -------------------------------------------------------------------------------- 1 | 'Buat Petugas', 5 | 'Create New Post' => 'Buat Post Baru', 6 | 'Currently in room' => 'Pada masa ini di dalam bilik', 7 | 'write your message here' => 'tulis mesej anda di sini', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/ne/auth.php: -------------------------------------------------------------------------------- 1 | 'यी प्रमाणहरू हाम्रो रेकर्डसँग मेल खाँदैन।', 16 | 'throttle' => 'धेरै लगईन प्रयासहरू। कृपया फेरि प्रयास गर्नुहोस् :seconds सेकेन्ड।', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/ne/home.php: -------------------------------------------------------------------------------- 1 | 'घर', 5 | 'Projects' => 'प्रोजेक्टहरू', 6 | 'Teams' => 'टोली', 7 | 'Offices' => 'कार्यालयहरू', 8 | 'Add a new project' => 'नयाँ परियोजना थप्नुहोस्', 9 | 'Add a new team' => 'नयाँ टीम थप्नुहोस्', 10 | 'Add a new office' => 'नयाँ कार्यालय जोड्नुहोस्', 11 | ]; 12 | -------------------------------------------------------------------------------- /resources/lang/ne/navbar.php: -------------------------------------------------------------------------------- 1 | 'तपाईंको प्रोफाइल', 5 | 'Your Messages' => 'तपाईंको सन्देशहरू', 6 | 'Admin' => 'प्रशासन', 7 | 'Timer' => 'टाइमर', 8 | 'Settings' => 'सेटिंग्स', 9 | 'Leave User' => 'प्रयोगकर्ता छोड्नुहोस्', 10 | 'Logout' => 'बाहिर निस्कनु', 11 | ]; 12 | -------------------------------------------------------------------------------- /resources/lang/ne/pagination.php: -------------------------------------------------------------------------------- 1 | '« अघिल्लो', 16 | 'next' => 'अर्को »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/nl-NL/home.php: -------------------------------------------------------------------------------- 1 | 'Projecten', 5 | 'Teams' => 'Teams', 6 | 'Offices' => 'Kantoren', 7 | 'Add a new project' => 'Creëer een project', 8 | 'Add a new team' => 'Creëer een team', 9 | 'Add a new office' => 'Creëer een kantoor', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/nl-NL/navbar.php: -------------------------------------------------------------------------------- 1 | 'Jouw profiel', 5 | 'Admin' => 'Administrator', 6 | 'Logout' => 'Uitloggen', 7 | ]; 8 | -------------------------------------------------------------------------------- /resources/lang/nl-NL/pagination.php: -------------------------------------------------------------------------------- 1 | '« Vorige', 16 | 'next' => 'Volgende »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/nl-NL/project.php: -------------------------------------------------------------------------------- 1 | 'Maak een taak aan', 5 | 'Create New Post' => 'Maak een post aan', 6 | 'Currently in room' => 'Momenteel in de kamer', 7 | 'write your message here' => 'Schrijf je bericht hier', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/pl/home.php: -------------------------------------------------------------------------------- 1 | 'Projekty', 5 | 'Teams' => 'Zespoły', 6 | 'Offices' => 'Biura', 7 | 'Add a new project' => 'Dodaj nowy projekt', 8 | 'Add a new team' => 'Dodaj nowy zespół', 9 | 'Add a new office' => 'Dodaj nowe biuro', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/pl/navbar.php: -------------------------------------------------------------------------------- 1 | 'Twój projfil', 5 | 'Admin' => 'Admin', 6 | 'Logout' => 'Wyloguj', 7 | ]; 8 | -------------------------------------------------------------------------------- /resources/lang/pl/pagination.php: -------------------------------------------------------------------------------- 1 | '« Poprzednie', 16 | 'next' => 'Następne »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/pl/project.php: -------------------------------------------------------------------------------- 1 | 'Utwórz zadanie', 5 | 'Create New Post' => 'Utwórz nowy wpis', 6 | 'Currently in room' => 'Aktualnie w pokoju', 7 | 'write your message here' => 'wpisz wiadomość tutaj', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/pt-BR/auth.php: -------------------------------------------------------------------------------- 1 | 'As credenciais não combinam com os nossos registros', 16 | 'throttle' => 'Tentativas de login em excesso. Tente novamente em :seconds segundos.', 17 | 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/lang/pt-BR/home.php: -------------------------------------------------------------------------------- 1 | 'Projetos', 5 | 'Teams' => 'Equipes', 6 | 'Offices' => 'Escritórios', 7 | 'Add a new project' => 'Adicionar um novo projeto', 8 | 'Add a new team' => 'Adicionar um novo time', 9 | 'Add a new office' => 'Adicionar um novo escritório', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/pt-BR/navbar.php: -------------------------------------------------------------------------------- 1 | 'Seu Perfil', 5 | 'Your Messages' => 'Suas Mensagens', 6 | 'Admin' => 'Admin', 7 | 'Logout' => 'Sair', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/pt-BR/pagination.php: -------------------------------------------------------------------------------- 1 | '« Anterior', 16 | 'next' => 'Próximo »', 17 | 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/lang/pt-BR/project.php: -------------------------------------------------------------------------------- 1 | 'Criar Tarefa', 5 | 'Create New Post' => 'Criar Novo Post', 6 | 'Currently in room' => 'Atualmente na sala', 7 | 'write your message here' => 'Escreva sua mensagem aqui', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/ru-RU/auth.php: -------------------------------------------------------------------------------- 1 | 'Эти учетные данные не соответствуют нашим записям.', 16 | 'throttle' => 'Слишком много попыток входа в систему. Пожалуйста, попробуйте еще раз через :seconds секунд.', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/ru-RU/home.php: -------------------------------------------------------------------------------- 1 | 'Домашняя', 5 | 'Projects' => 'Проекты', 6 | 'Teams' => 'Команды', 7 | 'Offices' => 'Офисы', 8 | 'Add a new project' => 'Добавить новый проект', 9 | 'Add a new team' => 'Добавить новую команду', 10 | 'Add a new office' => 'Добавить новый офис', 11 | ]; 12 | -------------------------------------------------------------------------------- /resources/lang/ru-RU/navbar.php: -------------------------------------------------------------------------------- 1 | 'Ваш профиль', 5 | 'Your Messages' => 'Ваши сообщения', 6 | 'Admin' => 'Администратор', 7 | 'Timer' => 'Таймер', 8 | 'Settings' => 'Настройки', 9 | 'Leave User' => 'Завершить Пользователя', 10 | 'Logout' => 'Выйти', 11 | ]; 12 | -------------------------------------------------------------------------------- /resources/lang/ru-RU/pagination.php: -------------------------------------------------------------------------------- 1 | '« Предыдущая', 16 | 'next' => 'Следующая »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/sr/home.php: -------------------------------------------------------------------------------- 1 | 'Projekti', 5 | 'Teams' => 'Timovi', 6 | 'Offices' => 'Kancelarije', 7 | 'Add a new project' => 'Dodaj novi projekt', 8 | 'Add a new team' => 'Dodaj novi tim', 9 | 'Add a new office' => 'Dodaj novu kancelariju', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/sr/navbar.php: -------------------------------------------------------------------------------- 1 | 'Tvoj Profil', 5 | 'Your Messages' => 'Tvoje Poruke', 6 | 'Admin' => 'Admin', 7 | 'Logout' => 'Odjavi se', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/sr/pagination.php: -------------------------------------------------------------------------------- 1 | '« Prethodna', 16 | 'next' => 'Sledeća »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/sr/project.php: -------------------------------------------------------------------------------- 1 | 'Kreiraj Zadatak', 5 | 'Create New Post' => 'Kreiraj Novi Post', 6 | 'Currently in room' => 'Trenutno u sobi', 7 | 'write your message here' => 'napiši svoju poruku ovde', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/sv-SE/home.php: -------------------------------------------------------------------------------- 1 | 'Projekt', 5 | 'Teams' => 'Team', 6 | 'Offices' => 'Kontor', 7 | 'Add a new project' => 'Lägg till nytt projekt', 8 | 'Add a new team' => 'Lägg till nytt team', 9 | 'Add a new office' => 'Lägg till nytt kontor', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/sv-SE/navbar.php: -------------------------------------------------------------------------------- 1 | 'Din Profil', 5 | 'Admin' => 'Admin', 6 | 'Logout' => 'Logga ut', 7 | ]; 8 | -------------------------------------------------------------------------------- /resources/lang/sv-SE/pagination.php: -------------------------------------------------------------------------------- 1 | '« Föregående', 16 | 'next' => 'Nästa»', 17 | 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/lang/sv-SE/project.php: -------------------------------------------------------------------------------- 1 | 'Skapa Uppgift', 5 | 'Create New Post' => 'Skapa ny Post', 6 | 'Currently in room' => 'Just nu i rummet', 7 | 'write your message here' => 'skriv ditt meddelande här', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/sv-SE/user.php: -------------------------------------------------------------------------------- 1 | 'Profil', 5 | 'Account' => 'Konto', 6 | 'Name' => 'Namn', 7 | 'Title' => 'Titel ' . config('app.company_name'), 8 | 'Short Bio' => 'Kort Biografi', 9 | 'Time Zone' => 'Tidszon', 10 | 'First Day of the Week' => 'Första dagen i veckan', 11 | 'Language' => 'Språk', 12 | 'Change Your Avatar' => 'Ändra Avatar', 13 | 'Email' => 'Epost', 14 | 'Current Password' => 'Aktuellt Lösenrod', 15 | 'New Password' => 'Nytt Lösenord', 16 | 'Confirm Password' => 'Bekräfta Lösenord', 17 | 'Update' => 'Uppdatera', 18 | 'Delete Account' => 'Ta bort Konto', 19 | 'Preferred Language' => 'Mitt Språk', 20 | ]; 21 | -------------------------------------------------------------------------------- /resources/lang/th/home.php: -------------------------------------------------------------------------------- 1 | 'โครงการ', 5 | 'Teams' => 'ทีม', 6 | 'Offices' => 'สำนักงาน', 7 | 'Add a new project' => 'เพิ่มโครงการใหม่', 8 | 'Add a new team' => 'เพิ่มทีมใหม่', 9 | 'Add a new office' => 'เพิ่มสำนักงานใหม่', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/th/navbar.php: -------------------------------------------------------------------------------- 1 | 'ข้อมูลส่วนตัว', 5 | 'Admin' => 'ผู้ดูแลระบบ', 6 | 'Logout' => 'ออกจากระบบ', 7 | ]; 8 | -------------------------------------------------------------------------------- /resources/lang/th/pagination.php: -------------------------------------------------------------------------------- 1 | '« ก่อนหน้า', 16 | 'next' => 'ถัดไป »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/th/project.php: -------------------------------------------------------------------------------- 1 | 'สร้างงาน', 5 | 'Create New Post' => 'สร้างโพสต์ใหม่', 6 | 'Currently in room' => 'อยู่ในห้องแล้ว', 7 | 'write your message here' => 'เขียนข้อความที่นี่', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/tr-TR/home.php: -------------------------------------------------------------------------------- 1 | 'Projeler', 5 | 'Teams' => 'Takımlar', 6 | 'Offices' => 'Ofisler', 7 | 'Add a new project' => 'Yeni Proje Ekle', 8 | 'Add a new team' => 'Yeni Takım Ekle', 9 | 'Add a new office' => 'Yeni Ofis Ekle', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/tr-TR/navbar.php: -------------------------------------------------------------------------------- 1 | 'Profilin', 5 | 'Your Messages' => 'Mesajların', 6 | 'Admin' => 'Admin', 7 | 'Logout' => 'Çıkış', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/tr-TR/pagination.php: -------------------------------------------------------------------------------- 1 | '« Önceki', 16 | 'next' => 'Sonraki »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/tr-TR/project.php: -------------------------------------------------------------------------------- 1 | 'Görev Yarat', 5 | 'Create New Post' => 'Yeni Gönderi Yarat', 6 | 'Currently in room' => 'Şu an odada', 7 | 'write your message here' => 'mesajınızı buraya yazınız', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/tr-TR/user.php: -------------------------------------------------------------------------------- 1 | 'Profil', 5 | 'Account' => 'Hesap', 6 | 'Name' => 'İsim', 7 | 'Title' => 'Ünvanı ' . config('app.company_name'), 8 | 'Short Bio' => 'Kısa Özgeçmiş', 9 | 'Time Zone' => 'Zaman Dilimi', 10 | 'First Day of the Week' => 'Haftanın İlk Günü', 11 | 'Language' => 'Dil', 12 | 'Change Your Avatar' => 'Avatarını Değiştir', 13 | 'Email' => 'Email', 14 | 'Current Password' => 'Mevcut Parola', 15 | 'New Password' => 'Yeni Parola', 16 | 'Confirm Password' => 'Parolayı Onayla', 17 | 'Update' => 'Güncelle', 18 | 'Delete Account' => 'Hesabı Sil', 19 | 'Preferred Language' => 'Tercih edilen Dil', 20 | ]; 21 | -------------------------------------------------------------------------------- /resources/lang/vi-VN/auth.php: -------------------------------------------------------------------------------- 1 | 'Không tìm thấy thông tin đăng nhập được cung cấp', 16 | 'throttle' => 'Bạn đã cố gắng đăng nhập quá nhiều. Vui lòng quay lại trong :seconds giây.', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/vi-VN/home.php: -------------------------------------------------------------------------------- 1 | 'Trang chủ', 5 | 'Projects' => 'Dự án', 6 | 'Teams' => 'Nhóm', 7 | 'Offices' => 'Văn phòng', 8 | 'Add a new project' => 'Thêm dự án mới', 9 | 'Add a new team' => 'Thên nhóm mới', 10 | 'Add a new office' => 'Thêm văn phòng mới', 11 | ]; 12 | -------------------------------------------------------------------------------- /resources/lang/vi-VN/navbar.php: -------------------------------------------------------------------------------- 1 | 'Hồ sơ của bạn', 5 | 'Your Messages' => 'Tin nhắn của bạn', 6 | 'Admin' => 'Quản trị', 7 | 'Timer' => 'Bấm giờ', 8 | 'Settings' => 'Cài đặt', 9 | 'Leave User' => 'Rời khỏi người dùng', 10 | 'Logout' => 'Đăng xuất', 11 | ]; 12 | -------------------------------------------------------------------------------- /resources/lang/vi-VN/pagination.php: -------------------------------------------------------------------------------- 1 | '« Trang trước', 16 | 'next' => 'Trang sau »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/home.php: -------------------------------------------------------------------------------- 1 | '项目', 5 | 'Teams' => '团队', 6 | 'Offices' => '办公室', 7 | 'Add a new project' => '添加一个新的项目', 8 | 'Add a new team' => '添加一个新的团队', 9 | 'Add a new office' => '添加一个新的办公室', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/navbar.php: -------------------------------------------------------------------------------- 1 | '你的资料', 5 | 'Your Messages' => '你的消息', 6 | 'Admin' => '管理', 7 | 'Logout' => '退出', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/pagination.php: -------------------------------------------------------------------------------- 1 | '« 上一个', 16 | 'next' => '下一个 »', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/passwords.php: -------------------------------------------------------------------------------- 1 | '密码必须包含至少六个字符并且和确认密码一致.', 16 | 'reset' => '您的密码已被重新设定!', 17 | 'sent' => '我们已经把重设密码的链接通过邮件发给您了!', 18 | 'token' => '这个重设密码的标记是无效的.', 19 | 'user' => '我们无法找到拥有这个电子邮箱地址的用户.', 20 | ]; 21 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/project.php: -------------------------------------------------------------------------------- 1 | '创建任务', 5 | 'Create New Post' => '创建新的帖子', 6 | 'Currently in room' => '目前正在房间里', 7 | 'write your message here' => '在这里输入您的消息', 8 | ]; 9 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/user.php: -------------------------------------------------------------------------------- 1 | '资料', 5 | 'Account' => '账户', 6 | 'Name' => '姓名', 7 | 'Title' => '标题在 ' . config('app.company_name'), 8 | 'Short Bio' => '个人简历', 9 | 'Time Zone' => '时区', 10 | 'First Day of the Week' => '每星期的第一天', 11 | 'Language' => '语言', 12 | 'Change Your Avatar' => '更改您的头像', 13 | 'Email' => '电子邮箱', 14 | 'Current Password' => '目前的密码', 15 | 'New Password' => '新的密码', 16 | 'Confirm Password' => '确认密码', 17 | 'Update' => '更新', 18 | 'Delete Account' => '删除账户', 19 | 'Preferred Language' => '语言偏好', 20 | ]; 21 | -------------------------------------------------------------------------------- /resources/views/admin/index.blade.php: -------------------------------------------------------------------------------- 1 | @component('layouts.app') 2 | 3 | @slot('title') Admin Panel @endslot 4 | 5 | 6 | 7 | @slot('script') 8 | 11 | 12 | @endslot 13 | 14 | @push('plugin-scripts') 15 | @foreach (glob(base_path() . '/resources/views/plugin-scripts/admin/*.blade.php') as $file) 16 | @include('plugin-scripts.admin.' . basename(str_replace('.blade.php', '', $file))) 17 | @endforeach 18 | @endpush 19 | 20 | @endcomponent 21 | -------------------------------------------------------------------------------- /resources/views/auth/login.blade.php: -------------------------------------------------------------------------------- 1 | @component('layouts.app') 2 | 3 | @slot('title') Login @endslot 4 | 5 | 6 | 7 | @slot('script') 8 | 13 | 14 | @endslot 15 | @endcomponent 16 | -------------------------------------------------------------------------------- /resources/views/auth/register.blade.php: -------------------------------------------------------------------------------- 1 | @component('layouts.app') 2 | 3 | @slot('title') Register @endslot 4 | 5 | @section('style') 6 | 14 | @endsection 15 | 16 | 17 | 18 | @slot('script') 19 | 23 | 24 | @endslot 25 | @endcomponent 26 | -------------------------------------------------------------------------------- /resources/views/emails/invite.blade.php: -------------------------------------------------------------------------------- 1 | @component('mail::message') 2 | @if ($company) 3 | ## {{ Auth::user()->name }} invited you to join Goodwork ({{ $company }}) 4 | @else 5 | ## {{ Auth::user()->name }} invited you to join Goodwork 6 | @endif 7 | 8 | 9 | Hi {{ $name }}, 10 | 11 | **Goodwork** is a simple project management and collaboration tool to help everyone in {{ $company ?? 'a company'}} to stay organized and get work done. 12 | It's simple and easy! To join click the link below: 13 | 14 | @component('mail::button', ['url' => url('register/' . $token)]) 15 | Join Now 16 | @endcomponent 17 | 18 | @endcomponent -------------------------------------------------------------------------------- /resources/views/emails/user-registered.blade.php: -------------------------------------------------------------------------------- 1 | @component('mail::message') 2 | # Welcome Aboard 3 | 4 | Hi {{ $user->name }}, 5 | 6 | You've joined the goodwork software for {{ config('app.name') }} organization. Here are your account details 7 | 8 | @component('mail::panel') 9 | Username: {{ $user->username }} 10 | 11 | URL: {{ config('app.url') }} 12 | @endcomponent 13 | 14 | Thanks, 15 | {{ config('app.name') }} 16 | @endcomponent 17 | -------------------------------------------------------------------------------- /resources/views/errors/403.blade.php: -------------------------------------------------------------------------------- 1 | @component('layouts.app') 2 | 3 | @slot('title') 403 - Unauthorized access @endslot 4 | 5 | 6 | 7 | 403 8 | 9 | WHOOPS! Access Denied 10 | ← Go To Home 11 | 12 | 13 | @slot('script') 14 | 15 | @endslot 16 | 17 | @endcomponent 18 | -------------------------------------------------------------------------------- /resources/views/errors/404.blade.php: -------------------------------------------------------------------------------- 1 | @component('layouts.app') 2 | 3 | @slot('title') 404 - Page Not Found @endslot 4 | 5 | 6 | 7 | 404 8 | 9 | WHOOPS! Page Not Found 10 | ← Go To Home 11 | 12 | 13 | @slot('script') 14 | 15 | @endslot 16 | 17 | @endcomponent 18 | -------------------------------------------------------------------------------- /resources/views/home.blade.php: -------------------------------------------------------------------------------- 1 | @component('layouts.app') 2 | 3 | @slot('title') Home Page @endslot 4 | 5 | 6 | 7 | @slot('script') 8 | 11 | 14 | 15 | @endslot 16 | 17 | @push('plugin-scripts') 18 | @foreach (glob(base_path() . '/resources/views/plugin-scripts/home/*.blade.php') as $file) 19 | @include('plugin-scripts.home.' . basename(str_replace('.blade.php', '', $file))) 20 | @endforeach 21 | @endpush 22 | 23 | @endcomponent 24 | -------------------------------------------------------------------------------- /resources/views/offices/single.blade.php: -------------------------------------------------------------------------------- 1 | @component('layouts.app') 2 | 3 | @slot('title') Single Resource View @endslot 4 | 5 | 6 | 7 | @slot('script') 8 | 12 | 13 | @endslot 14 | 15 | @endcomponent 16 | -------------------------------------------------------------------------------- /resources/views/plugin-scripts/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /resources/views/projects/single.blade.php: -------------------------------------------------------------------------------- 1 | @component('layouts.app') 2 | 3 | @slot('title') Single Resource View @endslot 4 | 5 | 6 | 7 | @slot('script') 8 | 12 | 13 | @endslot 14 | 15 | @endcomponent 16 | -------------------------------------------------------------------------------- /resources/views/teams/single.blade.php: -------------------------------------------------------------------------------- 1 | @component('layouts.app') 2 | 3 | @slot('title') Single Resource View @endslot 4 | 5 | 6 | 7 | @slot('script') 8 | 12 | 13 | @endslot 14 | 15 | @endcomponent 16 | -------------------------------------------------------------------------------- /resources/views/users/profile.blade.php: -------------------------------------------------------------------------------- 1 | @component('layouts.app') 2 | 3 | @slot('title') User Profile @endslot 4 | 5 | 6 | 7 | @slot('script') 8 | 9 | @endslot 10 | 11 | @push('plugin-scripts') 12 | @foreach (glob(base_path() . '/resources/views/plugin-scripts/users/profile/*.blade.php') as $file) 13 | @include('plugin-scripts.users.profile.' . basename(str_replace('.blade.php', '', $file))) 14 | @endforeach 15 | @endpush 16 | 17 | @endcomponent -------------------------------------------------------------------------------- /resources/views/users/settings.blade.php: -------------------------------------------------------------------------------- 1 | @component('layouts.app') 2 | 3 | @slot('title') User Settings @endslot 4 | 5 | 6 | 7 | @slot('script') 8 | 9 | @endslot 10 | 11 | @endcomponent 12 | -------------------------------------------------------------------------------- /routes/console.php: -------------------------------------------------------------------------------- 1 | comment(Inspiring::quote()); 18 | })->describe('Display an inspiring quote'); 19 | -------------------------------------------------------------------------------- /server.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | $uri = urldecode( 9 | parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) 10 | ); 11 | 12 | // This file allows us to emulate Apache's "mod_rewrite" functionality from the 13 | // built-in PHP web server. This provides a convenient way to test a Laravel 14 | // application without having installed a "real" web server software here. 15 | if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { 16 | return false; 17 | } 18 | 19 | require_once __DIR__.'/public/index.php'; 20 | -------------------------------------------------------------------------------- /storage/app/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/app/public/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/config/about.json: -------------------------------------------------------------------------------- 1 | {"current_version":0.5,"latest_version":0.7,"last_updated":"Sep 8, 2018"} -------------------------------------------------------------------------------- /storage/debugbar/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/.gitignore: -------------------------------------------------------------------------------- 1 | config.php 2 | routes.php 3 | schedule-* 4 | compiled.php 5 | services.json 6 | events.scanned.php 7 | routes.scanned.php 8 | down 9 | -------------------------------------------------------------------------------- /storage/framework/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !data/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/framework/cache/data/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/sessions/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/views/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /stubs/channel.stub: -------------------------------------------------------------------------------- 1 | define({{ model }}::class, function (Faker $faker) { 9 | return [ 10 | // 11 | ]; 12 | }); 13 | -------------------------------------------------------------------------------- /stubs/job.queued.stub: -------------------------------------------------------------------------------- 1 | view('view.name'); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /stubs/markdown-mail.stub: -------------------------------------------------------------------------------- 1 | markdown('DummyView'); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /stubs/markdown.stub: -------------------------------------------------------------------------------- 1 | @component('mail::message') 2 | # Introduction 3 | 4 | The body of your message. 5 | 6 | @component('mail::button', ['url' => '']) 7 | Button Text 8 | @endcomponent 9 | 10 | Thanks, 11 | {{ config('app.name') }} 12 | @endcomponent 13 | -------------------------------------------------------------------------------- /stubs/middleware.stub: -------------------------------------------------------------------------------- 1 | id(); 18 | $table->timestamps(); 19 | }); 20 | } 21 | 22 | /** 23 | * Reverse the migrations. 24 | * 25 | * @return void 26 | */ 27 | public function down() 28 | { 29 | Schema::dropIfExists('{{ table }}'); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /stubs/migration.stub: -------------------------------------------------------------------------------- 1 | setCompiledRoutes( 15 | {{routes}} 16 | ); 17 | -------------------------------------------------------------------------------- /stubs/rule.stub: -------------------------------------------------------------------------------- 1 | get('/'); 19 | 20 | $response->assertStatus(200); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /stubs/test.unit.stub: -------------------------------------------------------------------------------- 1 | assertTrue(true); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /stubs/view-component.stub: -------------------------------------------------------------------------------- 1 | make(Kernel::class)->bootstrap(); 19 | 20 | return $app; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /tests/Feature/PermissionSettingsTest.php: -------------------------------------------------------------------------------- 1 | groupBy('resource'); 14 | $response = $this->actingAs($this->user) 15 | ->get('admin/roles/1/permissions') 16 | ->assertJsonFragment([ 17 | 'status' => 'success', 18 | ]); 19 | $this->assertCount($permissions->count(), $response->decodeResponseJson()['permissions']); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /tests/TestExceptionHandler.php: -------------------------------------------------------------------------------- 1 | actingAs($this->user); 15 | $this->discussion = factory(\App\Discussion\Models\Discussion::class)->create(); 16 | } 17 | 18 | /** @test */ 19 | public function discussion_belongs_to_a_creator() 20 | { 21 | $this->assertInstanceOf(\App\Base\Models\User::class, $this->discussion->creator); 22 | } 23 | 24 | /** @test **/ 25 | public function discussions_belongs_to_a_category() 26 | { 27 | $this->assertInstanceOf(\App\Base\Models\Category::class, $this->discussion->category); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /tests/Unit/EntityTest.php: -------------------------------------------------------------------------------- 1 | create(); 15 | factory(Cycle::class)->create(['cyclable_type' => 'project', 'cyclable_id' => $project->id]); 16 | $this->assertInstanceOf(Cycle::class, $project->current_cycle); 17 | } 18 | } 19 | --------------------------------------------------------------------------------