Ignore:
Timestamp:
Feb 4, 2014, 10:46:10 PM (10 years ago)
Author:
LucMorizur
Message:

Version 2.3.0, compatibility with Piwigo 2.6

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/LCAS/tags/2.3.0/admin/template/js/jquery.metadata.js

    r27129 r27186  
    22 * Metadata - jQuery plugin for parsing metadata from elements
    33 *
    4  * Copyright (c) 2006 John Resig, Yehuda Katz, Jörn Zaefferer, Paul McLanahan
     4 * Copyright (c) 2006 John Resig, Yehuda Katz, Jörn Zaefferer, Paul McLanahan
    55 *
    66 * Dual licensed under the MIT and GPL licenses:
    77 *   http://www.opensource.org/licenses/mit-license.php
    88 *   http://www.gnu.org/licenses/gpl.html
    9  *
    10  * Revision: $Id$
    119 *
    1210 */
     
    1917 *
    2018 *   attr:  Inside an attribute. The name parameter indicates *which* attribute.
    21  *         
     19 *
    2220 *   class: Inside the class attribute, wrapped in curly braces: { }
    23  *   
     21 *
    2422 *   elem:  Inside a child element (e.g. a script tag). The
    2523 *          name parameter indicates *which* element.
    26  *         
     24 *
    2725 * The metadata for an element is loaded the first time the element is accessed via jQuery.
    2826 *
    2927 * As a result, you can define the metadata type, use $(expr) to load the metadata into the elements
    3028 * matched by expr, then redefine the metadata type and run another $(expr) for other elements.
    31  * 
     29 *
    3230 * @name $.metadata.setType
    3331 *
     
    3634 * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label"
    3735 * @desc Reads metadata from the class attribute
    38  * 
     36 *
    3937 * @example <p id="one" class="some_class" data="{item_id: 1, item_label: 'Label'}">This is a p</p>
    4038 * @before $.metadata.setType("attr", "data")
    4139 * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label"
    4240 * @desc Reads metadata from a "data" attribute
    43  * 
     41 *
    4442 * @example <p id="one" class="some_class"><script>{item_id: 1, item_label: 'Label'}</script>This is a p</p>
    4543 * @before $.metadata.setType("elem", "script")
    4644 * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label"
    4745 * @desc Reads metadata from a nested script element
    48  * 
     46 *
    4947 * @param String type The encoding type
    5048 * @param String name The name of the attribute to be used to get metadata (optional)
     
    6260                        type: 'class',
    6361                        name: 'metadata',
    64                         cre: /({.*})/,
     62                        cre: /(\{.*\})/,
    6563                        single: 'metadata'
    6664                },
     
    7068                },
    7169                get: function( elem, opts ){
    72                         var settings = $.extend({},this.defaults,opts);
     70                        var data, m, e, attr,
     71                                settings = $.extend({},this.defaults,opts);
    7372                        // check for empty string in single property
    74                         if ( !settings.single.length ) settings.single = 'metadata';
    75                        
    76                         var data = $.data(elem, settings.single);
     73                        if ( !settings.single.length ) { settings.single = 'metadata'; }
     74
     75                        data = $.data(elem, settings.single);
    7776                        // returned cached data if it already exists
    78                         if ( data ) return data;
    79                        
     77                        if ( data ) { return data; }
     78
    8079                        data = "{}";
    81                        
    82                         if ( settings.type == "class" ) {
    83                                 var m = settings.cre.exec( elem.className );
    84                                 if ( m )
    85                                         data = m[1];
    86                         } else if ( settings.type == "elem" ) {
    87                                 if( !elem.getElementsByTagName )
    88                                         return undefined;
    89                                 var e = elem.getElementsByTagName(settings.name);
    90                                 if ( e.length )
    91                                         data = $.trim(e[0].innerHTML);
    92                         } else if ( elem.getAttribute != undefined ) {
    93                                 var attr = elem.getAttribute( settings.name );
    94                                 if ( attr )
    95                                         data = attr;
     80
     81                        if ( settings.type === "class" ) {
     82                                m = settings.cre.exec( elem.className );
     83                                if ( m ) { data = m[1]; }
     84                        } else if ( settings.type === "elem" ) {
     85                                if( !elem.getElementsByTagName ) { return undefined; }
     86                                e = elem.getElementsByTagName(settings.name);
     87                                if ( e.length ) { data = $.trim(e[0].innerHTML); }
     88                        } else if ( elem.getAttribute !== undefined ) {
     89                                attr = elem.getAttribute( settings.name );
     90                                if ( attr ) { data = attr; }
    9691                        }
    97                        
    98                         if ( data.indexOf( '{' ) <0 )
    99                         data = "{" + data + "}";
    100                        
     92
     93                        if ( data.indexOf( '{' ) <0 ) { data = "{" + data + "}"; }
     94
    10195                        data = eval("(" + data + ")");
    102                        
     96
    10397                        $.data( elem, settings.single, data );
    10498                        return data;
Note: See TracChangeset for help on using the changeset viewer.