summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Prodromou <evan@status.net>2009-11-07 13:10:22 -0500
committerEvan Prodromou <evan@status.net>2009-11-07 13:10:22 -0500
commit55c7c943e7ac8fc7b89bea1a325087059903fbba (patch)
treeafe44e55b7e1bca1aedc36426f715e76a145e0f3
parentd9cde0ef80ee838a99035d44f0286b3cc902e332 (diff)
Simply flag a profile for review
Instead of trying to have lots of different flags on different objects, cut to the core of this functionality: flag a profile for moderator review.
-rw-r--r--plugins/UserFlag/Notice_flag.php53
-rw-r--r--plugins/UserFlag/Profile_flag.php55
-rw-r--r--plugins/UserFlag/UserFlagPlugin.php33
-rw-r--r--plugins/UserFlag/User_flag_notice.php60
-rw-r--r--plugins/UserFlag/User_flag_profile.php8
-rw-r--r--plugins/UserFlag/adminnoticeflag.php88
-rw-r--r--plugins/UserFlag/flagnotice.php97
-rw-r--r--plugins/UserFlag/flagprofileform.php4
8 files changed, 8 insertions, 390 deletions
diff --git a/plugins/UserFlag/Notice_flag.php b/plugins/UserFlag/Notice_flag.php
deleted file mode 100644
index 14e3b8402..000000000
--- a/plugins/UserFlag/Notice_flag.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-/*
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2009, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (!defined('STATUSNET')) {
- exit(1);
-}
-
-require_once INSTALLDIR . '/classes/Memcached_DataObject.php';
-
-class Notice_flag extends Memcached_DataObject
-{
- ###START_AUTOCODE
- /* the code below is auto generated do not remove the above tag */
-
- public $__table = 'notice_flag'; // table name
- public $flag; // varchar(8) primary_key not_null
- public $display; // varchar(255)
- public $created; // datetime not_null default_0000-00-00%2000%3A00%3A00
-
- /* Static get */
- function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('Notice_flag',$k,$v); }
-
- /* the code above is auto generated do not remove the tag below */
- ###END_AUTOCODE
-
- function table() {
- return array(
- 'flag' => DB_DATAOBJECT_STR,
- 'display' => DB_DATAOBJECT_STR,
- 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME
- );
- }
-
- function keys() {
- return array('flag');
- }
-}
diff --git a/plugins/UserFlag/Profile_flag.php b/plugins/UserFlag/Profile_flag.php
deleted file mode 100644
index 812d11d51..000000000
--- a/plugins/UserFlag/Profile_flag.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-/*
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2009, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (!defined('STATUSNET')) {
- exit(1);
-}
-
-require_once INSTALLDIR . '/classes/Memcached_DataObject.php';
-
-class Profile_flag extends Memcached_DataObject
-{
- ###START_AUTOCODE
- /* the code below is auto generated do not remove the above tag */
-
- public $__table = 'profile_flag'; // table name
- public $flag; // varchar(8) primary_key not_null
- public $display; // varchar(255)
- public $created; // datetime not_null default_0000-00-00%2000%3A00%3A00
-
- /* Static get */
- function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('Profile_flag',$k,$v); }
-
- /* the code above is auto generated do not remove the tag below */
- ###END_AUTOCODE
-
- const DEFAULTFLAG = 'review'; // default flag
-
- function table() {
- return array(
- 'flag' => DB_DATAOBJECT_STR,
- 'display' => DB_DATAOBJECT_STR,
- 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME
- );
- }
-
- function keys() {
- return array('flag');
- }
-}
diff --git a/plugins/UserFlag/UserFlagPlugin.php b/plugins/UserFlag/UserFlagPlugin.php
index fc56249e6..06c1e75c5 100644
--- a/plugins/UserFlag/UserFlagPlugin.php
+++ b/plugins/UserFlag/UserFlagPlugin.php
@@ -47,22 +47,6 @@ class UserFlagPlugin extends Plugin
{
$schema = Schema::get();
- // For storing user-submitted flags on notices
-
- $schema->ensureTable('user_flag_notice',
- array(new ColumnDef('notice_id', 'integer', null, null, 'PRI'),
- new ColumnDef('user_id', 'integer', null, null, 'PRI'),
- new ColumnDef('flag', 'varchar', '8'),
- new ColumnDef('created', 'datetime', null,
- null, 'MUL')));
-
- // Allowable values for user_flag_notice
-
- $schema->ensureTable('notice_flag',
- array(new ColumnDef('flag', 'varchar', '8', null, 'PRI'),
- new ColumnDef('display', 'varchar', '255'),
- new ColumnDef('created', 'datetime', null, null, 'MUL')));
-
// For storing user-submitted flags on profiles
$schema->ensureTable('user_flag_profile',
@@ -70,17 +54,11 @@ class UserFlagPlugin extends Plugin
null, 'PRI'),
new ColumnDef('user_id', 'integer', null,
null, 'PRI'),
- new ColumnDef('flag', 'varchar', '8'),
new ColumnDef('created', 'datetime', null,
+ null, 'MUL'),
+ new ColumnDef('cleared', 'datetime', null,
null, 'MUL')));
- // Allowable values for user_flag_notice
-
- $schema->ensureTable('profile_flag',
- array(new ColumnDef('flag', 'varchar', '8', null, 'PRI'),
- new ColumnDef('display', 'varchar', '255'),
- new ColumnDef('created', 'datetime', null,
- null, 'MUL')));
return true;
}
@@ -91,9 +69,7 @@ class UserFlagPlugin extends Plugin
}
function onRouterInitialized(&$m) {
- $m->connect('main/flag/notice', array('action' => 'flagnotice'));
$m->connect('main/flag/profile', array('action' => 'flagprofile'));
- $m->connect('admin/notice/flag', array('action' => 'adminnoticeflag'));
$m->connect('admin/profile/flag', array('action' => 'adminprofileflag'));
return true;
}
@@ -102,19 +78,14 @@ class UserFlagPlugin extends Plugin
{
switch ($cls)
{
- case 'FlagnoticeAction':
case 'FlagprofileAction':
- case 'AdminnoticeflagAction':
case 'AdminprofileflagAction':
require_once(INSTALLDIR.'/plugins/UserFlag/' . strtolower(mb_substr($cls, 0, -6)) . '.php');
return false;
case 'FlagProfileForm':
require_once(INSTALLDIR.'/plugins/UserFlag/' . strtolower($cls . '.php'));
return false;
- case 'User_flag_notice':
- case 'Notice_flag':
case 'User_flag_profile':
- case 'Profile_flag':
require_once(INSTALLDIR.'/plugins/UserFlag/'.$cls.'.php');
return false;
default:
diff --git a/plugins/UserFlag/User_flag_notice.php b/plugins/UserFlag/User_flag_notice.php
deleted file mode 100644
index dc08702c4..000000000
--- a/plugins/UserFlag/User_flag_notice.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-/*
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2009, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (!defined('STATUSNET')) {
- exit(1);
-}
-
-require_once INSTALLDIR . '/classes/Memcached_DataObject.php';
-
-class User_flag_notice extends Memcached_DataObject
-{
- ###START_AUTOCODE
- /* the code below is auto generated do not remove the above tag */
-
- public $__table = 'user_flag_notice'; // table name
- public $notice_id; // int(4) primary_key not_null
- public $user_id; // int(4) primary_key not_null
- public $flag; // varchar(8)
- public $created; // datetime not_null default_0000-00-00%2000%3A00%3A00
-
- /* Static get */
- function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('User_flag_notice',$k,$v); }
-
- /* the code above is auto generated do not remove the tag below */
- ###END_AUTOCODE
-
- function table() {
- return array(
- 'notice_id' => DB_DATAOBJECT_INT,
- 'user_id' => DB_DATAOBJECT_INT,
- 'flag' => DB_DATAOBJECT_STR,
- 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME
- );
- }
-
- function keys() {
- return array('notice_id', 'user_id');
- }
-
- function &pkeyGet($kv)
- {
- return Memcached_DataObject::pkeyGet('User_flag_notice', $kv);
- }
-}
diff --git a/plugins/UserFlag/User_flag_profile.php b/plugins/UserFlag/User_flag_profile.php
index 895da5323..d32886872 100644
--- a/plugins/UserFlag/User_flag_profile.php
+++ b/plugins/UserFlag/User_flag_profile.php
@@ -31,8 +31,8 @@ class User_flag_profile extends Memcached_DataObject
public $__table = 'user_flag_profile'; // table name
public $profile_id; // int(4) primary_key not_null
public $user_id; // int(4) primary_key not_null
- public $flag; // varchar(8)
public $created; // datetime not_null default_0000-00-00%2000%3A00%3A00
+ public $cleared; // datetime not_null default_0000-00-00%2000%3A00%3A00
/* Static get */
function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('User_flag_profile',$k,$v); }
@@ -44,8 +44,8 @@ class User_flag_profile extends Memcached_DataObject
return array(
'profile_id' => DB_DATAOBJECT_INT,
'user_id' => DB_DATAOBJECT_INT,
- 'flag' => DB_DATAOBJECT_STR,
- 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME
+ 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME,
+ 'cleared' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME
);
}
@@ -58,7 +58,7 @@ class User_flag_profile extends Memcached_DataObject
return Memcached_DataObject::pkeyGet('User_flag_profile', $kv);
}
- static function exists($profile_id, $user_id, $flag)
+ static function exists($profile_id, $user_id)
{
$ufp = User_flag_profile::pkeyGet(array('profile_id' => $profile_id,
'user_id' => $user_id));
diff --git a/plugins/UserFlag/adminnoticeflag.php b/plugins/UserFlag/adminnoticeflag.php
deleted file mode 100644
index 002368999..000000000
--- a/plugins/UserFlag/adminnoticeflag.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-/**
- * Show latest and greatest notice flags
- *
- * PHP version 5
- *
- * @category Action
- * @package StatusNet
- * @author Evan Prodromou <evan@status.net>
- * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
- * @link http://status.net/
- *
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2009, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (!defined('STATUSNET')) {
- exit(1);
-}
-
-/**
- * Show the latest and greatest notice flags
- *
- * @category Action
- * @package StatusNet
- * @author Evan Prodromou <evan@status.net>
- * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
- * @link http://status.net/
- */
-
-class AdminnoticeflagAction extends Action
-{
- /**
- * Take arguments for running
- *
- * @param array $args $_REQUEST args
- *
- * @return boolean success flag
- */
-
- function prepare($args)
- {
- return true;
- }
-
- /**
- * Handle request
- *
- * @param array $args $_REQUEST args; handled in prepare()
- *
- * @return void
- */
-
- function handle($args)
- {
- parent::handle($args);
-
- $this->showPage();
- }
-
- function title() {
- return _('Flagged notices');
- }
-
- /**
- * save the notice flag
- *
- * @return void
- */
-
- function showContent()
- {
- }
-}
-
diff --git a/plugins/UserFlag/flagnotice.php b/plugins/UserFlag/flagnotice.php
deleted file mode 100644
index b33cb2036..000000000
--- a/plugins/UserFlag/flagnotice.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-/**
- * Add a flag to a notice
- *
- * PHP version 5
- *
- * @category Action
- * @package StatusNet
- * @author Evan Prodromou <evan@status.net>
- * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
- * @link http://status.net/
- *
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2009, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (!defined('STATUSNET')) {
- exit(1);
-}
-
-/**
- * Action to flag a notice.
- *
- * @category Action
- * @package StatusNet
- * @author Evan Prodromou <evan@status.net>
- * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
- * @link http://status.net/
- */
-
-class FlagnoticeAction extends Action
-{
- var $notice = null;
-
- /**
- * Take arguments for running
- *
- * @param array $args $_REQUEST args
- *
- * @return boolean success flag
- */
-
- function prepare($args)
- {
- if ($_SERVER['REQUEST_METHOD'] != 'POST') {
- throw new ClientException(_('Action only accepts POST'));
- }
-
- return true;
- }
-
- /**
- * Handle request
- *
- * Shows a page with list of favorite notices
- *
- * @param array $args $_REQUEST args; handled in prepare()
- *
- * @return void
- */
-
- function handle($args)
- {
- parent::handle($args);
-
- $this->flagNotice();
- $this->returnTo();
- }
-
- function title() {
- return _('Flag notice');
- }
-
- /**
- * save the notice flag
- *
- * @return void
- */
-
- function flagNotice()
- {
- }
-}
-
diff --git a/plugins/UserFlag/flagprofileform.php b/plugins/UserFlag/flagprofileform.php
index 3f4834aac..0811dbb9d 100644
--- a/plugins/UserFlag/flagprofileform.php
+++ b/plugins/UserFlag/flagprofileform.php
@@ -115,7 +115,7 @@ class FlagProfileForm extends Form
*/
function formLegend()
{
- $this->out->element('legend', null, _('Flag this profile'));
+ $this->out->element('legend', null, _('Flag profile for review'));
}
/**
@@ -147,6 +147,6 @@ class FlagProfileForm extends Form
function formActions()
{
- $this->out->submit('submit', _('Flag'), 'submit', null, _('Flag this profile'));
+ $this->out->submit('submit', _('Flag'), 'submit', null, _('Flag profile for review'));
}
}