[PATCH] [Kimchi] Save last view for templates - fix for issue# 799

This patch addresses github issue# 799. The last view of the Templates tab is not being remembered either after switching tabs or exiting Kimchi. When switching view from List to Gallery (or vice versa), the next time the user goes back to the Templates tab, whatever view it was last on should be what is shown when going back to the Templates tab. Thanks to samhenri in helping resolve the last issue. Signed-off-by: Socorro Stoppler <socorro@linux.vnet.ibm.com> --- ui/js/src/kimchi.template_main.js | 63 +++++++++++++++++++++++++++++++++++---- 1 file changed, 57 insertions(+), 6 deletions(-) diff --git a/ui/js/src/kimchi.template_main.js b/ui/js/src/kimchi.template_main.js index 22a3509..ed49246 100644 --- a/ui/js/src/kimchi.template_main.js +++ b/ui/js/src/kimchi.template_main.js @@ -30,7 +30,7 @@ kimchi.doListTemplates = function() { } listHtml += wok.substitute(templateHtml, value); }); - $('.wok-vm-list').removeClass('hidden'); + $('ul#templates-grid').removeClass('hidden'); $('#templates-container').removeClass('hidden'); $('#templateList').html(listHtml); kimchi.templateBindClick(); @@ -39,7 +39,7 @@ kimchi.doListTemplates = function() { } else { $('#templateList').html(''); $('#noTemplates').show(); - $('.wok-vm-list').addClass('hidden'); + $('ul#templates-grid').addClass('hidden'); $('#templates-container').addClass('hidden'); $('.wok-mask').fadeOut(300, function() {}); } @@ -58,10 +58,47 @@ kimchi.doListTemplates = function() { }; kimchi.toggleTemplatesGallery = function() { - $(".wok-vm-list, .wok-vm-gallery").toggleClass("wok-vm-list wok-vm-gallery"); - $(".wok-list, .wok-gallery").toggleClass("wok-list wok-gallery"); - var text = $('#gallery-table-button span.text').text(); - $('#gallery-table-button span.text').text(text == i18n['KCHTMPL6005M'] ? i18n['KCHTMPL6004M'] : i18n['KCHTMPL6005M']); + $(".wok-vm-list, .wok-vm-gallery").toggleClass("wok-vm-list wok-vm-gallery"); + $(".wok-list, .wok-gallery").toggleClass("wok-list wok-gallery"); + var text = $('#gallery-table-button span.text').text(); + $('#gallery-table-button span.text').text(text == i18n['KCHTMPL6005M'] ? i18n['KCHTMPL6004M'] : i18n['KCHTMPL6005M']); + var buttonText = $('#gallery-table-button span.text').text(); + if (buttonText.indexOf("Gallery") !== -1) { + // Currently in list view + kimchi.setTemplateView("templateView", "list"); + } else { + // Currently in gallery + kimchi.setTemplateView("templateView", "gallery"); + } +}; + +kimchi.setTemplateView = function(name, value) { + window.localStorage.setItem(name, value); +}; + +kimchi.readTemplateView = function(name) { + var viewName = window.localStorage.getItem(name); + if (viewName !== "") { + return viewName; + } else { + return null; + } +}; + +kimchi.showTemplateGallery = function() { + $(".wok-vm-list").addClass("wok-vm-gallery"); + $(".wok-list").addClass("wok-gallery"); + $(".wok-vm-gallery").removeClass("wok-vm-list"); + $(".wok-gallery").removeClass("wok-list"); + $('#gallery-table-button span.text').text(i18n['KCHTMPL6004M']); +}; + +kimchi.showTemplateList = function() { + $(".wok-vm-gallery").addClass("wok-vm-list"); + $(".wok-gallery").addClass("wok-list"); + $(".wok-vm-list").removeClass("wok-vm-gallery"); + $(".wok-list").removeClass("wok-gallery"); + $('#gallery-table-button span.text').text(i18n['KCHTMPL6005M']); }; kimchi.templateBindClick = function() { @@ -117,6 +154,20 @@ kimchi.hideTitle = function() { kimchi.template_main = function() { $('body').addClass('wok-list'); + var viewFound = kimchi.readTemplateView("templateView"); + if (viewFound) { + if(viewFound === "gallery") { + // should be showing gallery + kimchi.showTemplateGallery(); + } else { + // Should be showing list + kimchi.showTemplateList(); + } + } else { + // Default to showing list + kimchi.showTemplateList(); + } + if (wok.tabMode['templates'] === 'admin') { $('.tools').attr('style', 'display'); $("#template-add").on("click", function(event) { -- 2.5.0

Applied. Thanks. Regards, Aline Manera
participants (2)
-
Aline Manera
-
Socorro Stoppler