[Note] Chỉnh sửa ứng dụng quản lý công việc GIRS Task

Table of Contents

GIRS Task Dạo này công việc ở cơ quan hơi nhiều dẫn đến phân việc chồng chéo lung tung, giao việc cũng không rõ ràng. Ngay cả mình được giao việc trong project mà bản thân cũng không biết @@! Thế là nảy sinh nhu cầu sử dụng lại cái ứng dụng quản lý công việc mình. Khi kiểm tra lại ứng dụng để gửi mail thông báo cho mọi người dùng thì mình phát hiện có chỗ không hợp lý mà hôm trước mình làm mình không để ý.

Đó là việc người không có quyền quản trị không thể tạo các "public project" được, chỉ có thể tạo được các "private project". Việc này gây khó khăn khi quyền quản trị thì chỉ có một số người có quyền, còn lại là thành viên. Nhưng đối với các thành viên thì ngoài các dự án cá nhân của bản thân thì cũng có nhu cầu tạo các dự án chung của cơ quan khi được giao quản lý một dự án nào đó.
Và chỉ có các dự án chung thì mới có thể thêm các thành viên khác vào, phân việc,.. được. Điều này gây bất hợp lý khi một thành viên được giao quản lý một dự án thì phải tạo một dự án cá nhân, sau đó nhờ quản trị chuyển cái dự án đó thành dự án chung. Lúc đó mới thêm các thành viên khác vào dự án đó được. Vậy là mình quyết định sửa lại cái ứng dụng. Để tránh sau này cần sửa nhưng quên mất thì mình note lại thành cái post này :v Bắt đầu thôi^^

Thêm Option chuyển dự án Private thành Public

Sửa giao diện

Sửa file
D:\sync\websvr\xampp\girstask\app\Template\project\edit.php
Dòng 16:
<?php if ($this->user->isAdmin()): ?> <?= $this->form->checkbox('is_private', t('Private project'), 1, $project['is_private'] == 1) ?> <?php endif ?>
thành
<?php if (1==1): ?> <?= $this->form->checkbox('is_private', t('Private project'), 1, $project['is_private'] == 1) ?> <?php endif ?>

Kết quả

[caption id="attachment_984" align="alignnone" width="737"]Thêm Option chuyển dự án Private thành Public Thêm Option chuyển dự án Private thành Public[/caption]

Thêm chức năng lưu sửa private project 2 public project khi bạn ở quyền user

Sửa file
D:\sync\websvr\xampp\girstask\app\Controller\Project.php
Dòng 144:
if ($project['is_private'] == 1 && $this->userSession->isAdmin() && ! isset($values['is_private'])) { $values += array('is_private' => 0); }
Thành
if ($project['is_private'] == 1 && ! isset($values['is_private'])) { $values += array('is_private' => 0); }

Thêm chức năng tạo public project ở thanh top menu

Sửa giao diện

Edit file
D:\sync\websvr\xampp\girstask\app\Template\app\layout.php
Dòng 4:
<?php if ($this->user->isAdmin()): ?>
Thành
<?php if (1==1): ?>
Kết quả [caption id="attachment_985" align="alignnone" width="633"]Thêm chức năng tạo public project ở thanh top menu Thêm chức năng tạo public project ở thanh top menu[/caption]

Thêm chức năng lưu public project do người có quyền user tạo ra

Edit file
D:\sync\websvr\xampp\girstask\app\Controller\Project.php
Dòng 405:
$is_private = $this->request->getIntegerParam('private', $this->userSession->isAdmin() ? 0 : 1);
Thành
$is_private = $this->request->getIntegerParam('private', 0);
 

Fix lỗi linh tinh khác

Notice: Uninitialized string offset: 0 in D:\sync\websvr\xampp\girstask\app\Core\Router.php on line 45
[caption id="attachment_979" align="alignnone" width="814"]Sửa lỗi Notice: Uninitialized string offset Sửa lỗi Notice: Uninitialized string offset[/caption] Mở file Core/Router.php
D:\sync\websvr\xampp\girstask\app\Core\Router.php
Sửa dòng 45, thêm @ để không hiện Notice nữa.
if (@$path{0} === '/') { $path = substr($path, 1); }
[caption id="attachment_980" align="alignnone" width="804"]Sửa lỗi Notice: Uninitialized string offset Sửa lỗi Notice: Uninitialized string offset[/caption]

Sửa lỗi tiếng Việt

Edit file
D:\sync\websvr\xampp\girstask\app\Locale\vi_VI
Translate! Vậy là xong! -soiqualang_chentreu-]]>

Leave a Reply

Your email address will not be published. Required fields are marked *