From: Przemyslaw Ciezkowski Date: Thu, 9 May 2013 14:50:50 +0000 (+0200) Subject: LoadPrototype: Fix jslint errors X-Git-Tag: 2.2_release~1^2~20 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7ad74f1ae0b3a8713a60b240a734c0e63975f9b8;p=framework%2Fweb%2Fweb-ui-fw.git LoadPrototype: Fix jslint errors Fixed indentations, added required spaces. Change-Id: I3e2f7527ff549ebfd9fdf2550c069e8a721e742e --- diff --git a/src/js/jquery.mobile.tizen.loadprototype.js b/src/js/jquery.mobile.tizen.loadprototype.js index b14b860..8797e88 100644 --- a/src/js/jquery.mobile.tizen.loadprototype.js +++ b/src/js/jquery.mobile.tizen.loadprototype.js @@ -6,146 +6,149 @@ 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 $("
") 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
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: "", - * element2: "", - * group1: { - * group1element1: "", - * group1element1: "" - * } - * ... - * } - * - * 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 $("
") 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
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: "", + * element2: "", + * group1: { + * group1element1: "", + * group1element1: "" + * } + * ... + * } + * + * 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] = $("
").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 ] = $( "
" ).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 = $("
").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 = $( "
" ).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); } );