LoadPrototype: Fix jslint errors
authorPrzemyslaw Ciezkowski <p.ciezkowski@samsung.com>
Thu, 9 May 2013 14:50:50 +0000 (16:50 +0200)
committerheeju.joo <heeju.joo@samsung.com>
Mon, 29 Jul 2013 00:52:46 +0000 (09:52 +0900)
Fixed indentations, added required spaces.

Change-Id: I3e2f7527ff549ebfd9fdf2550c069e8a721e742e

src/js/jquery.mobile.tizen.loadprototype.js

index b14b860..8797e88 100644 (file)
 define( [ ], function ( ) {
 //>>excludeEnd("jqmBuildExclude");
 
-(function($, undefined) {
+( function ( $, undefined ) {
 
-ensureNS("jQuery.mobile.tizen");
+       ensureNS( "jQuery.mobile.tizen" );
 
-jQuery.extend( jQuery.mobile.tizen,
-{
-    _widgetPrototypes: {},
+       jQuery.extend( jQuery.mobile.tizen, {
+               _widgetPrototypes: {},
 
-    /*
-     * load the prototype for a widget.
-     *
-     * If @widget is a string, the function looks for @widget.prototype.html in the proto-html/ subdirectory of the
-     * framework's current theme and loads the file via AJAX into a string. Note that the file will only be loaded via
-     * AJAX once. If two widget instances based on the same @widget value are to be constructed, the second will be
-     * constructed from the cached copy of the prototype of the first instance.
-     *
-     * If @widget is not a string, it is assumed to be a hash containing at least one key, "proto", the value of which is
-     * the string to be used for the widget prototype. if another key named "key" is also provided, it will serve as the
-     * key under which to cache the prototype, so it need not be rendered again in the future.
-     *
-     * Given the string for the widget prototype, the following patterns occurring in the string are replaced:
-     *
-     *   "${FRAMEWORK_ROOT}" - replaced with the path to the root of the framework
-     *
-     * The function then creates a jQuery $("<div>") object containing the prototype from the string.
-     *
-     * If @ui is not provided, the jQuery object containing the prototype is returned.
-     *
-     * If @ui is provided, it is assumed to be a (possibly multi-level) hash containing CSS selectors. For every level of
-     * the hash and for each string-valued key at that level, the CSS selector specified as the value is sought in the
-     * prototype jQuery object and, if found, the value of the key is replaced with the jQuery object resulting from the
-     * search. Additionally, if the CSS selector is of the form "#widgetid", the "id" attribute will be removed from the
-     * elements contained within the resulting jQuery object. The resulting hash is returned.
-     *
-     * Examples:
-     *
-     * 1.
-     * $.mobile.tizen.loadPrototype("mywidget") => Returns a <div> containing the structure from the file
-     * mywidget.prototype.html located in the current theme folder of the current framework.
-     *
-     * 2. $.mobile.tizen.loadPrototype("mywidget", ui):
-     * where ui is a hash that looks like this:
-     * ui = {
-     *   element1: "<css selector 1>",
-     *   element2: "<css selector 2>",
-     *   group1: {
-     *     group1element1: "<css selector 3>",
-     *     group1element1: "<css selector 4>"
-     *   }
-     *  ...
-     * }
-     *
-     * In this case, after loading the prototype as in Example 1, loadPrototype will traverse @ui and replace the CSS
-     * selector strings with the result of the search for the selector string upon the prototype. If any of the CSS
-     * selectors are of the form "#elementid" then the "id" attribute will be stripped from the elements selected. This
-     * means that they will no longer be accessible via the selector used initially. @ui is then returned thus modified.
-     */
+               /*
+                * load the prototype for a widget.
+                *
+                * If @widget is a string, the function looks for @widget.prototype.html in the proto-html/ subdirectory of the
+                * framework's current theme and loads the file via AJAX into a string. Note that the file will only be loaded via
+                * AJAX once. If two widget instances based on the same @widget value are to be constructed, the second will be
+                * constructed from the cached copy of the prototype of the first instance.
+                *
+                * If @widget is not a string, it is assumed to be a hash containing at least one key, "proto", the value of which is
+                * the string to be used for the widget prototype. if another key named "key" is also provided, it will serve as the
+                * key under which to cache the prototype, so it need not be rendered again in the future.
+                *
+                * Given the string for the widget prototype, the following patterns occurring in the string are replaced:
+                *
+                *   "${FRAMEWORK_ROOT}" - replaced with the path to the root of the framework
+                *
+                * The function then creates a jQuery $("<div>") object containing the prototype from the string.
+                *
+                * If @ui is not provided, the jQuery object containing the prototype is returned.
+                *
+                * If @ui is provided, it is assumed to be a (possibly multi-level) hash containing CSS selectors. For every level of
+                * the hash and for each string-valued key at that level, the CSS selector specified as the value is sought in the
+                * prototype jQuery object and, if found, the value of the key is replaced with the jQuery object resulting from the
+                * search. Additionally, if the CSS selector is of the form "#widgetid", the "id" attribute will be removed from the
+                * elements contained within the resulting jQuery object. The resulting hash is returned.
+                *
+                * Examples:
+                *
+                * 1.
+                * $.mobile.tizen.loadPrototype("mywidget") => Returns a <div> containing the structure from the file
+                * mywidget.prototype.html located in the current theme folder of the current framework.
+                *
+                * 2. $.mobile.tizen.loadPrototype("mywidget", ui):
+                * where ui is a hash that looks like this:
+                * ui = {
+                *   element1: "<css selector 1>",
+                *   element2: "<css selector 2>",
+                *   group1: {
+                *     group1element1: "<css selector 3>",
+                *     group1element1: "<css selector 4>"
+                *   }
+                *  ...
+                * }
+                *
+                * In this case, after loading the prototype as in Example 1, loadPrototype will traverse @ui and replace the CSS
+                * selector strings with the result of the search for the selector string upon the prototype. If any of the CSS
+                * selectors are of the form "#elementid" then the "id" attribute will be stripped from the elements selected. This
+                * means that they will no longer be accessible via the selector used initially. @ui is then returned thus modified.
+                */
 
-    loadPrototype: function(widget, ui) {
-        var ret = undefined,
-            theScriptTag = $("script[data-framework-version][data-framework-root][data-framework-theme]"),
-            frameworkRootPath = theScriptTag.attr("data-framework-root")    + "/" +
-                                theScriptTag.attr("data-framework-version") + "/";
+               loadPrototype: function ( widget, ui ) {
+                       var ret,
+                               theScriptTag = $( "script[data-framework-version][data-framework-root][data-framework-theme]" ),
+                               frameworkRootPath = theScriptTag.attr( "data-framework-root" ) + "/" +
+                                                                       theScriptTag.attr( "data-framework-version" ) + "/",
+                               protoPath;
 
-        function replaceVariables(s) {
-            return s.replace(/\$\{FRAMEWORK_ROOT\}/g, frameworkRootPath);
-        }
+                       function replaceVariables( s ) {
+                               return s.replace( /\$\{FRAMEWORK_ROOT\}/g, frameworkRootPath );
+                       }
 
-        function fillObj(obj, uiProto) {
-            var selector;
+                       function fillObj( obj, uiProto ) {
+                               var selector, key;
 
-            for (var key in obj) {
-                if (typeof obj[key] === "string") {
-                    selector = obj[key];
-                    obj[key] = uiProto.find(obj[key]);
-                    if (selector.substring(0, 1) === "#")
-                        obj[key].removeAttr("id");
-                }
-                else
-                if (typeof obj[key] === "object")
-                    obj[key] = fillObj(obj[key], uiProto);
-            }
-            return obj;
-        }
+                               for ( key in obj ) {
+                                       if ( typeof obj[ key ] === "string" ) {
+                                               selector = obj[ key ];
+                                               obj[ key ] = uiProto.find( obj[ key ] );
+                                               if ( selector.substring( 0, 1 ) === "#" ) {
+                                                       obj[ key ].removeAttr( "id" );
+                                               }
+                                       } else if (typeof obj[ key ] === "object") {
+                                               obj[ key ] = fillObj( obj[ key ], uiProto );
+                                       }
+                               }
+                               return obj;
+                       }
 
-        /* If @widget is a string ... */
-        if (typeof widget === "string") {
-            /* ... try to use it as a key into the cached prototype hash ... */
-            ret = $.mobile.tizen._widgetPrototypes[widget];
-            if (ret === undefined) {
-                /* ... and if the proto was not found, try to load its definition ... */
-                var protoPath = frameworkRootPath + "proto-html" + "/" +
-                                theScriptTag.attr("data-framework-theme");
-                $.ajax({
-                    url: protoPath + "/" + widget + ".prototype.html",
-                    async: false,
-                    dataType: "html"
-                })
-                 .success(function(data, textStatus, jqXHR) {
-                    /* ... and if loading succeeds, cache it and use a copy of it ... */
-                    $.mobile.tizen._widgetPrototypes[widget] = $("<div>").html(replaceVariables(data));
-                    ret = $.mobile.tizen._widgetPrototypes[widget].clone();
-                });
-            }
-        }
-        /* Otherwise ... */
-        else {
-            /* ... if a key was provided ... */
-            if (widget.key !== undefined)
-                /* ... try to use it as a key into the cached prototype hash ... */
-                ret = $.mobile.tizen._widgetPrototypes[widget.key];
+                       /* If @widget is a string ... */
+                       if ( typeof widget === "string" ) {
+                               /* ... try to use it as a key into the cached prototype hash ... */
+                               ret = $.mobile.tizen._widgetPrototypes[widget];
+                               if ( ret === undefined ) {
+                                       /* ... and if the proto was not found, try to load its definition ... */
+                                       protoPath = frameworkRootPath + "proto-html" + "/" +
+                                                               theScriptTag.attr( "data-framework-theme" );
+                                       $.ajax( {
+                                               url: protoPath + "/" + widget + ".prototype.html",
+                                               async: false,
+                                               dataType: "html"
+                                       } )
+                                               .success( function ( data, textStatus, jqXHR ) {
+                                                       /* ... and if loading succeeds, cache it and use a copy of it ... */
+                                                       $.mobile.tizen._widgetPrototypes[ widget ] = $( "<div>" ).html( replaceVariables( data ) );
+                                                       ret = $.mobile.tizen._widgetPrototypes[ widget ].clone();
+                                               } );
+                               }
+                       } else {
+                               /* Otherwise ... */
+                               /* ... if a key was provided ... */
+                               if ( widget.key !== undefined ) {
+                                       /* ... try to use it as a key into the cached prototype hash ... */
+                                       ret = $.mobile.tizen._widgetPrototypes[ widget.key ];
+                               }
 
-            /* ... and if the proto was not found in the cache ... */
-            if (ret === undefined) {
-                /* ... and a proto definition string was provided ... */
-                if (widget.proto !== undefined) {
-                    /* ... create a new proto from the definition ... */
-                    ret = $("<div>").html(replaceVariables(widget.proto));
-                    /* ... and if a key was provided ... */
-                    if (widget.key !== undefined)
-                        /* ... cache a copy of the proto under that key */
-                        $.mobile.tizen._widgetPrototypes[widget.key] = ret.clone();
-                }
-            }
-            else
-                /* otherwise, if the proto /was/ found in the cache, return a copy of it */
-                ret = ret.clone();
-        }
+                               /* ... and if the proto was not found in the cache ... */
+                               if ( ret === undefined ) {
+                                       /* ... and a proto definition string was provided ... */
+                                       if ( widget.proto !== undefined ) {
+                                               /* ... create a new proto from the definition ... */
+                                               ret = $( "<div>" ).html(replaceVariables( widget.proto ) );
+                                               /* ... and if a key was provided ... */
+                                               if ( widget.key !== undefined ) {
+                                                       /* ... cache a copy of the proto under that key */
+                                                       $.mobile.tizen._widgetPrototypes[ widget.key ] = ret.clone();
+                                               }
+                                       }
+                               } else {
+                                       /* otherwise, if the proto /was/ found in the cache, return a copy of it */
+                                       ret = ret.clone();
+                               }
+                       }
 
-        /* If the prototype was found/created successfully ... */
-        if (ret != undefined)
-            /* ... and @ui was provided */
-            if (ui != undefined)
-                /* ... return @ui, but replace the CSS selectors it contains with the elements they select */
-                ret = fillObj(ui, ret);
+                       /* If the prototype was found/created successfully ... */
+                       if ( ret != undefined ) {
+                               /* ... and @ui was provided */
+                               if ( ui != undefined ) {
+                                       /* ... return @ui, but replace the CSS selectors it contains with the elements they select */
+                                       ret = fillObj( ui, ret );
+                               }
+                       }
 
-        return ret;
-    }
-});
-})(jQuery);
+                       return ret;
+               }
+       });
+}( jQuery ) );
 
 //>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude);
 } );