src/cm/media/js/lib/yui/yui_3.10.3/docs/datatable/datatable-chkboxselect.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: Checkbox select column</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: Checkbox select column</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 scoped>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
/* css to counter global site css */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
.example table {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
    width: auto;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
.yui3-skin-sam .yui3-datatable-col-select {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
    text-align: center;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
#processed {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
   margin-top: 2em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
   border: 2px inset;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
   border-radius: 5px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
   padding: 1em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
   list-style: none;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
</style>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
<div class="intro">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
    <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
        This example shows one method for managing a selection checkbox column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
        in a DataTable.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
    </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
<div class="example yui3-skin-sam">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
    <div id="dtable"></div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
    <button id="btnSelected" class="yui3-button">Process Selections</button>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
    <button id="btnClearSelected" class="yui3-button">Clear Selections</button>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
    <h4>Processed:</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
    <ul id="processed">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
        <li>(None)</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
    </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
YUI({ filter: 'raw' }).use( "datatable-sort", "datatable-scroll", "cssbutton", function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
    var ports = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
        { port:20,  pname:'FTP_data',ptitle:'File Transfer Process Data' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
        { port:21,  pname:'FTP',     ptitle:'File Transfer Process' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
        { port:22,  pname:'SSH',     ptitle:'Secure Shell' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
        { port:23,  pname:'TELNET',  ptitle:'Telnet remote communications' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
        { port:25,  pname:'SMTP',    ptitle:'Simple Mail Transfer Protocol' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
        { port:43,  pname:'WHOIS',   ptitle:'whois Identification' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
        { port:53,  pname:'DNS',     ptitle:'Domain Name Service' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
        { port:68,  pname:'DHCP',    ptitle:'Dynamic Host Control Protocol' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
        { port:79,  pname:'FINGER',  ptitle:'Finger Identification' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
        { port:80,  pname:'HTTP',    ptitle:'HyperText Transfer Protocol' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
        { port:110, pname:'POP3',   ptitle:'Post Office Protocol v3' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
        { port:115, pname:'SFTP',   ptitle:'Secure File Transfer Protocol' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
        { port:119, pname:'NNTP',   ptitle:'Network New Transfer Protocol' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
        { port:123, pname:'NTP',    ptitle:'Network Time Protocol' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
        { port:139, pname:'NetBIOS',ptitle:'NetBIOS Communication' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
        { port:143, pname:'IMAP',   ptitle:'Internet Message Access Protocol' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
        { port:161, pname:'SNMP',   ptitle:'Simple Network Management Protocol' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
        { port:194, pname:'IRC',    ptitle:'Internet Relay Chat' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
        { port:220, pname:'IMAP3',  ptitle:'Internet Message Access Protocol v3' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
        { port:389, pname:'LDAP',   ptitle:'Lightweight Directory Access Protocol' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
        { port:443, pname:'SSL',    ptitle:'Secure Socket Layer' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
        { port:445, pname:'SMB',    ptitle:'NetBIOS over TCP' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
        { port:993, pname:'SIMAP',  ptitle:'Secure IMAP Mail' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
        { port:995, pname:'SPOP',   ptitle:'Secure POP Mail' }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
    ];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
    var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
        columns : [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
            {   key:        'select',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
                allowHTML:  true, // to avoid HTML escaping
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
                label:      '<input type="checkbox" class="protocol-select-all" title="Toggle ALL records"/>',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
                formatter:      '<input type="checkbox" checked/>',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
                emptyCellValue: '<input type="checkbox"/>'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
            {   key: 'port',   label: 'Port No.' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
            {   key: 'pname',  label: 'Protocol' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
            {   key: 'ptitle', label: 'Common Name' }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
        ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
        data      : ports,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
        scrollable: 'y',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
        height    : '250px',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
        sortable  : ['port','pname'],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
        sortBy    : 'port',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
        recordType: ['select', 'port', 'pname', 'ptitle']
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
    }).render("#dtable");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
    // To avoid checkbox click causing harmless error in sorting
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
    // Workaround for bug #2532244
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
    table.detach('*:change');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
    //----------------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
    //   "checkbox" Click listeners ...
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
    // Define a listener on the DT first column for each record's "checkbox",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
    //   to set the value of <code>select</code> to the checkbox setting
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
    table.delegate("click", function(e){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
        // undefined to trigger the emptyCellValue
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
        var checked = e.target.get('checked') || undefined;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
        this.getRecord(e.target).set('select', checked);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
        // Uncheck the header checkbox
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
        this.get('contentBox')
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
            .one('.protocol-select-all').set('checked', false);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
    }, ".yui3-datatable-data .yui3-datatable-col-select input", table);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
    // Also define a listener on the single TH "checkbox" to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
    //   toggle all of the checkboxes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
    table.delegate('click', function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
        // undefined to trigger the emptyCellValue
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
        var checked = e.target.get('checked') || undefined;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
        // Set the selected attribute in all records in the ModelList silently
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
        // to avoid each update triggering a table update
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
        this.data.invoke('set', 'select', checked, { silent: true });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
        // Update the table now that all records have been updated
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
        this.syncUI();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
    }, '.protocol-select-all', table);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
    //----------------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
    //  CSS-Button click handlers ....
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
    //----------------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
    function process() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
        var ml  = table.data,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
            msg = '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
            template = '<li>Record index = {index} Data = {port} : {pname}</li>';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
        ml.each(function (item, i) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
            var data = item.getAttrs(['select', 'port', 'pname']);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
            if (data.select) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
                data.index = i;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
                msg += Y.Lang.sub(template, data);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
        Y.one("#processed").setHTML(msg || '<li>(None)</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
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
    Y.one("#btnSelected").on("click", process);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
    Y.one("#btnClearSelected").on("click",function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
        table.data.invoke('set', 'select', undefined);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
        // Uncheck the header checkbox
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
        table.get('contentBox')
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
            .one('.protocol-select-all').set('checked', false);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
        process();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
<h2>Sample Data</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
    This example will use a local Javascript array of data that includes some
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
    common Internet port socket numbers and protocol names:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
<pre class="code prettyprint">var ports = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
    { port:20,  pname:&#x27;FTP_data&#x27;,ptitle:&#x27;File Transfer Process Data&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
    { port:21,  pname:&#x27;FTP&#x27;,     ptitle:&#x27;File Transfer Process&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
    { port:22,  pname:&#x27;SSH&#x27;,     ptitle:&#x27;Secure Shell&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
    { port:23,  pname:&#x27;TELNET&#x27;,  ptitle:&#x27;Telnet remote communications&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
    ... &#x2F;&#x2F; data continues
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
];</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
<h2>The DataTable</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
    Our DataTable for this example will utilize a custom formatter as the first
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
    column, to display a standard HTML INPUT[type=checkbox] element as an
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
    indication that the record is desired to be "selected" for additional
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
    processing.  But that checkbox won't work on its own, because if a "sort"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
    action happens after the checkbox is clicked the "check" status is lost!
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
    A way to get around this is to create a binding of the checkbox to an
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
    attribute of <b>each record</b> which will remain with the record even upon
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
    sorts, edits, or other modifications to the record.  This is accomplished
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
    by defining a custom <code>recordType</code> for the DataTable that incorporates all
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
    of our standard <code>data</code> for our table but also defines a new Attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
    (called <code>select</code> here) that is a boolean value to track whether the record
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
    is selected.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
    The implementation of these methods is shown below, where we have defined a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
    custom <code>formatter</code> and <code>emptyCellValue</code> for the "select" column that
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
    creates a checked or unchecked checkbox depending on the state of the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
    attribute, and defines a custom <code>recordType</code> with our new attribute added.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
    Additionally, we incorporate (a) scrolling and (b) sorting to demonstrate
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
    that this technique works.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
<pre class="code prettyprint">var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
    columns : [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
        {   key:        &#x27;select&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
            allowHTML:  true, &#x2F;&#x2F; to avoid HTML escaping
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
            label:      &#x27;&lt;input type=&quot;checkbox&quot; class=&quot;protocol-select-all&quot; title=&quot;Toggle ALL records&quot;&#x2F;&gt;&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
            formatter:      &#x27;&lt;input type=&quot;checkbox&quot; checked&#x2F;&gt;&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
            emptyCellValue: &#x27;&lt;input type=&quot;checkbox&quot;&#x2F;&gt;&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
        {   key: &#x27;port&#x27;,   label: &#x27;Port No.&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
        {   key: &#x27;pname&#x27;,  label: &#x27;Protocol&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
        {   key: &#x27;ptitle&#x27;, label: &#x27;Common Name&#x27; }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
    ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
    data      : ports,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
    scrollable: &#x27;y&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
    height    : &#x27;250px&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
    sortable  : [&#x27;port&#x27;,&#x27;pname&#x27;],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
    sortBy    : &#x27;port&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
    recordType: [&#x27;select&#x27;, &#x27;port&#x27;, &#x27;pname&#x27;, &#x27;ptitle&#x27;]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
}).render(&quot;#dtable&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
<h2>The Checkbox Listeners</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
    Having a DataTable with a bunch of checkboxes in it may look cool (or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
    not!), but we also need to define what to do when they are checked.   Since
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
    the column formatter for the first column creates the checkboxes, we 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
    delegate "click" listeners from the DataTable for the two types of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
    checkboxes&mdash;the "check all" checkbox in the header and the individual
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
    checkboxes on each data row.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
    Be sure to <a href="../event/delegation.html">avoid subscribing to events
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
    directly on elements in each row</a> of a DataTable.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
<pre class="code prettyprint">&#x2F;&#x2F; Define a listener on the DT first column for each record&#x27;s checkbox,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
&#x2F;&#x2F;   to set the value of &#x60;select&#x60; to the checkbox setting
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
table.delegate(&quot;click&quot;, function(e){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
    &#x2F;&#x2F; undefined to trigger the emptyCellValue
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
    var checked = e.target.get(&#x27;checked&#x27;) || undefined;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
    this.getRecord(e.target).set(&#x27;select&#x27;, checked);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
    &#x2F;&#x2F; Uncheck the header checkbox
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
    this.get(&#x27;contentBox&#x27;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
        .one(&#x27;.protocol-select-all&#x27;).set(&#x27;checked&#x27;, false);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
}, &quot;.yui3-datatable-data .yui3-datatable-col-select input&quot;, table);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
&#x2F;&#x2F; Also define a listener on the single TH checkbox to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
&#x2F;&#x2F;   toggle all of the checkboxes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
table.delegate(&#x27;click&#x27;, function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
    &#x2F;&#x2F; undefined to trigger the emptyCellValue
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
    var checked = e.target.get(&#x27;checked&#x27;) || undefined;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
    &#x2F;&#x2F; Set the selected attribute in all records in the ModelList silently
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
    &#x2F;&#x2F; to avoid each update triggering a table update
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
    this.data.invoke(&#x27;set&#x27;, &#x27;select&#x27;, checked, { silent: true });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
    &#x2F;&#x2F; Update the table now that all records have been updated
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
    this.syncUI();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
}, &#x27;.protocol-select-all&#x27;, table);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
<h2>Button Click Handlers</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
    The bulk of the nitty-gritty is done now.   We'll just wire up a button to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
    process the checked records and another to clear the selection.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
<pre class="code prettyprint">function process() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
    var ml  = table.data,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
        msg = &#x27;&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
        template = &#x27;&lt;li&gt;Record index = {index} Data = {port} : {pname}&lt;&#x2F;li&gt;&#x27;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
    ml.each(function (item, i) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
        var data = item.getAttrs([&#x27;select&#x27;, &#x27;port&#x27;, &#x27;pname&#x27;]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
        if (data.select) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
            data.index = i;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
            msg += Y.Lang.sub(template, data);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
    Y.one(&quot;#processed&quot;).setHTML(msg || &#x27;&lt;li&gt;(None)&lt;&#x2F;li&gt;&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
Y.one(&quot;#btnSelected&quot;).on(&quot;click&quot;, process);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
Y.one(&quot;#btnClearSelected&quot;).on(&quot;click&quot;,function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
    table.data.invoke(&#x27;set&#x27;, &#x27;select&#x27;, undefined);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
    &#x2F;&#x2F; Uncheck the header checkbox
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
    table.get(&#x27;contentBox&#x27;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
        .one(&#x27;.protocol-select-all&#x27;).set(&#x27;checked&#x27;, false);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
    process();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
    Note that another option for capturing all the checked checkboxes would be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
    <code>table.get(&#x27;contentBox&#x27;).all(&#x27;.yui3-datatable-col-select input:checked&#x27;)</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
    To make sure that was supported across all browsers, we'd then need to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
    include the <code>selector-css3</code> module in our <code>use()</code> statement.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
    Another improvement that could be made for HTML5 compliant clients would be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
    to add in <code>localStorage</code> access to save the checked record data to the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
    browser environment.   You can see how to do this in the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
    <a href="../app/app-todo.html">App Framework's Todo List example</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
<h2>Full Code Listing</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
<h3>CSS</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
<pre class="code prettyprint">.yui3-skin-sam .yui3-datatable-col-select {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
    text-align: center;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
#processed {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
   margin-top: 2em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
   border: 2px inset;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
   border-radius: 5px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
   padding: 1em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
   list-style: none;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
<h3>HTML Markup</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
<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
   369
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
   370
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
   371
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
<pre class="code prettyprint">&lt;div class=&quot;example yui3-skin-sam&quot;&gt; &lt;!-- You need this skin class --&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
    &lt;div id=&quot;dtable&quot;&gt;&lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
    &lt;button id=&quot;btnSelected&quot; class=&quot;yui3-button&quot;&gt;Process Selections&lt;&#x2F;button&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
    &lt;button id=&quot;btnClearSelected&quot; class=&quot;yui3-button&quot;&gt;Clear Selections&lt;&#x2F;button&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
    &lt;h4&gt;Processed:&lt;&#x2F;h4&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
    &lt;ul id=&quot;processed&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
        &lt;li&gt;(None)&lt;&#x2F;li&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
    &lt;&#x2F;ul&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
&lt;&#x2F;div&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
<h3>Javascript</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
<pre class="code prettyprint">YUI({ filter: &#x27;raw&#x27; }).use( &quot;datatable-sort&quot;, &quot;datatable-scroll&quot;, &quot;cssbutton&quot;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
    var ports = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
        { port:20,  pname:&#x27;FTP_data&#x27;,ptitle:&#x27;File Transfer Process Data&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
        { port:21,  pname:&#x27;FTP&#x27;,     ptitle:&#x27;File Transfer Process&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
        { port:22,  pname:&#x27;SSH&#x27;,     ptitle:&#x27;Secure Shell&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
        { port:23,  pname:&#x27;TELNET&#x27;,  ptitle:&#x27;Telnet remote communications&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
        { port:25,  pname:&#x27;SMTP&#x27;,    ptitle:&#x27;Simple Mail Transfer Protocol&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
        { port:43,  pname:&#x27;WHOIS&#x27;,   ptitle:&#x27;whois Identification&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
        { port:53,  pname:&#x27;DNS&#x27;,     ptitle:&#x27;Domain Name Service&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
        { port:68,  pname:&#x27;DHCP&#x27;,    ptitle:&#x27;Dynamic Host Control Protocol&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
        { port:79,  pname:&#x27;FINGER&#x27;,  ptitle:&#x27;Finger Identification&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
        { port:80,  pname:&#x27;HTTP&#x27;,    ptitle:&#x27;HyperText Transfer Protocol&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
        { port:110, pname:&#x27;POP3&#x27;,   ptitle:&#x27;Post Office Protocol v3&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
        { port:115, pname:&#x27;SFTP&#x27;,   ptitle:&#x27;Secure File Transfer Protocol&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
        { port:119, pname:&#x27;NNTP&#x27;,   ptitle:&#x27;Network New Transfer Protocol&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
        { port:123, pname:&#x27;NTP&#x27;,    ptitle:&#x27;Network Time Protocol&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
        { port:139, pname:&#x27;NetBIOS&#x27;,ptitle:&#x27;NetBIOS Communication&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
        { port:143, pname:&#x27;IMAP&#x27;,   ptitle:&#x27;Internet Message Access Protocol&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
        { port:161, pname:&#x27;SNMP&#x27;,   ptitle:&#x27;Simple Network Management Protocol&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
        { port:194, pname:&#x27;IRC&#x27;,    ptitle:&#x27;Internet Relay Chat&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
        { port:220, pname:&#x27;IMAP3&#x27;,  ptitle:&#x27;Internet Message Access Protocol v3&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
        { port:389, pname:&#x27;LDAP&#x27;,   ptitle:&#x27;Lightweight Directory Access Protocol&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
        { port:443, pname:&#x27;SSL&#x27;,    ptitle:&#x27;Secure Socket Layer&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
        { port:445, pname:&#x27;SMB&#x27;,    ptitle:&#x27;NetBIOS over TCP&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
        { port:993, pname:&#x27;SIMAP&#x27;,  ptitle:&#x27;Secure IMAP Mail&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
        { port:995, pname:&#x27;SPOP&#x27;,   ptitle:&#x27;Secure POP Mail&#x27; }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
    ];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
    var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
        columns : [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
            {   key:        &#x27;select&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
                allowHTML:  true, &#x2F;&#x2F; to avoid HTML escaping
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
                label:      &#x27;&lt;input type=&quot;checkbox&quot; class=&quot;protocol-select-all&quot; title=&quot;Toggle ALL records&quot;&#x2F;&gt;&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
                formatter:      &#x27;&lt;input type=&quot;checkbox&quot; checked&#x2F;&gt;&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
                emptyCellValue: &#x27;&lt;input type=&quot;checkbox&quot;&#x2F;&gt;&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
            {   key: &#x27;port&#x27;,   label: &#x27;Port No.&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
            {   key: &#x27;pname&#x27;,  label: &#x27;Protocol&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
            {   key: &#x27;ptitle&#x27;, label: &#x27;Common Name&#x27; }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
        ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
        data      : ports,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
        scrollable: &#x27;y&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
        height    : &#x27;250px&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
        sortable  : [&#x27;port&#x27;,&#x27;pname&#x27;],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
        sortBy    : &#x27;port&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
        recordType: [&#x27;select&#x27;, &#x27;port&#x27;, &#x27;pname&#x27;, &#x27;ptitle&#x27;]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
    }).render(&quot;#dtable&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
    &#x2F;&#x2F; To avoid checkbox click causing harmless error in sorting
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
    &#x2F;&#x2F; Workaround for bug #2532244
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
    table.detach(&#x27;*:change&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
    &#x2F;&#x2F;----------------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
    &#x2F;&#x2F;   &quot;checkbox&quot; Click listeners ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
    &#x2F;&#x2F;----------------
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; Define a listener on the DT first column for each record&#x27;s &quot;checkbox&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
    &#x2F;&#x2F;   to set the value of &#x60;select&#x60; to the checkbox setting
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
    table.delegate(&quot;click&quot;, function(e){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
        &#x2F;&#x2F; undefined to trigger the emptyCellValue
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
        var checked = e.target.get(&#x27;checked&#x27;) || undefined;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
        this.getRecord(e.target).set(&#x27;select&#x27;, checked);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
        &#x2F;&#x2F; Uncheck the header checkbox
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
        this.get(&#x27;contentBox&#x27;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
            .one(&#x27;.protocol-select-all&#x27;).set(&#x27;checked&#x27;, false);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
    }, &quot;.yui3-datatable-data .yui3-datatable-col-select input&quot;, table);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
    &#x2F;&#x2F; Also define a listener on the single TH &quot;checkbox&quot; to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
    &#x2F;&#x2F;   toggle all of the checkboxes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
    table.delegate(&#x27;click&#x27;, function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
        &#x2F;&#x2F; undefined to trigger the emptyCellValue
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
        var checked = e.target.get(&#x27;checked&#x27;) || undefined;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
        &#x2F;&#x2F; Set the selected attribute in all records in the ModelList silently
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
        &#x2F;&#x2F; to avoid each update triggering a table update
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
        this.data.invoke(&#x27;set&#x27;, &#x27;select&#x27;, checked, { silent: true });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
        &#x2F;&#x2F; Update the table now that all records have been updated
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
        this.syncUI();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
    }, &#x27;.protocol-select-all&#x27;, table);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
    &#x2F;&#x2F;----------------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
    &#x2F;&#x2F;  CSS-Button click handlers ....
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
    &#x2F;&#x2F;----------------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
    function process() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
        var ml  = table.data,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
            msg = &#x27;&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
            template = &#x27;&lt;li&gt;Record index = {index} Data = {port} : {pname}&lt;&#x2F;li&gt;&#x27;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
        ml.each(function (item, i) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
            var data = item.getAttrs([&#x27;select&#x27;, &#x27;port&#x27;, &#x27;pname&#x27;]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
            if (data.select) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
                data.index = i;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
                msg += Y.Lang.sub(template, data);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
        Y.one(&quot;#processed&quot;).setHTML(msg || &#x27;&lt;li&gt;(None)&lt;&#x2F;li&gt;&#x27;);
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
    Y.one(&quot;#btnSelected&quot;).on(&quot;click&quot;, process);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
    Y.one(&quot;#btnClearSelected&quot;).on(&quot;click&quot;,function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
        table.data.invoke(&#x27;set&#x27;, &#x27;select&#x27;, undefined);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
        &#x2F;&#x2F; Uncheck the header checkbox
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
        table.get(&#x27;contentBox&#x27;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
            .one(&#x27;.protocol-select-all&#x27;).set(&#x27;checked&#x27;, false);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
        process();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
        <div class="yui3-u-1-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
            <div class="sidebar">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
                            <h2 class="no-toc">Examples</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   521
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
                                        <li data-description="This example illustrates simple DataTable use cases.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
                                            <a href="datatable-basic.html">Basic DataTable</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   527
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
                                        <li data-description="DataTable loaded with JSON data from a remote webservice via DataSource.Get">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
                                            <a href="datatable-dsget.html">DataTable + DataSource.Get + JSON Data</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
                                        </li>
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
                                        <li data-description="DataTable loaded with XML data from a remote webservice via DataSource.IO.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
                                            <a href="datatable-dsio.html">DataTable + DataSource.IO + XML Data</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   541
                                        <li data-description="Custom format data for display.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   542
                                            <a href="datatable-formatting.html">Formatting Row Data for Display</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   543
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   544
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   547
                                        <li data-description="DataTable with nested column headers.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   548
                                            <a href="datatable-nestedcols.html">Nested Column Headers</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   549
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   550
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   551
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   552
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   553
                                        <li data-description="DataTable with column sorting.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   554
                                            <a href="datatable-sort.html">Column Sorting</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   555
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   556
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   557
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   558
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   559
                                        <li data-description="DataTable with vertical and/or horizontal scrolling rows.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   560
                                            <a href="datatable-scroll.html">Scrolling DataTable</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   561
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   562
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   563
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   564
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   565
                                        <li data-description="Using DataTable&#x27;s recordType attribute to create calculated, sortable columns.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   566
                                            <a href="datatable-recordtype.html">Sortable generated columns</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   567
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   568
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   569
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   570
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   571
                                        <li data-description="Populating one DataTable from details in the data of another.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   572
                                            <a href="datatable-masterdetail.html">Master and detail tables</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   573
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   574
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   575
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   576
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   577
                                        <li data-description="Checkbox column that retains checked state when sorting.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   578
                                            <a href="datatable-chkboxselect.html">Checkbox select column</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   579
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   580
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   581
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   582
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   583
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   584
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   585
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   586
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   587
                
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
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   591
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   592
                            <h2 class="no-toc">Examples That Use This Component</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   593
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   594
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   595
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   596
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   597
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   598
                                    
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
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   603
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   604
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   605
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   606
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   607
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   608
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   609
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   610
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   611
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   612
                                    
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
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   616
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   617
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   618
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   619
                                        <li data-description="Shows how to instantiate multiple Panel instances, and use nested modality to interact with a Datatable.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   620
                                            <a href="../panel/panel-form.html">Creating a Modal Form</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   621
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   622
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   623
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   624
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   625
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   626
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   627
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   628
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   629
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   630
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   631
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   632
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   633
<script src="../assets/vendor/prettify/prettify-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   634
<script>prettyPrint();</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   635
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   636
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   637
YUI.Env.Tests = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   638
    examples: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   639
    project: '../assets',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   640
    assets: '../assets/datatable',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   641
    name: 'datatable-chkboxselect',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   642
    title: 'Checkbox select column',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   643
    newWindow: '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   644
    auto:  false 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   645
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   646
YUI.Env.Tests.examples.push('datatable-basic');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   647
YUI.Env.Tests.examples.push('datatable-dsget');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   648
YUI.Env.Tests.examples.push('datatable-dsio');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   649
YUI.Env.Tests.examples.push('datatable-formatting');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   650
YUI.Env.Tests.examples.push('datatable-nestedcols');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   651
YUI.Env.Tests.examples.push('datatable-sort');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   652
YUI.Env.Tests.examples.push('datatable-scroll');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   653
YUI.Env.Tests.examples.push('datatable-recordtype');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   654
YUI.Env.Tests.examples.push('datatable-masterdetail');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   655
YUI.Env.Tests.examples.push('datatable-chkboxselect');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   656
YUI.Env.Tests.examples.push('panel-form');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   657
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   658
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   659
<script src="../assets/yui/test-runner.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   660
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   661
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   662
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   663
</body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   664
</html>