~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/app/javascript/beta-notification.js

  • Committer: Launchpad Patch Queue Manager
  • Date: 2011-11-18 21:09:29 UTC
  • mfrom: (14296.1.11 view-flags)
  • Revision ID: launchpad@pqm.canonical.com-20111118210929-4e45u2jlf0pt16ru
[r=allenap][bug=891714] Provide access to feature flags in JavaScript.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 * This should be called after the page has loaded e.g. on 'domready'.
19
19
 */
20
20
function display_beta_notification() {
21
 
    if (LP.cache.beta_features.length === 0) {
 
21
    var notifications = Mustache.to_html([
 
22
        '{{#features}}{{#is_beta}}',
 
23
        '<span class="beta-feature"> {{title}}',
 
24
        '{{#url}}',
 
25
        ' (<a href="{{url}}" class="info-link">read more</a>)',
 
26
        '{{/url}}',
 
27
        '</span>',
 
28
        '{{/is_beta}}{{/features}}'].join(''),
 
29
        {features: Y.Object.values(LP.cache.related_features)});
 
30
    if (notifications.length === 0) {
22
31
        return;
23
32
    }
24
 
 
25
 
    var beta_features = LP.cache.beta_features;
26
33
    var body = Y.one('body');
27
34
    body.addClass('global-notification-visible');
28
35
    var main = Y.one('#maincontent');
37
44
        '<span class="notification-close sprite" /></a>');
38
45
    beta_notification_node.appendChild(close_box);
39
46
    beta_notification_node.append('Some parts of this page are in beta: ');
40
 
    var index;
41
 
    for (index = 0; index < beta_features.length; index++) {
42
 
        var feature_name = beta_features[index][4];
43
 
        var info_link = beta_features[index][5];
44
 
        if (info_link.length > 0) {
45
 
            info_link =
46
 
                ' (<a href="' + info_link + '" class="info-link">' +
47
 
                'read more</a>)';
48
 
        }
49
 
        beta_notification_node.appendChild(Y.Node.create(
50
 
            '<span class="beta-feature"> ' + feature_name + info_link +
51
 
            '</span>'));
52
 
    }
 
47
    beta_notification_node.append(notifications);
53
48
    close_box.on('click', function(e) {
54
49
        e.halt();
55
50
        var fade_out = new Y.Anim({