From 9fac22bc82db2276f5278c08c9d5553b3095e064 Mon Sep 17 00:00:00 2001 From: Kirill Zaitsev Date: Wed, 29 Jul 2015 00:59:14 +0300 Subject: [PATCH] Lint js and css files This commit lints js file of the project, fixing all of the errors reported by eslint. Makes indentation consistent. Marks 'camelcase' rule as warning (will be fixed in a separate commit, after making sure, that none of them are required in html Also fixes a typo in css. Change-Id: If53345cb8dd100dac352c0e53c1a0093d3f0c1b9 --- .eslintrc | 7 + openstack_catalog/web/static/css/theme.css | 4 +- .../web/static/js/apps-catalog.js | 475 +++++++++--------- 3 files changed, 253 insertions(+), 233 deletions(-) diff --git a/.eslintrc b/.eslintrc index ad34b11..f6306b7 100644 --- a/.eslintrc +++ b/.eslintrc @@ -4,3 +4,10 @@ extends: openstack env: # browser global variables. browser: true + +rules: + # Require camel case names + # http://eslint.org/docs/rules/camelcase + camelcase: + - 1 # report camelcase properties as warnings + - properties: "never" diff --git a/openstack_catalog/web/static/css/theme.css b/openstack_catalog/web/static/css/theme.css index 6101d5d..29fd211 100644 --- a/openstack_catalog/web/static/css/theme.css +++ b/openstack_catalog/web/static/css/theme.css @@ -25,7 +25,7 @@ a { .navbar { margin: 0; border-radius: 0; - border: none: + border: none; } .navbar-brand { width: 136px; @@ -214,4 +214,4 @@ h1 { } input[type=text] { width: 250px; -} \ No newline at end of file +} diff --git a/openstack_catalog/web/static/js/apps-catalog.js b/openstack_catalog/web/static/js/apps-catalog.js index 965f133..c19ff9a 100644 --- a/openstack_catalog/web/static/js/apps-catalog.js +++ b/openstack_catalog/web/static/js/apps-catalog.js @@ -1,316 +1,329 @@ function getUrlVars() { - var vars = {}; - var parts = window.location.href.replace(/[?&#]+([^=&]+)=([^&#]*)/gi, function (m, key, value) { - vars[key] = decodeURIComponent(value); - }); - return vars; + "use strict"; + var vars = {}; + window.location.href.replace(/[?&#]+([^=&]+)=([^&#]*)/gi, function (m, key, value) { + vars[key] = decodeURIComponent(value); + }); + return vars; } function make_uri(uri, options) { - var ops = {}; - $.extend(ops, getUrlVars()); - if (options != null) { - $.extend(ops, options); - } - var str = $.map(ops, function (val, index) { - return index + "=" + encodeURIComponent(val).toLowerCase(); - }).join("&"); + "use strict"; + var ops = {}; + $.extend(ops, getUrlVars()); + if (options !== null) { + $.extend(ops, options); + } + var str = $.map(ops, function (val, index) { + return index + "=" + encodeURIComponent(val).toLowerCase(); + }).join("&"); - return (str == "") ? uri : uri + "?" + str; + return (str === "") ? uri : uri + "?" + str; } function reload(extra) { - window.location.search = make_uri ("", extra); + "use strict"; + window.location.search = make_uri ("", extra); } function update_url(extra) { - var ops = {}; - $.extend(ops, getUrlVars ()); - if (extra != null) { - $.extend(ops, extra); - } - window.location.hash = $.map(ops, function (val, index) { - return val ? (index + "=" + encodeURIComponent(val)) : null; - }).join("&") + var ops = {}; + $.extend(ops, getUrlVars ()); + if (extra !== null) { + $.extend(ops, extra); + } + window.location.hash = $.map(ops, function (val, index) { + return val ? (index + "=" + encodeURIComponent(val)) : null; + }).join("&"); } function initSingleSelector(selector_id, property, dataSet, update_handler) { - var values = {}; + var values = {}; + var result = []; + var value, key; - for (var i = 0; i < dataSet.length; i++) { - var element = dataSet[i][property]; - if (element instanceof Array) { - for (var key in element) - values[element[key]] = element[key]; - } else - values[element] = element; + for (var i = 0; i < dataSet.length; i++) { + var element = dataSet[i][property]; + if (element instanceof Array) { + for (key in element) + if (key) { + values[element[key]] = element[key]; + } + } else { + values[element] = element; + } + } + + for (value in values) + if (value) { + result.push({"id": value, "text": value}); } - var result = []; - for (var value in values) - if (value) - result.push({"id": value, "text": value}); - - $("#" + selector_id). - val (getUrlVars()[property]). - on("select2-selecting", function (e) { - var options = {}; - options[property] = e.val; - update_url (options); - update_handler (); - }). - on("select2-removed", function (e) { - var options = {}; - options[property] = ''; - update_url (options); - update_handler (); - }). - select2({data: result, allowClear: true}); + $("#" + selector_id). + val (getUrlVars()[property]). + on("select2-selecting", function (e) { + var options = {}; + options[property] = e.val; + update_url (options); + update_handler (); + }). + on("select2-removed", function (e) { + var options = {}; + options[property] = ''; + update_url (options); + update_handler (); + }). + select2({data: result, allowClear: true}); } function filterData (tableData, filters) { - var filteredData = []; + var filteredData = []; + var key, column; - for (var i = 0; i < tableData.length; i++) { - var row = tableData[i]; - var filtered = true; + for (var i = 0; i < tableData.length; i++) { + var row = tableData[i]; + var filtered = true; - for (var column in filters) { - if (column in row) { - if (row[column] instanceof Array) { - filtered = false; - for (var key in row[column]) - if (filters[column] == row[column][key]) - filtered = true; - } else { - if (filters[column] != row[column]) - filtered = false; - } - } - if (filtered == false) - break; - } - - if (filtered) { - filteredData.push(row); + for (column in filters) { + if (column in row) { + if (row[column] instanceof Array) { + filtered = false; + for (key in row[column]) + if (filters[column] == row[column][key]) { + filtered = true; + } + } else { + if (filters[column] != row[column]) { + filtered = false; + } } + } + if (filtered == false) { + break; + } } - return filteredData; + if (filtered) { + filteredData.push(row); + } + } + + return filteredData; } function populate_table (table_id, table_column_names, tableData) { - var tableColumns = []; - for (var i = 0; i < table_column_names.length; i++) { - tableColumns.push({"mData": table_column_names[i]}); - for (var j = 0; j < tableData.length; j++) { - if (!(table_column_names[i] in tableData[j])) - tableData[j][table_column_names[i]] = ""; - } + var tableColumns = []; + for (var i = 0; i < table_column_names.length; i++) { + tableColumns.push({"mData": table_column_names[i]}); + for (var j = 0; j < tableData.length; j++) { + if (!(table_column_names[i] in tableData[j])) { + tableData[j][table_column_names[i]] = ""; + } } + } - if (table_id) { - $("#" + table_id).dataTable({ - "aLengthMenu": [ - [5, 10, 25, 50, -1], - [5, 10, 25, 50, "All"] - ], - "bDestroy": true, - "iDisplayLength": -1, - "bAutoWidth": false, - "bPaginate": true, - "pagingType": "full_numbers", - "aaData": tableData, - "aoColumns": tableColumns - }); - } + if (table_id) { + $("#" + table_id).dataTable({ + "aLengthMenu": [ + [5, 10, 25, 50, -1], + [5, 10, 25, 50, "All"] + ], + "bDestroy": true, + "iDisplayLength": -1, + "bAutoWidth": false, + "bPaginate": true, + "pagingType": "full_numbers", + "aaData": tableData, + "aoColumns": tableColumns + }); + } } function showInfoDialog (tab, info) { - $("#info-container").empty(); - $("#" + tab + "-info").tmpl(info).appendTo("#info-container"); - $("#info-dialog").dialog("open"); - $("button").focus (); + $("#info-container").empty(); + $("#" + tab + "-info").tmpl(info).appendTo("#info-container"); + $("#info-dialog").dialog("open"); + $("button").focus (); } function showInfoPage (tab, info) { - $("#info-content").empty(); - $("#" + tab + "-info").tmpl(info).appendTo("#info-content"); - $( ".content" ).hide (); - $( "#info-page" ).show (); - update_url ({ tab : tab, asset : info.name}); - $(".value").replaceWith (function(idx, element) { - return element.replace (/https?:\/\/[^ \t\n\r]+/gi, '$&'); - }); + $("#info-content").empty(); + $("#" + tab + "-info").tmpl(info).appendTo("#info-content"); + $( ".content" ).hide (); + $( "#info-page" ).show (); + update_url ({ tab : tab, asset : info.name}); + $(".value").replaceWith (function(idx, element) { + return element.replace (/https?:\/\/[^ \t\n\r]+/gi, '$&'); + }); } function setupInfoHandler (tab, element_id, info) { - info.name_html = "" + info.name + ""; + info.name_html = "" + info.name + ""; - $("#" + tab + "-table").on("click", "#" + tab + "-" + element_id, function (event) { - event.preventDefault(); - event.stopPropagation(); + $("#" + tab + "-table").on("click", "#" + tab + "-" + element_id, function (event) { + event.preventDefault(); + event.stopPropagation(); - showInfoPage (tab, info); - }); + showInfoPage (tab, info); + }); } var glance_images = { images: [] }; function show_glance_images () { - populate_table ("glance-images-table", - ["name_html", "description", "disk_format", "license"], - filterData (glance_images["images"], getUrlVars ())); + populate_table ("glance-images-table", + ["name_html", "description", "disk_format", "license"], + filterData (glance_images.images, getUrlVars ())); } var heat_templates = { templates: [] }; function show_heat_templates () { - populate_table ("heat-templates-table", - ["name_html", "description", "release_html", "format"], - filterData (heat_templates["templates"], getUrlVars ())); + populate_table ("heat-templates-table", + ["name_html", "description", "release_html", "format"], + filterData (heat_templates.templates, getUrlVars ())); } var murano_apps = { applications: [] }; function show_murano_apps () { - populate_table ("murano-apps-table", - ["name_html", "description", "release_html", "format"], - filterData (murano_apps["applications"], getUrlVars ())); + populate_table ("murano-apps-table", + ["name_html", "description", "release_html", "format"], + filterData (murano_apps.applications, getUrlVars ())); } function initTabs () { - $( "ul.nav > li > a" ).on("click", function (event) { - event.preventDefault (); - }); - $( "ul.nav > li" ).not(":last-child").on("click", function (event) { - update_url ({ tab : this.children[0].hash.substring (1), asset: "" }); - }); - $( "ul.nav > li:last-child").on("click", function (event) { - window.open('https://wiki.openstack.org/wiki/App-Catalog#How_to_contribute', '_blank'); - }); + $( "ul.nav > li > a" ).on("click", function (event) { + event.preventDefault (); + }); + $( "ul.nav > li" ).not(":last-child").on("click", function (event) { + update_url ({ tab : this.children[0].hash.substring (1), asset: "" }); + }); + $( "ul.nav > li:last-child").on("click", function (event) { + window.open('https://wiki.openstack.org/wiki/App-Catalog#How_to_contribute', '_blank'); + }); } function show_asset (tab, tableData) { - var options = getUrlVars (); - if ((tab == options["tab"]) && ("asset" in options)) { - for (var i = 0; i < tableData.length; ++i) - if (tableData[i].name == options["asset"]) { - showInfoPage (tab, tableData[i]); - } + var options = getUrlVars (); + if ((tab == options.tab) && ("asset" in options)) { + for (var i = 0; i < tableData.length; ++i) { + if (tableData[i].name == options.asset) { + showInfoPage (tab, tableData[i]); + } } + } } function initMarketPlace () { - navigate (); - initTabs (); - $( ".inner" ).matchHeight (); - - $("#info-dialog").dialog({ - autoOpen: false, - width: "70%", - modal: true, - buttons: { - Close: function () { - $(this).dialog("close"); - } - }, - close: function () { } + navigate (); + initTabs (); + $( ".inner" ).matchHeight (); + + $("#info-dialog").dialog({ + autoOpen: false, + width: "70%", + modal: true, + buttons: { + Close: function () { + $(this).dialog("close"); + } + }, + close: function () { } + }); + + $.ajax({ url: "static/glance_images.yaml" }). + done (function (data) { + try { + glance_images = jsyaml.safeLoad (data); + } catch (e) { + } + var tableData = glance_images.images; + for (var i = 0; i < tableData.length; i++) { + setupInfoHandler ("glance-images", i, tableData[i]); + } + + show_asset ("glance-images", tableData); + show_glance_images (); }); - $.ajax({ url: "static/glance_images.yaml" }). - done (function (data) { - try { - glance_images = jsyaml.safeLoad (data); - } catch (e) { - console.log ("Failed to load YAML\n" + data); - } - var tableData = glance_images["images"]; - for (var i = 0; i < tableData.length; i++) { - setupInfoHandler ("glance-images", i, tableData[i]); - } - - show_asset ("glance-images", tableData); - show_glance_images (); - }); + $.ajax({ url: "static/heat_templates.yaml" }). + done (function (data) { + try { + heat_templates = jsyaml.safeLoad (data); + } catch (e) { + } + var tableData = heat_templates.templates; + for (var i = 0; i < tableData.length; i++) { + tableData[i].release_html = tableData[i].release.join (", "); + setupInfoHandler ("heat-templates", i, tableData[i]); + } - $.ajax({ url: "static/heat_templates.yaml" }). - done (function (data) { - try { - heat_templates = jsyaml.safeLoad (data); - } catch (e) { - console.log ("Failed to load YAML\n" + data); - } - var tableData = heat_templates["templates"]; - for (var i = 0; i < tableData.length; i++) { - tableData[i].release_html = tableData[i].release.join (", "); - setupInfoHandler ("heat-templates", i, tableData[i]); - } - - show_asset ("heat-templates", tableData); - show_heat_templates (); + show_asset ("heat-templates", tableData); + show_heat_templates (); - initSingleSelector ("heat-release", "release", tableData, show_heat_templates); - }); + initSingleSelector ("heat-release", "release", tableData, show_heat_templates); + }); - $.ajax({ url: "static/murano_apps.yaml" }). - done (function (data) { - try { - murano_apps = jsyaml.safeLoad (data); - } catch (e) { - console.log ("Failed to load YAML\n" + e); - } - var tableData = murano_apps["applications"]; - for (var i = 0; i < tableData.length; i++) { - tableData[i].release_html = tableData[i].release.join (", "); - setupInfoHandler ("murano-apps", i, tableData[i]); - } - - show_asset ("murano-apps", tableData); - show_murano_apps (); + $.ajax({ url: "static/murano_apps.yaml" }). + done (function (data) { + try { + murano_apps = jsyaml.safeLoad (data); + } catch (e) { + } + var tableData = murano_apps.applications; + for (var i = 0; i < tableData.length; i++) { + tableData[i].release_html = tableData[i].release.join (", "); + setupInfoHandler ("murano-apps", i, tableData[i]); + } - initSingleSelector ("murano-release", "release", tableData, show_murano_apps); - }); + show_asset ("murano-apps", tableData); + show_murano_apps (); + + initSingleSelector ("murano-release", "release", tableData, show_murano_apps); + }); } function navigate () { - var tabs_list = $("#navbar")[0].children; - var selected_tab_name = null; - var options = getUrlVars (); - - $( "ul.nav > li" ).removeClass ("active"); - if ("tab" in options) { - for (var i = 0; i < tabs_list.length; ++i) { - var tab_name = tabs_list[i].children[0].hash.substring (1); - if (tab_name == options["tab"]) { - selected_tab_name = tab_name; - if (!("asset" in options)) - tabs_list[i].className = "active"; - break; - } - } - } - - $( ".content" ).hide (); - - if (selected_tab_name == null) { - $( "#landing-page" ).show (); - } else if ("asset" in options) { - show_asset ("murano-apps", murano_apps["applications"]); - show_asset ("heat-templates", heat_templates["templates"]); - show_asset ("glance-images", glance_images["images"]); - } else { - $( "#" + selected_tab_name ).show (); - } -} + var tabs_list = $("#navbar")[0].children; + var selected_tab_name = null; + var options = getUrlVars (); -window.onhashchange = navigate + $( "ul.nav > li" ).removeClass ("active"); + if ("tab" in options) { + for (var i = 0; i < tabs_list.length; ++i) { + var tab_name = tabs_list[i].children[0].hash.substring (1); + if (tab_name == options.tab) { + selected_tab_name = tab_name; + if (!("asset" in options)) { + tabs_list[i].className = "active"; + } + break; + } + } + } + + $( ".content" ).hide (); + + if (selected_tab_name === null) { + $( "#landing-page" ).show (); + } else if ("asset" in options) { + show_asset ("murano-apps", murano_apps.applications); + show_asset ("heat-templates", heat_templates.templates); + show_asset ("glance-images", glance_images.images); + } else { + $( "#" + selected_tab_name ).show (); + } +} + +window.onhashchange = navigate;