diff options
author | brettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-03-03 17:53:05 +0000 |
---|---|---|
committer | brettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-03-03 17:53:05 +0000 |
commit | 4766f36a4d74924f21ff329c4318ce4e069ffa04 (patch) | |
tree | 969b84632f2a8b0db79788a8a6db8e41d63e5cb4 /mod/notifications/views | |
parent | 57a217fd6b708844407486046a1faa23b46cac08 (diff) | |
download | elgg-4766f36a4d74924f21ff329c4318ce4e069ffa04.tar.gz elgg-4766f36a4d74924f21ff329c4318ce4e069ffa04.tar.bz2 |
Pulled in the interface changes.
git-svn-id: http://code.elgg.org/elgg/trunk@5257 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/notifications/views')
8 files changed, 788 insertions, 0 deletions
diff --git a/mod/notifications/views/default/notifications/css.php b/mod/notifications/views/default/notifications/css.php new file mode 100644 index 000000000..be1ef922c --- /dev/null +++ b/mod/notifications/views/default/notifications/css.php @@ -0,0 +1,78 @@ +<?php + + /** + * Elgg notifications CSS + * + * @package notifications + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider <info@elgg.com> + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.org/ + */ + +?> + +#notificationstable td.namefield { + width:250px; + text-align: left; + vertical-align: middle; +} +#notificationstable td.namefield p { + margin:0; + vertical-align: middle; + line-height: 1.1em; + padding:5px 0 5px 0; +} +#notificationstable td.namefield img { + padding:6px 10px 6px 3px; + float:left; +} +#notificationstable td.namefield p.namefieldlink { + margin:9px 0 0 0; +} +#notificationstable td.emailtogglefield, +#notificationstable td.smstogglefield { + width:50px; + text-align: center; + vertical-align: middle; +} +#notificationstable td.spacercolumn { + width:30px; +} +#notificationstable td { + border-bottom: 1px solid silver; +} +#notificationstable td.emailtogglefield input { + margin-right:36px; + margin-top:5px; +} +#notificationstable td.emailtogglefield a { + width:46px; + height:24px; + cursor: pointer; + display: block; + outline: none; +} +#notificationstable td.emailtogglefield a.emailtoggleOff { + background: url(<?php echo $vars['url']; ?>mod/notifications/graphics/icon_notifications_email.gif) no-repeat right 2px; +} +#notificationstable td.emailtogglefield a.emailtoggleOn { + background: url(<?php echo $vars['url']; ?>mod/notifications/graphics/icon_notifications_email.gif) no-repeat right -36px; +} + +.notification_collections, +.notification_personal { + margin-bottom: 25px; +} + +.settings_form .friendsPicker_container h3 { + color:#999999; + font-size:3em; + margin:0 0 20px; + text-align:left; + background: none; + border-bottom: none; +} + + + diff --git a/mod/notifications/views/default/notifications/settings/usersettings.php b/mod/notifications/views/default/notifications/settings/usersettings.php new file mode 100644 index 000000000..15c5adc7f --- /dev/null +++ b/mod/notifications/views/default/notifications/settings/usersettings.php @@ -0,0 +1,3 @@ +<?php + +?>
\ No newline at end of file diff --git a/mod/notifications/views/default/notifications/subscriptions/collections.php b/mod/notifications/views/default/notifications/subscriptions/collections.php new file mode 100644 index 000000000..8fe49e672 --- /dev/null +++ b/mod/notifications/views/default/notifications/subscriptions/collections.php @@ -0,0 +1,141 @@ + +<script type="text/javascript"> + + function setCollection(members, method, id) { + for ( var i in members ) { + var checked = $('#' + method + 'collections' + id).children("INPUT[type='checkbox']").attr('checked'); + if ($("#"+method+members[i]).children("INPUT[type='checkbox']").attr('checked') != checked) { + $("#"+method+members[i]).children("INPUT[type='checkbox']").attr('checked', checked); + functioncall = 'adjust' + method + '_alt("'+method+members[i]+'");'; + eval(functioncall); + } + } + } + +</script> + +<h3> + <?php echo elgg_echo('notifications:subscriptions:collections:title'); ?> +</h3> +<div class="notification_personal"> +<p> + <?php echo elgg_echo('notifications:subscriptions:collections:description'); ?> + <a href="<?php echo $vars['url']; ?>pg/collections/<?php echo $vars['user']->username; ?>"><?php echo elgg_echo('notifications:subscriptions:collections:edit') ?></a> +</p> +<table id="notificationstable" cellspacing="0" cellpadding="4" border="1" width="100%"> + <tr> + <td> </td> +<?php + $i = 0; + global $NOTIFICATION_HANDLERS; + foreach($NOTIFICATION_HANDLERS as $method => $foo) { + if ($i > 0) + echo "<td class=\"spacercolumn\"> </td>"; +?> + <td class="<?php echo $method; ?>togglefield"><?php echo elgg_echo('notification:method:'.$method); ?></td> +<?php + $i++; + } +?> + <td> </td> + </tr> +<?php + $members = array(); + if ($friends = get_user_friends($vars['user']->guid,'',9999,0)) { + foreach($friends as $friend) + $members[] = $friend->guid; + } + $memberno = sizeof($members); + $members = implode(',',$members); + +?> + <tr> + <td class="namefield"> + <p> + <?php echo elgg_echo('friends:all'); ?> (<?php echo $memberno; ?>) + </p> + </td> +<?php + + $fields = ''; + $i = 0; + foreach($NOTIFICATION_HANDLERS as $method => $foo) { + $metaname = 'collections_notifications_preferences_' . $method; + if ($collections_preferences = $vars['user']->$metaname) { + if (!empty($collections_preferences) && !is_array($collections_preferences)) + $collections_preferences = array($collections_preferences); + if (is_array($collections_preferences)) + if (in_array(-1,$collections_preferences)) { + $collectionschecked[$method] = 'checked="checked"'; + } else { + $collectionschecked[$method] = ''; + } + } + if ($i > 0) $fields .= "<td class=\"spacercolumn\"> </td>"; + $fields .= <<< END + <td class="{$method}togglefield"> + <a border="0" id="{$method}collections-1" class="{$method}toggleOff" onclick="adjust{$method}_alt('{$method}collections-1'); setCollection([{$members}],'{$method}',-1);"> + <input type="checkbox" name="{$method}collections[]" id="{$method}checkbox" onclick="adjust{$method}('{$method}collections-1');" value="-1" {$collectionschecked[$method]} /></a></td> +END; + $i++; + } + echo $fields; + +?> + <td> </td> + </tr> +<?php + + if ($collections = get_user_access_collections($vars['user']->guid)) { + foreach($collections as $collection) { + $members = get_members_of_access_collection($collection->id, true); + $memberno = sizeof($members); + $members = implode(',',$members); + +?> + <tr> + <td class="namefield"> + <p> + <?php echo $collection->name; ?> (<?php echo $memberno; ?>) + </p> + + </td> + +<?php + + $fields = ''; + $i = 0; + foreach($NOTIFICATION_HANDLERS as $method => $foo) { + $metaname = 'collections_notifications_preferences_' . $method; + if ($collections_preferences = $vars['user']->$metaname) { + if (!empty($collections_preferences) && !is_array($collections_preferences)) + $collections_preferences = array($collections_preferences); + if (is_array($collections_preferences)) + if (in_array($collection->id,$collections_preferences)) { + $collectionschecked[$method] = 'checked="checked"'; + } else { + $collectionschecked[$method] = ''; + } + } + if ($i > 0) $fields .= "<td class=\"spacercolumn\"> </td>"; + $fields .= <<< END + <td class="{$method}togglefield"> + <a border="0" id="{$method}collections{$collection->id}" class="{$method}toggleOff" onclick="adjust{$method}_alt('{$method}collections{$collection->id}'); setCollection([{$members}],'{$method}',{$collection->id});"> + <input type="checkbox" name="{$method}collections[]" id="{$method}checkbox" onclick="adjust{$method}('{$method}collections{$collection->id}');" value="{$collection->id}" {$collectionschecked[$method]} /></a></td> +END; + $i++; + } + echo $fields; + +?> + + <td> </td> + </tr> +<?php + + } +} + +?> +</table> +</div> diff --git a/mod/notifications/views/default/notifications/subscriptions/form.php b/mod/notifications/views/default/notifications/subscriptions/form.php new file mode 100644 index 000000000..d96d6b7a7 --- /dev/null +++ b/mod/notifications/views/default/notifications/subscriptions/form.php @@ -0,0 +1,35 @@ +<?php + + /** + * Elgg SMS Client + * + * @package ElggSMS + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + */ + + + // Echo title + echo elgg_view_title(elgg_echo('notifications:subscriptions:changesettings')); + + echo elgg_view('subscriptions/form/additions',$vars); + + // Display a description +?> +<div class="contentWrapper"> +<div class="notification_methods"> +<?php + + echo elgg_view('input/form',array( + 'body' => elgg_view('notifications/subscriptions/personal') . + elgg_view('notifications/subscriptions/collections') . + elgg_view('notifications/subscriptions/forminternals'), + 'method' => 'post', + 'action' => $vars['url'] . 'action/notificationsettings/save', + )); + +?> +</div> +</div>
\ 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 new file mode 100644 index 000000000..673e30cc3 --- /dev/null +++ b/mod/notifications/views/default/notifications/subscriptions/forminternals.php @@ -0,0 +1,315 @@ + <h3> + <?php echo elgg_echo('notifications:subscriptions:title'); ?> + </h3> + <p class="notification_methods_intro"> + <?php echo elgg_echo('notifications:subscriptions:description'); ?> + </p> +<?php + + // Get friends and subscriptions + $friends = get_user_friends($vars['user']->guid,'',9999,0); + + global $NOTIFICATION_HANDLERS; + foreach($NOTIFICATION_HANDLERS as $method => $foo) { + $subsbig[$method] = elgg_get_entities_from_relationship(array('relationship' => 'notify' . $method, 'relationship_guid' => $vars['user']->guid, 'types' => 'user', 'limit' => 99999)); + } + + $subs = array(); + foreach($subsbig as $method => $big) { + if (is_array($subsbig[$method]) && sizeof($subsbig[$method])) { + foreach($subsbig[$method] as $u) { $subs[$method][] = $u->guid; } + } + } + + // Let the system know that the friends picker is in use + global $pickerinuse; + $pickerinuse = true; + $chararray = elgg_echo('friendspicker:chararray'); + + // Initialise internalname + if (!isset($vars['internalname'])) { + $internalname = "friend"; + } else { + $internalname = $vars['internalname']; + } + + // Initialise values + if (!isset($vars['value'])) { + $vars['value'] = array(); + } else { + if (!is_array($vars['value'])) { + $vars['value'] = (int) $vars['value']; + $vars['value'] = array($vars['value']); + } + } + + // Initialise whether we're calling back or not + if (isset($vars['callback'])) { + $callback = $vars['callback']; + } else { + $callback = false; + } + + // We need to count the number of friends pickers on the page. + if (!isset($vars['friendspicker'])) { + global $friendspicker; + if (!isset($friendspicker)) $friendspicker = 0; + $friendspicker++; + } else { + $friendspicker = $vars['friendspicker']; + } + + $users = array(); + $activeletters = array(); + + // Are we displaying form tags and submit buttons? + // (If we've been given a target, then yes! Otherwise, no.) + if (isset($vars['formtarget'])) { + $formtarget = $vars['formtarget']; + } else { + $formtarget = false; + } + + // Sort users by letter + if (is_array($friends) && sizeof($friends)) + foreach($friends as $user) { + + if (is_callable('mb_substr')) + $letter = strtoupper(mb_substr($user->name,0,1)); + else + $letter = strtoupper(substr($user->name,0,1)); + if (!substr_count($chararray,$letter)) { + $letter = "*"; + } + if (!isset($users[$letter])) { + $users[$letter] = array(); + } + $users[$letter][$user->name] = $user; + + } + + if (!$callback) { + +?> + +<div class="friends_picker"> + +<?php + + if (isset($vars['content'])) echo $vars['content']; + + +?> + + <div id="friends_picker_placeholder<?php echo $friendspicker; ?>"> + +<?php + + } + + if (!isset($vars['replacement'])) { + + if ($formtarget) { +?> + + <script language="text/javascript"> + $(function() { // onload...do + $('#collectionMembersForm<?php echo $friendspicker; ?>').submit(function() { + var inputs = []; + $(':input', this).each(function() { + if (this.type != 'checkbox' || (this.type == 'checkbox' && this.checked != false)) { + inputs.push(this.name + '=' + escape(this.value)); + } + }); + jQuery.ajax({ + type: "POST", + data: inputs.join('&'), + url: this.action, + success: function(){ + $('a.collectionmembers<?php echo $friendspicker; ?>').click(); + } + + }); + return false; + }) + }) + + </script> + +<?php + + } + + echo elgg_view('notifications/subscriptions/jsfuncs',$vars); + +?> + + + <div class="friendsPicker_wrapper"> + <div id="friendsPicker<?php echo $friendspicker; ?>"> + <div class="friendsPicker_container"> +<?php + + // Initialise letters + if (is_callable('mb_substr')) + $letter = mb_substr($chararray,0,1); + else + $letter = substr($chararray,0,1); + $letpos = 0; + $chararray .= '*'; + while (1 == 1) { +?> + <div class="panel" title="<?php echo $letter; ?>"> + <div class="wrapper"> + <h3><?php echo $letter; ?></h3> + +<?php + + if (isset($users[$letter])) { + ksort($users[$letter]); +?> + +<table id="notificationstable" cellspacing="0" cellpadding="4" border="1" width="100%"> + <tr> + <td> </td> +<?php + $i = 0; + foreach($NOTIFICATION_HANDLERS as $method => $foo) { + if ($i > 0) + echo "<td class=\"spacercolumn\"> </td>"; +?> + <td class="<?php echo $method; ?>togglefield"><?php echo elgg_echo('notification:method:'.$method); ?></td> +<?php + $i++; + } +?> + <td> </td> + </tr> + +<?php + + if (is_array($users[$letter]) && sizeof($users[$letter]) > 0) + foreach($users[$letter] as $friend) { + if ($friend instanceof ElggUser ) { + + if (!in_array($letter,$activeletters)) + $activeletters[] = $letter; + + $method = array(); + $fields = ''; + $i = 0; + + foreach($NOTIFICATION_HANDLERS as $method => $foo) { + if (in_array($friend->guid,$subs[$method])) { + $checked[$method] = 'checked="checked"'; + } else { + $checked[$method] = ''; + } + if ($i > 0) $fields .= "<td class=\"spacercolumn\"> </td>"; + $fields .= <<< END + <td class="{$method}togglefield"> + <a border="0" id="{$method}{$friend->guid}" class="{$method}toggleOff" onclick="adjust{$method}_alt('{$method}{$friend->guid}');"> + <input type="checkbox" name="{$method}subscriptions[]" id="{$method}checkbox" onclick="adjust{$method}('{$method}{$friend->guid}');" value="{$friend->guid}" {$checked[$method]} /></a></td> +END; + $i++; + } +?> + + <tr> + <td class="namefield"><a href="<?php echo $friend->getURL(); ?>"> +<?php + echo elgg_view("profile/icon",array('entity' => $friend, 'size' => 'tiny', 'override' => true)); +?> + </a><p class="namefieldlink"><a href="<?php echo $friend->getURL(); ?>"><?php echo $friend->name ?></p></td> + +<?php echo $fields; ?> + + <td> </td> + </tr> + + +<?php + } + } + +?> +</table> + +<?php + } + +?> + + </div> + </div> +<?php + $letpos++; + if ($letpos == strlen($chararray)) break; + if (is_callable('mb_substr')) + $letter = mb_substr($chararray,$letpos,1); + else + $letter = substr($chararray,$letpos,1); + } + +?> + </div> + </div> + </div> + +<?php + } else { + echo $vars['replacement']; + } + if (!$callback) { + +?> + + </div> +</div> + + +<?php + + } + +?> +<?php + if (!isset($vars['replacement'])) { +?> + +<script type="text/javascript"> + // initialise picker + $("div#friendsPicker<?php echo $friendspicker; ?>").friendsPicker(<?php echo $friendspicker; ?>); +</script> +<script> + $(document).ready(function () { + // manually add class to corresponding tab for panels that have content +<?php + if (sizeof($activeletters) > 0) + $chararray = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + foreach($activeletters as $letter) { + $tab = strpos($chararray, $letter) + 1; +?> + $("div#friendsPickerNavigation<?php echo $friendspicker; ?> li.tab<?php echo $tab; ?> a").addClass("tabHasContent"); +<?php + } + +?> + }); +</script> + +<?php + + } + +?> + + + +<div class="clearfloat"></div> +<div class="friendspicker_savebuttons"> + <input type="submit" value="<?php echo elgg_echo('save'); ?>" /> +<br /></div> + + +
\ No newline at end of file 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..cf7f44906 --- /dev/null +++ b/mod/notifications/views/default/notifications/subscriptions/groupsform.php @@ -0,0 +1,99 @@ +<?php + + global $NOTIFICATION_HANDLERS; + foreach($NOTIFICATION_HANDLERS as $method => $foo) { + $subsbig[$method] = elgg_get_entities_from_relationship(array('relationship' => 'notify' . $method, 'relationship_guid' => $vars['user']->guid, 'types' => 'group', 'limit' => 99999)); + $tmparray = array(); + if ($subsbig[$method]) { + foreach($subsbig[$method] as $tmpent) { + $tmparray[] = $tmpent->guid; + } + } + $subsbig[$method] = $tmparray; + } + +?> +<?php echo elgg_view_title(elgg_echo('notifications:subscriptions:changesettings:groups')); ?> +<div class="contentWrapper"> + <div class="notification_methods"> + + <?php + echo elgg_view('notifications/subscriptions/jsfuncs',$vars); + ?> + + <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> </td> +<?php + global $NOTIFICATION_HANDLERS; + $i = 0; + foreach($NOTIFICATION_HANDLERS as $method => $foo) { + if ($i > 0) + echo "<td class=\"spacercolumn\"> </td>"; +?> + <td class="<?php echo $method; ?>togglefield"><?php echo elgg_echo('notification:method:'.$method); ?></td> +<?php + $i++; + } +?> + <td> </td> + </tr> +<?php + foreach($vars['groups'] as $group) { + + $fields = ''; + $i = 0; + + foreach($NOTIFICATION_HANDLERS as $method => $foo) { + if (in_array($group->guid,$subsbig[$method])) { + $checked[$method] = 'checked="checked"'; + } else { + $checked[$method] = ''; + } + if ($i > 0) $fields .= "<td class=\"spacercolumn\"> </td>"; + $fields .= <<< END + <td class="{$method}togglefield"> + <a 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> </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..da1598dae --- /dev/null +++ b/mod/notifications/views/default/notifications/subscriptions/jsfuncs.php @@ -0,0 +1,54 @@ +<?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 + } +?> + +}); + + clickflag = 0; + +<?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 diff --git a/mod/notifications/views/default/notifications/subscriptions/personal.php b/mod/notifications/views/default/notifications/subscriptions/personal.php new file mode 100644 index 000000000..6779fde73 --- /dev/null +++ b/mod/notifications/views/default/notifications/subscriptions/personal.php @@ -0,0 +1,63 @@ +<?php + + global $NOTIFICATION_HANDLERS; + +?> +<div class="notification_personal"> +<div class="notification_methods"> + <h3> + <?php echo elgg_echo('notifications:subscriptions:personal:title'); ?> + </h3> +</div> +<table id="notificationstable" cellspacing="0" cellpadding="4" border="1" width="100%"> + <tr> + <td> </td> +<?php + $i = 0; + foreach($NOTIFICATION_HANDLERS as $method => $foo) { + if ($i > 0) + echo "<td class=\"spacercolumn\"> </td>"; +?> + <td class="<?php echo $method; ?>togglefield"><?php echo elgg_echo('notification:method:'.$method); ?></td> +<?php + $i++; + } +?> + <td> </td> + </tr> + <tr> + <td class="namefield"> + <p> + <?php echo elgg_echo('notifications:subscriptions:personal:description') ?> + </p> + + </td> + +<?php + + $fields = ''; + $i = 0; + foreach($NOTIFICATION_HANDLERS as $method => $foo) { + if ($notification_settings = get_user_notification_settings($vars['user']->guid)) { + if ($notification_settings->$method) { + $personalchecked[$method] = 'checked="checked"'; + } else { + $personalchecked[$method] = ''; + } + } + if ($i > 0) $fields .= "<td class=\"spacercolumn\"> </td>"; + $fields .= <<< END + <td class="{$method}togglefield"> + <a border="0" id="{$method}personal" class="{$method}toggleOff" onclick="adjust{$method}_alt('{$method}personal');"> + <input type="checkbox" name="{$method}personal" id="{$method}checkbox" onclick="adjust{$method}('{$method}personal');" value="1" {$personalchecked[$method]} /></a></td> +END; + $i++; + } + echo $fields; + +?> + + <td> </td> + </tr> +</table> +</div>
\ No newline at end of file |