aboutsummaryrefslogtreecommitdiff
path: root/views
diff options
context:
space:
mode:
authorSteve Clay <steve@mrclay.org>2013-06-08 23:31:37 -0400
committerSteve Clay <steve@mrclay.org>2013-06-08 23:31:37 -0400
commit39fa5af1a79f444ec31eb63d0baf299fc8bc7b7a (patch)
treef89daf52b0ba9db54207e25b5fc1820dc7341913 /views
parent42726251455e87b5ee4d368c0e743057506ad60d (diff)
downloadelgg-39fa5af1a79f444ec31eb63d0baf299fc8bc7b7a.tar.gz
elgg-39fa5af1a79f444ec31eb63d0baf299fc8bc7b7a.tar.bz2
If JS enabled, walled garden registration reload will not flicker
Diffstat (limited to 'views')
-rw-r--r--views/default/core/walled_garden/login.php10
-rw-r--r--views/default/js/walled_garden.php35
-rw-r--r--views/default/page/walled_garden.php15
3 files changed, 41 insertions, 19 deletions
diff --git a/views/default/core/walled_garden/login.php b/views/default/core/walled_garden/login.php
index 54af90f67..42b79607d 100644
--- a/views/default/core/walled_garden/login.php
+++ b/views/default/core/walled_garden/login.php
@@ -29,13 +29,3 @@ echo <<<HTML
</div>
</div>
HTML;
-
-if (elgg_is_sticky_form('register')) {
-?>
-<script type="text/javascript">
- elgg.register_hook_handler('init', 'system', function(){
- $('.registration_link').trigger('click');
- });
-</script>
-<?php
-}
diff --git a/views/default/js/walled_garden.php b/views/default/js/walled_garden.php
index b15cf880a..09a478e93 100644
--- a/views/default/js/walled_garden.php
+++ b/views/default/js/walled_garden.php
@@ -10,7 +10,7 @@ $cancel_button = elgg_view('input/button', array(
'value' => elgg_echo('cancel'),
'class' => 'elgg-button-cancel mlm',
));
-$cancel_button = trim($cancel_button);
+$cancel_button = json_encode($cancel_button);
if (0) { ?><script><?php }
?>
@@ -23,10 +23,11 @@ elgg.walled_garden.init = function () {
$('.registration_link').click(elgg.walled_garden.load('register'));
$('input.elgg-button-cancel').live('click', function(event) {
- if ($('.elgg-walledgarden-single').is(':visible')) {
+ var $wgs = $('.elgg-walledgarden-single');
+ if ($wgs.is(':visible')) {
$('.elgg-walledgarden-double').fadeToggle();
- $('.elgg-walledgarden-single').fadeToggle();
- $('.elgg-walledgarden-single').remove();
+ $wgs.fadeToggle();
+ $wgs.remove();
}
event.preventDefault();
});
@@ -45,10 +46,28 @@ elgg.walled_garden.load = function(view) {
//@todo display some visual element that indicates that loading of content is running
elgg.get('walled_garden/' + view, {
'success' : function(data) {
- $('.elgg-body-walledgarden').append(data);
- $(id).find('input.elgg-button-submit').after('<?php echo $cancel_button; ?>');
- $('#elgg-walledgarden-login').fadeToggle();
- $(id).fadeToggle();
+ var $wg = $('.elgg-body-walledgarden');
+ $wg.append(data);
+ $(id).find('input.elgg-button-submit').after(<?php echo $cancel_button; ?>);
+
+ if (view == 'register' && $wg.hasClass('hidden')) {
+ // this was a failed register, display the register form ASAP
+ $('#elgg-walledgarden-login').toggle();
+ $(id).toggle();
+ $wg.removeClass('hidden');
+ } else {
+ $('#elgg-walledgarden-login').fadeToggle();
+ $(id).fadeToggle();
+ }
+
+ if (view == 'register') {
+ $('.elgg-form-register').submit(function () {
+ // set short cookie indicating JS support
+ var date = new Date();
+ date.setTime(date.getTime() + (60 * 1000));
+ elgg.session.cookie('elgg_js_support', '1', { expires: date });
+ });
+ }
}
});
event.preventDefault();
diff --git a/views/default/page/walled_garden.php b/views/default/page/walled_garden.php
index ff8e317c7..87a79a690 100644
--- a/views/default/page/walled_garden.php
+++ b/views/default/page/walled_garden.php
@@ -5,6 +5,12 @@
* Used for the walled garden index page
*/
+$is_sticky_register = elgg_is_sticky_form('register');
+$wg_body_class = 'elgg-body-walledgarden';
+if ($is_sticky_register && !empty($_COOKIE['elgg_js_support'])) {
+ $wg_body_class .= ' hidden';
+}
+
// Set the content type
header("Content-type: text/html; charset=UTF-8");
?>
@@ -18,10 +24,17 @@ header("Content-type: text/html; charset=UTF-8");
<div class="elgg-page-messages">
<?php echo elgg_view('page/elements/messages', array('object' => $vars['sysmessages'])); ?>
</div>
- <div class="elgg-body-walledgarden">
+ <div class="<?php echo $wg_body_class; ?>">
<?php echo $vars['body']; ?>
</div>
</div>
+<?php if ($is_sticky_register): ?>
+<script type="text/javascript">
+elgg.register_hook_handler('init', 'system', function() {
+ $('.registration_link').trigger('click');
+});
+</script>
+<?php endif; ?>
<?php echo elgg_view('page/elements/foot'); ?>
</body>
</html> \ No newline at end of file