Files
crmPRO/autoload/controls/class.Wiki.php
Jacek Pyziak 7c2a42a66f feat: Add wiki integration to task management
- Implemented a multi-select dropdown for associating tasks with wiki entries in the task edit form.
- Enhanced task popup to display related wiki entries with visibility controls based on user permissions.
- Updated the wiki main view to support bulk actions for categories, including deletion and search functionality.
- Created a new database migration for establishing many-to-many relationships between tasks and wiki entries.
- Improved styling for wiki components to enhance user experience.
- Added a new AGENTS.md file to outline communication and change management protocols.
2026-03-03 11:52:04 +01:00

99 lines
2.4 KiB
PHP

<?php
namespace controls;
class Wiki
{
static public function category_delete() {
global $user;
if ( !$user or!\controls\Users::permissions( $user[ 'id' ], 'wiki' ) )
return false;
if ( (int)$user['id'] !== 1 and (int)$user['id'] !== 3 )
return false;
if ( \factory\Wiki::category_delete( \S::get( 'id' ) ) )
\S::alert( 'Kategoria została usunięta.' );
header( 'Location: /wiki/main_view/' );
exit;
}
public static function categories_delete_bulk()
{
global $user;
if ( !$user or!\controls\Users::permissions( $user[ 'id' ], 'wiki' ) )
return false;
if ( (int)$user['id'] !== 1 and (int)$user['id'] !== 3 )
return false;
$ids = \S::get( 'ids' );
if ( !is_array( $ids ) )
$ids = [];
$deleted_count = \factory\Wiki::categories_delete_bulk( $ids );
if ( $deleted_count > 0 )
\S::alert( 'Usunięto wpisy: ' . $deleted_count . '.' );
else
\S::alert( 'Nie wybrano poprawnych wpisów do usunięcia.' );
header( 'Location: /wiki/main_view/' );
exit;
}
public static function category_save()
{
global $user;
if ( !$user or!\controls\Users::permissions( $user[ 'id' ], 'wiki' ) )
return false;
if ( $id = \factory\Wiki::category_save( \S::get( 'id' ), \S::get( 'name' ), \S::get( 'text' ), \S::get( 'text_admin' ), \S::get( 'users' ) ) )
\S::alert( 'Kategoria została zapisana.' );
header( 'Location: /wiki/category_preview/id=' . $id );
exit;
}
public static function category_edit()
{
global $user;
if ( !$user or!\controls\Users::permissions( $user[ 'id' ], 'wiki' ) )
return false;
return \Tpl::view( 'wiki/category-edit', [
'category' => \factory\Wiki::category_details( \S::get( 'id' ) ),
'users' => \factory\Users::users_list()
] );
}
public static function category_preview()
{
global $user;
if ( !$user or!\controls\Users::permissions( $user[ 'id' ], 'wiki' ) )
return false;
return \Tpl::view( 'wiki/category-preview', [
'category' => \factory\Wiki::category_details( \S::get( 'id' ) ),
] );
}
public static function main_view()
{
global $user;
if ( !$user or!\controls\Users::permissions( $user[ 'id' ], 'wiki' ) )
return false;
return \Tpl::view( 'wiki/main-view', [
'user' => $user,
'categories' => \factory\Wiki::get_categories()
] );
}
}