~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to loggerhead/static/javascript/custom.js

  • Committer: j.c.sackett
  • Date: 2011-10-25 15:58:27 UTC
  • mto: This revision was merged to the branch mainline in revision 459.
  • Revision ID: jonathan.sackett@canonical.com-20111025155827-m629zg4mx6v2ecpn
CSS and javascript fixes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
Y = YUI().use("node", "io-base", "anim", "loggerhead.privacy");
 
1
Y = YUI().use("base", "node", "io-base", "anim");
2
2
 
3
3
var global_timeout_id = null;
4
4
var global_search_request = null;
280
280
  }
281
281
};
282
282
 
283
 
 
284
 
 
285
 
YUI.add('lp.app.privacy', function(Y) {
286
 
 
287
 
var namespace = Y.namespace('lp.app.privacy');
288
 
 
289
283
var notification_node = null;
290
284
/*
291
285
 * Display privacy notifications
292
286
 *
293
287
 * This should be called after the page has loaded e.g. on 'domready'.
294
288
 */
295
 
 
296
289
function setup_privacy_notification(config) {
297
290
    if (notification_node !== null) {
298
291
        return;
299
292
    }
300
293
    var notification_text = 'The information on this page is private';
301
294
    var hidden = true;
302
 
    var target_id = "maincontent";
 
295
    var target_id = "loggerheadCont";
303
296
    if (config !== undefined) {
304
297
        if (config.notification_text !== undefined) {
305
298
            notification_text = config.notification_text;
312
305
        }
313
306
    }
314
307
    var id_selector = "#" + target_id;
315
 
    var main = Y.one(id_selector);
 
308
    var main = Y.get(id_selector);
316
309
    notification_node = Y.Node.create('<div></div>')
317
310
        .addClass('global-notification');
318
311
    if (hidden) {
325
318
 
326
319
    main.appendChild(notification_node);
327
320
    notification_node.appendChild(notification_span);
328
 
}
329
 
namespace.setup_privacy_notification = setup_privacy_notification;
330
 
 
331
 
/**
332
 
 * For unit tests - we need to reset the notification setup.
333
 
 */
334
 
namespace._reset_privacy_notification = function () {
335
 
    notification_node = null;
336
321
};
337
322
 
338
323
function display_privacy_notification() {
340
325
     this is because we have no way to use feature flags in
341
326
     css directly. This should be removed if the feature
342
327
     is accepted. */
343
 
    var body = Y.one('body');
 
328
    var body = Y.get('body');
344
329
    body.addClass('feature-flag-bugs-private-notification-enabled');
345
330
    /* Set the visible flag so that the content moves down. */
346
331
    body.addClass('global-notification-visible');
347
332
 
348
333
    setup_privacy_notification();
349
 
    var global_notification = Y.one('.global-notification');
 
334
    var global_notification = Y.get('.global-notification');
350
335
    if (global_notification.hasClass('hidden')) {
351
336
        global_notification.addClass('transparent');
352
337
        global_notification.removeClass('hidden');
362
347
            duration: 0.2,
363
348
            easing: Y.Easing.easeOut
364
349
        });
365
 
        var login_space = new Y.Anim({
366
 
            node: '.login-logout',
 
350
        var black_link_space = new Y.Anim({
 
351
            node: '.black-link',
367
352
            to: {'top': '45px'},
368
353
            duration: 0.2,
369
354
            easing: Y.Easing.easeOut
371
356
 
372
357
        fade_in.run();
373
358
        body_space.run();
374
 
        login_space.run();
 
359
        black_link_space.run();
375
360
    }
376
 
}
377
 
namespace.display_privacy_notification = display_privacy_notification;
 
361
};
378
362
 
379
363
/*
380
364
 * Hide privacy notifications
383
367
 */
384
368
function hide_privacy_notification() {
385
369
    setup_privacy_notification();
386
 
    if (!Y.one('.global-notification').hasClass('hidden')) {
 
370
    if (!Y.get('.global-notification').hasClass('hidden')) {
387
371
        var fade_out = new Y.Anim({
388
372
            node: '.global-notification',
389
373
            to: {opacity: 0},
395
379
            duration: 0.2,
396
380
            easing: Y.Easing.easeOut
397
381
        });
398
 
        var login_space = new Y.Anim({
399
 
            node: '.login-logout',
 
382
        var black_link_space = new Y.Anim({
 
383
            node: '.black-link',
400
384
            to: {'top': '6px'},
401
385
            duration: 0.2,
402
386
            easing: Y.Easing.easeOut
405
389
            fade_out.get('node').addClass('hidden');
406
390
        });
407
391
        body_space.on('end', function() {
408
 
            Y.one('body').removeClass('global-notification-visible');
 
392
            Y.get('body').removeClass('global-notification-visible');
409
393
        });
410
394
 
411
395
        fade_out.run();
412
396
        body_space.run();
413
 
        login_space.run();
 
397
        black_link_space.run();
414
398
 
415
 
        var privacy_portlet =  Y.one('.portlet.private');
 
399
        var privacy_portlet =  Y.get('.portlet.private');
416
400
        if (privacy_portlet !== null) {
417
401
            var portlet_colour = new Y.Anim({
418
402
                node: privacy_portlet,
425
409
            portlet_colour.run();
426
410
        }
427
411
    }
428
 
}
429
 
namespace.hide_privacy_notification = hide_privacy_notification;
430
 
 
431
 
 
432
 
}, "0.1", {"requires": ["base", "node", "anim"]});
433
 
 
 
412
};
 
413
 
 
414
Y.on('domready', function() {
 
415
    if (Y.get(document.body).hasClass('private')) {
 
416
        setup_privacy_notification();
 
417
        display_privacy_notification();
 
418
    }
 
419
});