- 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.
99 lines
2.4 KiB
PHP
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()
|
|
] );
|
|
}
|
|
|
|
}
|