Commit 8b193fa3 authored by Martyn Smith's avatar Martyn Smith Committed by Martyn Smith
Browse files
parents 058caf92 9e3ca9b7
<?php
/**
* This program is part of Mahara
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* @package mahara
* @subpackage artefact-file
* @author Richard Mansfield <richard.mansfield@catalyst.net.nz>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL
* @copyright (C) 2006,2007 Catalyst IT Ltd http://catalyst.net.nz
*
*/
define('INTERNAL', 1);
require(dirname(dirname(dirname(__FILE__))) . '/init.php');
try {
$fileid = param_integer('id');
}
catch (ParameterException $e) {
json_reply('missingparameter',get_string('missingparameter'));
}
$prefix = get_config('dbprefix');
$filerecord = get_record_sql('SELECT a.artefacttype, a.owner, f.name
FROM ' . $prefix . 'artefact a
JOIN ' . $prefix . 'artefact_file_files f ON a.id = f.artefact
WHERE a.id = ' . $fileid);
if ($filerecord->owner != $USER->get('id')) {
json_reply('local',get_string('notowner'));
}
if (count_records('artefact', 'parent', $fileid) > 0) {
json_reply('local', get_string('artefacthaschildren'));
}
if (!delete_records('artefact_file_files', 'artefact', $fileid)) {
json_reply('local', get_string('deletefailed'));
}
if (!delete_records('artefact', 'id', $fileid)) {
json_reply('local', get_string('deletefailed'));
}
// @todo: Delete the file from the filesystem here
json_reply(false, get_string('filedeleted'));
?>
......@@ -369,6 +369,21 @@
<KEY NAME="parentfk" TYPE="foreign" FIELDS="parent" REFTABLE="artefact" REFFIELDS="id" />
</KEYS>
</TABLE>
<TABLE NAME="artefact_feedback">
<FIELDS>
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" />
<FIELD NAME="artefact" TYPE="int" LENGTH="10" NOTNULL="true" />
<FIELD NAME="author" TYPE="int" LENGTH="10" NOTNULL="true" />
<FIELD NAME="message" TYPE="int" LENGTH="10" NOTNULL="true" />
<FIELD NAME="ctime" TYPE="datetime" NOTNULL="true" />
<FIELD NAME="public" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="0" />
</FIELDS>
<KEYS>
<KEY NAME="primary" TYPE="primary" FIELDS="id" />
<KEY NAME="artefactfk" TYPE="foreign" FIELDS="artefact" REFTABLE="artefact" REFFIELDS="id" />
<KEY NAME="authorfk" TYPE="foreign" FIELDS="author" REFTABLE="usr" REFFIELDS="id" />
</KEYS>
</TABLE>
<TABLE NAME="community">
<FIELDS>
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true" />
......@@ -621,6 +636,23 @@
<KEY NAME="viewfk" TYPE="foreign" FIELDS="view" REFTABLE="view" REFFIELDS="id" />
</KEYS>
</TABLE>
<TABLE NAME="view_feedback">
<FIELDS>
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" />
<FIELD NAME="view" TYPE="int" LENGTH="10" NOTNULL="true" />
<FIELD NAME="author" TYPE="int" LENGTH="10" NOTNULL="true" />
<FIELD NAME="message" TYPE="int" LENGTH="10" NOTNULL="true" />
<FIELD NAME="attachment" TYPE="int" LENGTH="10" NOTNULL="false" />
<FIELD NAME="ctime" TYPE="datetime" NOTNULL="true" />
<FIELD NAME="public" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="0" />
</FIELDS>
<KEYS>
<KEY NAME="primary" TYPE="primary" FIELDS="id" />
<KEY NAME="viewfk" TYPE="foreign" FIELDS="view" REFTABLE="view" REFFIELDS="id" />
<KEY NAME="authorfk" TYPE="foreign" FIELDS="author" REFTABLE="usr" REFFIELDS="id" />
<KEY NAME="attachmentfk" TYPE="foreign" FIELDS="attachment" REFTABLE="artefact" REFFIELDS="id" />
</KEYS>
</TABLE>
<TABLE NAME="view_access">
<FIELDS>
<FIELD NAME="view" TYPE="int" LENGTH="10" NOTNULL="true" />
......
......@@ -27,31 +27,24 @@
define('INTERNAL', 1);
require(dirname(dirname(__FILE__)) . '/init.php');
log_debug('addwatchlist.json.php');
$id = param_integer('id');
$type = param_variable('type');
log_debug($id . ' ' . $type);
$viewid = param_integer('viewid');
$artefactid = param_integer('artefactid',null);
$data = new StdClass;
if ($type == 'view') {
$data->view = $id;
}
else if ($type == 'artefact') {
$data->artefact = $id;
if ($artefactid) {
$data->artefact = $artefactid;
$table = 'usr_watchlist_artefact';
$artefactfield = 'artefact';
}
else {
json_reply('local', get_string('invalidwatchlistitem'));
$table = 'usr_watchlist_view';
$artefactfield = null;
}
$table = 'usr_watchlist_' . $type;
$data->view = $viewid;
$data->usr = $USER->get('id');
$data->ctime = db_format_timestamp(time());
log_debug($data);
if (record_exists($table, 'usr', $data->usr, $type, $id)) {
if (record_exists($table, 'usr', $data->usr, 'view', $viewid, $artefactfield, $artefactid)) {
json_reply(false, get_string('itemalreadyinwatchlist'));
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment