├── views
├── assets
│ ├── src
│ │ ├── components
│ │ │ ├── pusher
│ │ │ │ ├── mixin.js
│ │ │ │ ├── store.js
│ │ │ │ ├── App.js
│ │ │ │ ├── settings-tab-menu.vue
│ │ │ │ └── router.js
│ │ │ ├── importtools
│ │ │ │ ├── mixin.js
│ │ │ │ ├── store.js
│ │ │ │ └── router.js
│ │ │ ├── common
│ │ │ │ ├── empty.vue
│ │ │ │ ├── popper.vue
│ │ │ │ └── click-wrap.vue
│ │ │ ├── project-files
│ │ │ │ ├── store.js
│ │ │ │ ├── mixin.js
│ │ │ │ ├── router.js
│ │ │ │ └── index.vue
│ │ │ ├── categories
│ │ │ │ ├── store.js
│ │ │ │ └── router.js
│ │ │ ├── project-lists
│ │ │ │ ├── project-search-all.vue
│ │ │ │ ├── project-search-by-client.vue
│ │ │ │ ├── empty.vue
│ │ │ │ ├── project-new-project-btn.vue
│ │ │ │ └── mixin.js
│ │ │ ├── reports
│ │ │ │ └── router.js
│ │ │ ├── woo-project
│ │ │ │ └── router.js
│ │ │ ├── calendar
│ │ │ │ └── router.js
│ │ │ ├── pro-modules
│ │ │ │ └── router.js
│ │ │ ├── upgrade
│ │ │ │ ├── router.js
│ │ │ │ ├── overlay.vue
│ │ │ │ └── badge.vue
│ │ │ ├── welcome
│ │ │ │ └── router.js
│ │ │ ├── premium
│ │ │ │ └── router.js
│ │ │ ├── project-milestones
│ │ │ │ ├── index.vue
│ │ │ │ ├── date-picker.vue
│ │ │ │ └── list.vue
│ │ │ ├── project-task-lists
│ │ │ │ ├── index.vue
│ │ │ │ └── new-task-btn.vue
│ │ │ ├── add-ons
│ │ │ │ └── router.js
│ │ │ ├── progress
│ │ │ │ └── router.js
│ │ │ ├── privacy
│ │ │ │ └── router.js
│ │ │ ├── tasks-report
│ │ │ │ ├── router.js
│ │ │ │ └── menu.vue
│ │ │ ├── root
│ │ │ │ └── init.vue
│ │ │ ├── project-overview
│ │ │ │ ├── router.js
│ │ │ │ └── store.js
│ │ │ ├── project-settings
│ │ │ │ └── integrations.vue
│ │ │ ├── pro-settings
│ │ │ │ ├── page-tab-menu.vue
│ │ │ │ └── invoice-tab-menu.vue
│ │ │ ├── project-activities
│ │ │ │ └── router.js
│ │ │ └── settings
│ │ │ │ └── store.js
│ │ ├── helpers
│ │ │ ├── less
│ │ │ │ ├── common
│ │ │ │ │ └── components
│ │ │ │ │ │ ├── form.less
│ │ │ │ │ │ ├── card.less
│ │ │ │ │ │ └── display.less
│ │ │ │ ├── fonts
│ │ │ │ │ ├── icomoon.eot
│ │ │ │ │ ├── icomoon.ttf
│ │ │ │ │ └── icomoon.woff
│ │ │ │ ├── project
│ │ │ │ │ ├── abstracts
│ │ │ │ │ │ ├── vars.less
│ │ │ │ │ │ └── mixins.less
│ │ │ │ │ ├── pm-project.less
│ │ │ │ │ └── components
│ │ │ │ │ │ ├── pagination.less
│ │ │ │ │ │ └── tooltip.less
│ │ │ │ └── images
│ │ │ │ │ ├── pm-left-arrow.svg
│ │ │ │ │ ├── pm-solid-plus.svg
│ │ │ │ │ ├── pm-user.svg
│ │ │ │ │ └── pm-enter.svg
│ │ │ ├── mixin
│ │ │ │ └── module-mixin.js
│ │ │ ├── underscore.js
│ │ │ ├── global-common-components.js
│ │ │ ├── library.js
│ │ │ └── menu-fix.js
│ │ ├── start.js
│ │ └── main.js
│ ├── css
│ │ ├── jquery-timepicker
│ │ │ └── jquery-timepicker.css
│ │ ├── images
│ │ │ ├── banner.png
│ │ │ ├── prettyPhoto
│ │ │ │ ├── default
│ │ │ │ │ ├── loader.gif
│ │ │ │ │ ├── sprite.png
│ │ │ │ │ ├── sprite_x.png
│ │ │ │ │ ├── sprite_y.png
│ │ │ │ │ ├── sprite_next.png
│ │ │ │ │ ├── sprite_prev.png
│ │ │ │ │ └── default_thumb.png
│ │ │ │ ├── facebook
│ │ │ │ │ ├── btnNext.png
│ │ │ │ │ ├── loader.gif
│ │ │ │ │ ├── sprite.png
│ │ │ │ │ ├── btnPrevious.png
│ │ │ │ │ ├── contentPatternLeft.png
│ │ │ │ │ ├── contentPatternTop.png
│ │ │ │ │ ├── default_thumbnail.gif
│ │ │ │ │ ├── contentPatternBottom.png
│ │ │ │ │ └── contentPatternRight.png
│ │ │ │ ├── dark_rounded
│ │ │ │ │ ├── loader.gif
│ │ │ │ │ ├── sprite.png
│ │ │ │ │ ├── btnNext.png
│ │ │ │ │ ├── btnPrevious.png
│ │ │ │ │ ├── contentPattern.png
│ │ │ │ │ └── default_thumbnail.gif
│ │ │ │ ├── dark_square
│ │ │ │ │ ├── btnNext.png
│ │ │ │ │ ├── loader.gif
│ │ │ │ │ ├── sprite.png
│ │ │ │ │ ├── btnPrevious.png
│ │ │ │ │ ├── contentPattern.png
│ │ │ │ │ └── default_thumbnail.gif
│ │ │ │ ├── light_square
│ │ │ │ │ ├── loader.gif
│ │ │ │ │ ├── sprite.png
│ │ │ │ │ ├── btnNext.png
│ │ │ │ │ ├── btnPrevious.png
│ │ │ │ │ └── default_thumbnail.gif
│ │ │ │ └── light_rounded
│ │ │ │ │ ├── btnNext.png
│ │ │ │ │ ├── loader.gif
│ │ │ │ │ ├── sprite.png
│ │ │ │ │ ├── btnPrevious.png
│ │ │ │ │ └── default_thumbnail.gif
│ │ │ └── attachment.png
│ │ ├── icomoon-fonts
│ │ │ ├── icomoon.eot
│ │ │ ├── icomoon.ttf
│ │ │ └── icomoon.woff
│ │ ├── flaticon-fonts
│ │ │ ├── Flaticon.eot
│ │ │ ├── Flaticon.ttf
│ │ │ ├── Flaticon.woff
│ │ │ └── Flaticon.woff2
│ │ ├── jquery-ui
│ │ │ └── images
│ │ │ │ ├── loading.gif
│ │ │ │ ├── calendar-loading.gif
│ │ │ │ ├── ui-icons_222222_256x240.png
│ │ │ │ ├── ui-icons_2e83ff_256x240.png
│ │ │ │ ├── ui-icons_444444_256x240.png
│ │ │ │ ├── ui-icons_454545_256x240.png
│ │ │ │ ├── ui-icons_555555_256x240.png
│ │ │ │ ├── ui-icons_777620_256x240.png
│ │ │ │ ├── ui-icons_777777_256x240.png
│ │ │ │ ├── ui-icons_888888_256x240.png
│ │ │ │ ├── ui-icons_cc0000_256x240.png
│ │ │ │ ├── ui-icons_cd0a0a_256x240.png
│ │ │ │ ├── ui-icons_ffffff_256x240.png
│ │ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png
│ │ │ │ ├── ui-bg_flat_0_ffffff_40x100.png
│ │ │ │ ├── ui-bg_flat_75_ffffff_40x100.png
│ │ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png
│ │ │ │ ├── ui-bg_glass_65_ffffff_1x400.png
│ │ │ │ ├── ui-bg_glass_75_dadada_1x400.png
│ │ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png
│ │ │ │ ├── ui-bg_glass_95_fef1ec_1x400.png
│ │ │ │ ├── prettyPhoto
│ │ │ │ └── prettyPhoto
│ │ │ │ │ ├── facebook
│ │ │ │ │ ├── loader.gif
│ │ │ │ │ ├── sprite.png
│ │ │ │ │ ├── btnNext.png
│ │ │ │ │ ├── btnPrevious.png
│ │ │ │ │ ├── contentPatternLeft.png
│ │ │ │ │ ├── contentPatternTop.png
│ │ │ │ │ ├── default_thumbnail.gif
│ │ │ │ │ ├── contentPatternBottom.png
│ │ │ │ │ └── contentPatternRight.png
│ │ │ │ │ ├── dark_rounded
│ │ │ │ │ ├── btnNext.png
│ │ │ │ │ ├── loader.gif
│ │ │ │ │ ├── sprite.png
│ │ │ │ │ ├── btnPrevious.png
│ │ │ │ │ ├── contentPattern.png
│ │ │ │ │ └── default_thumbnail.gif
│ │ │ │ │ ├── dark_square
│ │ │ │ │ ├── btnNext.png
│ │ │ │ │ ├── loader.gif
│ │ │ │ │ ├── sprite.png
│ │ │ │ │ ├── btnPrevious.png
│ │ │ │ │ ├── contentPattern.png
│ │ │ │ │ └── default_thumbnail.gif
│ │ │ │ │ ├── light_rounded
│ │ │ │ │ ├── loader.gif
│ │ │ │ │ ├── sprite.png
│ │ │ │ │ ├── btnNext.png
│ │ │ │ │ ├── btnPrevious.png
│ │ │ │ │ └── default_thumbnail.gif
│ │ │ │ │ └── light_square
│ │ │ │ │ ├── btnNext.png
│ │ │ │ │ ├── loader.gif
│ │ │ │ │ ├── sprite.png
│ │ │ │ │ ├── btnPrevious.png
│ │ │ │ │ └── default_thumbnail.gif
│ │ │ │ └── ui-bg_diagonals-small_75_cccccc_40x40.png
│ │ ├── pretty-photo
│ │ │ └── default
│ │ │ │ ├── loader.gif
│ │ │ │ ├── sprite.png
│ │ │ │ ├── sprite_x.png
│ │ │ │ ├── sprite_y.png
│ │ │ │ ├── sprite_next.png
│ │ │ │ ├── sprite_prev.png
│ │ │ │ └── default_thumb.png
│ │ ├── fontawesome
│ │ │ └── fonts
│ │ │ │ ├── FontAwesome.otf
│ │ │ │ ├── fontawesome-webfont.eot
│ │ │ │ ├── fontawesome-webfont.ttf
│ │ │ │ ├── fontawesome-webfont.woff
│ │ │ │ └── fontawesome-webfont.woff2
│ │ ├── Elegant-Loading-Indicator
│ │ │ ├── pm-loadin.gif
│ │ │ └── pm-loading.gif
│ │ ├── v-autocomplete
│ │ │ └── v-autocomplete.css
│ │ └── nprogress
│ │ │ └── nprogress.css
│ ├── images
│ │ ├── new.png
│ │ ├── arrow.png
│ │ ├── chart.png
│ │ ├── copy.png
│ │ ├── docs.png
│ │ ├── lock.png
│ │ ├── move.png
│ │ ├── plus.png
│ │ ├── tpbk.png
│ │ ├── GitHub.png
│ │ ├── active.png
│ │ ├── calendar.png
│ │ ├── comment.png
│ │ ├── complete.png
│ │ ├── gravatar.png
│ │ ├── loading.gif
│ │ ├── notify.png
│ │ ├── pm-icon.png
│ │ ├── pm-logo.gif
│ │ ├── pm-logo.png
│ │ ├── triangle.png
│ │ ├── attachment.png
│ │ ├── icons
│ │ │ ├── code.png
│ │ │ ├── pdf.png
│ │ │ ├── ppt.png
│ │ │ ├── text.png
│ │ │ ├── 1807138.png
│ │ │ ├── _audio.png
│ │ │ ├── _code.png
│ │ │ ├── _text.png
│ │ │ ├── archive.png
│ │ │ ├── audio.png
│ │ │ ├── default.png
│ │ │ ├── video.png
│ │ │ ├── _default.png
│ │ │ ├── _document.png
│ │ │ ├── document.png
│ │ │ ├── icon-psd.png
│ │ │ ├── _interactive.png
│ │ │ ├── _spreadsheet.png
│ │ │ ├── interactive.png
│ │ │ └── spreadsheet.png
│ │ ├── milestones.png
│ │ ├── promo-logo.png
│ │ ├── to-do-list.png
│ │ ├── _bullet_green.png
│ │ ├── bullet_green.png
│ │ ├── more-loading.gif
│ │ ├── pm-logo-pro.png
│ │ ├── modules
│ │ │ ├── invoice.png
│ │ │ ├── sprint.png
│ │ │ ├── stripe.png
│ │ │ ├── sub-task.png
│ │ │ ├── buddy-press.png
│ │ │ ├── gantt-chart.png
│ │ │ ├── kanban-board.png
│ │ │ ├── time-tracker.png
│ │ │ ├── woo-project.png
│ │ │ ├── custom-fields.png
│ │ │ ├── task-recurring.png
│ │ │ ├── popup-slider
│ │ │ │ ├── slider-1.jpg
│ │ │ │ ├── slider-2.jpg
│ │ │ │ ├── slider-3.jpg
│ │ │ │ └── slider-4.jpg
│ │ │ ├── x.svg
│ │ │ ├── check.svg
│ │ │ ├── diamond.svg
│ │ │ └── crown.svg
│ │ ├── pro-feature
│ │ │ ├── banner.png
│ │ │ ├── report-thumb.jpg
│ │ │ ├── calendar-thumb.jpg
│ │ │ └── progress-thumb.jpg
│ │ ├── welcome
│ │ │ ├── file-thumb.jpg
│ │ │ ├── task-thumb.jpg
│ │ │ ├── milestone-thumb.jpg
│ │ │ ├── overview-thumb.jpg
│ │ │ ├── activities-thumb.jpg
│ │ │ ├── discussion-thumb.jpg
│ │ │ └── intro-video-bg-image.png
│ │ ├── completed-task-center-logo.png
│ │ ├── completed-task-header-background.png
│ │ ├── check-mark.svg
│ │ ├── download.svg
│ │ ├── download_hover.svg
│ │ ├── close.svg
│ │ ├── refresh.svg
│ │ ├── minus.svg
│ │ ├── crown.svg
│ │ ├── active_projects.svg
│ │ ├── active_projects_hover.svg
│ │ ├── column.svg
│ │ ├── Edit_01.svg
│ │ ├── edit.svg
│ │ ├── list-menu.svg
│ │ ├── list-menu-hover.svg
│ │ └── done.svg
│ └── vendor
│ │ ├── vue-fullscreen
│ │ └── vue-fullscreen.js
│ │ ├── wp-hooks
│ │ └── wp-hooks.js
│ │ ├── const.js
│ │ └── tinymce
│ │ └── plugins
│ │ └── placeholder
│ │ └── plugin.min.js
└── project-switch
│ └── task-creating.php
├── languages
├── wedevs-project-manager-bn_BD.mo
├── wedevs-project-manager-cs_CZ.mo
├── wedevs-project-manager-de_DE.mo
├── wedevs-project-manager-es_ES.mo
├── wedevs-project-manager-fr_FR.mo
├── wedevs-project-manager-id_ID.mo
├── wedevs-project-manager-nl_NL.mo
├── wedevs-project-manager-pl_PL.mo
├── wedevs-project-manager-pt_BR.mo
├── wedevs-project-manager-sk_SK.mo
├── wedevs-project-manager-tr_TR.mo
├── wedevs-project-manager-zh_CN.mo
└── readme.txt
├── src
├── Pusher
│ ├── views
│ │ └── assets
│ │ │ └── images
│ │ │ ├── kanban-board.png
│ │ │ ├── notification.png
│ │ │ ├── column.svg
│ │ │ ├── column-hover.svg
│ │ │ ├── list-menu.svg
│ │ │ └── list-menu-hover.svg
│ └── Libs
│ │ ├── filter.php
│ │ └── function.php
├── Project
│ ├── Transformers
│ │ ├── Generate_Project_Transformer.php
│ │ └── Overview_Graph_Transformer.php
│ ├── Sanitizers
│ │ ├── Delete_Sanitizer.php
│ │ └── Project_Sanitizer.php
│ ├── Validators
│ │ ├── Create_Project.php
│ │ └── Update_Project.php
│ └── Project_Status.php
├── Common
│ ├── Traits
│ │ ├── Assignee_Filter.php
│ │ ├── Resource_Editors.php
│ │ ├── Last_Activity.php
│ │ ├── Request_Filter.php
│ │ ├── Model_Events.php
│ │ └── Board_Status.php
│ ├── Transformers
│ │ └── Board_Transformer.php
│ └── Models
│ │ ├── Board.php
│ │ ├── Assignee.php
│ │ └── Boardable.php
├── Comment
│ └── Validators
│ │ ├── Comment_Sanitizer.php
│ │ ├── Create_Comment.php
│ │ └── Update_Comment.php
├── Imports
│ └── Models
│ │ └── Import.php
├── Task
│ ├── Sanitizers
│ │ └── Task_Sanitizer.php
│ └── Validators
│ │ ├── Create_Task.php
│ │ └── Update_Task.php
├── Milestone
│ ├── Sanitizers
│ │ └── Milestone_Sanitizer.php
│ └── Validators
│ │ ├── Create_Milestone.php
│ │ └── Update_Milestone.php
├── Task_List
│ └── Validators
│ │ ├── Task_List_Sanitizer.php
│ │ ├── Create_Task_List.php
│ │ └── Update_Task_List.php
├── Category
│ ├── Sanitizers
│ │ └── Category_Sanitizer.php
│ ├── Validators
│ │ ├── Create_Category.php
│ │ └── Update_Category.php
│ ├── Models
│ │ └── Category.php
│ └── Transformers
│ │ └── Category_Transformer.php
├── Settings
│ ├── Sanitizers
│ │ └── Task_Type_Sanitizer.php
│ ├── Models
│ │ ├── Task_Types.php
│ │ └── Task_Type_Task.php
│ └── Transformers
│ │ └── Task_Type_Transformer.php
├── File
│ ├── Sanitizers
│ │ └── File_Sanitizer.php
│ └── Models
│ │ └── File.php
├── Role
│ ├── Models
│ │ └── Role.php
│ ├── Validators
│ │ ├── Create_Role.php
│ │ └── Update_Role.php
│ └── Transformers
│ │ └── Role_Transformer.php
├── Discussion_Board
│ └── Validators
│ │ ├── Discussion_Board_Sanitizer.php
│ │ ├── Create_Discussion_Board.php
│ │ └── Update_Discussion_Board.php
├── Tools
│ └── Library
│ │ └── PM_ActiveCol.php
├── Activity
│ └── Activity_Log.php
├── My_Task
│ └── Transformers
│ │ └── Project_Transformer.php
└── User
│ └── Models
│ └── User_Role.php
├── core
├── Database
│ ├── Migration.php
│ ├── Abstract_Migration.php
│ ├── Migration_Model.php
│ └── Model_Observer.php
├── WP
│ ├── Output.php
│ └── Register_Scripts.php
├── Permissions
│ ├── Administrator.php
│ ├── Permission.php
│ ├── Settings_Page_Access.php
│ ├── Categories_Page_Access.php
│ ├── Authentic.php
│ ├── Admin.php
│ ├── Manager.php
│ ├── Project_Create_Capability.php
│ ├── Create_Task.php
│ ├── Create_File.php
│ ├── Create_Milestone.php
│ ├── Create_Task_List.php
│ ├── Create_Discuss.php
│ ├── Abstract_Permission.php
│ ├── Edit_File.php
│ ├── Project_Settings_Page_Access.php
│ ├── Access_Project.php
│ ├── Edit_Milestone.php
│ ├── Edit_Task_List.php
│ ├── Edit_Discuss.php
│ ├── Delete_Task.php
│ ├── Edit_Task.php
│ ├── Edit_Comment.php
│ └── Project_Manage_Capability.php
├── Exceptions
│ ├── Class_Not_Found.php
│ ├── Invalid_Route_Handler.php
│ └── Undefined_Method_Call.php
├── Pro
│ └── assets
│ │ └── images
│ │ ├── check.svg
│ │ └── crown.svg
└── Installer
│ └── Installer.php
├── config
├── define.php
├── db.php
├── frontend.php
└── app.php
├── codeception.yml
├── routes
├── pusher.php
├── search.php
├── activity.php
└── mytask.php
├── libs
├── sanitization-filters.php
└── validation-rules.php
├── bootstrap
└── start.php
└── phpcs-xml
└── plugin-check-accessibility.xml
/views/assets/src/components/pusher/mixin.js:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/views/assets/css/jquery-timepicker/jquery-timepicker.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/views/assets/src/components/importtools/mixin.js:
--------------------------------------------------------------------------------
1 | export default {
2 | methods: {
3 |
4 | }
5 | };
--------------------------------------------------------------------------------
/views/assets/css/images/banner.png:
--------------------------------------------------------------------------------
1 | module.exports = __webpack_public_path__ + "69569174d77b6836c235fd229de0fecc.png";
--------------------------------------------------------------------------------
/views/assets/images/new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/new.png
--------------------------------------------------------------------------------
/views/assets/images/arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/arrow.png
--------------------------------------------------------------------------------
/views/assets/images/chart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/chart.png
--------------------------------------------------------------------------------
/views/assets/images/copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/copy.png
--------------------------------------------------------------------------------
/views/assets/images/docs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/docs.png
--------------------------------------------------------------------------------
/views/assets/images/lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/lock.png
--------------------------------------------------------------------------------
/views/assets/images/move.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/move.png
--------------------------------------------------------------------------------
/views/assets/images/plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/plus.png
--------------------------------------------------------------------------------
/views/assets/images/tpbk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/tpbk.png
--------------------------------------------------------------------------------
/views/assets/src/helpers/less/common/components/form.less:
--------------------------------------------------------------------------------
1 |
2 |
3 | /* multiselect styles */
4 | .multiselect__tags {
5 |
6 | }
--------------------------------------------------------------------------------
/views/assets/vendor/vue-fullscreen/vue-fullscreen.js:
--------------------------------------------------------------------------------
1 | import fullscreen from 'vue-fullscreen'
2 |
3 | Vue.use(fullscreen)
4 |
--------------------------------------------------------------------------------
/views/assets/images/GitHub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/GitHub.png
--------------------------------------------------------------------------------
/views/assets/images/active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/active.png
--------------------------------------------------------------------------------
/views/assets/images/calendar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/calendar.png
--------------------------------------------------------------------------------
/views/assets/images/comment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/comment.png
--------------------------------------------------------------------------------
/views/assets/images/complete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/complete.png
--------------------------------------------------------------------------------
/views/assets/images/gravatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/gravatar.png
--------------------------------------------------------------------------------
/views/assets/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/loading.gif
--------------------------------------------------------------------------------
/views/assets/images/notify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/notify.png
--------------------------------------------------------------------------------
/views/assets/images/pm-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/pm-icon.png
--------------------------------------------------------------------------------
/views/assets/images/pm-logo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/pm-logo.gif
--------------------------------------------------------------------------------
/views/assets/images/pm-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/pm-logo.png
--------------------------------------------------------------------------------
/views/assets/images/triangle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/triangle.png
--------------------------------------------------------------------------------
/views/assets/images/attachment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/attachment.png
--------------------------------------------------------------------------------
/views/assets/images/icons/code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/icons/code.png
--------------------------------------------------------------------------------
/views/assets/images/icons/pdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/icons/pdf.png
--------------------------------------------------------------------------------
/views/assets/images/icons/ppt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/icons/ppt.png
--------------------------------------------------------------------------------
/views/assets/images/icons/text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/icons/text.png
--------------------------------------------------------------------------------
/views/assets/images/milestones.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/milestones.png
--------------------------------------------------------------------------------
/views/assets/images/promo-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/promo-logo.png
--------------------------------------------------------------------------------
/views/assets/images/to-do-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/to-do-list.png
--------------------------------------------------------------------------------
/views/assets/images/_bullet_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/_bullet_green.png
--------------------------------------------------------------------------------
/views/assets/images/bullet_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/bullet_green.png
--------------------------------------------------------------------------------
/views/assets/images/icons/1807138.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/icons/1807138.png
--------------------------------------------------------------------------------
/views/assets/images/icons/_audio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/icons/_audio.png
--------------------------------------------------------------------------------
/views/assets/images/icons/_code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/icons/_code.png
--------------------------------------------------------------------------------
/views/assets/images/icons/_text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/icons/_text.png
--------------------------------------------------------------------------------
/views/assets/images/icons/archive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/icons/archive.png
--------------------------------------------------------------------------------
/views/assets/images/icons/audio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/icons/audio.png
--------------------------------------------------------------------------------
/views/assets/images/icons/default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/icons/default.png
--------------------------------------------------------------------------------
/views/assets/images/icons/video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/icons/video.png
--------------------------------------------------------------------------------
/views/assets/images/more-loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/more-loading.gif
--------------------------------------------------------------------------------
/views/assets/images/pm-logo-pro.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/pm-logo-pro.png
--------------------------------------------------------------------------------
/views/assets/images/icons/_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/icons/_default.png
--------------------------------------------------------------------------------
/views/assets/images/icons/_document.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/icons/_document.png
--------------------------------------------------------------------------------
/views/assets/images/icons/document.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/icons/document.png
--------------------------------------------------------------------------------
/views/assets/images/icons/icon-psd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/icons/icon-psd.png
--------------------------------------------------------------------------------
/views/assets/images/modules/invoice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/modules/invoice.png
--------------------------------------------------------------------------------
/views/assets/images/modules/sprint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/modules/sprint.png
--------------------------------------------------------------------------------
/views/assets/images/modules/stripe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/modules/stripe.png
--------------------------------------------------------------------------------
/languages/wedevs-project-manager-bn_BD.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/languages/wedevs-project-manager-bn_BD.mo
--------------------------------------------------------------------------------
/languages/wedevs-project-manager-cs_CZ.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/languages/wedevs-project-manager-cs_CZ.mo
--------------------------------------------------------------------------------
/languages/wedevs-project-manager-de_DE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/languages/wedevs-project-manager-de_DE.mo
--------------------------------------------------------------------------------
/languages/wedevs-project-manager-es_ES.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/languages/wedevs-project-manager-es_ES.mo
--------------------------------------------------------------------------------
/languages/wedevs-project-manager-fr_FR.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/languages/wedevs-project-manager-fr_FR.mo
--------------------------------------------------------------------------------
/languages/wedevs-project-manager-id_ID.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/languages/wedevs-project-manager-id_ID.mo
--------------------------------------------------------------------------------
/languages/wedevs-project-manager-nl_NL.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/languages/wedevs-project-manager-nl_NL.mo
--------------------------------------------------------------------------------
/languages/wedevs-project-manager-pl_PL.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/languages/wedevs-project-manager-pl_PL.mo
--------------------------------------------------------------------------------
/languages/wedevs-project-manager-pt_BR.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/languages/wedevs-project-manager-pt_BR.mo
--------------------------------------------------------------------------------
/languages/wedevs-project-manager-sk_SK.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/languages/wedevs-project-manager-sk_SK.mo
--------------------------------------------------------------------------------
/languages/wedevs-project-manager-tr_TR.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/languages/wedevs-project-manager-tr_TR.mo
--------------------------------------------------------------------------------
/languages/wedevs-project-manager-zh_CN.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/languages/wedevs-project-manager-zh_CN.mo
--------------------------------------------------------------------------------
/views/assets/css/icomoon-fonts/icomoon.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/icomoon-fonts/icomoon.eot
--------------------------------------------------------------------------------
/views/assets/css/icomoon-fonts/icomoon.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/icomoon-fonts/icomoon.ttf
--------------------------------------------------------------------------------
/views/assets/images/icons/_interactive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/icons/_interactive.png
--------------------------------------------------------------------------------
/views/assets/images/icons/_spreadsheet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/icons/_spreadsheet.png
--------------------------------------------------------------------------------
/views/assets/images/icons/interactive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/icons/interactive.png
--------------------------------------------------------------------------------
/views/assets/images/icons/spreadsheet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/icons/spreadsheet.png
--------------------------------------------------------------------------------
/views/assets/images/modules/sub-task.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/modules/sub-task.png
--------------------------------------------------------------------------------
/views/assets/images/pro-feature/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/pro-feature/banner.png
--------------------------------------------------------------------------------
/views/assets/images/welcome/file-thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/welcome/file-thumb.jpg
--------------------------------------------------------------------------------
/views/assets/images/welcome/task-thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/welcome/task-thumb.jpg
--------------------------------------------------------------------------------
/views/assets/css/flaticon-fonts/Flaticon.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/flaticon-fonts/Flaticon.eot
--------------------------------------------------------------------------------
/views/assets/css/flaticon-fonts/Flaticon.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/flaticon-fonts/Flaticon.ttf
--------------------------------------------------------------------------------
/views/assets/css/icomoon-fonts/icomoon.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/icomoon-fonts/icomoon.woff
--------------------------------------------------------------------------------
/views/assets/images/modules/buddy-press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/modules/buddy-press.png
--------------------------------------------------------------------------------
/views/assets/images/modules/gantt-chart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/modules/gantt-chart.png
--------------------------------------------------------------------------------
/views/assets/images/modules/kanban-board.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/modules/kanban-board.png
--------------------------------------------------------------------------------
/views/assets/images/modules/time-tracker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/modules/time-tracker.png
--------------------------------------------------------------------------------
/views/assets/images/modules/woo-project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/modules/woo-project.png
--------------------------------------------------------------------------------
/src/Pusher/views/assets/images/kanban-board.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/src/Pusher/views/assets/images/kanban-board.png
--------------------------------------------------------------------------------
/src/Pusher/views/assets/images/notification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/src/Pusher/views/assets/images/notification.png
--------------------------------------------------------------------------------
/views/assets/css/flaticon-fonts/Flaticon.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/flaticon-fonts/Flaticon.woff
--------------------------------------------------------------------------------
/views/assets/css/flaticon-fonts/Flaticon.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/flaticon-fonts/Flaticon.woff2
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/loading.gif
--------------------------------------------------------------------------------
/views/assets/images/modules/custom-fields.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/modules/custom-fields.png
--------------------------------------------------------------------------------
/views/assets/images/modules/task-recurring.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/modules/task-recurring.png
--------------------------------------------------------------------------------
/views/assets/images/welcome/milestone-thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/welcome/milestone-thumb.jpg
--------------------------------------------------------------------------------
/views/assets/images/welcome/overview-thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/images/welcome/overview-thumb.jpg
--------------------------------------------------------------------------------
/views/assets/src/components/pusher/store.js:
--------------------------------------------------------------------------------
1 | export default {
2 | state: {
3 |
4 | },
5 |
6 | mutations: {
7 |
8 | }
9 |
10 | };
11 |
--------------------------------------------------------------------------------
/views/assets/src/helpers/less/fonts/icomoon.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/src/helpers/less/fonts/icomoon.eot
--------------------------------------------------------------------------------
/views/assets/src/helpers/less/fonts/icomoon.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/src/helpers/less/fonts/icomoon.ttf
--------------------------------------------------------------------------------
/src/Project/Transformers/Generate_Project_Transformer.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/core/Database/Migration.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
13 |
--------------------------------------------------------------------------------
/views/assets/css/images/prettyPhoto/dark_rounded/btnPrevious.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/images/prettyPhoto/dark_rounded/btnPrevious.png
--------------------------------------------------------------------------------
/views/assets/css/images/prettyPhoto/dark_square/btnPrevious.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/images/prettyPhoto/dark_square/btnPrevious.png
--------------------------------------------------------------------------------
/views/assets/css/images/prettyPhoto/light_square/btnPrevious.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/images/prettyPhoto/light_square/btnPrevious.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/ui-bg_flat_0_ffffff_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/ui-bg_flat_0_ffffff_40x100.png
--------------------------------------------------------------------------------
/views/assets/css/images/prettyPhoto/dark_rounded/contentPattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/images/prettyPhoto/dark_rounded/contentPattern.png
--------------------------------------------------------------------------------
/views/assets/css/images/prettyPhoto/dark_square/contentPattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/images/prettyPhoto/dark_square/contentPattern.png
--------------------------------------------------------------------------------
/views/assets/css/images/prettyPhoto/facebook/contentPatternLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/images/prettyPhoto/facebook/contentPatternLeft.png
--------------------------------------------------------------------------------
/views/assets/css/images/prettyPhoto/facebook/contentPatternTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/images/prettyPhoto/facebook/contentPatternTop.png
--------------------------------------------------------------------------------
/views/assets/css/images/prettyPhoto/facebook/default_thumbnail.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/images/prettyPhoto/facebook/default_thumbnail.gif
--------------------------------------------------------------------------------
/views/assets/css/images/prettyPhoto/light_rounded/btnPrevious.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/images/prettyPhoto/light_rounded/btnPrevious.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/ui-bg_flat_75_ffffff_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/ui-bg_flat_75_ffffff_40x100.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png
--------------------------------------------------------------------------------
/views/assets/vendor/wp-hooks/wp-hooks.js:
--------------------------------------------------------------------------------
1 | import { createHooks } from '@wordpress/hooks'; //Remove this file from grunt. But it will store in github
2 |
3 | window.wedevsPMWPHook = createHooks();
4 |
--------------------------------------------------------------------------------
/views/assets/css/images/prettyPhoto/dark_square/default_thumbnail.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/images/prettyPhoto/dark_square/default_thumbnail.gif
--------------------------------------------------------------------------------
/views/assets/css/images/prettyPhoto/facebook/contentPatternBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/images/prettyPhoto/facebook/contentPatternBottom.png
--------------------------------------------------------------------------------
/views/assets/css/images/prettyPhoto/facebook/contentPatternRight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/images/prettyPhoto/facebook/contentPatternRight.png
--------------------------------------------------------------------------------
/views/assets/src/start.js:
--------------------------------------------------------------------------------
1 | __webpack_public_path__ = PM_Vars.dir_url + 'views/assets/js/';
2 |
3 | //For IE6
4 | require('es6-promise/auto');
5 |
6 | require('./main');
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/views/assets/css/images/prettyPhoto/dark_rounded/default_thumbnail.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/images/prettyPhoto/dark_rounded/default_thumbnail.gif
--------------------------------------------------------------------------------
/views/assets/css/images/prettyPhoto/light_rounded/default_thumbnail.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/images/prettyPhoto/light_rounded/default_thumbnail.gif
--------------------------------------------------------------------------------
/views/assets/css/images/prettyPhoto/light_square/default_thumbnail.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/images/prettyPhoto/light_square/default_thumbnail.gif
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/facebook/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/facebook/loader.gif
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/facebook/sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/facebook/sprite.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/ui-bg_diagonals-small_75_cccccc_40x40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/ui-bg_diagonals-small_75_cccccc_40x40.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/facebook/btnNext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/facebook/btnNext.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_rounded/btnNext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_rounded/btnNext.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_rounded/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_rounded/loader.gif
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_rounded/sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_rounded/sprite.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_square/btnNext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_square/btnNext.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_square/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_square/loader.gif
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_square/sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_square/sprite.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/facebook/btnPrevious.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/facebook/btnPrevious.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/light_rounded/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/light_rounded/loader.gif
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/light_rounded/sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/light_rounded/sprite.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/light_square/btnNext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/light_square/btnNext.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/light_square/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/light_square/loader.gif
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/light_square/sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/light_square/sprite.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/light_rounded/btnNext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/light_rounded/btnNext.png
--------------------------------------------------------------------------------
/config/define.php:
--------------------------------------------------------------------------------
1 | dirname( dirname( __FILE__ ) ),
4 | 'url' => plugin_dir_url( dirname( __FILE__ ) ),
5 | 'view_path' => dirname( dirname( __FILE__ ) ) . '/views',
6 | ];
7 |
8 |
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_rounded/btnPrevious.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_rounded/btnPrevious.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_square/btnPrevious.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_square/btnPrevious.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/light_rounded/btnPrevious.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/light_rounded/btnPrevious.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/light_square/btnPrevious.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/light_square/btnPrevious.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_rounded/contentPattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_rounded/contentPattern.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_square/contentPattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_square/contentPattern.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/facebook/contentPatternLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/facebook/contentPatternLeft.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/facebook/contentPatternTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/facebook/contentPatternTop.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/facebook/default_thumbnail.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/facebook/default_thumbnail.gif
--------------------------------------------------------------------------------
/core/WP/Output.php:
--------------------------------------------------------------------------------
1 | array( 'id' => array() ) ) );
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_rounded/default_thumbnail.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_rounded/default_thumbnail.gif
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_square/default_thumbnail.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/dark_square/default_thumbnail.gif
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/facebook/contentPatternBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/facebook/contentPatternBottom.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/facebook/contentPatternRight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/facebook/contentPatternRight.png
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/light_square/default_thumbnail.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/light_square/default_thumbnail.gif
--------------------------------------------------------------------------------
/views/assets/src/components/project-files/store.js:
--------------------------------------------------------------------------------
1 | export default {
2 | state: {
3 | files: []
4 | },
5 | mutations: {
6 | setFiles (state, files) {
7 | state.files = files;
8 | }
9 | },
10 | }
--------------------------------------------------------------------------------
/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/light_rounded/default_thumbnail.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weDevsOfficial/wp-project-manager/HEAD/views/assets/css/jquery-ui/images/prettyPhoto/prettyPhoto/light_rounded/default_thumbnail.gif
--------------------------------------------------------------------------------
/views/assets/vendor/const.js:
--------------------------------------------------------------------------------
1 | pm.Vue = Vue;
2 | pm.Vuex = Vuex;
3 | pm.VueRouter = VueRouter;
4 | pm.Chart = Chart;
5 | pm.Moment = moment;
6 | pm.NProgress = NProgress;
7 | pm.Toastr = toastr;
8 |
9 |
10 | pm.pmObject = {};
11 |
--------------------------------------------------------------------------------
/views/assets/src/helpers/underscore.js:
--------------------------------------------------------------------------------
1 | import * as allUnderscore from 'underscore';
2 |
3 | if(typeof _ != 'undefined') {
4 | for ( var underscoreProperty in allUnderscore ) {
5 | _[underscoreProperty] = allUnderscore[underscoreProperty];
6 | }
7 | }
8 |
9 |
--------------------------------------------------------------------------------
/views/assets/src/components/categories/store.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Make sure to call pm.Vue.use(Vuex) first if using a vuex module system
4 | */
5 | export default {
6 |
7 | state: {
8 |
9 | },
10 | mutations: {
11 |
12 | }
13 | };
--------------------------------------------------------------------------------
/views/assets/src/components/project-lists/project-search-all.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/views/assets/src/helpers/global-common-components.js:
--------------------------------------------------------------------------------
1 | //import pmSingleTask from '@components/project-task-lists/single-task.vue';
2 | export default {
3 | pagination: require('@components/common/pagination.vue'),
4 | datePicker: require('@components/common/date-picker.vue'),
5 | }
6 |
--------------------------------------------------------------------------------
/views/assets/src/components/project-lists/project-search-by-client.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/Common/Traits/Assignee_Filter.php:
--------------------------------------------------------------------------------
1 | schema();
10 | }
11 |
12 | abstract public function schema();
13 | }
--------------------------------------------------------------------------------
/views/assets/src/components/calendar/router.js:
--------------------------------------------------------------------------------
1 | import Calendar from '@components/calendar/calendar';
2 |
3 | weDevsPMRegisterChildrenRoute('project_root',
4 | [
5 | {
6 | path: '/calendar',
7 | component: Calendar,
8 | name: 'calendar',
9 | },
10 | ]
11 | );
12 |
--------------------------------------------------------------------------------
/views/assets/src/components/pro-modules/router.js:
--------------------------------------------------------------------------------
1 | import Modules from '@components/pro-modules/modules';
2 |
3 | weDevsPMRegisterChildrenRoute('project_root',
4 | [
5 | {
6 | path: '/modules',
7 | component: Modules,
8 | name: 'modules',
9 | },
10 | ]
11 | );
12 |
--------------------------------------------------------------------------------
/views/assets/src/components/upgrade/router.js:
--------------------------------------------------------------------------------
1 | import Popup from '@components/upgrade/popup';
2 |
3 | weDevsPMRegisterChildrenRoute('project_root',
4 | [
5 | {
6 | path: '/pm-upgrade-popup',
7 | component: Popup,
8 | name: 'pm-upgrade-popup',
9 | }
10 |
11 | ]
12 | );
13 |
--------------------------------------------------------------------------------
/src/Project/Sanitizers/Delete_Sanitizer.php:
--------------------------------------------------------------------------------
1 | 'absolute',
11 | ];
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/languages/readme.txt:
--------------------------------------------------------------------------------
1 | For creating translation file
2 | =============================
3 |
4 | 1. Copy the "wedevs-project-manager.pot" file to "wedevs-project-manager-.po". e.g: "wedevs-project-manager-fr_FR.po"
5 | 2. Open the "wedevs-project-manager-.po" in "Poedit" software and translate the strings.
6 |
--------------------------------------------------------------------------------
/core/Exceptions/Class_Not_Found.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ __( 'Pusher', 'wedevs-project-manager' ) }}
4 |
5 |
6 |
7 |
12 | -->
13 |
--------------------------------------------------------------------------------
/src/Comment/Validators/Comment_Sanitizer.php:
--------------------------------------------------------------------------------
1 | 'pm_kses',
11 | ];
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/Pusher/Libs/filter.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/core/Exceptions/Undefined_Method_Call.php:
--------------------------------------------------------------------------------
1 | 'trimer|sanitize_text_field',
11 | 'description' => 'trimer|pm_kses',
12 | ];
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Milestone/Sanitizers/Milestone_Sanitizer.php:
--------------------------------------------------------------------------------
1 | 'trimer|pm_kses',
11 | 'description' => 'trimer|pm_kses',
12 | ];
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Task_List/Validators/Task_List_Sanitizer.php:
--------------------------------------------------------------------------------
1 | 'trimer|pm_kses',
11 | 'description' => 'trimer|pm_kses',
12 | ];
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/views/assets/src/components/pusher/router.js:
--------------------------------------------------------------------------------
1 | weDevsPmRegisterModule('pusher', 'pusher');
2 |
3 | // import PusherSettings from '@components/settings.vue';
4 |
5 | // weDevsPMRegisterChildrenRoute('settings_root',
6 | // [
7 | // {
8 | // path: 'pusher',
9 | // component: PusherSettings,
10 | // name: 'pusher_settings_tab',
11 | // }
12 | // ]
13 | // )
14 |
--------------------------------------------------------------------------------
/config/db.php:
--------------------------------------------------------------------------------
1 | 'mysql',
5 | 'host' => wedevs_pm_config( 'DB_HOST' ),
6 | 'database' => wedevs_pm_config( 'DB_NAME' ),
7 | 'username' => wedevs_pm_config( 'DB_USER' ),
8 | 'password' => wedevs_pm_config( 'DB_PASSWORD' ),
9 | 'charset' => 'utf8mb4',
10 | 'collation' => 'utf8mb4_unicode_ci',
11 | 'prefix' => $wpdb->prefix,
12 | ];
--------------------------------------------------------------------------------
/src/Category/Sanitizers/Category_Sanitizer.php:
--------------------------------------------------------------------------------
1 | 'trimer|sanitize_text_field',
11 | 'description' => 'trimer|pm_kses',
12 | ];
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/views/assets/src/helpers/less/project/components/pagination.less:
--------------------------------------------------------------------------------
1 | /*
2 | * Component: pagination
3 | */
4 |
5 | .pm-overview-panel .pm-pagination-wrap {
6 | margin: 0 0 20px !important;
7 | a {
8 | transition: background .3s ease-in;
9 | &.current,
10 | &:hover,
11 | &:focus {
12 | background: @theme-color !important;
13 | }
14 | &.current {
15 | cursor: not-allowed;
16 | opacity: .8;
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/views/assets/src/components/upgrade/overlay.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
24 |
--------------------------------------------------------------------------------
/src/Settings/Sanitizers/Task_Type_Sanitizer.php:
--------------------------------------------------------------------------------
1 | 'trimer|sanitize_text_field',
11 | 'description' => 'trimer|sanitize_text_field',
12 | ];
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/views/assets/images/modules/x.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/core/Permissions/Authentic.php:
--------------------------------------------------------------------------------
1 | ID ) ) {
13 | return false;
14 | }
15 |
16 | return true;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/File/Sanitizers/File_Sanitizer.php:
--------------------------------------------------------------------------------
1 | 'trimer|pm_kses',
11 | 'description' => 'trimer|pm_kses',
12 | 'type' => 'trimer|pm_kses',
13 | ];
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/views/assets/src/helpers/less/common/components/card.less:
--------------------------------------------------------------------------------
1 | /*
2 | * Component: Card;
3 | */
4 |
5 | .@{theme-prefix}-card {
6 | border-radius: 3px;
7 | padding: 20px;
8 | transition: box-shadow .3s ease-in;
9 | display: block;
10 | height: 100%;
11 | &.@{theme-prefix}-card-default {
12 | background: #fff;
13 | border: 1px solid #ECECEC;
14 | // &:hover {
15 | // box-shadow: 0 4px 10px 0 rgba(0,0,0,0.09);
16 | // }
17 | }
18 | }
--------------------------------------------------------------------------------
/views/assets/src/components/project-task-lists/index.vue:
--------------------------------------------------------------------------------
1 |
17 |
--------------------------------------------------------------------------------
/views/assets/src/components/add-ons/router.js:
--------------------------------------------------------------------------------
1 | // const AddOns = resolve => {
2 | // require.ensure(['./add-ons.vue'], () => {
3 | // resolve(require('./add-ons.vue'));
4 | // });
5 | // }
6 |
7 | import AddOns from './add-ons.vue'
8 |
9 | weDevsPMRegisterChildrenRoute('project_root',
10 | [
11 | {
12 | path: '/add-ons',
13 | component: AddOns,
14 | name: 'add-ons',
15 | }
16 |
17 | ]
18 | );
--------------------------------------------------------------------------------
/views/assets/src/components/progress/router.js:
--------------------------------------------------------------------------------
1 | // const Progress = resolve => {
2 | // require.ensure(['./progress.vue'], () => {
3 | // resolve(require('./progress.vue'));
4 | // });
5 | // }
6 |
7 | import Progress from './progress.vue'
8 |
9 | weDevsPMRegisterChildrenRoute('project_root',
10 | [
11 | {
12 | path: '/progress',
13 | component: Progress,
14 | name: 'progress',
15 | }
16 |
17 | ]
18 | );
--------------------------------------------------------------------------------
/views/assets/images/check-mark.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/routes/pusher.php:
--------------------------------------------------------------------------------
1 | post( 'user/{user_id}/pusher/auth', 'WeDevs\PM\Pusher\Src\Controllers\Pusher_Controller@authentication' )
12 | ->permission(['WeDevs\PM\Core\Permissions\Authentic']);
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/config/frontend.php:
--------------------------------------------------------------------------------
1 | defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min',
4 | 'patch' => dirname( dirname( __FILE__ ) ),
5 | 'view_path' => dirname( dirname( __FILE__ ) ) . '/views',
6 | 'url' => plugin_dir_url( dirname( __FILE__ ) ),
7 | 'assets_url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/',
8 | 'path' => plugin_dir_path( __FILE__ ),
9 | 'basename' => basename( dirname( dirname( __FILE__ ) ) )
10 | ];
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/Project/Transformers/Overview_Graph_Transformer.php:
--------------------------------------------------------------------------------
1 | $item['date_time'],
12 | 'tasks' => $item['tasks'],
13 | 'activities' => $item['activities'],
14 | ];
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Role/Models/Role.php:
--------------------------------------------------------------------------------
1 | 'trimer|sanitize_text_field',
11 | 'description' => 'trimer|pm_kses',
12 | 'status' => 'trimer',
13 | ];
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/views/assets/src/components/privacy/router.js:
--------------------------------------------------------------------------------
1 | import TaskListPrivacy from '@components/privacy/task-list-privacy';
2 | import DiscussionPrivacy from '@components/privacy/discussion-privacy';
3 |
4 | weDevs_PM_Components.push({
5 | hook: 'pm_task_list_form',
6 | component: 'pm_task_list_privacy_field',
7 | property: TaskListPrivacy
8 | });
9 |
10 | weDevs_PM_Components.push({
11 | hook: 'pm_discuss_form',
12 | component: 'pm_discuss_privacy_field',
13 | property: DiscussionPrivacy
14 | });
15 |
--------------------------------------------------------------------------------
/core/Permissions/Manager.php:
--------------------------------------------------------------------------------
1 | table = wedevs_pm_migrations_table_prefix() . '_migrations';
12 |
13 | parent::__construct( $attributes );
14 | }
15 |
16 | protected $fillable = [
17 | 'id',
18 | 'migration'
19 | ];
20 | }
--------------------------------------------------------------------------------
/src/Category/Validators/Create_Category.php:
--------------------------------------------------------------------------------
1 | __( 'Category title is required.', 'wedevs-project-manager' ),
11 | ];
12 | }
13 |
14 | public function rules() {
15 | return [
16 | 'title' => 'required',
17 | ];
18 | }
19 | }
--------------------------------------------------------------------------------
/libs/sanitization-filters.php:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Common/Traits/Resource_Editors.php:
--------------------------------------------------------------------------------
1 | creator;
11 | return $this->item( $creator, new User_Transformer );
12 | }
13 |
14 | public function includeUpdater( $item ) {
15 | $updater = $item->updater;
16 |
17 | return $this->item ( $updater, new User_Transformer );
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/Project/Sanitizers/Project_Sanitizer.php:
--------------------------------------------------------------------------------
1 | 'trimer',
11 | 'title' => 'trimer|sanitize_text_field',
12 | 'description' => 'trimer|sanitize_text_field',
13 | 'status' => 'trimer',
14 | ];
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/views/assets/src/components/importtools/store.js:
--------------------------------------------------------------------------------
1 | export default {
2 | state: {
3 | getIndex: function ( itemList, id, slug) {
4 | var index = false;
5 |
6 | if(typeof itemList === 'undefined') return index;
7 |
8 | itemList.forEach(function(item, key) {
9 | if (item[slug] == id) {
10 | index = key;
11 | }
12 | });
13 |
14 | return index;
15 | }
16 | },
17 |
18 | mutations: {
19 |
20 | },
21 | }
22 |
--------------------------------------------------------------------------------
/views/assets/images/modules/check.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Role/Validators/Create_Role.php:
--------------------------------------------------------------------------------
1 | __( 'Role title is required.', 'wedevs-project-manager' ),
11 | ];
12 | }
13 |
14 | public function rules() {
15 | return [
16 | 'title' => 'required',
17 | 'description' => 'pm_kses',
18 | ];
19 | }
20 | }
--------------------------------------------------------------------------------
/views/assets/src/components/root/init.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
31 |
--------------------------------------------------------------------------------
/src/Settings/Models/Task_Types.php:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/views/assets/src/components/project-overview/router.js:
--------------------------------------------------------------------------------
1 |
2 | // const overview = resolve => {
3 | // require.ensure(['./overview.vue'], () => {
4 | // resolve(require('./overview.vue'));
5 | // });
6 | // }
7 |
8 | import overview from './overview.vue'
9 |
10 | weDevsPmRegisterModule('projectOverview', 'project-overview');
11 |
12 | weDevsPMRegisterChildrenRoute('projects',
13 | [
14 | {
15 | path: ':project_id/overview',
16 | component: overview,
17 | name: 'pm_overview',
18 | },
19 | ]
20 | )
21 |
22 |
--------------------------------------------------------------------------------
/core/Permissions/Project_Create_Capability.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/views/assets/src/components/project-files/mixin.js:
--------------------------------------------------------------------------------
1 |
2 | export default {
3 | methods: {
4 | getFiles () {
5 | var self = this;
6 | var request = {
7 | url: self.base_url + 'pm/v2/projects/'+self.project_id+'/files',
8 | success (res) {
9 | self.$store.commit( 'projectFiles/setFiles', res.data );
10 | pm.NProgress.done();
11 | self.loading = false;
12 | }
13 | };
14 | self.httpRequest(request);
15 | },
16 | }
17 | };
18 |
--------------------------------------------------------------------------------
/views/assets/images/download.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/routes/search.php:
--------------------------------------------------------------------------------
1 | get( 'search', 'WeDevs\PM\Search\Controllers\Search_Controller@search' )
11 | ->permission( [ $wedevs_pm_authentic ] );
12 |
13 | $wedevs_pm_router->get( 'admin-topbar-search', 'WeDevs\PM\Search\Controllers\Search_Controller@searchTopBar' )
14 | ->permission( [ $wedevs_pm_authentic ] );
15 |
--------------------------------------------------------------------------------
/views/assets/src/helpers/less/project/abstracts/mixins.less:
--------------------------------------------------------------------------------
1 | /*
2 | * mixins
3 | */
4 |
5 | .clearfix{
6 | zoom:1;
7 | &:before, &:after{ content:""; display:table; }
8 | &:after{ clear: both; }
9 | }
10 |
11 | @context-size: 16;
12 | .rem( @target, @context: @context-size ) {
13 | font-size: (@target / @context) + 0rem;
14 | }
15 |
16 | .pm-bubble-border(@top: 100%, @right: 5.5px) {
17 | content: "";
18 | position: absolute;
19 | top: @top;
20 | right: @right;
21 | z-index: 999;
22 | border-top: 6px solid #000;
23 | border-left: 5px solid transparent;
24 | border-right: 5px solid transparent;
25 | }
--------------------------------------------------------------------------------
/src/Role/Transformers/Role_Transformer.php:
--------------------------------------------------------------------------------
1 | (int) $item->id,
13 | 'title' => $item->title,
14 | 'description' => $item->description,
15 | 'created_at' => wedevs_pm_format_date( $item->created_at ),
16 | 'slug' => $item->slug
17 | ];
18 | }
19 | }
--------------------------------------------------------------------------------
/views/assets/images/download_hover.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/views/assets/src/components/importtools/router.js:
--------------------------------------------------------------------------------
1 | //weDevsPmProRegisterModule('importtools', 'importtools');
2 |
3 | import Mixin from './mixin';
4 |
5 | PmProMixin.projectSettings = Mixin;
6 |
7 | // const settingsContent = resolve => {
8 | // require.ensure(['./content.vue'], () => {
9 | // resolve(require('./content.vue'));
10 | // });
11 | // }
12 |
13 | import importtools from './content.vue';
14 |
15 |
16 | weDevsPMRegisterChildrenRoute('project_root',
17 | [
18 | {
19 | path: '/importtools',
20 | name: 'importtools',
21 | component: importtools,
22 | }
23 | ]
24 | );
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/views/assets/images/close.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Comment/Validators/Create_Comment.php:
--------------------------------------------------------------------------------
1 | __( 'Comment title is required.', 'wedevs-project-manager' ),
11 | 'project_id.required' => __( 'Project ID is required.', 'wedevs-project-manager' ),
12 | ];
13 | }
14 |
15 | public function rules() {
16 | return [
17 | 'content' => 'required',
18 | 'project_id' => 'required'
19 | ];
20 | }
21 | }
--------------------------------------------------------------------------------
/core/Permissions/Create_Task.php:
--------------------------------------------------------------------------------
1 | request->get_param( 'project_id' );
11 |
12 | $pm_task_create_permission = apply_filters( 'wedevs_pm_check_permission', true, $project_id, 'create_task' );
13 |
14 | if ( $pm_task_create_permission ) {
15 | return true;
16 | }
17 |
18 | return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) );
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Pusher/Libs/function.php:
--------------------------------------------------------------------------------
1 | 'create-task', //Event
12 | 'task_update' => 'update-task', //Event
13 | 'new_comment' => 'new-comment', //Event
14 | 'message_create' => 'create-message', //Event
15 | 'message_update' => 'update-message', //Event
16 | ];
17 | }
18 |
19 | function wedevs_pm_pusher_get_event( $event_key ) {
20 |
21 | $events = wedevs_pm_pusher_events();
22 |
23 | return $events[$event_key];
24 | }
25 |
26 |
27 |
--------------------------------------------------------------------------------
/src/Task_List/Validators/Create_Task_List.php:
--------------------------------------------------------------------------------
1 | __( 'Task list title is required.', 'wedevs-project-manager' ),
11 | 'project_id.required' => __( 'Project ID is required.', 'wedevs-project-manager' ),
12 | ];
13 | }
14 |
15 | public function rules() {
16 | return [
17 | 'title' => 'required',
18 | 'project_id' => 'required',
19 | ];
20 | }
21 | }
--------------------------------------------------------------------------------
/src/Milestone/Validators/Create_Milestone.php:
--------------------------------------------------------------------------------
1 | __( 'Milestone title is required.', 'wedevs-project-manager' ),
11 | 'project_id.required' => __( 'Project ID is required.', 'wedevs-project-manager' ),
12 | ];
13 | }
14 |
15 | public function rules() {
16 | return [
17 | 'title' => 'required',
18 | 'project_id' => 'required'
19 | ];
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/core/Permissions/Create_File.php:
--------------------------------------------------------------------------------
1 | request->get_param( 'project_id' );
11 |
12 | $pm_file_create_permission = apply_filters( 'wedevs_pm_check_permission', true, $project_id, 'create_file' );
13 |
14 | if ( $pm_file_create_permission ) {
15 | return true;
16 | }
17 |
18 | return new \WP_Error( 'project', __( "You have no permission to create message.", "wedevs-project-manager" ) );
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Common/Traits/Last_Activity.php:
--------------------------------------------------------------------------------
1 | where('resource_id', $resource_id)
15 | ->orderBy('created_at', 'desc')
16 | ->first();
17 |
18 | $item = new Item( $activity, new Activity_Transformer );
19 |
20 | return $this->get_response($item);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/core/Permissions/Create_Milestone.php:
--------------------------------------------------------------------------------
1 | request->get_param( 'project_id' );
11 |
12 | $pm_milestone_create_permission = apply_filters( 'wedevs_pm_check_permission', true, $project_id, 'create_milestone' );
13 |
14 | if ( $pm_milestone_create_permission ) {
15 | return true;
16 | }
17 |
18 | return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) );
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/core/Permissions/Create_Task_List.php:
--------------------------------------------------------------------------------
1 | request->get_param( 'project_id' );
12 |
13 | $pm_task_list_create_permission = apply_filters( 'wedevs_pm_check_permission', true, $project_id, 'create_list' );
14 |
15 | if ( $pm_task_list_create_permission ) {
16 | return true;
17 | }
18 |
19 | return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) );
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/routes/activity.php:
--------------------------------------------------------------------------------
1 | get( 'projects/{project_id}/activities', 'WeDevs/PM/Activity/Controllers/Activity_Controller@index' )
12 | ->permission( [ $wedevs_pm_access_project ] );
13 |
14 | $wedevs_pm_router->get( 'activities', 'WeDevs/PM/Activity/Helper/Activity@get_activities' )
15 | ->permission( [ $wedevs_pm_authentic ] );
16 |
--------------------------------------------------------------------------------
/src/Discussion_Board/Validators/Create_Discussion_Board.php:
--------------------------------------------------------------------------------
1 | __( 'Discussion title is required.', 'wedevs-project-manager' ),
11 | 'project_id.required' => __( 'Project ID is required.', 'wedevs-project-manager' ),
12 | ];
13 | }
14 |
15 | public function rules() {
16 | return [
17 | 'title' => 'required',
18 | 'project_id' => 'required'
19 | ];
20 | }
21 | }
--------------------------------------------------------------------------------
/views/assets/src/components/project-lists/project-new-project-btn.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ __( 'New Project', 'wedevs-project-manager') }}
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/Settings/Transformers/Task_Type_Transformer.php:
--------------------------------------------------------------------------------
1 | (int) $item->id,
16 | 'title' => $item->title,
17 | 'description' => $item->description,
18 | 'type' => $item->type,
19 | 'status' => $item->status
20 | ];
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/views/assets/src/components/project-settings/integrations.vue:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
27 |
28 |
33 |
--------------------------------------------------------------------------------
/views/assets/images/modules/diamond.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/core/Permissions/Create_Discuss.php:
--------------------------------------------------------------------------------
1 | request->get_param( 'project_id' );
12 |
13 | $pm_discussion_create_permission = apply_filters( 'wedevs_pm_check_permission', wedevs_pm_is_user_in_project( $project_id ), $project_id, 'create_message' );
14 |
15 | if ( $pm_discussion_create_permission ) {
16 | return true;
17 | }
18 |
19 | return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) );
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/Common/Traits/Request_Filter.php:
--------------------------------------------------------------------------------
1 | get_params() as $key => $value ) {
20 | if ( $value !== '') {
21 | $data[$key] = $value;
22 | }
23 | }
24 |
25 | return $data;
26 | }
27 | }
--------------------------------------------------------------------------------
/src/Category/Models/Category.php:
--------------------------------------------------------------------------------
1 | belongsToMany( 'WeDevs\PM\Project\Models\Project', wedevs_pm_tb_prefix() . 'pm_category_project', 'category_id', 'project_id' );
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/Task/Validators/Create_Task.php:
--------------------------------------------------------------------------------
1 | __( 'Task title is required.', 'wedevs-project-manager' ),
11 | 'project_id.required' => __( 'Project ID is required.', 'wedevs-project-manager' ),
12 | 'project_id.numeric' => __( 'Project ID shoud be numeric.', 'wedevs-project-manager' ),
13 | ];
14 | }
15 |
16 | public function rules() {
17 | return [
18 | 'title' => 'required',
19 | 'project_id' => 'required|numeric',
20 | ];
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/Task/Validators/Update_Task.php:
--------------------------------------------------------------------------------
1 | __( 'Task title is required.', 'wedevs-project-manager' ),
11 | 'id.required' => __( 'Task ID is required.', 'wedevs-project-manager' ),
12 | 'id.gtz' => __( 'Task ID must be greater than zero', 'wedevs-project-manager' ),
13 | ];
14 | }
15 |
16 | public function rules() {
17 | return [
18 | 'title' => 'required',
19 | 'id' => 'required|gtz', //Greater than zero (gtz)
20 | ];
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/views/assets/images/refresh.svg:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/src/Tools/Library/PM_ActiveCol.php:
--------------------------------------------------------------------------------
1 | token = new Token($token, $url);
23 | $this->client = new Client($this->token);
24 | }
25 |
26 | public function getProject($id){
27 | return $this->client->get('/projects/'.$id)->getJson();
28 | }
29 |
30 | public function getItem($item){
31 | return $this->client->get($item)->getJson();
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/views/assets/src/components/project-files/router.js:
--------------------------------------------------------------------------------
1 | // const files = resolve => {
2 | // require.ensure(['./files.vue'], () => {
3 | // resolve(require('./files.vue'));
4 | // });
5 | // }
6 |
7 | weDevsPmRegisterModule('projectFiles', 'project-files');
8 |
9 | import files from './files.vue';
10 |
11 | weDevsPMRegisterChildrenRoute('projects',
12 | [
13 | {
14 | path: ':project_id/files',
15 | component: files,
16 | name: 'pm_files',
17 | children: wedevsPMGetRegisterChildrenRoute('pm_files')
18 | },
19 | ]
20 | )
21 |
22 | // export default {
23 | // path: ':project_id/files',
24 | // component: index,
25 | // name: 'pm_files',
26 | // children: wedevsPMGetRegisterChildrenRoute('pm_files')
27 | // }
28 | //
29 |
--------------------------------------------------------------------------------
/src/Category/Validators/Update_Category.php:
--------------------------------------------------------------------------------
1 | __( 'Category title is required.', 'wedevs-project-manager' ),
11 | 'id.required' => __( 'Category ID is required.', 'wedevs-project-manager' ),
12 | 'id.gtz' => __( 'Category ID must be greater than zero', 'wedevs-project-manager' ),
13 | ];
14 | }
15 |
16 | public function rules() {
17 | return [
18 | 'title' => 'required',
19 | 'id' => 'required|gtz', //Greater than zero (gtz)
20 | ];
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/Comment/Validators/Update_Comment.php:
--------------------------------------------------------------------------------
1 | __( 'Comment title is required.', 'wedevs-project-manager' ),
11 | 'id.required' => __( 'Comment ID is required.', 'wedevs-project-manager' ),
12 | 'id.gtz' => __( 'Comment ID must be greater than zero', 'wedevs-project-manager' ),
13 | ];
14 | }
15 |
16 | public function rules() {
17 | return [
18 | 'content' => 'required',
19 | 'id' => 'required|gtz', //Greater than zero (gtz)
20 | ];
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/Common/Transformers/Board_Transformer.php:
--------------------------------------------------------------------------------
1 | (int) $item->id,
20 | 'title' => $item->title,
21 | 'description' => $item->description,
22 | 'board_type' => $item->type,
23 | 'created_at' => wedevs_pm_format_date( $item->created_at ),
24 | ];
25 | }
26 | }
--------------------------------------------------------------------------------
/src/Milestone/Validators/Update_Milestone.php:
--------------------------------------------------------------------------------
1 | __( 'Milestone title is required.', 'wedevs-project-manager' ),
11 | 'id.required' => __( 'Milestone ID is required.', 'wedevs-project-manager' ),
12 | 'id.gtz' => __( 'Milestone ID must be greater than zero', 'wedevs-project-manager' ),
13 | ];
14 | }
15 |
16 | public function rules() {
17 | return [
18 | 'title' => 'required',
19 | 'id' => 'required|gtz', //Greater than zero (gtz)
20 | ];
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/Task_List/Validators/Update_Task_List.php:
--------------------------------------------------------------------------------
1 | __( 'Task list title is required.', 'wedevs-project-manager' ),
11 | 'id.required' => __( 'Task list ID is required.', 'wedevs-project-manager' ),
12 | 'id.gtz' => __( 'Task list ID must be greater than zero', 'wedevs-project-manager' ),
13 | ];
14 | }
15 |
16 | public function rules() {
17 | return [
18 | 'title' => 'required',
19 | 'id' => 'required|gtz', //Greater than zero (gtz)
20 | ];
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/Activity/Activity_Log.php:
--------------------------------------------------------------------------------
1 | getName();
14 | $resource_short_name = $reflector->getShortName();
15 |
16 | $observer = str_replace(
17 | "Models\\{$resource_short_name}",
18 | "Observers\\",
19 | $resource_name
20 | );
21 |
22 | $observer .= $resource_short_name . "_Observer";
23 |
24 | if ( class_exists( $observer ) ) {
25 | (new $observer)->handle( $resource, $act );
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/src/Role/Validators/Update_Role.php:
--------------------------------------------------------------------------------
1 | __( 'Role title is required.', 'wedevs-project-manager' ),
11 | 'id.required' => __( 'Role ID is required.', 'wedevs-project-manager' ),
12 | 'id.gtz' => __( 'Role ID must be greater than zero', 'wedevs-project-manager' ),
13 | ];
14 | }
15 |
16 | public function rules() {
17 | return [
18 | 'title' => 'required',
19 | 'description' => 'pm_kses',
20 | 'id' => 'required|gtz', //Greater than zero (gtz)
21 | ];
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/Common/Traits/Model_Events.php:
--------------------------------------------------------------------------------
1 | getFillable();
13 |
14 | foreach ( $attribute_values as $key => $value ) {
15 | if ( in_array( $key, $fillable ) ) {
16 | $this->$key = $value;
17 | }
18 | }
19 |
20 | $this->save();
21 | }
22 |
23 | public function creator() {
24 | return $this->belongsTo( 'WeDevs\PM\User\Models\User', 'created_by' );
25 | }
26 |
27 | public function updater() {
28 | return $this->belongsTo( 'WeDevs\PM\User\Models\User', 'updated_by' );
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/views/assets/src/components/project-files/index.vue:
--------------------------------------------------------------------------------
1 |
9 |
10 |
32 |
--------------------------------------------------------------------------------
/src/Discussion_Board/Validators/Update_Discussion_Board.php:
--------------------------------------------------------------------------------
1 | __( 'Discussion title is required.', 'wedevs-project-manager' ),
11 | 'id.required' => __( 'Discussion ID is required.', 'wedevs-project-manager' ),
12 | 'id.gtz' => __( 'Discussion ID must be greater than zero', 'wedevs-project-manager' ),
13 | ];
14 | }
15 |
16 | public function rules() {
17 | return [
18 | 'title' => 'required',
19 | 'id' => 'required|gtz', //Greater than zero (gtz)
20 | ];
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/My_Task/Transformers/Project_Transformer.php:
--------------------------------------------------------------------------------
1 | tasks;
21 | $transfomer = new Task_Transformer();
22 | $transfomer = $transfomer->setDefaultIncludes(['assignees']);
23 |
24 | return $this->collection( $tasks, $transfomer);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/views/assets/src/helpers/less/images/pm-left-arrow.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/views/assets/src/helpers/less/images/pm-solid-plus.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Project/Validators/Create_Project.php:
--------------------------------------------------------------------------------
1 | __( 'Project title is required.', 'wedevs-project-manager' ),
11 | 'title.pm_unique' => __( 'Project title must be unique.', 'wedevs-project-manager' ),
12 | ];
13 | }
14 |
15 | public function rules() {
16 |
17 | if ( apply_filters( 'wedevs_pm_check_project_title_unique', true ) ) {
18 | return [
19 | 'title' => 'required|pm_unique:Project,title',
20 | ];
21 | }
22 |
23 | return [
24 | 'title' => 'required',
25 | ];
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/views/assets/images/minus.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/views/assets/src/components/common/click-wrap.vue:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
41 |
42 |
--------------------------------------------------------------------------------
/src/Common/Models/Board.php:
--------------------------------------------------------------------------------
1 | hasMany( 'WeDevs\PM\Common\Models\Meta', 'entity_id' )
29 | ->whereIn( 'entity_type', [ 'milestone', 'task_list', 'discussion_board' ] );
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/core/Installer/Installer.php:
--------------------------------------------------------------------------------
1 | run();
12 |
13 | $was_installed_before = get_option( 'pm_db_version', false );
14 |
15 | if ( ! $was_installed_before ) {
16 | set_transient( '_pm_setup_page_redirect', true, 30 );
17 | }
18 |
19 | $this->set_admin_capability();
20 | }
21 |
22 | function set_admin_capability() {
23 |
24 | $admin_users = get_users( [ 'role' => 'Administrator' ] );
25 |
26 | if ( $admin_users ) {
27 | foreach ( $admin_users as $admin_user ) {
28 | $admin_user->add_cap( wedevs_pm_admin_cap_slug() );
29 | }
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/Common/Models/Assignee.php:
--------------------------------------------------------------------------------
1 | belongsTo( 'WeDevs\PM\User\Models\User', 'assigned_to' );
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/bootstrap/start.php:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/User/Models/User_Role.php:
--------------------------------------------------------------------------------
1 | assigned_by = 1;
25 | } );
26 |
27 | static::updating( function ( $model ) {
28 | $model->assigned_by = 1;
29 | } );
30 | }
31 |
32 | function role() {
33 | return $this->hasOne( 'WeDevs\PM\Role\Models\Role', 'id', 'role_id' );
34 | }
35 |
36 | }
--------------------------------------------------------------------------------
/core/Permissions/Abstract_Permission.php:
--------------------------------------------------------------------------------
1 | request = $request;
24 | }
25 |
26 | /**
27 | * Check for a specific permission.
28 | *
29 | * @return boolean (true if operation is permitted; otherwise false).
30 | */
31 | abstract public function check();
32 | }
33 |
--------------------------------------------------------------------------------
/core/Pro/assets/images/crown.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/views/assets/src/main.js:
--------------------------------------------------------------------------------
1 | import '@helpers/less/pm-style.less'
2 | import router from '@router/router'
3 | import store from '@store/store'
4 | import '@directives/directive'
5 | import Mixin from '@helpers/mixin/mixin'
6 | import ModuleMixin from '@helpers/mixin/module-mixin'
7 | import App from './App.vue'
8 | import '@helpers/common-components'
9 | import menuFix from '@helpers/menu-fix';
10 |
11 | window.pmBus = new Vue();
12 |
13 | Vue.config.devtools = true;
14 |
15 | /**
16 | * Project template render
17 | */
18 | var PM_Vue = {
19 | el: `#${PM_Vars.id}`,
20 | store,
21 | router,
22 | render: t => t(App),
23 | moduleMixins: ModuleMixin
24 | }
25 |
26 | Vue.mixin(Mixin);
27 |
28 | new Vue(PM_Vue);
29 |
30 | // fix the admin menu for the slug "vue-app"
31 | menuFix('pm_projects');
32 |
33 | //Always load in the bottom of the code
34 | import '@helpers/underscore'
35 |
36 |
37 |
--------------------------------------------------------------------------------
/views/assets/images/modules/crown.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/routes/mytask.php:
--------------------------------------------------------------------------------
1 | get( 'users/{id}/user-activities', 'WeDevs/PM/My_Task/Controllers/MyTask_Controller@user_activities' )
9 | ->permission(['WeDevs\PM\Core\Permissions\Authentic']);
10 |
11 | $wedevs_pm_router->get( 'users/{id}/tasks', 'WeDevs/PM/My_Task/Controllers/MyTask_Controller@user_tasks_by_type' )
12 | ->permission(['WeDevs\PM\Core\Permissions\Authentic']);
13 |
14 | $wedevs_pm_router->get( 'users/{id}/tasks/calender', 'WeDevs/PM/My_Task/Controllers/MyTask_Controller@user_calender_tasks' )
15 | ->permission(['WeDevs\PM\Core\Permissions\Authentic']);
16 |
17 | $wedevs_pm_router->get( 'assigned_users', 'WeDevs/PM/My_Task/Controllers/MyTask_Controller@assigned_users' )
18 | ->permission(['WeDevs\PM\Core\Permissions\Authentic']);
19 |
--------------------------------------------------------------------------------
/views/assets/src/helpers/less/project/components/tooltip.less:
--------------------------------------------------------------------------------
1 | /*
2 | * Component: Tooltip;
3 | */
4 | .pm-has-tooltip {
5 | position: relative;
6 | .pm-tooltip-label {
7 | display: block;
8 | position: absolute;
9 | bottom: 100%;
10 | margin-bottom: 8px;
11 | left: 50%;
12 | min-width: 50px;
13 | line-height: 100%;
14 | opacity: 0;
15 | visibility: hidden;
16 | transform: translate(-50%, -20%);
17 | transition: all .3s ease-in-out;
18 | z-index: 999;
19 | background: #000;
20 | color: #fff;
21 | padding: 8px 10px;
22 | white-space: nowrap;
23 | border-radius: @theme-border-radius;
24 | .rem(11);
25 | &:after {
26 | .pm-bubble-border(@right: 50%);
27 | transform: translate(50%, 0);
28 | border-bottom-color: #000;
29 | }
30 | }
31 | &:hover {
32 | .pm-tooltip-label {
33 | opacity: 1;
34 | visibility: visible;
35 | transform: translate(-50%, 0);
36 | }
37 | }
38 | }
--------------------------------------------------------------------------------
/views/assets/images/active_projects.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
--------------------------------------------------------------------------------
/config/app.php:
--------------------------------------------------------------------------------
1 | 'Project Manager',
5 | 'slug' => 'pm',
6 | 'version' => PM_VERSION,
7 | 'api' => '2',
8 | 'db_version' => '2.5',
9 | 'text_domain' => 'pm',
10 | 'comment_per_page' => 200,
11 | 'allowed_html' => [
12 | 'a' => [ 'href' => [], 'title' => [] ],
13 | 'br' => [],
14 | 'em' => [],
15 | 'strong' => [],
16 | 'span' => [
17 | 'style' => [],
18 | 'class' => [],
19 | 'id' => [],
20 | 'data-pm-user-id' => [],
21 | 'data-pm-user' => [],
22 | 'name' => [],
23 | 'title' => []
24 | ],
25 | 'b' => [],
26 | 'em' => [],
27 | 'p' => [],
28 | 'code' => [],
29 | 'pre' => [],
30 | ]
31 | ];
32 |
--------------------------------------------------------------------------------
/views/assets/images/active_projects_hover.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
--------------------------------------------------------------------------------
/views/assets/vendor/tinymce/plugins/placeholder/plugin.min.js:
--------------------------------------------------------------------------------
1 | tinymce.PluginManager.add("placeholder",function(a){a.on("init",function(){function d(){!a.settings.readonly==!0&&c.hide(),a.execCommand("mceFocus",!1)}function e(){""==a.getContent()?c.show():c.hide()}function f(){c.hide()}var c=new b;e(),tinymce.DOM.bind(c.el,"click",d),a.on("focus",d),a.on("blur",e),a.on("change",e),a.on("setContent",e),a.on("keydown",f)});var b=function(){var b=a.getElement().getAttribute("placeholder")||a.settings.placeholder,c=a.settings.placeholder_attrs||{style:{position:"absolute",top:"5px",left:0,color:"#888",padding:"1%",width:"98%",overflow:"hidden","white-space":"pre-wrap"}},d=a.getContentAreaContainer();tinymce.DOM.setStyle(d,"position","relative"),this.el=tinymce.DOM.add(d,a.settings.placeholder_tag||"label",c,b)};b.prototype.hide=function(){tinymce.DOM.setStyle(this.el,"display","none")},b.prototype.show=function(){tinymce.DOM.setStyle(this.el,"display","")}});
--------------------------------------------------------------------------------
/views/assets/images/column.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
44 |
--------------------------------------------------------------------------------
/views/assets/src/components/pro-settings/page-tab-menu.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
30 |
31 |
50 |
--------------------------------------------------------------------------------
/core/Permissions/Edit_File.php:
--------------------------------------------------------------------------------
1 | request->get_param( 'file_id' );
13 | $project_id = $this->request->get_param( 'project_id' );
14 | $user_id = get_current_user_id();
15 |
16 | if ( $user_id ) {
17 |
18 | if ( $project_id && wedevs_pm_has_project_managing_capability( $project_id, $user_id ) ) {
19 | return true;
20 | }
21 |
22 | $file = File::find( $id );
23 | if ( $file && $file->created_by == $user_id ){
24 | return true;
25 | }
26 |
27 | }
28 |
29 | return new \WP_Error( 'File', __( "You have no permission.", "wedevs-project-manager" ) );
30 | }
31 | }
--------------------------------------------------------------------------------
/src/Common/Models/Boardable.php:
--------------------------------------------------------------------------------
1 | where( 'board_type', $board_type )
27 | ->where( 'boardable_type', $boardable_type )
28 | ->orderBy( 'order', 'DESC' )
29 | ->first();
30 | return $boardable ? $boardable->order : 0;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/views/assets/src/components/pro-settings/invoice-tab-menu.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
30 |
31 |
50 |
--------------------------------------------------------------------------------
/views/assets/src/components/project-milestones/date-picker.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/views/assets/src/helpers/less/common/components/display.less:
--------------------------------------------------------------------------------
1 | //
2 | // Display
3 | //
4 |
5 | .@{theme-prefix}-display-none { display: none !important; }
6 | .@{theme-prefix}-display-inline { display: inline !important; }
7 | .@{theme-prefix}-display-inline-block { display: inline-block !important; }
8 | .@{theme-prefix}-display-block { display: block !important; }
9 | .@{theme-prefix}-display-table { display: table !important; }
10 | .@{theme-prefix}-display-table-row { display: table-row !important; }
11 | .@{theme-prefix}-display-table-cell { display: table-cell !important; }
12 | .@{theme-prefix}-display-flex { display: flex !important; }
13 | .@{theme-prefix}-display-inline-flex { display: inline-flex !important; }
14 |
15 | .@{theme-prefix}-hidden-sm {
16 | @media (max-width: 767px){
17 | display: none !important;
18 | }
19 | }
20 | .@{theme-prefix}-hidden-lg {
21 | @media (min-width: 768px){
22 | display: none !important;
23 | }
24 | }
--------------------------------------------------------------------------------
/core/Permissions/Project_Settings_Page_Access.php:
--------------------------------------------------------------------------------
1 | request->get_param( 'project_id' );
13 |
14 | if ( empty( $user_id ) || empty( $project_id ) ) {
15 | return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) );
16 | }
17 |
18 | if ( wedevs_pm_user_can_access( wedevs_pm_manager_cap_slug() ) ) {
19 | return true;
20 | }
21 |
22 | if ( wedevs_pm_is_manager( $project_id, $user_id ) ) {
23 | return true;
24 | }
25 |
26 | return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) );
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/views/assets/src/components/project-lists/mixin.js:
--------------------------------------------------------------------------------
1 | export default {
2 | data () {
3 | return {
4 |
5 | }
6 | },
7 | computed: {
8 | ...pm.Vuex.mapState('projectLists',
9 | {
10 | projects_view: state => state.projects_view,
11 | }
12 | ),
13 |
14 | isFetchProjects () {
15 | return this.$store.state.projectLists.isFetchProjects;
16 | }
17 | },
18 | methods: {
19 |
20 | activeClass(view){
21 | if ( view == this.projects_view ) {
22 | return view;
23 | }
24 |
25 | //return this.$store.state.projects_view === view;
26 | },
27 |
28 | projects_view_class (){
29 | return 'grid_view' === this.projects_view ? 'pm-project-grid': 'pm-project-list'
30 | },
31 |
32 | projectFetchStatus (status) {
33 | this.$store.commit( 'projectLists/projectFetchComplete', status );
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/views/assets/src/components/project-overview/store.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Make sure to call pm.Vue.use(Vuex) first if using a vuex module system
4 | */
5 | export default {
6 |
7 | state: {
8 | meta: {},
9 | assignees: [],
10 | graph: [],
11 | newlyCreated: {},
12 | fetchOverview: false,
13 | getIndex: function ( itemList, id, slug) {
14 | var index = false;
15 |
16 | itemList.forEach(function(item, key) {
17 | if (item[slug] == id) {
18 | index = key;
19 | }
20 | });
21 |
22 | return index;
23 | },
24 | },
25 |
26 | mutations: {
27 | setOverViews (state, over_views) {
28 | state.meta = over_views.meta.data;
29 | state.assignees = over_views.assignees.data;
30 | state.graph = over_views.overview_graph.data;
31 | state.fetchOverview = true;
32 | }
33 | }
34 | };
35 |
--------------------------------------------------------------------------------
/core/Permissions/Access_Project.php:
--------------------------------------------------------------------------------
1 | request->get_param( 'project_id' );
16 |
17 | if ( empty($project_id) ) {
18 | $project_id = $this->request->get_param( 'id' );
19 | }
20 |
21 | // $user_id = $this->request->get_param( 'user_id' );
22 | // $user_id = empty( $user_id ) ? 0 : intval( $user_id );
23 |
24 | if ( wedevs_pm_user_can( 'view_project', $project_id ) ) {
25 | return true;
26 | }
27 |
28 | return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) );
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/views/assets/src/helpers/less/images/pm-user.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/core/Permissions/Edit_Milestone.php:
--------------------------------------------------------------------------------
1 | request->get_param( 'milestone_id' );
13 | $project_id = $this->request->get_param( 'project_id' );
14 | $user_id = get_current_user_id();
15 |
16 | if ( $user_id ) {
17 |
18 | if ( $project_id && wedevs_pm_has_project_managing_capability( $project_id, $user_id ) ) {
19 | return true;
20 | }
21 |
22 | $milestone = Milestone::find( $id );
23 |
24 | if ( $milestone && $milestone->created_by == $user_id ){
25 | return true;
26 | }
27 |
28 | }
29 |
30 | return new \WP_Error( 'Milestone', __( "You have no permission.", "wedevs-project-manager" ) );
31 | }
32 | }
--------------------------------------------------------------------------------
/core/Permissions/Edit_Task_List.php:
--------------------------------------------------------------------------------
1 | request->get_param( 'task_list_id' );
13 | $project_id = $this->request->get_param( 'project_id' );
14 | $user_id = get_current_user_id();
15 |
16 | if ( $user_id ) {
17 |
18 | if ( $project_id && wedevs_pm_has_project_managing_capability( $project_id, $user_id ) ) {
19 | return true;
20 | }
21 |
22 | $task_list = Task_List::find( $id );
23 |
24 | if ( $task_list && $task_list->created_by == $user_id ){
25 | return true;
26 | }
27 |
28 | }
29 |
30 | return new \WP_Error( 'TaskList', __( "You have no permission.", "wedevs-project-manager" ) );
31 | }
32 | }
--------------------------------------------------------------------------------
/core/Permissions/Edit_Discuss.php:
--------------------------------------------------------------------------------
1 | request->get_param( 'discussion_board_id' );
13 | $project_id = $this->request->get_param( 'project_id' );
14 | $user_id = get_current_user_id();
15 |
16 | if ( $user_id ) {
17 |
18 | if ( $project_id && wedevs_pm_has_project_managing_capability( $project_id, $user_id ) ) {
19 | return true;
20 | }
21 |
22 | $discuss = Discussion_Board::find( $id );
23 |
24 | if ( $discuss && $discuss->created_by == $user_id ){
25 | return true;
26 | }
27 |
28 | }
29 |
30 | return new \WP_Error( 'Discuss', __( "You have no permission.", "wedevs-project-manager" ) );
31 | }
32 | }
--------------------------------------------------------------------------------
/views/assets/images/Edit_01.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/views/assets/src/helpers/library.js:
--------------------------------------------------------------------------------
1 | __webpack_public_path__ = PM_Vars.dir_url + 'views/assets/js/';
2 |
3 | import Fragment from 'vue-fragment'
4 | Vue.use(Fragment.Plugin)
5 |
6 | pm.hooks = (wp && wp.hooks) ? wp.hooks : wedevsPMWPHook;
7 |
8 | var color = require('vue-color/src/components/Sketch.vue');
9 | pm.color = color.default;
10 | pm.Multiselect = require('vue-multiselect');
11 |
12 | var commonComp = require('./global-common-components');
13 | pm.commonComponents = commonComp.default;
14 |
15 | Vue.use(VTooltip);
16 |
17 | import Lists from '@components/project-task-lists/mixin'
18 | import Mixins from '@helpers/mixin/mixin'
19 | import Settings from '@components/settings/mixin'
20 | import SingleTask from '@components/project-task-lists/single-task.vue';
21 | // import listpage from '@components/project-task-lists/lists.vue';
22 |
23 | pm.SingleTask = SingleTask;
24 |
25 | PmMixin.projectTaskLists = Lists;
26 | PmMixin.mixins = Mixins;
27 | PmMixin.settings = Settings;
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/core/Permissions/Delete_Task.php:
--------------------------------------------------------------------------------
1 | request->get_param( 'project_id' );
14 | $task_id = $this->request->get_param( 'task_id' );
15 | $task = Task::where( 'id', $task_id )->where( 'project_id', $project_id )->first();
16 |
17 | if ( isset( $task->created_by ) && (int) $task->created_by === $user_id ) {
18 | return true;
19 | }
20 |
21 | $pm_task_delete_permission = apply_filters( 'wedevs_pm_check_permission', true, $project_id, 'create_task' );
22 |
23 | if ( ! $pm_task_delete_permission ) {
24 | return false;
25 | }
26 |
27 | return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) );
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/views/assets/images/edit.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/core/Permissions/Edit_Task.php:
--------------------------------------------------------------------------------
1 | request->get_param( 'task_id' );
13 | $project_id = $this->request->get_param( 'project_id' );
14 | $user_id = get_current_user_id();
15 |
16 | if ( $user_id ) {
17 |
18 | if ( $project_id && wedevs_pm_has_project_managing_capability( $project_id, $user_id ) ) {
19 | return true;
20 | }
21 |
22 | $task = Task::with('assignees')
23 | ->where('id', $id)
24 | ->first();
25 |
26 | if ( isset( $task->created_by ) && $task->created_by == $user_id ){
27 | return true;
28 | }
29 |
30 | }
31 |
32 | return new \WP_Error( 'Task', __( "You have no permission.", "wedevs-project-manager" ) );
33 | }
34 | }
--------------------------------------------------------------------------------
/src/Project/Validators/Update_Project.php:
--------------------------------------------------------------------------------
1 | __( 'Project title is required.', 'wedevs-project-manager' ),
11 | 'title.pm_unique' => __( 'Project title must be unique.', 'wedevs-project-manager' ),
12 | 'id.required' => __( 'Project ID is required.', 'wedevs-project-manager' ),
13 | 'id.gtz' => __( 'Project ID must be greater than zero', 'wedevs-project-manager' ),
14 | ];
15 | }
16 |
17 | public function rules() {
18 | $id = $this->request->get_param( 'id' );
19 |
20 | if(is_array( $id )) {
21 | return [];
22 | }
23 |
24 | return [
25 | 'title' => 'required|pm_unique:Project,title,'.$id,
26 | 'id' => 'required|gtz', //Greater than zero (gtz)
27 | ];
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/views/assets/src/helpers/menu-fix.js:
--------------------------------------------------------------------------------
1 | /**
2 | * As we are using hash based navigation, hack fix
3 | * to highlight the current selected menu
4 | *
5 | * Requires jQuery
6 | */
7 | var menuFix = function (slug) {
8 | var $ = jQuery;
9 |
10 | let menuRoot = $('#toplevel_page_' + slug);
11 | let currentUrl = window.location.href;
12 | let currentPath = currentUrl.substr( currentUrl.indexOf('admin.php') );
13 |
14 | menuRoot.on('click', 'a', function() {
15 | var self = $(this);
16 |
17 | $('ul.wp-submenu li', menuRoot).removeClass('current');
18 |
19 | if ( self.hasClass('wp-has-submenu') ) {
20 | $('li.wp-first-item', menuRoot).addClass('current');
21 | } else {
22 | self.parents('li').addClass('current');
23 | }
24 | });
25 |
26 | $('ul.wp-submenu a', menuRoot).each(function(index, el) {
27 | if ( $(el).attr( 'href' ) === currentPath ) {
28 | $(el).parent().addClass('current');
29 | return;
30 | }
31 | });
32 | }
33 |
34 | export default menuFix;
35 |
--------------------------------------------------------------------------------
/core/Permissions/Edit_Comment.php:
--------------------------------------------------------------------------------
1 | request->get_param( 'comment_id' );
13 | $project_id = $this->request->get_param( 'project_id' );
14 | $user_id = get_current_user_id();
15 |
16 | if ( $user_id ) {
17 |
18 | if ( $project_id && wedevs_pm_has_project_managing_capability( $project_id, $user_id ) ) {
19 | return true;
20 | }
21 |
22 | $comment = Comment::find( $id );
23 |
24 | if ( !empty( $comment->created_by ) ) {
25 | if ( $comment->created_by == $user_id ){
26 | return true;
27 | }
28 | }
29 | }
30 |
31 | return new \WP_Error( 'Comment', __( "You have no permission.", "wedevs-project-manager" ) );
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/core/Permissions/Project_Manage_Capability.php:
--------------------------------------------------------------------------------
1 | request->get_param( 'id' );
12 |
13 | if ( empty( $project_id ) ) {
14 | $project_id = $this->request->get_param( 'project_id' );
15 | }
16 |
17 | if ( empty( $user_id ) || empty( $project_id ) ) {
18 | return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) );
19 | }
20 |
21 | if ( wedevs_pm_user_can_access( wedevs_pm_manager_cap_slug() ) ) {
22 | return true;
23 | }
24 |
25 | if ( wedevs_pm_is_manager( $project_id, $user_id ) ) {
26 | return true;
27 | }
28 |
29 | return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) );
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Common/Traits/Board_Status.php:
--------------------------------------------------------------------------------
1 | 'archived',
9 | 1 => 'current',
10 | 2 => 'complete',
11 | ];
12 |
13 |
14 | public function getStatusAttribute( $value ) {
15 | $value = isset( $value ) ? (int) $value : 1;
16 |
17 | if ( array_key_exists( $value, self::$status ) ) {
18 | return self::$status[(int) $value];
19 | }
20 |
21 | return self::$status[1];
22 | }
23 |
24 | public function setStatusAttribute( $value ) {
25 | $value = strtolower( $value );
26 | $key = array_search( $value, self::$status );
27 |
28 | if ( array_key_exists( $value, self::$status ) ) {
29 | $this->attributes['status'] = $value;
30 | } else {
31 | $this->attributes['status'] = $key;
32 | }
33 | }
34 | }
--------------------------------------------------------------------------------
/src/Pusher/views/assets/images/column.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
44 |
--------------------------------------------------------------------------------
/views/assets/src/components/categories/router.js:
--------------------------------------------------------------------------------
1 | weDevsPmRegisterModule('projectCategories', 'categories');
2 |
3 | // const categories = resolve => {
4 | // require.ensure(['./categories.vue'], () => {
5 | // resolve(require('./categories.vue'));
6 | // });
7 | // }
8 |
9 | import categories from './categories.vue';
10 |
11 | weDevsPMRegisterChildrenRoute('project_root',
12 | [
13 | {
14 | path: '/categories',
15 | component: categories,
16 | name: 'categories',
17 | meta: {
18 | permission: function(project) {
19 | return pmHasManageCapability()
20 | },
21 | label: __('Categories', 'wedevs-project-manager'),
22 | order: 2,
23 | },
24 | children: [
25 | {
26 | path: 'pages/:current_page_number',
27 | component: categories,
28 | name: 'category_pagination',
29 | },
30 | ]
31 | }
32 |
33 | ]
34 | );
35 |
--------------------------------------------------------------------------------
/src/Pusher/views/assets/images/column-hover.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
44 |
--------------------------------------------------------------------------------
/views/assets/src/helpers/less/images/pm-enter.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/views/assets/src/components/project-activities/router.js:
--------------------------------------------------------------------------------
1 |
2 | weDevsPmRegisterModule('projectActivities', 'project-activities');
3 |
4 | // const activities_route = resolve => {
5 | // require.ensure(['./activities.vue'], () => {
6 | // resolve(require('./activities.vue'));
7 | // });
8 | // }
9 |
10 | import activities_route from './activities.vue'
11 |
12 | weDevsPMRegisterChildrenRoute('projects',
13 | [
14 | {
15 | path: ':project_id/activities/',
16 | component: activities_route,
17 | name: 'activities',
18 | children: [
19 | {
20 | path: 'pages/:current_page_number',
21 | component: activities_route,
22 | name: 'activities_pagination',
23 | },
24 | {
25 | path: 'tasks/:task_id',
26 | components: {
27 | singleTask: pm.SingleTask
28 | },
29 | name: 'activity_single_task',
30 | },
31 | ]
32 | }
33 | ]
34 | );
35 |
36 |
--------------------------------------------------------------------------------
/phpcs-xml/plugin-check-accessibility.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | WordPress Plugin Check - Accessibility Category Rules
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | warning
13 |
14 |
15 |
16 |
17 | warning
18 |
19 |
20 |
21 |
22 | warning
23 |
24 |
25 |
26 |
27 | warning
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/views/assets/css/nprogress/nprogress.css:
--------------------------------------------------------------------------------
1 | #nprogress{pointer-events:none;}#nprogress .bar{background:#29d;position:fixed;z-index:105;top:0;left:0;width:100%;height:2px;}#nprogress .peg{display:block;position:absolute;right:0px;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1.0;-webkit-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translate(0px,-4px);}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px;}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:nprogress-spinner 400ms linear infinite;animation:nprogress-spinner 400ms linear infinite;}.nprogress-custom-parent{overflow:hidden;position:relative;}.nprogress-custom-parent #nprogress .spinner,.nprogress-custom-parent #nprogress .bar{position:absolute;}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg);}100%{-webkit-transform:rotate(360deg);}}@keyframes nprogress-spinner{0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}}
--------------------------------------------------------------------------------
/views/assets/src/components/upgrade/badge.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ __( 'Pro', 'wedevs-project-manager' ) }}
4 |
5 |
6 |
7 |
8 |
36 |
37 |
58 |
--------------------------------------------------------------------------------
/src/File/Models/File.php:
--------------------------------------------------------------------------------
1 | hasOne( 'WeDevs\PM\Comment\Models\Comment', 'id', 'fileable_id');
30 | }
31 |
32 | public function meta() {
33 | return $this->hasMany( 'WeDevs\PM\Common\Models\Meta', 'entity_id' )->where('entity_type', 'file');
34 | }
35 |
36 | public function children() {
37 | return $this->hasMany( $this, 'parent' );
38 | }
39 |
40 |
41 |
42 |
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/core/WP/Register_Scripts.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
15 |
16 |
22 |
23 | {{ getProgressPercent( list ) }}%
24 |
25 |
26 |
27 |
28 |
29 |
37 |
--------------------------------------------------------------------------------
/src/Category/Transformers/Category_Transformer.php:
--------------------------------------------------------------------------------
1 | (int) $item->id,
20 | 'title' => $item->title,
21 | 'description' => $item->description,
22 | 'categorible_type' => $item->categorible_type,
23 | 'created_at' => wedevs_pm_format_date( $item->created_at ),
24 | ];
25 | }
26 |
27 | /**
28 | * Getter for defaultIncludes.
29 | *
30 | * @return array
31 | */
32 | public function getDefaultIncludes()
33 | {
34 | return apply_filters( "wedevs_pm_category_transformer_default_includes", $this->defaultIncludes );
35 | }
36 | }
--------------------------------------------------------------------------------
/views/assets/images/list-menu.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
49 |
--------------------------------------------------------------------------------
/views/assets/images/list-menu-hover.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
49 |
--------------------------------------------------------------------------------
/src/Pusher/views/assets/images/list-menu.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
49 |
--------------------------------------------------------------------------------
/src/Pusher/views/assets/images/list-menu-hover.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
49 |
--------------------------------------------------------------------------------
/views/assets/src/components/tasks-report/menu.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ __( 'Reports', 'wedevs-project-manager' ) }}
5 |
6 |
7 |
8 |
9 |
10 |
20 |
21 |
45 |
--------------------------------------------------------------------------------
/src/Project/Project_Status.php:
--------------------------------------------------------------------------------
1 | 'incomplete',
9 | 1 => 'complete',
10 | 2 => 'pending',
11 | 3 => 'archived'
12 | ];
13 |
14 | public function getStatusAttribute( $value ) {
15 | $value = (int) $value;
16 |
17 | if (array_key_exists($value, self::$status)) {
18 | return self::$status[(int)$value];
19 | }
20 |
21 | return self::$status[0];
22 | }
23 |
24 | public function setStatusAttribute( $value ) {
25 | $value = strtolower( $value );
26 | $key = array_search( $value, self::$status );
27 |
28 | if ( array_key_exists( $value, self::$status ) ) {
29 | $this->attributes['status'] = $value;
30 | } else {
31 | $this->attributes['status'] = $key;
32 | }
33 | }
34 |
35 | public function setEstCompletionDateAttribute( $date ) {
36 | $this->attributes['est_completion_date'] = wedevs_pm_make_carbon_date( $date );
37 | }
38 |
39 | }
--------------------------------------------------------------------------------
/core/Database/Model_Observer.php:
--------------------------------------------------------------------------------
1 | $act( $resource );
12 | }
13 | }
14 |
15 | public function call_attribute_methods( $resource ) {
16 | $fillable_attributes = $resource->getFillable();
17 | $old = $resource->getOriginal();
18 | $new = $resource->getAttributes();
19 |
20 | foreach ( $fillable_attributes as $attribute ) {
21 | if ( !isset( $old[$attribute] ) ) {
22 | continue;
23 | }
24 |
25 | if ( !isset( $new[$attribute] ) ) {
26 | continue;
27 | }
28 | if ( $old[$attribute] != $new[$attribute] && method_exists( $this, $attribute ) ) {
29 | $this->$attribute( $resource, $old[$attribute] );
30 | }
31 | }
32 | }
33 |
34 | abstract protected function created( $resource );
35 |
36 | abstract protected function updated( $resource );
37 | }
38 |
--------------------------------------------------------------------------------
/views/assets/images/done.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/libs/validation-rules.php:
--------------------------------------------------------------------------------
1 | array( 'min_range' => 1 )
22 | );
23 |
24 | if( filter_var( $value, FILTER_VALIDATE_INT, $filter_options ) !== FALSE) {
25 | return true;
26 | }
27 |
28 | return false;
29 | }
30 |
31 | function wedevs_pm_unique ($value, $args) {
32 | // Listing all the variables
33 | list($model, $collumn) = $args;
34 | if ( empty( $collumn ) ) {
35 | $collumn = 'title';
36 | }
37 |
38 |
39 | $id = empty( $args[2] ) ? 0 : intval( $args[2] );
40 |
41 |
42 | $calssname = "WeDevs\PM\\" .$model. "\\Models\\" .$model;
43 | if ( class_exists( $calssname ) ) {
44 | return ! $calssname::where($collumn, $value )->where('id', '!=', $id)->exists();
45 | }
46 |
47 | return true;
48 | }
49 |
--------------------------------------------------------------------------------
/views/assets/src/components/project-task-lists/new-task-btn.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
16 |
17 |
--------------------------------------------------------------------------------
/views/assets/src/components/settings/store.js:
--------------------------------------------------------------------------------
1 | var Store = {
2 | state: {
3 | taskTypes: [],
4 | getIndex: function ( itemList, id, slug) {
5 | var index = false;
6 |
7 | itemList.forEach(function(item, key) {
8 | if (item[slug] == id) {
9 | index = key;
10 | }
11 | });
12 |
13 | return index;
14 | },
15 | },
16 |
17 | mutations: {
18 | setTaskTypes ( state, taskTypes ) {
19 | state.taskTypes = [ ...taskTypes ];
20 | },
21 |
22 | setTaskType ( state, taskType ) {
23 | state.taskTypes.push( taskType );
24 | },
25 |
26 | updateTaskType ( state, taskType ) {
27 | var index = state.getIndex(state.taskTypes, taskType.id, 'id');
28 |
29 | state.taskTypes.splice( index, 1, taskType );
30 | },
31 |
32 | deleteTaskType ( state, id ) {
33 | var index = state.getIndex(state.taskTypes, parseInt(id), 'id');
34 |
35 | state.taskTypes.splice( index, 1 );
36 | },
37 | }
38 | }
39 |
40 | export default Store;
41 |
--------------------------------------------------------------------------------