src/cm/media/js/lib/yui/yui_3.10.3/docs/overlay/overlay-io-plugin.html
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
<!DOCTYPE html>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
<html lang="en">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
<head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
    <meta charset="utf-8">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
    <title>Example: IO Plugin</title>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
    <link rel="stylesheet" href="../../build/cssgrids/cssgrids-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
    <link rel="stylesheet" href="../assets/css/main.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
    <link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
    <script src="../../build/yui/yui-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
</head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
<body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
<!--
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
<a href="https://github.com/yui/yui3"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
-->
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
<div id="doc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    <div id="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
        <h1><img src="http://yuilibrary.com/img/yui-logo.png"></h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
            <h1>Example: IO Plugin</h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
    <div class="yui3-g">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
        <div class="yui3-u-3-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
            <div id="main">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
                <div class="content"><style type="text/css" scoped>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
/* Overlay Look/Feel */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
.yui3-overlay-content {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
    background-color: #ECEFFB;  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
    border: 1px solid #9EA8C6;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
    border-radius: 3px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
    box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.25);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
.yui3-overlay-content .yui3-widget-hd {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
    background-color: #B6BFDA;  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
    color: #30418C;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
    font-size: 120%;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
    font-weight: bold;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
    padding: 0.2em 0.5em 0.3em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
    border-radius: 2px 2px 0 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
.yui3-overlay-content .yui3-widget-bd {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
    padding: 0.4em 0.6em 0.5em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
.yui3-overlay-content .yui3-widget-ft {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
    background-color:#DFE3F5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
    padding: 0.4em 0.6em 0.5em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
    border-radius: 0 0 2px 2px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
    .yui3-overlay .yui3-widget-bd .yui3-feed-data {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
        text-align:left;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
    .yui3-overlay .yui3-feed-selector .yui3-prompt {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
        font-weight:bold;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
    .yui3-widget-loading .yui3-widget-bd {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
        background: #fff url(../assets/overlay/img/ajax-loader.gif) no-repeat center center;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
        height:40px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
</style>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
<div class="intro">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
    <p>This example shows how you can use Widget's plugin infrastructure to add additional features to an existing widget.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
    <p>We create an IO plugin class for <code>Overlay</code> called <code>StdModIOPlugin</code>. The plugin adds IO capabilities to the Overlay, bound to one of its standard module sections <em>(header, body or footer)</em>.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
<div class="example">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
    <button type="button" id="show">Show Overlay</button>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
<button type="button" id="hide">Hide Overlay</button>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
<script type="text/javascript">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
YUI().use("overlay", "json", "gallery-widget-io", "escape", function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
    /* Setup local variable for Y.WidgetStdMod, since we use it multiple times */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
    var StdMod = Y.WidgetStdMod,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
        transportAvailable = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
    StdModIO = function(config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
        StdModIO.superclass.constructor.apply(this, arguments);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
    Y.extend(StdModIO, Y.Plugin.WidgetIO, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
        initializer: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
            Y.on('io:xdrReady', function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
                transportAvailable = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
            Y.io.transport({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
                id:'flash',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
                yid: Y.id,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
                src:'../../build/io-xdr/io.swf?stamp=' + (new Date()).getTime()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
        setHTML: function(content) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
            var overlay = this.get('host');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
            overlay.setStdModContent(this.get('section'), content);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
    }, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
        NAME: 'stdModIO',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
        NS: 'io',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
        ATTRS: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
            section: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
                value:StdMod.BODY,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
                validator: function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
                    return (!val || val == StdMod.BODY || val == StdMod.HEADER || val == StdMod.FOOTER);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
    /* The Pipes feed URIs to be used to dispatch io transactions */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
    var pipes = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
        // uri data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
        baseUri : 'http:/'+'/pipes.yahooapis.com/pipes/pipe.run?_id=6b7b2c6a32f5a12e7259c36967052387&_render=json&url=http:/'+'/',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
        feeds : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
            ynews : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
                title: 'Yahoo! US News',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
                uri: 'rss.news.yahoo.com/rss/us'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
            yui : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
                title: 'YUI Blog',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
                uri: 'feeds.yuiblog.com/YahooUserInterfaceBlog'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
            slashdot : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
                title: 'Slashdot',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
                uri: 'rss.slashdot.org/Slashdot/slashdot'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
            ajaxian: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
                title: 'Ajaxian',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
                uri: 'feeds.feedburner.com/ajaxian'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
            daringfireball: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
                title: 'Daring Fireball',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
                uri: 'daringfireball.net/index.xml'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
            wiredtech: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
                title: 'Wire: Tech Biz',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
                uri: 'www.wired.com/rss/techbiz.xml'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
            techcrunch: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
                title: 'TechCrunch',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
                uri: 'feedproxy.google.com/Techcrunch'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
        // The default formatter, responsible for converting the JSON responses recieved,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
        // into HTML, using JSON for the parsing step, and substitute for some basic templating functionality
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
        formatter : function (val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
            var formatted = "Error parsing feed data";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
            try {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
                var json = Y.JSON.parse(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
                if (json && json.count) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
                    var html = ['<ul class="yui3-feed-data">'];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
                    var linkTemplate = '<li><a href="{link}" target="_blank">{title}</a></li>';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
                    Y.each(json.value.items, function(v, i) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
                        if (i < 10) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
                            v.title = Y.Escape.html(v.title);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
                            v.link = Y.Escape.html(v.link);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
                            html.push(Y.Lang.sub(linkTemplate, v));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
                    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
                    html.push("</ul>");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
                    formatted = html.join("");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
                } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
                    formatted = "No Data Available";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
            } catch(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
                formatted = "Error parsing feed data";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
            return formatted;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
    /* Helper function, to generate the select dropdown markup from the pipes feed data */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
    function generateHeaderMarkup() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
        var optTemplate = '<option value="{id}">{title}</option>',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
            html = ['<select id="feedSelector" class="yui3-feed-selector"><option value="-1" class="yui3-prompt">Select a Feed...</option>'];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
        Y.Object.each(pipes.feeds, function(v, k, o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
            html.push(Y.Lang.sub(optTemplate, {id:k, title:v.title}));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
        html.push('</select>');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
        return html.join("");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
    /* Create a new Overlay instance, with content generated from script */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
    var overlay = new Y.Overlay({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
        width:"40em",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
        visible:false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
        align: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
            node:"#show",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
            points: [Y.WidgetPositionAlign.TL, Y.WidgetPositionAlign.BL]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
        zIndex:10,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
        headerContent: generateHeaderMarkup(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
        bodyContent: "Feed data will be displayed here"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
    overlay.render();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
    /*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
     * Add the Standard Module IO Plugin, and configure it to use flash, and a formatter specific
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
     * to the pipes response we're expecting from the uri request we'll send out.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
    overlay.plug(StdModIO, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
        uri : pipes.baseUri + pipes.feeds["ynews"].uri,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
        cfg:{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
            xdr: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
                use:'flash'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
        formatter: pipes.formatter,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
        loading: '<img class="yui3-loading" width="32px" height="32px" src="../assets/overlay/img/ajax-loader.gif">'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
    Y.on("change", function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
        var val = this.get("value");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
        if (transportAvailable) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
            if (val != -1) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
                overlay.io.set("uri", pipes.baseUri + pipes.feeds[val].uri);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
                overlay.io.refresh();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
            overlay.io.setHTML("Flash doesn't appear to be available. Cross-domain requests to pipes cannot be made without it.");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
    }, "#feedSelector");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
    Y.on("click", function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
        overlay.show();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
    }, "#show");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
    Y.on("click", function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
        overlay.hide();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
    }, "#hide");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
<h2>Creating an IO Plugin For Overlay</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
<h3>Setting Up The YUI Instance</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
<p>For this example, we'll start from the Widget IO plugin (gallery-io-plugin) created in the <a href="../widget/widget-plugin.html">widget plugin example</a>, pull in <code>overlay</code>, <code>json</code> utility module,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
and the <code>plugin</code> module. The Widget IO plugin will pull in the dependencies it needs, the main one being <code>io</code> to provide the XHR support.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
The <code>json</code> and modules provide the support we need to parse/transform JSON responses into HTML.The code to set up our sandbox instance is shown below:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
<pre class="code prettyprint">YUI({...}).use(&quot;overlay&quot;, &quot;json&quot;, &quot;gallery-io-plugin&quot;, &quot;escape&quot;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
    &#x2F;&#x2F; We&#x27;ll write our code here, after pulling in the default Overlay widget,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
    &#x2F;&#x2F; the IO utility, the Plugin.WidgetIO base class along with the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
    &#x2F;&#x2F; Substitute and JSON utilities
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
<p>Using the <code>overlay</code> module will also pull down the default CSS required for overlay, on top of which we only need to add our required look/feel CSS for the example.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
<strong>Note:</strong> be sure to add the <code>yui3-skin-sam</code> classname to the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
page's <code>&lt;body&gt;</code> element or to a parent element of the widget in order to apply
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
the default CSS skin. See <a href="http://yuilibrary.com/yui/docs/tutorials/skins/">Understanding Skinning</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
<pre class="code prettyprint">&lt;body class=&quot;yui3-skin-sam&quot;&gt; &lt;!-- You need this skin class --&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
<h3>StdModIO Class Structure</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
<p>The <code>StdModIO</code> class will extend the <code>Plugin.WidgetIO</code> base class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
Since <code>WidgetIO</code> derives from <code>Pluing.Base</code> and hence <code>Base</code>, we follow the same
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
pattern we use for widgets and other utilities which extend Base to setup our new class.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
<p>Namely:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
    <li>Setting up the default attributes, using the <code>ATTRS</code> property</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
    <li>Calling the superclass constructor</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
    <li>Setting up the the <code>NAME</code> property</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
    <li>Providing prototype implementations for anything we want executed during initialization and destruction using the <code>initializer</code> and <code>destructor</code> lifecycle methods</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
<p>Additionally, since this is a plugin, we provide a <code>NS</code> property for the class, which defines the property which will refer to the <code>StdModIO</code> instance on the host class (e.g. <code>overlay.io</code> will be an instance of <code>StdModIO</code>)</p>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
<pre class="code prettyprint">StdModIO = function(config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
    StdModIO.superclass.constructor.apply(this, arguments);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
Y.extend(StdModIO, Y.Plugin.WidgetIO, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
    initializer: function() {...}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
}, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
    NAME: &#x27;stdModIO&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
    NS: &#x27;io&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
    ATTRS: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
        section: {...}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
<h3>Plugin Attributes</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
<p>The <code>StdModIO</code> is a fairly simple plugin class. It provides
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
incremental functionality. It does not need to modify the behavior of any
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
methods on the host Overlay instance, or monitor any Overlay events
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
(unlike the <a href="overlay-anim-plugin.html">AnimPlugin</a> example).</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
<p>In terms of code, the attributes for the plugin are set up using the standard
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
<code>ATTRS</code> property.  For this example, we will add an attribute called
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
<code>section</code> that represents which part of the module (e.g. "header",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
"body", or "footer") will be updated with the returned content.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
<pre class="code prettyprint">&#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
 * The Standard Module section to which the io plugin instance is bound.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
 * Response data will be used to populate this section, after passing through
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
 * the configured formatter.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
 *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
ATTRS: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
    section: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
        value:StdMod.BODY,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
        validator: function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
            return (!val || val == StdMod.BODY
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
                         || val == StdMod.HEADER
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
                         || val == StdMod.FOOTER);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
};</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
<h3>Lifecycle Methods: initializer, destructor</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
<p>The base <code>WidgetIO</code> plugin implements the <code>initializer</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
and <code>destructor</code> lifecycle methods.  For the purposes of this example,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
we will extend the <code>StdModIO</code> plugin's <code>initializer</code> so that it
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
activates the Flash based <a href="../io/index.html#cross-domain-transactions">XDR</a> transport so that the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
plugin is able to dispatch both in-domain and cross-domain requests
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
(the transport used for any particular uri is controlled through the plugin's
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
<code>cfg</code> attribute).</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
<pre class="code prettyprint">initializer: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
    &#x2F;&#x2F; We setup a flag, so that we know if
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
    &#x2F;&#x2F; flash is available to make the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
    &#x2F;&#x2F; XDR request.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
    Y.on(&#x27;io:xdrReady&#x27;, function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
        transportAvailable = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
    Y.io.transport({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
        id:&#x27;flash&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
        yid: Y.id,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
        src:&#x27;..&#x2F;..&#x2F;build&#x2F;io-xdr&#x2F;io.swf?stamp=&#x27; + (new Date()).getTime()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
<h3>Using the Plugin</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
<p>All objects derived from <a href="http://yuilibrary.com/yui/docs/api/Base.html">Base</a> are <a href="http://yuilibrary.com/yui/docs/api/Plugin.Host.html">Plugin Hosts</a>. They provide <a href="http://yuilibrary.com/yui/docs/api/Plugin.Host.html#method_plug"><code>plug</code></a> and <a href="http://yuilibrary.com/yui/docs/api/Plugin.Host.html#method_unplug"><code>unplug</code></a> methods to allow users to add/remove plugins to/from existing instances.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
They also allow the user to specify the set of plugins to be applied to a new instance, along with their configurations, as part of the constructor arguments.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
<p>In this example, we'll create a new instance of an Overlay:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
<pre class="code prettyprint">&#x2F;* Create a new Overlay instance, with content generated from script *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
var overlay = new Y.Overlay({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
    width:&quot;40em&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
    visible:false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
    align: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
        node:&quot;#show&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
        points: [Y.WidgetPositionAlign.TL, Y.WidgetPositionAlign.BL]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
    zIndex:10,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
    headerContent: generateHeaderMarkup(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
    bodyContent: &quot;Feed data will be displayed here&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
<p>And then use the <code>plug</code> method to add the <code>StdModIO</code>, providing it with a configuration to use when sending out io transactions (The <a href="overlay-anim-plugin.html">Animation Plugin</a> example shows how you could do the same thing during construction):</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
<pre class="code prettyprint">&#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
 * Add the Standard Module IO Plugin, and configure it to use flash,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
 * and a formatter specific to the pipes response we&#x27;re expecting
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
 * from the uri request we&#x27;ll send out.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
 *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
overlay.plug(StdModIO, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
    uri : pipes.baseUri + pipes.feeds[&quot;ynews&quot;].uri,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
    cfg:{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
        xdr: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
            use:&#x27;flash&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
    formatter: pipes.formatter,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
    loading: &#x27;&lt;img class=&quot;yui3-loading&quot; width=&quot;32px&quot; height=&quot;32px&quot; src=&quot;..&#x2F;assets&#x2F;overlay&#x2F;img&#x2F;ajax-loader.gif&quot;&gt;&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
<p>For this example, the io plugin is configured to use the <code>flash</code> cross-domain transport, to send out requests to the pipes API for the feed the user selects from the dropdown.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
<h3>Getting Feed Data Through Pipes</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
<p>We setup an object (<code>pipes</code>) to hold the feed URIs, which can be looked up and passed to the plugin to dispatch requests for new data:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
<pre class="code prettyprint">&#x2F;* The Pipes feed URIs to be used to dispatch io transactions *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
var pipes = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
    baseUri : &#x27;http:&#x2F;&#x27;+&#x27;&#x2F;pipes.yahooapis.com&#x2F;pipes&#x2F;pipe.run? \
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
               _id=6b7b2c6a32f5a12e7259c36967052387&amp; \
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
               _render=json&amp;url=http:&#x2F;&#x27;+&#x27;&#x2F;&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
    feeds : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
        ynews : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
            title: &#x27;Yahoo! US News&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
            uri: &#x27;rss.news.yahoo.com&#x2F;rss&#x2F;us&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
        yui : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
            title: &#x27;YUI Blog&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
            uri: &#x27;feeds.yuiblog.com&#x2F;YahooUserInterfaceBlog&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
        slashdot : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
            title: &#x27;Slashdot&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
            uri: &#x27;rss.slashdot.org&#x2F;Slashdot&#x2F;slashdot&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
        ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
    ...</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
<p>The data structure also holds the default formatter (<code>pipes.formatter</code>) required to convert the JSON responses from the above URIs to HTML. The JSON utility is first used to parse the json response string. The resulting object is iterated around, using <code>Y.each()</code>, and <code>Y.Lang.sub()</code> is used to generate the list markup:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
<pre class="code prettyprint">...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
&#x2F;&#x2F; The default formatter, responsible for converting the JSON responses received,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
&#x2F;&#x2F; into HTML. JSON is used for the parsing step, and substitute for some basic
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
&#x2F;&#x2F; templating functionality
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
formatter : function (val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
    var formatted = &quot;Error parsing feed data&quot;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
    try {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
        var json = Y.JSON.parse(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
        if (json &amp;&amp; json.count) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
            var html = [&#x27;&lt;ul class=&quot;yui3-feed-data&quot;&gt;&#x27;];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
            var linkTemplate =
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
                &#x27;&lt;li&gt;&lt;a href=&quot;{link}&quot; target=&quot;_blank&quot;&gt;{title}&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;&#x27;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
            &#x2F;&#x2F; Loop around all the items returned, and feed
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
            &#x2F;&#x2F; them into the template above, using substitution.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
            Y.each(json.value.items, function(v, i) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
                if (i &lt; 10) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
                    html.push(Y.Lang.sub(linkTemplate, v));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
            html.push(&quot;&lt;&#x2F;ul&gt;&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
            formatted = html.join(&quot;&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
            formatted = &quot;No Data Available&quot;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
    } catch(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
        formatted = &quot;Error parsing feed data&quot;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
    return formatted;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
<p>The <code>change</code> handler for the select dropdown binds everything together, taking the currently selected feed, constructing the URI for the feed, setting it on the plugin, and sending out the request:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
<pre class="code prettyprint">&#x2F;* Handle select change *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
Y.on(&quot;change&quot;, function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
    var val = this.get(&quot;value&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
    if (transportAvailable) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
        if (val != -1) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
            overlay.io.set(&quot;uri&quot;, pipes.baseUri + pipes.feeds[val].uri);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
            overlay.io.refresh();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
    } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
        overlay.io.setHTML(&quot;Flash doesn&#x27;t appear to be available. Cross-domain requests to pipes cannot be made without it.&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
}, &quot;#feedSelector&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
<h2>Complete Example Source</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
<pre class="code prettyprint">&lt;button type=&quot;button&quot; id=&quot;show&quot;&gt;Show Overlay&lt;&#x2F;button&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
&lt;button type=&quot;button&quot; id=&quot;hide&quot;&gt;Hide Overlay&lt;&#x2F;button&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
&lt;script type=&quot;text&#x2F;javascript&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
YUI().use(&quot;overlay&quot;, &quot;json&quot;, &quot;gallery-widget-io&quot;, &quot;escape&quot;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
    &#x2F;* Setup local variable for Y.WidgetStdMod, since we use it multiple times *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
    var StdMod = Y.WidgetStdMod,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
        transportAvailable = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
    StdModIO = function(config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
        StdModIO.superclass.constructor.apply(this, arguments);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
    Y.extend(StdModIO, Y.Plugin.WidgetIO, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
        initializer: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
            Y.on(&#x27;io:xdrReady&#x27;, function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
                transportAvailable = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
            Y.io.transport({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
                id:&#x27;flash&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
                yid: Y.id,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
                src:&#x27;..&#x2F;..&#x2F;build&#x2F;io-xdr&#x2F;io.swf?stamp=&#x27; + (new Date()).getTime()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
        setHTML: function(content) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
            var overlay = this.get(&#x27;host&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   521
            overlay.setStdModContent(this.get(&#x27;section&#x27;), content);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
    }, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
        NAME: &#x27;stdModIO&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
        NS: &#x27;io&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   527
        ATTRS: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
            section: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
                value:StdMod.BODY,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
                validator: function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
                    return (!val || val == StdMod.BODY || val == StdMod.HEADER || val == StdMod.FOOTER);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   532
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   533
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   534
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   535
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
    &#x2F;* The Pipes feed URIs to be used to dispatch io transactions *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
    var pipes = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
        &#x2F;&#x2F; uri data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   541
        baseUri : &#x27;http:&#x2F;&#x27;+&#x27;&#x2F;pipes.yahooapis.com&#x2F;pipes&#x2F;pipe.run?_id=6b7b2c6a32f5a12e7259c36967052387&amp;_render=json&amp;url=http:&#x2F;&#x27;+&#x27;&#x2F;&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   542
        feeds : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   543
            ynews : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   544
                title: &#x27;Yahoo! US News&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
                uri: &#x27;rss.news.yahoo.com&#x2F;rss&#x2F;us&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   547
            yui : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   548
                title: &#x27;YUI Blog&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   549
                uri: &#x27;feeds.yuiblog.com&#x2F;YahooUserInterfaceBlog&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   550
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   551
            slashdot : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   552
                title: &#x27;Slashdot&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   553
                uri: &#x27;rss.slashdot.org&#x2F;Slashdot&#x2F;slashdot&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   554
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   555
            ajaxian: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   556
                title: &#x27;Ajaxian&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   557
                uri: &#x27;feeds.feedburner.com&#x2F;ajaxian&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   558
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   559
            daringfireball: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   560
                title: &#x27;Daring Fireball&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   561
                uri: &#x27;daringfireball.net&#x2F;index.xml&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   562
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   563
            wiredtech: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   564
                title: &#x27;Wire: Tech Biz&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   565
                uri: &#x27;www.wired.com&#x2F;rss&#x2F;techbiz.xml&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   566
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   567
            techcrunch: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   568
                title: &#x27;TechCrunch&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   569
                uri: &#x27;feedproxy.google.com&#x2F;Techcrunch&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   570
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   571
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   572
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   573
        &#x2F;&#x2F; The default formatter, responsible for converting the JSON responses recieved,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   574
        &#x2F;&#x2F; into HTML, using JSON for the parsing step, and substitute for some basic templating functionality
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   575
        formatter : function (val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   576
            var formatted = &quot;Error parsing feed data&quot;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   577
            try {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   578
                var json = Y.JSON.parse(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   579
                if (json &amp;&amp; json.count) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   580
                    var html = [&#x27;&lt;ul class=&quot;yui3-feed-data&quot;&gt;&#x27;];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   581
                    var linkTemplate = &#x27;&lt;li&gt;&lt;a href=&quot;{link}&quot; target=&quot;_blank&quot;&gt;{title}&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;&#x27;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   582
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   583
                    Y.each(json.value.items, function(v, i) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   584
                        if (i &lt; 10) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   585
                            v.title = Y.Escape.html(v.title);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   586
                            v.link = Y.Escape.html(v.link);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   587
                            html.push(Y.Lang.sub(linkTemplate, v));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   588
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   589
                    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   590
                    html.push(&quot;&lt;&#x2F;ul&gt;&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   591
                    formatted = html.join(&quot;&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   592
                } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   593
                    formatted = &quot;No Data Available&quot;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   594
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   595
            } catch(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   596
                formatted = &quot;Error parsing feed data&quot;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   597
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   598
            return formatted;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   599
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   600
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   601
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   602
    &#x2F;* Helper function, to generate the select dropdown markup from the pipes feed data *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   603
    function generateHeaderMarkup() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   604
        var optTemplate = &#x27;&lt;option value=&quot;{id}&quot;&gt;{title}&lt;&#x2F;option&gt;&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   605
            html = [&#x27;&lt;select id=&quot;feedSelector&quot; class=&quot;yui3-feed-selector&quot;&gt;&lt;option value=&quot;-1&quot; class=&quot;yui3-prompt&quot;&gt;Select a Feed...&lt;&#x2F;option&gt;&#x27;];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   606
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   607
        Y.Object.each(pipes.feeds, function(v, k, o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   608
            html.push(Y.Lang.sub(optTemplate, {id:k, title:v.title}));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   609
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   610
        html.push(&#x27;&lt;&#x2F;select&gt;&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   611
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   612
        return html.join(&quot;&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   613
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   614
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   615
    &#x2F;* Create a new Overlay instance, with content generated from script *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   616
    var overlay = new Y.Overlay({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   617
        width:&quot;40em&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   618
        visible:false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   619
        align: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   620
            node:&quot;#show&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   621
            points: [Y.WidgetPositionAlign.TL, Y.WidgetPositionAlign.BL]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   622
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   623
        zIndex:10,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   624
        headerContent: generateHeaderMarkup(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   625
        bodyContent: &quot;Feed data will be displayed here&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   626
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   627
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   628
    overlay.render();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   629
    &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   630
     * Add the Standard Module IO Plugin, and configure it to use flash, and a formatter specific
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   631
     * to the pipes response we&#x27;re expecting from the uri request we&#x27;ll send out.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   632
     *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   633
    overlay.plug(StdModIO, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   634
        uri : pipes.baseUri + pipes.feeds[&quot;ynews&quot;].uri,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   635
        cfg:{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   636
            xdr: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   637
                use:&#x27;flash&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   638
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   639
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   640
        formatter: pipes.formatter,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   641
        loading: &#x27;&lt;img class=&quot;yui3-loading&quot; width=&quot;32px&quot; height=&quot;32px&quot; src=&quot;..&#x2F;assets&#x2F;overlay&#x2F;img&#x2F;ajax-loader.gif&quot;&gt;&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   642
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   643
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   644
    Y.on(&quot;change&quot;, function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   645
        var val = this.get(&quot;value&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   646
        if (transportAvailable) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   647
            if (val != -1) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   648
                overlay.io.set(&quot;uri&quot;, pipes.baseUri + pipes.feeds[val].uri);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   649
                overlay.io.refresh();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   650
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   651
        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   652
            overlay.io.setHTML(&quot;Flash doesn&#x27;t appear to be available. Cross-domain requests to pipes cannot be made without it.&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   653
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   654
    }, &quot;#feedSelector&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   655
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   656
    Y.on(&quot;click&quot;, function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   657
        overlay.show();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   658
    }, &quot;#show&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   659
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   660
    Y.on(&quot;click&quot;, function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   661
        overlay.hide();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   662
    }, &quot;#hide&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   663
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   664
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   665
&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   666
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   667
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   668
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   669
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   670
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   671
        <div class="yui3-u-1-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   672
            <div class="sidebar">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   673
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   674
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   675
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   676
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   677
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   678
                            <h2 class="no-toc">Examples</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   679
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   680
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   681
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   682
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   683
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   684
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   685
                                        <li data-description="Shows how to instantiate a basic Overlay instance, and use the Overlay&#x27;s basic XY positioning support.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   686
                                            <a href="overlay-xy.html">Basic XY Positioning</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   687
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   688
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   689
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   690
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   691
                                        <li data-description="Shows how to create a simple tooltip incorporating the overlay shim feature.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   692
                                            <a href="overlay-tooltip.html">Simple Tooltip</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   693
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   694
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   695
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   696
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   697
                                        <li data-description="Shows how to use the Overlay&#x27;s XY alignment support, to align the Overlay relative to another element, or to the viewport.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   698
                                            <a href="overlay-align.html">Alignment Support</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   699
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   700
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   701
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   702
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   703
                                        <li data-description="Shows how to use the Overlay&#x27;s zindex and shim support when positioning Overlays above other elements on the page.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   704
                                            <a href="overlay-stack.html">Stack Support</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   705
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   706
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   707
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   708
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   709
                                        <li data-description="Shows how to modify content in the Overlay&#x27;s header, body and footer sections.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   710
                                            <a href="overlay-stdmod.html">Standard Module Support</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   711
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   712
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   713
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   714
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   715
                                        <li data-description="Shows how to use Overlay&#x27;s constrainment support, to limit the XY value which can be set for an Overlay.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   716
                                            <a href="overlay-constrain.html">Constrain Support</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   717
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   718
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   719
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   720
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   721
                                        <li data-description="Shows how to create a simple plugin to retrieve content for the Overlay using the io utility.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   722
                                            <a href="overlay-io-plugin.html">IO Plugin</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   723
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   724
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   725
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   726
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   727
                                        <li data-description="Shows how to create a simple plugin to animate the Overlay&#x27;s movement and visibility.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   728
                                            <a href="overlay-anim-plugin.html">Animation Plugin</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   729
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   730
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   731
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   732
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   733
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   734
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   735
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   736
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   737
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   738
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   739
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   740
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   741
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   742
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   743
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   744
                            <h2 class="no-toc">Examples That Use This Component</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   745
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   746
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   747
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   748
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   749
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   750
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   751
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   752
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   753
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   754
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   755
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   756
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   757
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   758
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   759
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   760
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   761
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   762
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   763
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   764
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   765
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   766
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   767
                                        <li data-description="Creating an accessible menu button using the Focus Manager Node Plugin, Event&#x27;s delegation support and mouseenter event, along with the Overlay widget and Node&#x27;s support for the WAI-ARIA Roles and States.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   768
                                            <a href="../node-focusmanager/node-focusmanager-button.html">Accessible Menu Button</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   769
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   770
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   771
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   772
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   773
                                        <li data-description="Use StyleSheet to adjust the CSS rules applying a page theme from user input">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   774
                                            <a href="../stylesheet/stylesheet-theme.html">Adjusting a Page Theme on the Fly</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   775
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   776
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   777
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   778
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   779
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   780
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   781
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   782
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   783
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   784
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   785
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   786
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   787
<script src="../assets/vendor/prettify/prettify-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   788
<script>prettyPrint();</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   789
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   790
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   791
YUI.Env.Tests = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   792
    examples: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   793
    project: '../assets',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   794
    assets: '../assets/overlay',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   795
    name: 'overlay-io-plugin',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   796
    title: 'IO Plugin',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   797
    newWindow: '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   798
    auto:  false 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   799
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   800
YUI.Env.Tests.examples.push('overlay-xy');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   801
YUI.Env.Tests.examples.push('overlay-tooltip');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   802
YUI.Env.Tests.examples.push('overlay-align');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   803
YUI.Env.Tests.examples.push('overlay-stack');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   804
YUI.Env.Tests.examples.push('overlay-stdmod');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   805
YUI.Env.Tests.examples.push('overlay-constrain');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   806
YUI.Env.Tests.examples.push('overlay-io-plugin');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   807
YUI.Env.Tests.examples.push('overlay-anim-plugin');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   808
YUI.Env.Tests.examples.push('node-focusmanager-button');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   809
YUI.Env.Tests.examples.push('stylesheet-theme');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   810
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   811
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   812
<script src="../assets/yui/test-runner.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   813
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   814
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   815
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   816
</body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   817
</html>