[Kimchi-devel] [PATCH] Plugins UI: Correctly Load Plugin Tabs

Hongliang Wang hlwang at linux.vnet.ibm.com
Thu Apr 3 08:02:40 UTC 2014


On 04/03/2014 03:51 PM, zhshzhou at linux.vnet.ibm.com wrote:
> From: Zhou Zheng Sheng <zhshzhou at linux.vnet.ibm.com>
>
> In ui/js/src/kimchi.main.js we fetch all plugin tabs and concat them to
> the tabs array. However array.concat does not work in place, it creates
> a new array to store the result, so it does not correctly update the
> tabs array. The plugin tabs are not loaded at all.
>
> This patch fixes the problem by using tabs.push.apply(tabs, pluginTabs) .
>
> Signed-off-by: Zhou Zheng Sheng <zhshzhou at linux.vnet.ibm.com>
> ---
>   ui/js/src/kimchi.main.js | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/ui/js/src/kimchi.main.js b/ui/js/src/kimchi.main.js
> index 9b0acbf..78206bf 100644
> --- a/ui/js/src/kimchi.main.js
> +++ b/ui/js/src/kimchi.main.js
> @@ -72,7 +72,7 @@ kimchi.main = function() {
>                   var url = kimchi.template(pluginConfigUrl, {
>                       plugin: p
>                   });
> -                tabs.concat(retrieveTabs(url));

> +                tabs.push.apply(tabs, retrieveTabs(url));
No. It's wrong. retrieveTabs() returns an *array*. Consider this: we 
have 3 plugins, and we'll load them one by one.
1) For the first time, we assign the result of retrieveTabs() to 
firstTabsArray = ['Admin Function1', 'Admin Function2']. Then we simply 
copy the reference from firstTabsArray to tabs.
2) For the second time, we get secondTabsArray = ['Admin Function3', 
'Admin Function4']. Then tabs should be: ['Admin Function1', 'Admin 
Function2', 'Admin Function3', 'Admin Function4'].
3) For the third time, we get thirdTabsArray = ['Admin Function5', 
'Admin Function6']. Then tabs should be: ['Admin Function1', 'Admin 
Function2', 'Admin Function3', 'Admin Function4', 'Admin Function5', 
'Admin Function6'].

     If using array.push(), the final result of tabs will become: [ 
['Admin Function1', 'Admin Function2'], ['Admin Function3', 'Admin 
Function4'], ['Admin Function5', 'Admin Function6'] ].
>               });
>
>               var firstTabPath = tabs[0] && tabs[0]['path'];

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/kimchi-devel/attachments/20140403/9d682156/attachment-0001.html>


More information about the Kimchi-devel mailing list