feat: Remove tasks auto-start timer setting and related logic from task popup

This commit is contained in:
2026-02-22 17:26:10 +01:00
parent 8d4d539283
commit 86d96f1d39
4 changed files with 1 additions and 480 deletions

View File

@@ -1,462 +0,0 @@
# CODE INDEX
Generated: 2026-02-09 17:02:20
Scope: root `*.php`, `autoload/**/*.php`, `tests/**/*.php`.
Excluded: `libraries/**`, `templates/**`.
## Summary
- Files with declarations: 41
- Classes/interfaces/traits: 33
- Functions/methods: 333
## Declarations By File
### `ajax.php`
- Function: `__autoload_my_classes()` (line 3)
### `api.php`
- Function: `__autoload_my_classes()` (line 4)
### `autoload/class.Cache.php`
- Class: `Cache` (line 2)
- Function: `store()` (line 4)
- Function: `get_file_name()` (line 9)
- Function: `fetch()` (line 20)
### `autoload/class.Chunk.php`
- Class: `Chunk` (line 2)
- Function: `__construct()` (line 62)
- Function: `__destruct()` (line 108)
- Function: `read()` (line 122)
### `autoload/class.Cron.php`
- Class: `Cron` (line 3)
- Function: `recursive_tasks()` (line 5)
- Function: `import_tasks_from_email()` (line 121)
- Function: `tasks_emails()` (line 132)
### `autoload/class.DbModel.php`
- Class: `DbModel` (line 2)
- Function: `__construct()` (line 8)
- Function: `__get()` (line 20)
- Function: `__set()` (line 26)
- Function: `save()` (line 31)
- Function: `delete()` (line 52)
### `autoload/class.Excel.php`
- Class: `Excel` (line 10)
- Function: `filename()` (line 21)
- Function: `__construct()` (line 33)
- Function: `headers()` (line 45)
- Function: `send_to_file()` (line 53)
- Function: `send()` (line 59)
- Function: `bofMarker()` (line 70)
- Function: `eofMarker()` (line 79)
- Function: `left()` (line 88)
- Function: `right()` (line 101)
- Function: `up()` (line 111)
- Function: `down()` (line 124)
- Function: `top()` (line 133)
- Function: `home()` (line 141)
- Function: `number()` (line 151)
- Function: `label()` (line 162)
### `autoload/class.Html.php`
- Class: `Html` (line 3)
- Function: `form_text()` (line 5)
- Function: `input_switch()` (line 12)
- Function: `select()` (line 19)
- Function: `textarea()` (line 26)
- Function: `input_icon()` (line 39)
- Function: `input()` (line 52)
- Function: `button()` (line 65)
- Function: `panel()` (line 78)
### `autoload/class.S.php`
- Class: `S` (line 2)
- Function: `array_unique_multi()` (line 4)
- Function: `number_display()` (line 16)
- Function: `prepar_request()` (line 21)
- Function: `seo()` (line 33)
- Function: `no_pl_excel()` (line 48)
- Function: `noPL()` (line 63)
- Function: `alert()` (line 100)
- Function: `hash()` (line 105)
- Function: `sort_array_of_array()` (line 121)
- Function: `json_to_array()` (line 130)
- Function: `get_session()` (line 149)
- Function: `del_session()` (line 154)
- Function: `set_session()` (line 158)
- Function: `get()` (line 163)
- Function: `pre()` (line 184)
- Function: `email_check()` (line 200)
- Function: `send_email()` (line 205)
### `autoload/class.Tpl.php`
- Class: `Tpl` (line 2)
- Function: `__construct()` (line 7)
- Function: `view()` (line 13)
- Function: `secureHTML()` (line 21)
- Function: `render()` (line 31)
- Function: `__set()` (line 64)
- Function: `__get()` (line 69)
### `autoload/Controllers/TasksController.php`
- Class: `TasksController` (line 4)
- Function: `workTime()` (line 8)
- Function: `workTimeViewModel()` (line 20)
- Function: `resolveTaskStatusForForm()` (line 28)
- Function: `resolveTaskStatusForSave()` (line 38)
- Function: `taskChangeStatus()` (line 48)
- Function: `shouldStopTimerOnStatus()` (line 74)
- Function: `shouldSendStatusChangeEmail()` (line 79)
- Function: `sendEmailTaskChangeStatus()` (line 84)
### `autoload/controls/class.BackendSites.php`
- Class: `BackendSites` (line 3)
- Function: `topic_delete()` (line 5)
- Function: `topic_accept()` (line 21)
- Function: `topic_unaccept()` (line 31)
- Function: `topic_save()` (line 41)
- Function: `topic_edit()` (line 58)
- Function: `topics()` (line 65)
- Function: `collective_topics()` (line 70)
- Function: `collective_topic_edit()` (line 75)
- Function: `collective_topic_save()` (line 82)
### `autoload/controls/class.Crm.php`
- Class: `Crm` (line 14)
- Function: `client_delete()` (line 17)
- Function: `client_save()` (line 32)
- Function: `client_edit()` (line 51)
- Function: `main_view()` (line 63)
### `autoload/controls/class.Cron.php`
- Class: `Cron` (line 3)
- Function: `main_view()` (line 5)
### `autoload/controls/class.Finances.php`
- Class: `Finances` (line 3)
- Function: `category_delete()` (line 5)
- Function: `operation_save()` (line 18)
- Function: `operation_delete()` (line 39)
- Function: `operation_edit()` (line 54)
- Function: `category_save()` (line 71)
- Function: `category_edit()` (line 90)
- Function: `operations_list()` (line 103)
- Function: `main_view()` (line 137)
### `autoload/controls/class.Projects.php`
- Class: `Projects` (line 3)
- Function: `project_save()` (line 5)
- Function: `project_edit()` (line 25)
- Function: `main_view()` (line 42)
- Function: `task_order_save()` (line 51)
- Function: `action_mark_as_done()` (line 63)
- Function: `action_edit()` (line 77)
- Function: `task_update()` (line 91)
- Function: `task_text_update()` (line 98)
- Function: `task_text_new()` (line 104)
- Function: `project_delete()` (line 110)
- Function: `task_change_status()` (line 126)
- Function: `ajax_user_tasks()` (line 137)
- Function: `task_delete()` (line 177)
- Function: `open_task_details()` (line 193)
- Function: `task_details()` (line 201)
- Function: `project_default()` (line 226)
- Function: `tasks()` (line 235)
### `autoload/controls/class.Site.php`
- Class: `Site` (line 3)
- Function: `route()` (line 5)
### `autoload/controls/class.Tasks.php`
- Class: `Tasks` (line 3)
- Function: `task_change_dates()` (line 5)
- Function: `task_delete()` (line 17)
- Function: `main_view_by_ajax()` (line 34)
- Function: `main_view()` (line 96)
- Function: `action_change_status()` (line 183)
- Function: `comment_delete()` (line 201)
- Function: `comment_save()` (line 218)
- Function: `action_delete()` (line 240)
- Function: `action_save()` (line 259)
- Function: `tasks_order_save()` (line 282)
- Function: `send_email_task_change_status()` (line 292)
- Function: `task_change_project()` (line 309)
- Function: `task_change_client()` (line 320)
- Function: `task_change_priority()` (line 334)
- Function: `task_change_status()` (line 348)
- Function: `task_end()` (line 353)
- Function: `task_start()` (line 364)
- Function: `task_edit()` (line 375)
- Function: `task_save()` (line 398)
- Function: `task_popup()` (line 423)
- Function: `task_attachment_upload()` (line 449)
- Function: `normalize_uploads_array()` (line 496)
- Function: `task_attachment_delete()` (line 519)
- Function: `task_attachment_rename()` (line 539)
- Function: `filtr_save_form()` (line 559)
- Function: `filtr_save()` (line 571)
- Function: `filtr_update()` (line 589)
- Function: `work_time()` (line 609)
- Function: `change_task_work_date_start()` (line 614)
- Function: `change_task_work_date_end()` (line 619)
- Function: `work_delete()` (line 624)
- Function: `filtr_set_default()` (line 633)
- Function: `filtr_get()` (line 650)
### `autoload/controls/class.Users.php`
- Class: `Users` (line 4)
- Function: `permissions()` (line 7)
- Function: `logout()` (line 46)
- Function: `settings_save()` (line 57)
- Function: `settings()` (line 71)
- Function: `login()` (line 85)
- Function: `login_form()` (line 117)
### `autoload/controls/class.Wiki.php`
- Class: `Wiki` (line 4)
- Function: `category_delete()` (line 7)
- Function: `category_save()` (line 20)
- Function: `category_edit()` (line 34)
- Function: `category_preview()` (line 47)
- Function: `main_view()` (line 59)
### `autoload/Domain/Tasks/MailToTaskImporter.php`
- Class: `MailToTaskImporter` (line 4)
- Function: `__construct()` (line 14)
- Function: `importFromImap()` (line 27)
- Function: `buildMailbox()` (line 197)
- Function: `resolveClientIdBySenderDomain()` (line 214)
- Function: `parseEmailsField()` (line 241)
- Function: `extractDomainFromEmail()` (line 254)
- Function: `parseReceivedDate()` (line 265)
- Function: `extractSender()` (line 274)
- Function: `decodeHeaderValue()` (line 289)
- Function: `messageKey()` (line 306)
- Function: `isMessageFinalized()` (line 318)
- Function: `getImportStatus()` (line 324)
- Function: `saveImportLog()` (line 329)
- Function: `ensureImportTable()` (line 346)
- Function: `extractMessageContent()` (line 365)
- Function: `flattenParts()` (line 410)
- Function: `parseSinglePart()` (line 441)
- Function: `partParams()` (line 485)
- Function: `decodePartBody()` (line 510)
- Function: `mimeType()` (line 521)
- Function: `htmlToText()` (line 540)
- Function: `cleanBodyText()` (line 557)
- Function: `prepareImportedTaskText()` (line 601)
- Function: `shouldImportAttachment()` (line 622)
- Function: `extractReferencedCidValues()` (line 647)
- Function: `normalizeContentId()` (line 668)
- Function: `parseWithAI()` (line 678)
### `autoload/Domain/Tasks/TaskAttachmentRepository.php`
- Class: `TaskAttachmentRepository` (line 4)
- Function: `__construct()` (line 11)
- Function: `listByTaskId()` (line 25)
- Function: `upload()` (line 46)
- Function: `uploadFromContent()` (line 76)
- Function: `rename()` (line 100)
- Function: `delete()` (line 112)
- Function: `purgeByTaskId()` (line 137)
- Function: `effectiveTitle()` (line 159)
- Function: `sanitizeFileName()` (line 165)
- Function: `ensureStorage()` (line 173)
- Function: `ensureTable()` (line 185)
- Function: `storeMeta()` (line 209)
- Function: `buildPublicUrl()` (line 230)
- Function: `formatSize()` (line 235)
- Function: `resolveFilePath()` (line 247)
### `autoload/Domain/Tasks/WorkTimeRepository.php`
- Class: `WorkTimeRepository` (line 4)
- Function: `__construct()` (line 9)
- Function: `getClientsWithUnsettledTasks()` (line 20)
- Function: `buildClientTasksByMonth()` (line 44)
- Function: `getClientTaskRows()` (line 74)
- Function: `getUnsettledTaskStatuses()` (line 91)
- Function: `getTaskTotalTimeByMonth()` (line 96)
### `autoload/factory/class.BackendSites.php`
- Class: `BackendSites` (line 3)
- Function: `topic_delete()` (line 6)
- Function: `topic_unaccept()` (line 12)
- Function: `topic_accept()` (line 18)
- Function: `topic_save()` (line 24)
- Function: `topic()` (line 57)
- Function: `collective_topic()` (line 63)
- Function: `collective_topic_save()` (line 69)
### `autoload/factory/class.Crm.php`
- Class: `Crm` (line 14)
- Function: `settings()` (line 19)
- Function: `get_client_name()` (line 31)
- Function: `get_client_list()` (line 36)
- Function: `client_delete()` (line 41)
- Function: `client_details()` (line 47)
- Function: `client_save()` (line 52)
### `autoload/factory/class.Cron.php`
- Class: `Cron` (line 3)
- Function: `remove_points_history()` (line 5)
- Function: `update_points()` (line 18)
- Function: `send_push()` (line 31)
- Function: `send_emails()` (line 291)
### `autoload/factory/class.Finances.php`
- Class: `Finances` (line 3)
- Function: `first_operation_date()` (line 5)
- Function: `get_operation_tags()` (line 11)
- Function: `client_name()` (line 25)
- Function: `clients_list_by_dates()` (line 31)
- Function: `clients_list()` (line 37)
- Function: `category_delete()` (line 43)
- Function: `default_group()` (line 48)
- Function: `groups_list()` (line 54)
- Function: `operation_delete()` (line 60)
- Function: `tags_json()` (line 66)
- Function: `tags_list()` (line 72)
- Function: `operations_list()` (line 91)
- Function: `operation_details()` (line 105)
- Function: `operation_save()` (line 115)
- Function: `category_details()` (line 171)
- Function: `category_save()` (line 177)
- Function: `wallet_expenses_this_month()` (line 203)
- Function: `wallet_income_this_month()` (line 214)
- Function: `wallet_summary_this_month()` (line 225)
- Function: `wallet_summary()` (line 236)
- Function: `operations()` (line 244)
- Function: `categories()` (line 273)
### `autoload/factory/class.Projects.php`
- Class: `Projects` (line 3)
- Function: `projects_list()` (line 5)
- Function: `count_open_subtasks()` (line 12)
- Function: `task_text_new()` (line 18)
- Function: `task_text_update()` (line 29)
- Function: `task_total_time()` (line 40)
- Function: `send_email_task_change_status()` (line 63)
- Function: `task_order_save()` (line 90)
- Function: `action_mark_as_done()` (line 104)
- Function: `action_name()` (line 112)
- Function: `send_email_notification()` (line 118)
- Function: `get_task_name()` (line 127)
- Function: `set_project_as_default()` (line 133)
- Function: `task_update()` (line 139)
- Function: `project_delete()` (line 151)
- Function: `project_name()` (line 157)
- Function: `open_task()` (line 163)
- Function: `task_change_status()` (line 176)
- Function: `task_delete()` (line 247)
- Function: `project_save()` (line 257)
- Function: `project_user_id()` (line 329)
- Function: `task_user_id()` (line 335)
- Function: `project_details()` (line 341)
- Function: `tasks_without_project()` (line 351)
- Function: `get_project_name()` (line 365)
- Function: `user_projects()` (line 371)
- Function: `get_unassigned_tasks()` (line 402)
- Function: `get_closed_tasks()` (line 431)
- Function: `get_toreview_tasks()` (line 476)
- Function: `get_inprogress_tasks()` (line 509)
- Function: `user_tasks()` (line 555)
### `autoload/factory/class.Tasks.php`
- Class: `Tasks` (line 4)
- Function: `filtr_details()` (line 11)
- Function: `get_priorities()` (line 17)
- Function: `task_change_dates()` (line 22)
- Function: `parent_tasks()` (line 37)
- Function: `get_tasks_gantt()` (line 59)
- Function: `work_delete()` (line 117)
- Function: `change_task_work_date_end()` (line 122)
- Function: `change_task_work_date_start()` (line 128)
- Function: `task_works()` (line 134)
- Function: `get_statuses()` (line 140)
- Function: `clear_task_opened()` (line 150)
- Function: `set_task_opened_by_user()` (line 156)
- Function: `is_taks_is_opened_by_user()` (line 169)
- Function: `get_filtrs()` (line 175)
- Function: `filtr_update()` (line 180)
- Function: `filtr_save()` (line 190)
- Function: `action_change_status()` (line 208)
- Function: `comment_delete()` (line 213)
- Function: `comment_save()` (line 218)
- Function: `action_delete()` (line 233)
- Function: `action_save()` (line 239)
- Function: `get_tasks()` (line 248)
- Function: `get_open_task_id()` (line 295)
- Function: `task_start()` (line 301)
- Function: `task_end()` (line 340)
- Function: `is_work_duration_too_short()` (line 368)
- Function: `task_details()` (line 379)
- Function: `task_total_time()` (line 394)
- Function: `is_task_open()` (line 417)
- Function: `work_time_clients()` (line 427)
- Function: `task_save()` (line 434)
- Function: `task_delete()` (line 532)
- Function: `task_first_id()` (line 540)
- Function: `task_delete_all()` (line 549)
- Function: `task_delete_from_db()` (line 567)
- Function: `filtr_set_default()` (line 582)
- Function: `get_default_filtr()` (line 590)
### `autoload/factory/class.Users.php`
- Class: `Users` (line 3)
- Function: `user_details()` (line 5)
- Function: `get_default_project()` (line 18)
- Function: `get_user_email()` (line 24)
- Function: `user_name()` (line 30)
- Function: `users_list()` (line 39)
- Function: `settings_save()` (line 62)
- Function: `login()` (line 73)
### `autoload/factory/class.Wiki.php`
- Class: `Wiki` (line 4)
- Function: `category_delete()` (line 6)
- Function: `category_save()` (line 11)
- Function: `category_details()` (line 45)
- Function: `category_users()` (line 52)
- Function: `get_categories()` (line 58)
### `autoload/view/class.Cron.php`
- Class: `Cron` (line 4)
- Function: `main_view()` (line 6)
### `autoload/view/class.Projects.php`
- Class: `Projects` (line 3)
### `autoload/view/class.Site.php`
- Class: `Site` (line 3)
- Function: `show()` (line 5)
### `autoload/view/class.Users.php`
- Class: `Users` (line 3)
- Function: `points_history()` (line 5)
- Function: `settings()` (line 12)
### `ceidg.php`
- Function: `__autoload_my_classes()` (line 3)
- Function: `memory_get_process_usage()` (line 114)
### `cron.php`
- Function: `__autoload_my_classes()` (line 4)
### `index.php`
- Function: `__autoload_my_classes()` (line 3)
### `tests/Controllers/TasksControllerTest.php`
- Function: `assert_same()` (line 7)
- Function: `run_tasks_controller_tests()` (line 13)
### `tests/Domain/Tasks/TaskAttachmentRepositoryTest.php`
- Function: `run_task_attachment_repository_tests()` (line 7)
### `tests/Domain/Tasks/WorkTimeRepositoryTest.php`
- Function: `assert_true()` (line 7)
- Function: `run_work_time_repository_tests()` (line 13)

View File

@@ -1 +0,0 @@
1. W wiadomości tworzonej z maila pliki PDF dodały się jako att_6995b8ad9d4567. Trzeba to poprawić.

View File

@@ -17,7 +17,6 @@ $imap_tasks['username'] = 'zadania@project-pro.pl';
$imap_tasks['password'] = 'ProjectPro2025!'; $imap_tasks['password'] = 'ProjectPro2025!';
// Auto-start timer when opening task popup (true/false) // Auto-start timer when opening task popup (true/false)
$settings['tasks_auto_start_timer'] = false;
// OpenAI ChatGPT API configuration for email task parsing // OpenAI ChatGPT API configuration for email task parsing
$settings['openai_api_key'] = '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'; // Wklej tutaj swój klucz API OpenAI $settings['openai_api_key'] = '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'; // Wklej tutaj swój klucz API OpenAI

View File

@@ -130,9 +130,6 @@
<script type="text/javascript"> <script type="text/javascript">
let isProgrammaticUpdate = false; let isProgrammaticUpdate = false;
// Configuration: auto-start timer when opening task popup
var TASKS_AUTO_START_TIMER = <?= isset( $GLOBALS['settings']['tasks_auto_start_timer'] ) && $GLOBALS['settings']['tasks_auto_start_timer'] ? 'true' : 'false' ?>;
var tasks = [ var tasks = [
<? <?
foreach ( $this -> tasks_gantt as $task ) { foreach ( $this -> tasks_gantt as $task ) {
@@ -326,20 +323,11 @@
function close_task_popup() { function close_task_popup() {
var popup = $( '.task_popup' ); var popup = $( '.task_popup' );
var details = popup.find( '.task_details' );
var task_id = details.attr( 'task_id' );
var is_timer_running = details.find( '.task_end' ).length && !details.find( '.task_end' ).hasClass( 'hidden' );
popup.empty().hide(); popup.empty().hide();
if ( task_id && is_timer_running )
stop_task_timer( task_id );
} }
function task_popup( task_id, open_works_time = false, auto_start_timer = TASKS_AUTO_START_TIMER ) { function task_popup( task_id, open_works_time = false ) {
var current_popup_task_id = $( '.task_popup .task_details' ).attr( 'task_id' );
var popup_already_open = $( '.task_popup' ).is( ':visible' ) && $( '.task_popup .task_details' ).length;
var should_auto_start_timer = auto_start_timer && !( popup_already_open && String( current_popup_task_id ) === String( task_id ) );
$.ajax({ $.ajax({
url: '/tasks/task_popup/', url: '/tasks/task_popup/',
@@ -375,9 +363,6 @@
if ( open_works_time ) if ( open_works_time )
$( '.task_popup .task_details' ).addClass( 'open_works_time' ); $( '.task_popup .task_details' ).addClass( 'open_works_time' );
if ( should_auto_start_timer )
start_task_timer( task_id );
} }
}); });
} }