src/cm/media/js/lib/yui/yui_3.10.3/docs/dd/photo-browser-example.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" class="yui3-loading">
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>Photo Browser</title>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
    <link rel="stylesheet" href="http://yui.yahooapis.com/2.8.2/build/reset-fonts-grids/reset-fonts-grids.css" type="text/css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
    <link rel="stylesheet" type="text/css" href="../assets/dd/photos/photos.css">    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
    <script src="../../build/yui/yui-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
</head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
<body class="yui3-skin-sam">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
<div id="doc3" class="yui-t1">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
    <div id="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
        <div id="yui-main">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
	        <div class="yui-b">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
                <div class="yui-g">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
                    <ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
                    </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
	            </div>
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
	    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
	    <div class="yui-b">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
            <ul id="photoList">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
                <li class="all selected"><a href="#">All Photos</a></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
                <li id="a_1"><a href="#">Album #1<span>(0)</span></a></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
                <li id="a_2"><a href="#">Album #2<span>(0)</span></a></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
                <li id="a_3"><a href="#">Album #3<span>(0)</span></a></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
                <li id="a_4"><a href="#">Album #4<span>(0)</span></a></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
            <p>Click and drag a photo to an album above. You can also Shift + Click to select and drag multiple photos.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
            <p>Click on an album to view the photos that you added.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
            <p>You can also use the slider at the bottom to adjust the size of the image to help fit them on your screen.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
    <div id="ft" class="loading"><strong></strong><div class="horiz_slider"></div><em></em></div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
YUI().use('yql', 'node', 'anim', 'dd', 'dd-plugin', 'dd-drop-plugin', 'slider', 'stylesheet', 'event-delegate', function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
    //Get a reference to the wrapper to use later and add a loading class to it.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
    var wrapper = Y.one('#yui-main .yui-g ul').addClass('loading');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
    //Set it's height to the height of the viewport so we can scroll it.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
    wrapper.setStyle('height', (wrapper.get('winHeight') - 50 )+ 'px');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
    Y.on('windowresize', function() { wrapper.setStyle('height', (wrapper.get('winHeight') - 50 )+ 'px'); });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
    //Make the YQL query.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
    Y.YQL('SELECT * FROM flickr.photos.search(100) WHERE (text="yuiconf") AND (safe_search = 1) AND (media = "photos") AND (api_key = "1895311ec0d2e23431a6407f3e8dffcc")', function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
        if (e.query && e.query.results) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
            var photos = e.query.results.photo;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
            //Walk the returned photos array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
            Y.each(photos, function(v, k) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
                //Create our URL
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
                var url = 'http:/'+'/static.flickr.com/' + v.server + '/' + v.id + '_' + v.secret + '_m.jpg',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
                    //Create the image and the LI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
                    li = Y.Node.create('<li class="loading"><img src="' + url + '" title="' + v.title + '"></li>'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
                    //Get the image from the LI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
                    img = li.get('firstChild');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
                //Append the li to the wrapper
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
                wrapper.appendChild(li);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
                //This little hack moves the tall images to the bottom of the list
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
                //So they float better ;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
                img.on('load', function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
                    //Is the height longer than the width?
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
                    var c = ((this.get('height') > this.get('width')) ? 'tall' : 'wide');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
                    this.addClass(c);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
                    if (c === 'tall') {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
                        //Move it to the end of the list.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
                        this.get('parentNode.parentNode').removeChild(this.get('parentNode'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
                        wrapper.appendChild(this.get('parentNode'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
                    this.get('parentNode').removeClass('loading');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
                });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
            //Get all the newly added li's
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
            wrapper.all('li').each(function(node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
                //Plugin the Drag plugin
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
                this.plug(Y.Plugin.Drag, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
                    offsetNode: false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
                });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
                //Plug the Proxy into the DD object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
                this.dd.plug(Y.Plugin.DDProxy, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
                    resizeFrame: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
                    moveOnEnd: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
                    borderStyle: 'none'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
                });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
            //Create and render the slider
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
            var sl = new Y.Slider({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
                length: '200px', value: 40, max: 70, min: 5
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
            }).render('.horiz_slider');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
            //Listen for the change
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
            sl.after('valueChange',function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
                //Insert a dynamic stylesheet rule:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
                var sheet = new Y.StyleSheet('image_slider');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
                sheet.set('#yui-main .yui-g ul li', {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
                    width: (e.newVal / 2) + '%'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
                });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
            //Remove the DDM as a bubble target..
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
            sl._dd.removeTarget(Y.DD.DDM);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
            //Remove the wrappers loading class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
            wrapper.removeClass('loading');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
            Y.one('#ft').removeClass('loading');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
    //Listen for all mouseup's on the document (selecting/deselecting images)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
    Y.delegate('mouseup', function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
        if (!e.shiftKey) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
            //No shift key - remove all selected images
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
            wrapper.all('img.selected').removeClass('selected');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
        //Check if the target is an image and select it.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
        if (e.target.test('#yui-main .yui-g ul li img')) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
            e.target.addClass('selected');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
    }, document, '*');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
    //Listen for all clicks on the '#photoList li' selector
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
    Y.delegate('click', function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
        //Prevent the click
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
        e.halt();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
        //Remove all the selected items
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
        e.currentTarget.get('parentNode').all('li.selected').removeClass('selected');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
        //Add the selected class to the one that one clicked
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
        e.currentTarget.addClass('selected');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
        //The "All Photos" link was clicked
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
        if (e.currentTarget.hasClass('all')) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
            //Remove all the hidden classes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
            wrapper.all('li').removeClass('hidden');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
            //Another "album" was clicked, get it's id
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
            var c = e.currentTarget.get('id');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
            //Hide all items by adding the hidden class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
            wrapper.all('li').addClass('hidden');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
            //Now, find all the items with the class name the same as the album id
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
            //and remove the hidden class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
            wrapper.all('li.' + c).removeClass('hidden');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
    }, document, '#photoList li');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
    //Stop the drag with the escape key
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
    Y.one(document).on('keyup', function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
        //The escape key was pressed
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
        if ((e.keyCode === 27) || (e.charCode === 27)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
            //We have an active Drag
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
            if (Y.DD.DDM.activeDrag) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
                //Stop the drag
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
                Y.DD.DDM.activeDrag.stopDrag();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
    //On the drag:mouseDown add the selected class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
    Y.DD.DDM.on('drag:mouseDown', function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
        var img = e.target.get('node').one('img');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
        //If it's a gesture event, then we need to act differently
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
        if (Y.DD.Drag.START_EVENT.indexOf('gesture') === 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
            if (img.hasClass('selected')) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
                img.removeClass('selected');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
            } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
                img.addClass('selected');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
            img.removeClass('selected');
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
    //On drag start, get all the selected elements
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
    //Add the count to the proxy element and offset it to the cursor.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
    Y.DD.DDM.on('drag:start', function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
        var img = e.target.get('node').one('img').addClass('selected');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
        //How many items are selected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
        var count = wrapper.all('img.selected').size();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
        //Set the style on the proxy node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
        e.target.get('dragNode').setStyles({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
            height: '25px', width: '25px'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
        }).set('innerHTML', '<span>' + count + '</span>');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
        //Offset the dragNode
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
        e.target.deltaXY = [25, 5];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
    //We dropped on a drop target
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
    Y.DD.DDM.on('drag:drophit', function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
        //get the images that are selected.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
        var imgs = wrapper.all('img.selected'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
            //The xy position of the item we dropped on
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
            toXY = e.drop.get('node').getXY();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
        
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
        imgs.each(function(node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
            //Clone the image, position it on top of the original and animate it to the drop target
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
            node.get('parentNode').addClass(e.drop.get('node').get('id'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
            var n = node.cloneNode().set('id', '').setStyle('position', 'absolute');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
            Y.one('body').appendChild(n);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
            n.setXY(node.getXY());
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
            new Y.Anim({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
                node: n,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
                to: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
                    height: 20, width: 20, opacity: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
                    top: toXY[1], left: toXY[0]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
                },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
                from: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
                    width: node.get('offsetWidth'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
                    height: node.get('offsetHeight')
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
                },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
                duration: .5
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
            }).run();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
        //Update the count
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
        var count = wrapper.all('li.' + e.drop.get('node').get('id')).size();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
        e.drop.get('node').one('span').set('innerHTML', '(' + count + ')');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
    //Add drop support to the albums
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
    Y.all('#photoList li').each(function(node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
        if (!node.hasClass('all')) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
            //make all albums Drop Targets except the all photos.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
            node.plug(Y.Plugin.Drop);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
YUI.Env.Tests = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
    examples: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
    project: '../assets',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
    assets: '../assets/dd',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
    name: 'photo-browser',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
    title: 'Photo Browser',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
    newWindow: '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
    auto:  false 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
YUI.Env.Tests.examples.push('simple-drag');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
YUI.Env.Tests.examples.push('drag-plugin');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
YUI.Env.Tests.examples.push('proxy-drag');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
YUI.Env.Tests.examples.push('constrained-drag');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
YUI.Env.Tests.examples.push('groups-drag');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
YUI.Env.Tests.examples.push('shim-drag');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
YUI.Env.Tests.examples.push('drop-code');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
YUI.Env.Tests.examples.push('winscroll');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
YUI.Env.Tests.examples.push('delegate');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
YUI.Env.Tests.examples.push('delegate-drop');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
YUI.Env.Tests.examples.push('delegate-plugins');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
YUI.Env.Tests.examples.push('list-drag');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
YUI.Env.Tests.examples.push('scroll-list');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
YUI.Env.Tests.examples.push('anim-drop');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
YUI.Env.Tests.examples.push('photo-browser');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
YUI.Env.Tests.examples.push('portal-drag');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
YUI.Env.Tests.examples.push('yui-multi');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
YUI.Env.Tests.examples.push('stylesheet-theme');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
<script src="../assets/yui/test-runner.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
</body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
</html>