[Kimchi-devel] [PATCH] UI: List Kimchi Peers
Yu Xin Huo
huoyuxin at linux.vnet.ibm.com
Wed Aug 27 07:51:42 UTC 2014
On 8/27/2014 3:56 AM, Aline Manera wrote:
>
> The "Peers" menu blinks until get the response from server.
> Couldn't we always display the "Peers" menu and add a loading icon
> (Searching...) until get the response? And if any peer was found show
> a message "No peers found". ?
> That way we avoid the menu blinks.
in v2, differentiated "peers disabled" from "no peers".
>
> On 08/26/2014 06:14 AM, huoyuxin at linux.vnet.ibm.com wrote:
>> From: Yu Xin Huo <huoyuxin at linux.vnet.ibm.com>
>>
>> Signed-off-by: Yu Xin Huo <huoyuxin at linux.vnet.ibm.com>
>> ---
>> ui/css/theme-default/topbar.css | 37
>> ++++++++++++++++++++++++++++++++++++-
>> ui/js/src/kimchi.api.js | 14 ++++++++++++++
>> ui/js/src/kimchi.main.js | 13 +++++++++++++
>> ui/pages/kimchi-ui.html.tmpl | 7 +++++++
>> 4 files changed, 70 insertions(+), 1 deletions(-)
>>
>> diff --git a/ui/css/theme-default/topbar.css
>> b/ui/css/theme-default/topbar.css
>> index bed4e19..8f2f79a 100644
>> --- a/ui/css/theme-default/topbar.css
>> +++ b/ui/css/theme-default/topbar.css
>> @@ -114,7 +114,7 @@
>> cursor: pointer;
>> display: block;
>> position: relative;
>> - height: 48px;
>> + height: 52px;
>> margin: 0 12px;
>> }
>>
>> @@ -174,3 +174,38 @@ a#btn-logout:hover {
>> display: none;
>> }
>> }
>> +
>> +.peers {
>> + color: white;
>> + cursor: pointer;
>> + height: 52px;
>> + margin: 0 12px;
>> + display: none;
>> +}
>> +
>> +.peers span {
>> + margin-top: 25px;
>> +}
>> +
>> +.peers .arrow {
>> + border: 6px solid transparent;
>> + border-bottom: none;
>> + border-top-color: white;
>> + display: inline-block;
>> + width: 0;
>> +}
>> +
>> +.peers .drowdown {
>> + top: 45px;
>> + right: 110px;
>> + color: black;
>> + padding: 10px 15px;
>> + white-space: nowrap;
>> + line-height: 12px;
>> + width: inherit;
>> +}
>> +
>> +.peers .drowdown a {
>> + display: block;
>> + padding: 10px;
>> +}
>> diff --git a/ui/js/src/kimchi.api.js b/ui/js/src/kimchi.api.js
>> index 4562992..8966cff 100644
>> --- a/ui/js/src/kimchi.api.js
>> +++ b/ui/js/src/kimchi.api.js
>> @@ -1098,5 +1098,19 @@ var kimchi = {
>> kimchi.message.error(data.responseJSON.reason);
>> }
>> });
>> + },
>> +
>> + getPeers : function(suc, err) {
>> + kimchi.requestJSON({
>> + url : kimchi.url + 'peers',
>> + type : 'GET',
>> + contentType : 'application/json',
>> + dataType : 'json',
>> + resend : true,
>> + success : suc,
>> + error : err ? err : function(data) {
>> + kimchi.message.error(data.responseJSON.reason);
>> + }
>> + });
>> }
>> };
>> diff --git a/ui/js/src/kimchi.main.js b/ui/js/src/kimchi.main.js
>> index ba54b26..ea9951b 100644
>> --- a/ui/js/src/kimchi.main.js
>> +++ b/ui/js/src/kimchi.main.js
>> @@ -20,10 +20,23 @@ kimchi.tabMode = {};
>> kimchi.capabilities = undefined;
>> kimchi.getCapabilities(function(result) {
>> kimchi.capabilities = result;
>> + kimchi.setupPeers();
>> }, function() {
>> kimchi.capabilities = {};
>> });
>>
>> +kimchi.setupPeers = function(){
>> + if(kimchi.capabilities.federation=="enable"){
>> + kimchi.getPeers(function(data){
>> + if(data.length>0)
>> + $('#peers').css("display", "block");
>> + for(var i=0; i<data.length; i++){
>> + $('.drowdown', '#peers').append("<a
>> href='"+data[i]+"' target='_blank'>"+data[i]+"</a>");
>> + }
>> + });
>> + }
>> +};
>> +
>> kimchi.main = function() {
>> kimchi.popable();
>>
>> diff --git a/ui/pages/kimchi-ui.html.tmpl b/ui/pages/kimchi-ui.html.tmpl
>> index 7bdf441..4e7b3af 100644
>> --- a/ui/pages/kimchi-ui.html.tmpl
>> +++ b/ui/pages/kimchi-ui.html.tmpl
>> @@ -71,6 +71,13 @@
>> <h1 id="logo"><img alt="Project Kimchi"
>> src="images/theme-default/logo-white.png"></h1>
>> <ul class="nav-top">
>> <li>
>> + <div id="peers" class="peers popable">
>> + <span>$_("Peers")</span>
>> + <span class="arrow"></span>
>> + <div class="drowdown popover right-side"></div>
>> + </div>
>> + </li>
>> + <li>
>> <div id="user" class="popable">
>> <span id="user-icon"></span>
>> <span id="user-name"
>> class="empty-when-logged-off"></span>
>
More information about the Kimchi-devel
mailing list