~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

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

  • Committer: John Arbash Meinel
  • Date: 2011-03-16 12:21:36 UTC
  • mfrom: (411.3.3 simple_mainline)
  • Revision ID: john@arbash-meinel.com-20110316122136-930ttoriqgbw2cy3
Include simple_mainline.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
Y = YUI().use("base", "node", "io-base", "anim");
 
1
Y = YUI().use("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
 
var notification_node = null;
284
 
/*
285
 
 * Display privacy notifications
286
 
 *
287
 
 * This should be called after the page has loaded e.g. on 'domready'.
288
 
 */
289
 
function setup_privacy_notification(config) {
290
 
    if (notification_node !== null) {
291
 
        return;
292
 
    }
293
 
    var notification_text = 'The information on this page is private';
294
 
    var hidden = true;
295
 
    var target_id = "loggerheadCont";
296
 
    if (config !== undefined) {
297
 
        if (config.notification_text !== undefined) {
298
 
            notification_text = config.notification_text;
299
 
        }
300
 
        if (config.hidden !== undefined) {
301
 
            hidden = config.hidden;
302
 
        }
303
 
        if (config.target_id !== undefined) {
304
 
            target_id = config.target_id;
305
 
        }
306
 
    }
307
 
    var id_selector = "#" + target_id;
308
 
    var main = Y.get(id_selector);
309
 
    notification_node = Y.Node.create('<div></div>')
310
 
        .addClass('global-notification');
311
 
    if (hidden) {
312
 
        notification_node.addClass('hidden');
313
 
    }
314
 
    var notification_span = Y.Node.create('<span></span>')
315
 
        .addClass('sprite')
316
 
        .addClass('notification-private');
317
 
    notification_node.set('innerHTML', notification_text);
318
 
    main.appendChild(notification_node);
319
 
    notification_node.appendChild(notification_span);
320
 
};
321
 
 
322
 
function display_privacy_notification() {
323
 
    /* Set a temporary class on the body for the feature flag,
324
 
     this is because we have no way to use feature flags in
325
 
     css directly. This should be removed if the feature
326
 
     is accepted. */
327
 
    var body = Y.get('body');
328
 
    body.addClass('feature-flag-bugs-private-notification-enabled');
329
 
    // Set the visible flag so that the content moves down.
330
 
    body.addClass('global-notification-visible');
331
 
 
332
 
    setup_privacy_notification();
333
 
    var global_notification = Y.get('.global-notification');
334
 
    if (global_notification.hasClass('hidden')) {
335
 
        global_notification.addClass('transparent');
336
 
        global_notification.removeClass('hidden');
337
 
 
338
 
        var fade_in = new Y.Anim({
339
 
            node: global_notification,
340
 
            to: {opacity: 1},
341
 
            duration: 0.3
342
 
        });
343
 
        var body_space = new Y.Anim({
344
 
            node: 'body',
345
 
            to: {'paddingTop': '40px'},
346
 
            duration: 0.2,
347
 
            easing: Y.Easing.easeOut
348
 
        });
349
 
        var black_link_space = new Y.Anim({
350
 
            node: '.black-link',
351
 
            to: {'top': '45px'},
352
 
            duration: 0.2,
353
 
            easing: Y.Easing.easeOut
354
 
        });
355
 
 
356
 
        fade_in.run();
357
 
        body_space.run();
358
 
        black_link_space.run();
359
 
    }
360
 
};
361
 
 
362
 
Y.on('domready', function() {
363
 
    var body = Y.get('body');
364
 
    if (body.hasClass('private')) {
365
 
        setup_privacy_notification();
366
 
        display_privacy_notification();
367
 
    }
368
 
});