src/cm/media/js/lib/yui/yui3.0.0/examples/overlay/overlay-io-plugin_clean.html
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 0 40c8f766c9b8
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
<html>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
<head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
<meta http-equiv="content-type" content="text/html; charset=utf-8">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
<title>IO Plugin</title>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
<style type="text/css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
/*margin and padding on body element
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
  can introduce errors in determining
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
  element position and are not recommended;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
  we turn them off as a foundation for YUI
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
  CSS treatments. */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
body {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
	margin:0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
	padding:0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
</style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
<link type="text/css" rel="stylesheet" href="../../build/cssfonts/fonts-min.css" />
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
<script type="text/javascript" src="../../build/yui/yui-min.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
<!--begin custom header content for this example-->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
<style type="text/css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
    .yui-overlay-content {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
        padding:5px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
        background-color:#ccc;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
        border:1px solid #000;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
    .yui-overlay .yui-widget-hd, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
    .yui-overlay .yui-widget-bd, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
    .yui-overlay .yui-widget-ft {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
        background-color:#eee;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
        padding:2px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
        border:1px solid #999;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
        text-align:left;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
    .yui-overlay .yui-widget-bd {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
        background-color:#fff;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
        text-align:center;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
        vertical-align:middle;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
    .yui-overlay .yui-widget-bd .yui-feed-data {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
        text-align:left;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
    .yui-overlay .yui-feed-selector .yui-prompt {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
        font-weight:bold;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
</style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
<!--end custom header content for this example-->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
</head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
<body class=" yui-skin-sam">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
<h1>IO Plugin</h1>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
<div class="exampleIntro">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
	<p>This example shows how you can use Widget's plugin infrastructure to add additional features to an existing widget.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
<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>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
			
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
<button type="button" id="show">Show Overlay</button>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
<button type="button" id="hide">Hide Overlay</button>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
<script type="text/javascript">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
YUI({base:"../../build/", timeout: 10000}).use("overlay", "substitute", "io", "json", "plugin", function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
    /* Setup local variable for Y.WidgetStdMod, since we use it multiple times */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
    var StdMod = Y.WidgetStdMod;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
    /* Standard Module IO Plugin Constructor */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
    function StdModIOPlugin(config) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
        StdModIOPlugin.superclass.constructor.apply(this, arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
    /* 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
     * The namespace for the plugin. This will be the property on the widget, which will 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
     * reference the plugin instance, when it's plugged in
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
    StdModIOPlugin.NS = "io";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
     * The NAME of the StdModIOPlugin class. Used to prefix events generated
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
     * by the plugin class.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
    StdModIOPlugin.NAME = "stdModIOPlugin";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
     * The default set of attributes for the StdModIOPlugin class.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
    StdModIOPlugin.ATTRS = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
         * The uri to use for the io request
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
        uri : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
            value:null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
         * The io configuration object, to pass to io when intiating a transaction
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
        cfg : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
            value:null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
         * The default formatter to use when formatting response data. The default
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
         * implementation simply passes back the response data passed in. 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
        formatter : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
            valueFn: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
                return this._defFormatter;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
         * The Standard Module section to which the io plugin instance is bound.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
         * Response data will be used to populate this section, after passing through
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
         * the configured formatter.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
        section: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
            value:StdMod.BODY,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
            validator: function(val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
                return (!val || val == StdMod.BODY || val == StdMod.HEADER || val == StdMod.FOOTER);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
         * The default loading indicator to use, when an io transaction is in progress.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
        loading: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
            value: '<img class="yui-loading" width="32px" height="32px" src="assets/img/ajax-loader.gif">'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
    /* Extend the base plugin class */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
    Y.extend(StdModIOPlugin, Y.Plugin.Base, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
         * Initialization code. Called when the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
         * plugin is instantiated (whenever it's 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
         * plugged into the host)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
        initializer: function(config) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
            Y.io.transport({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
                id:'flash',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
                yid: Y.id,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
                src:'../../build/io/io.swf?stamp=' + (new Date()).getTime()
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
            });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
         * Destruction code. Terminates the activeIO transaction if it exists
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   166
        destructor : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
            if (this._activeIO) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
                Y.io.abort(this._activeIO);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
                this._activeIO = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
         * IO Plugin specific method, use to initiate a new io request using the current
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
         * io configuration settings.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
        refresh : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
            section = this.get("section");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
            if (section && !this._activeIO) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
                var uri = this.get("uri");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
                if (uri) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   184
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   185
                    cfg = this.get("cfg") || {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
                    cfg.on = cfg.on || {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
                    cfg.on.start = cfg.on.start || Y.bind(this._defStartHandler, this);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
                    cfg.on.complete = cfg.on.complete || Y.bind(this._defCompleteHandler, this);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
                    cfg.on.success = cfg.on.success || Y.bind(this._defSuccessHandler, this);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
                    cfg.on.failure = cfg.on.failure || Y.bind(this._defFailureHandler, this);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
                    cfg.method = cfg.method;  // io defaults to "GET" if not defined
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   195
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
                    Y.io(uri, cfg);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   200
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   201
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   202
         * The default io transaction success handler
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   204
        _defSuccessHandler : function(id, o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   205
            var response = o.responseXML || o.responseText;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   206
            var section = this.get("section");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   207
            var formatter = this.get("formatter");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   208
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   209
            this.get("host").setStdModContent(section, formatter(response));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   210
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   211
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   212
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   213
         * The default io transaction failure handler
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   214
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   215
        _defFailureHandler : function(id, o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   216
            this.get("host").setStdModContent(this.get("section"), "Failed to retrieve content");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   218
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   219
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   220
         * The default io transaction start handler
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   222
        _defStartHandler : function(id, o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   223
            this._activeIO = o;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   224
            this.get("host").setStdModContent(this.get("section"), this.get("loading"));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   225
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   226
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   227
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   228
         * The default io transaction complete handler
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   229
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   230
        _defCompleteHandler : function(id, o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   231
            this._activeIO = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   232
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   233
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   234
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   235
         * The default response formatter
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   236
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   237
        _defFormatter : function(val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   238
            return val
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   239
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   241
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   242
    /* The Pipes feed URIs to be used to dispatch io transactions */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   243
    var pipes = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   244
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   245
        // uri data
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   246
        baseUri : 'http:/'+'/pipes.yahooapis.com/pipes/pipe.run?_id=6b7b2c6a32f5a12e7259c36967052387&_render=json&url=http:/'+'/',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   247
        feeds : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   248
            ynews : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   249
                title: 'Yahoo! US News',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   250
                uri: 'rss.news.yahoo.com/rss/us'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   251
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   252
            yui : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   253
                title: 'YUI Blog',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   254
                uri: 'feeds.yuiblog.com/YahooUserInterfaceBlog'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   255
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   256
            slashdot : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   257
                title: 'Slashdot',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   258
                uri: 'rss.slashdot.org/Slashdot/slashdot'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   259
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   260
            ajaxian: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   261
                title: 'Ajaxian',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   262
                uri: 'feeds.feedburner.com/ajaxian'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   263
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   264
            daringfireball: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   265
                title: 'Daring Fireball',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   266
                uri: 'daringfireball.net/index.xml'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   267
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   268
            wiredtech: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   269
                title: 'Wire: Tech Biz',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   270
                uri: 'www.wired.com/rss/techbiz.xml'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   271
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   272
            techcrunch: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   273
                title: 'TechCrunch',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   274
                uri: 'feedproxy.google.com/Techcrunch'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   275
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   276
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   277
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
        // The default formatter, responsible for converting the JSON responses recieved,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   279
        // into HTML, using JSON for the parsing step, and substitute for some basic templating functionality
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   280
        formatter : function (val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   281
            var formatted = "Error parsing feed data";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   282
            try {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   283
                var json = Y.JSON.parse(val);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   284
                if (json && json.count) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   285
                    var html = ['<ul class="yui-feed-data">'];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   286
                    var linkTemplate = '<li><a href="{link}" target="_blank">{title}</a></li>';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   287
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   288
                    Y.each(json.value.items, function(v, i) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   289
                        if (i < 10) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   290
                            html.push(Y.substitute(linkTemplate, v));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   291
                        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   292
                    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   293
                    html.push("</ul>");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   294
                    formatted = html.join("");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   295
                } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   296
                    formatted = "No Data Available";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   297
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   298
            } catch(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   299
                formatted = "Error parsing feed data";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   300
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   301
            return formatted;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   302
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   303
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   304
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   305
    /* Helper function, to generate the select dropdown markup from the pipes feed data */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   306
    function generateHeaderMarkup() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   307
        var optTemplate = '<option value="{id}">{title}</option>',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   308
            html = ['<select id="feedSelector" class="yui-feed-selector"><option value="-1" class="yui-prompt">Select a Feed...</option>'];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   309
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   310
        Y.Object.each(pipes.feeds, function(v, k, o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   311
            html.push(Y.substitute(optTemplate, {id:k, title:v.title}));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   312
        });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   313
        html.push('</select>');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   314
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   315
        return html.join("");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   316
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   317
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   318
    /* Create a new Overlay instance, with content generated from script */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   319
    var overlay = new Y.Overlay({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   320
        width:"40em",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   321
        visible:false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   322
        align: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   323
            node:"#show",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   324
            points: [Y.WidgetPositionExt.TL, Y.WidgetPositionExt.BL]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   325
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   326
        zIndex:10,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   327
        headerContent: generateHeaderMarkup(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   328
        bodyContent: "Feed data will be displayed here"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   329
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   330
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   331
    /* 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   332
     * Add the Standard Module IO Plugin, and configure it to use flash, and a formatter specific
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   333
     * to the pipes response we're expecting from the uri request we'll send out.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   334
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   335
    overlay.plug(StdModIOPlugin, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   336
        uri : pipes.baseUri + pipes.feeds["ynews"].uri,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   337
        cfg:{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   338
            xdr: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   339
                use:'flash'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   340
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   341
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   342
        formatter: pipes.formatter
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   343
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   344
    overlay.render();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   345
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   346
    Y.on("change", function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   347
        var val = this.get("value");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   348
        if (val != -1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   349
            overlay.io.set("uri", pipes.baseUri + pipes.feeds[val].uri);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   350
            overlay.io.refresh();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   351
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   352
    }, "#feedSelector");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   353
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   354
    Y.on("click", function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   355
        overlay.show();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   356
    }, "#show");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   357
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   358
    Y.on("click", function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   359
        overlay.hide();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   360
    }, "#hide");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   361
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   362
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   363
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   364
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   365
<!--END SOURCE CODE FOR EXAMPLE =============================== -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   366
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   367
</body>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   368
</html>