/** * @brief Modifies the given project * @param Project ID * @param Project title * @param Description of the project * @param Deadline of the project * @param List of members working in the project and their roles * @param Member who updated the project * @param Whether or not the project has been completed * @return int|boolean (Post ID of the post specifying the project updation|false) */ public static function updateProject($pid, $title, $desc, $deadline, $details, $updater, $completed) { $post_id = NULL; try { if ($completed && OC_Collaboration_Task::hasPendingTasks($pid)) { throw new \Exception('Cannot delete project with pending tasks'); } \OCP\DB::beginTransaction(); $query = \OCP\DB::prepare('UPDATE `*PREFIX*collaboration_project` SET `title`=?, `description`=?, `last_updated`=CURRENT_TIMESTAMP, `ending_date`=?, `completed`=? WHERE `pid`=?'); $query->execute(array($title, $desc, OC_Collaboration_Time::convertUITimeToDBTime($deadline . ' 23:59:59'), $completed, $pid)); $add_member = \OCP\DB::prepare('INSERT INTO `*PREFIX*collaboration_works_on`(`pid`, `member`, `role`) VALUES(?, ?, ?)'); $cnt = count($details); if ($cnt != 0 && isset($details[0]['member'])) { foreach ($details as $detail) { $member = strtolower($detail['member']); if (!OC_User::userExists($member)) { OC_User::createUser($member, $member); } $add_member->execute(array($pid, $member, $detail['role'])); OC_Preferences::setValue($member, 'settings', 'email', $detail['email']); OC_Preferences::setValue($member, 'collaboration', 'mobile', $detail['mobile']); } } $post_id = OC_Collaboration_Post::createPost('Project Updated', 'Project \'' . $title . '\' has been updated' . '.', $updater, $pid, 'Project Updation', array(), true); \OCP\DB::commit(); } catch (\Exception $e) { OC_Log::write('collaboration', __METHOD__ . ', Exception: ' . $e->getMessage(), OCP\Util::DEBUG); return false; } return $post_id; }
<?php /** * ownCloud - bookmarks plugin * * @authors Dr.J.Akilandeswari, R.Ramki, R.Sasidharan, P.Suresh * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE * License as published by the Free Software Foundation; either * version 3 of the License, or any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU AFFERO GENERAL PUBLIC LICENSE for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see <http://www.gnu.org/licenses/>. * */ OCP\JSON::checkLoggedIn(); OCP\JSON::callCheck(); OCP\JSON::checkAppEnabled('collaboration'); if (isset($_POST['pid'])) { OCP\JSON::success(array('has_pending_tasks' => OC_Collaboration_Task::hasPendingTasks($_POST['pid']))); exit; } OC_JSON::error(); exit;