aboutsummaryrefslogtreecommitdiff
path: root/mod
diff options
context:
space:
mode:
authorben <ben@36083f99-b078-4883-b0ff-0f9b5a30f544>2009-02-06 18:33:06 +0000
committerben <ben@36083f99-b078-4883-b0ff-0f9b5a30f544>2009-02-06 18:33:06 +0000
commit262cda1aa2314929a148ee4324ef7b1a92601181 (patch)
tree380225a29eef2b7668c191f417e81cd59b63f475 /mod
parente5fce23a30234b8c643bd0698551c966c830cb90 (diff)
downloadelgg-262cda1aa2314929a148ee4324ef7b1a92601181.tar.gz
elgg-262cda1aa2314929a148ee4324ef7b1a92601181.tar.bz2
Tentative groups page committed into notifications plugin.
git-svn-id: https://code.elgg.org/elgg/trunk@2674 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod')
-rw-r--r--mod/notifications/groups.php47
-rw-r--r--mod/notifications/views/default/notifications/subscriptions/forminternals.php48
-rw-r--r--mod/notifications/views/default/notifications/subscriptions/groupsform.php92
-rw-r--r--mod/notifications/views/default/notifications/subscriptions/jsfuncs.php52
4 files changed, 193 insertions, 46 deletions
diff --git a/mod/notifications/groups.php b/mod/notifications/groups.php
new file mode 100644
index 000000000..3223ec81d
--- /dev/null
+++ b/mod/notifications/groups.php
@@ -0,0 +1,47 @@
+<?php
+
+ /**
+ * Elgg notifications plugin group index
+ *
+ * @package ElggNotifications
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider Ltd
+ * @copyright Curverider Ltd 2008-2009
+ * @link http://elgg.com/
+ */
+
+ // Load Elgg framework
+ require_once(dirname(dirname(dirname(__FILE__))) . '/engine/start.php');
+
+ // Ensure only logged-in users can see this page
+ gatekeeper();
+
+ // Set the context to settings
+ set_context('settings');
+
+ // Get the form
+ global $SESSION;
+ $people = array();
+ if ($groups_ents = get_entities_from_relationship('notify',$SESSION['user']->guid,false,'group','',0,'',99999)) {
+ foreach($groups_ents as $ent)
+ $groups[] = $ent->guid;
+ }
+
+ $groupmemberships = get_entities_from_relationship('member',$_SESSION['user']->guid,false,'group','',0,'',9999);
+
+ $body = elgg_view('input/form',array(
+ 'body' => elgg_view('notifications/subscriptions/groupsform',array(
+ 'groupsubs' => $groups,
+ 'groups' => $groupmemberships
+ )),
+ 'method' => 'post',
+ 'action' => ''
+ ));
+
+ // Insert it into the correct canvas layout
+ $body = elgg_view_layout('two_column_left_sidebar','',$body);
+
+ // Draw the page
+ echo page_draw(elgg_echo('notifications:subscriptions:groups'),$body);
+
+?> \ No newline at end of file
diff --git a/mod/notifications/views/default/notifications/subscriptions/forminternals.php b/mod/notifications/views/default/notifications/subscriptions/forminternals.php
index fa00059b9..ca28fc72a 100644
--- a/mod/notifications/views/default/notifications/subscriptions/forminternals.php
+++ b/mod/notifications/views/default/notifications/subscriptions/forminternals.php
@@ -135,55 +135,11 @@
<?php
}
-
-?>
-<script type="text/javascript">
-
-$(document).ready(function () {
-<?php
- foreach($NOTIFICATION_HANDLERS as $method => $foo) {
-?>
- $('input[@type=checkbox]:checked').parent("a.<?php echo $method; ?>toggleOff").each(function(){
- $(this).removeClass('<?php echo $method; ?>toggleOff').addClass('<?php echo $method; ?>toggleOn');
- });
-
-<?php
- }
-?>
-
-});
-<?php
- foreach($NOTIFICATION_HANDLERS as $method => $foo) {
-?>
-function adjust<?php echo $method; ?>(linkId) {
- var obj = $(this).prev("a");
-
- if (obj.className == "<?php echo $method; ?>toggleOff") {
- obj.className = "<?php echo $method; ?>toggleOn";
- } else {
- obj.className = "<?php echo $method; ?>toggleOff";
- }
- return false;
-}
-function adjust<?php echo $method; ?>_alt(linkId) {
- var obj = document.getElementById(linkId);
-
- if (obj.className == "<?php echo $method; ?>toggleOff") {
- obj.className = "<?php echo $method; ?>toggleOn";
- $('#' + linkId).children("INPUT[type='checkbox']").attr('checked', true);
- } else {
- obj.className = "<?php echo $method; ?>toggleOff";
- $('#' + linkId).children("INPUT[type='checkbox']").attr('checked', false);
- }
- return false;
-}
-<?php
- }
+ echo elgg_view('notifications/subscriptions/jsfuncs',$vars);
+
?>
-</script>
-
<div class="friendsPicker_wrapper">
<div id="friendsPicker<?php echo $friendspicker; ?>">
diff --git a/mod/notifications/views/default/notifications/subscriptions/groupsform.php b/mod/notifications/views/default/notifications/subscriptions/groupsform.php
new file mode 100644
index 000000000..5c0ee1057
--- /dev/null
+++ b/mod/notifications/views/default/notifications/subscriptions/groupsform.php
@@ -0,0 +1,92 @@
+<?php
+
+ global $NOTIFICATION_HANDLERS;
+ foreach($NOTIFICATION_HANDLERS as $method => $foo) {
+ $subsbig[$method] = get_entities_from_relationship('notify' . $method,$vars['user']->guid,false,'group','',0,'',99999);
+ }
+
+?>
+
+<div class="settings_form">
+ <div class="notification_methods">
+
+ <?php
+ echo elgg_view('notifications/subscriptions/jsfuncs',$vars);
+ ?>
+ <?php echo elgg_view_title(elgg_echo('notifications:subscriptions:groups')); ?>
+ <p>
+ <?php
+
+ echo elgg_echo('notifications:subscriptions:groups:description');
+
+ ?>
+ </p>
+<?php
+
+ if (isset($vars['groups']) && !empty($vars['groups'])) {
+
+?>
+<table id="notificationstable" cellspacing="0" cellpadding="4" border="1" width="100%">
+ <tr>
+ <td>&nbsp;</td>
+<?php
+ global $NOTIFICATION_HANDLERS;
+ $i = 0;
+ foreach($NOTIFICATION_HANDLERS as $method => $foo) {
+ if ($i > 0)
+ echo "<td class=\"spacercolumn\">&nbsp;</td>";
+?>
+ <td class="<?php echo $method; ?>togglefield"><?php echo elgg_echo('notification:method:'.$method); ?></td>
+<?php
+ $i++;
+ }
+?>
+ <td>&nbsp;</td>
+ </tr>
+<?php
+ foreach($vars['groups'] as $group) {
+
+ $fields = '';
+ $i = 0;
+
+ foreach($NOTIFICATION_HANDLERS as $method => $foo) {
+ if (in_array($group->guid,$subs[$method])) {
+ $checked[$method] = 'checked="checked"';
+ } else {
+ $checked[$method] = '';
+ }
+ if ($i > 0) $fields .= "<td class=\"spacercolumn\">&nbsp;</td>";
+ $fields .= <<< END
+ <td class="{$method}togglefield">
+ <a href="#" border="0" id="{$method}{$group->guid}" class="{$method}toggleOff" onclick="adjust{$method}_alt('{$method}{$group->guid}');">
+ <input type="checkbox" name="{$method}subscriptions[]" id="{$method}checkbox" onclick="adjust{$method}('{$method}{$group->guid}');" value="{$group->guid}" {$checked[$method]} /></a></td>
+END;
+ $i++;
+ }
+
+?>
+ <tr>
+ <td class="namefield">
+ <p>
+ <?php echo $group->name; ?>
+ </p>
+ </td>
+<?php
+ echo $fields;
+?>
+ <td>&nbsp;</td>
+ </tr>
+<?php
+
+
+ }
+?>
+</table>
+<?php
+ }
+
+?>
+
+ <input type="submit" value="<?php echo elgg_echo('save'); ?>" />
+ </div>
+</div> \ No newline at end of file
diff --git a/mod/notifications/views/default/notifications/subscriptions/jsfuncs.php b/mod/notifications/views/default/notifications/subscriptions/jsfuncs.php
new file mode 100644
index 000000000..5d8e6c101
--- /dev/null
+++ b/mod/notifications/views/default/notifications/subscriptions/jsfuncs.php
@@ -0,0 +1,52 @@
+<?php
+
+ global $NOTIFICATION_HANDLERS;
+
+?>
+
+<script type="text/javascript">
+
+$(document).ready(function () {
+<?php
+ foreach($NOTIFICATION_HANDLERS as $method => $foo) {
+?>
+ $('input[@type=checkbox]:checked').parent("a.<?php echo $method; ?>toggleOff").each(function(){
+ $(this).removeClass('<?php echo $method; ?>toggleOff').addClass('<?php echo $method; ?>toggleOn');
+ });
+
+<?php
+ }
+?>
+
+});
+
+<?php
+ foreach($NOTIFICATION_HANDLERS as $method => $foo) {
+?>
+function adjust<?php echo $method; ?>(linkId) {
+ var obj = $(this).prev("a");
+
+ if (obj.className == "<?php echo $method; ?>toggleOff") {
+ obj.className = "<?php echo $method; ?>toggleOn";
+ } else {
+ obj.className = "<?php echo $method; ?>toggleOff";
+ }
+ return false;
+}
+function adjust<?php echo $method; ?>_alt(linkId) {
+ var obj = document.getElementById(linkId);
+
+ if (obj.className == "<?php echo $method; ?>toggleOff") {
+ obj.className = "<?php echo $method; ?>toggleOn";
+ $('#' + linkId).children("INPUT[type='checkbox']").attr('checked', true);
+ } else {
+ obj.className = "<?php echo $method; ?>toggleOff";
+ $('#' + linkId).children("INPUT[type='checkbox']").attr('checked', false);
+ }
+ return false;
+}
+<?php
+ }
+?>
+
+</script> \ No newline at end of file