On Jan 2, 2012, at 5:50 PM, tsedovic(a)redhat.com wrote:
From: Tomas Sedovic <tomas(a)sedovic.cz>
https://bugzilla.redhat.com/show_bug.cgi?id=767100
The uptime output was too long when the value exceeded 1 day. Moreover, it was
not using i18n which made it untranslatable.
Now it uses standard I18n values for displaying time difference, which
incidentally makes the output long enough to fit into the pretty view
deployment boxes.
The boxes are a bit wider, too. That will hopefully make the translators' jobs
a bit easier.
Dunno if it's related, but Deltacloud provide 'launch_time' attribute for each
instance.
Might be useful here :-)
Also if you want to just show this uptime in Conductor, I would recommend looking
at "http://mifo.sk/jquery.cuteTime.min.js". This library transforms:
<time pubdate='pubdate'>2011-08-10T12:00:00+00:00</time>
to '4 months ago' :-)
-- Michal
---
src/app/helpers/application_helper.rb | 33 +++++++++++++++++++--------------
src/app/stylesheets/layout.scss | 4 ++--
src/config/locales/en.yml | 5 +++++
3 files changed, 26 insertions(+), 16 deletions(-)
diff --git a/src/app/helpers/application_helper.rb
b/src/app/helpers/application_helper.rb
index 654013c..9e24112 100644
--- a/src/app/helpers/application_helper.rb
+++ b/src/app/helpers/application_helper.rb
@@ -112,21 +112,26 @@ module ApplicationHelper
title.split(' ').join('_').downcase
end
- def count_uptime(time)
- if time
- result_string = []
-
- seconds = time % 60
- time = (time - seconds) / 60
- minutes = time % 60
- time = (time - minutes) / 60
- hours = time % 24
- time = (time - hours) / 24
- days = time % 7
-
- result_string<< "#{days.to_i} #{(days.to_i > 1 ? 'days' :
'day')}" if days != 0
-
result_string<<"#{"%02d"%hours.to_i}:#{"%02d"%minutes.to_i}:#{"%02d"%seconds.to_i}"
- result_string.join(", ")
+ def count_uptime(delta_seconds)
+ if delta_seconds
+ seconds = delta_seconds.to_i
+ minutes = seconds / 60
+ hours = minutes / 60
+ days = hours / 24
+ months = days / 31
+
+ case
+ when months > 0
+ I18n.t('datetime.distance_in_words.x_months', :count => months)
+ when days > 0
+ I18n.t('datetime.distance_in_words.x_days', :count => days)
+ when hours > 0
+ I18n.t('datetime.distance_in_words.x_hours', :count => hours)
+ when minutes > 0
+ I18n.t('datetime.distance_in_words.x_minutes', :count => minutes)
+ else
+ I18n.t('datetime.distance_in_words.x_seconds', :count => seconds)
+ end
else
"N/A"
end
diff --git a/src/app/stylesheets/layout.scss b/src/app/stylesheets/layout.scss
index 18a7c53..5417d36 100644
--- a/src/app/stylesheets/layout.scss
+++ b/src/app/stylesheets/layout.scss
@@ -2176,7 +2176,7 @@ $font-family-primary: Helvetica, Arial, "Lucida Grande",
sans-serif;
/* todo: move this elsewhere */
$deployment-large-height: 154px;
-$deployment-large-width: 154px;
+$deployment-large-width: 166px;
$deployment-large-padding: 8px;
ul.deployment-array.large{
@@ -2240,7 +2240,7 @@ ul.deployment-array.large{
}
li.deployment + li.deployment{
- margin-left: 38px;
+ margin-left: 23px;
}
li.deployment.pending, li.deployment.alert, li.deployment.failure{
diff --git a/src/config/locales/en.yml b/src/config/locales/en.yml
index 94e9873..a996011 100644
--- a/src/config/locales/en.yml
+++ b/src/config/locales/en.yml
@@ -1,5 +1,10 @@
en:
dashboard: Dashboard
+ datetime:
+ distance_in_words:
+ x_hours:
+ one: 1 hour
+ other: %{count} hours
users:
users_groups: "Users & Groups"
return_to: "Return to:"
--
1.7.6.4
------------------------------------------------------
Michal Fojtik, mfojtik(a)redhat.com
Deltacloud API:
http://deltacloud.org