diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/assets/stylesheets/application.css.scss.erb | 1 | ||||
| -rw-r--r-- | app/assets/stylesheets/modules/index_item.css.scss | 7 | ||||
| -rw-r--r-- | app/assets/stylesheets/modules/job_status_colors.css.scss | 2 | ||||
| -rw-r--r-- | app/assets/stylesheets/modules/job_status_title.css.scss | 3 | ||||
| -rw-r--r-- | app/assets/stylesheets/modules/progress_bars.css.scss | 27 | ||||
| -rw-r--r-- | app/assets/stylesheets/vendor/bootstrap_changes.css.scss | 2 | ||||
| -rw-r--r-- | app/helpers/job_status_icon_helper.rb | 4 | ||||
| -rw-r--r-- | app/helpers/progress_bar_helper.rb | 43 | ||||
| -rw-r--r-- | app/models/concerns/report_concern.rb | 34 | ||||
| -rw-r--r-- | app/views/exports/show.html.erb | 4 | ||||
| -rw-r--r-- | app/views/imports/show.html.erb | 4 |
11 files changed, 88 insertions, 43 deletions
diff --git a/app/assets/stylesheets/application.css.scss.erb b/app/assets/stylesheets/application.css.scss.erb index 66217204a..00ca42512 100644 --- a/app/assets/stylesheets/application.css.scss.erb +++ b/app/assets/stylesheets/application.css.scss.erb @@ -14,6 +14,7 @@ $body-bg: #eee; @import "modules/index_item"; @import "modules/icons"; @import "modules/devise"; +@import "modules/progress_bars"; // Partials @import "partials/header"; diff --git a/app/assets/stylesheets/modules/index_item.css.scss b/app/assets/stylesheets/modules/index_item.css.scss index 251b96d48..e281854a8 100644 --- a/app/assets/stylesheets/modules/index_item.css.scss +++ b/app/assets/stylesheets/modules/index_item.css.scss @@ -42,8 +42,11 @@ p.format{ color: $gray; - margin: 0px 0px 0px 0px; - font-size: 10px; + margin: 3px 0px 0px 0px; + + .label{ + font-size: 10px; + } } @import "job_status_colors" diff --git a/app/assets/stylesheets/modules/job_status_colors.css.scss b/app/assets/stylesheets/modules/job_status_colors.css.scss index 833b6ab29..3c9086471 100644 --- a/app/assets/stylesheets/modules/job_status_colors.css.scss +++ b/app/assets/stylesheets/modules/job_status_colors.css.scss @@ -1,4 +1,4 @@ .terminated{ color: $brand-success; } -.processed{ color: $brand-warning; } +.processed{ color: $brand-info; } .aborted{ color: $brand-danger; } diff --git a/app/assets/stylesheets/modules/job_status_title.css.scss b/app/assets/stylesheets/modules/job_status_title.css.scss index 0c2f74705..65ce53efe 100644 --- a/app/assets/stylesheets/modules/job_status_title.css.scss +++ b/app/assets/stylesheets/modules/job_status_title.css.scss @@ -2,7 +2,8 @@ h2{ i{ margin: 0 5px 0 0; } p.format{ + margin: 5px 0 0 0; color: $gray; - font-size: 12px; + font-size: 14px; } } diff --git a/app/assets/stylesheets/modules/progress_bars.css.scss b/app/assets/stylesheets/modules/progress_bars.css.scss new file mode 100644 index 000000000..690a0f4ac --- /dev/null +++ b/app/assets/stylesheets/modules/progress_bars.css.scss @@ -0,0 +1,27 @@ +.progress_bars{ + width: 50%; + + margin-bottom: 10px; + + .progress { + position: relative; + height: 25px; + + .progress-type { + position: absolute; + left: 0px; + font-weight: 800; + width: 30%; + padding: 3px 30px 2px 10px; + color: rgb(255, 255, 255); + background-color: rgba(25, 25, 25, 0.2); + } + + .progress-completed { + position: absolute; + right: 0px; + font-weight: 800; + padding: 3px 10px 2px; + } + } +} diff --git a/app/assets/stylesheets/vendor/bootstrap_changes.css.scss b/app/assets/stylesheets/vendor/bootstrap_changes.css.scss index 597c9897d..67cf90ae4 100644 --- a/app/assets/stylesheets/vendor/bootstrap_changes.css.scss +++ b/app/assets/stylesheets/vendor/bootstrap_changes.css.scss @@ -31,4 +31,4 @@ .validity_regular { color: $brand-success; } -}
\ No newline at end of file +} diff --git a/app/helpers/job_status_icon_helper.rb b/app/helpers/job_status_icon_helper.rb index 0e8f05e90..4ac6670ec 100644 --- a/app/helpers/job_status_icon_helper.rb +++ b/app/helpers/job_status_icon_helper.rb @@ -8,14 +8,14 @@ module JobStatusIconHelper title = "" if %w{ aborted canceled }.include?(status) title += "<span class='name aborted'><i class='fa fa-times'></i>" - elsif %w{ created scheduled }.include?(status) + elsif %w{ started scheduled }.include?(status) title += "<span class='name processed'><i class='fa fa-spinner fa-spin'></i>" elsif %w{ terminated}.include?(status) title += "<span class='name terminated'><i class='fa fa-check'></i>" end title += "#{object_name} #{truncate(name, :length => 20)}</span>" - title += "<p class='format'>[#{object.format.upcase}]</p>" if object.format.present? + title += "<p class='format'><span class='label label-default'>#{t("enumerize.data_format.#{object.format}")}</span></p>" if object.format.present? title.html_safe end diff --git a/app/helpers/progress_bar_helper.rb b/app/helpers/progress_bar_helper.rb index e4102027a..246cbcfd9 100644 --- a/app/helpers/progress_bar_helper.rb +++ b/app/helpers/progress_bar_helper.rb @@ -1,41 +1,34 @@ +# coding: utf-8 module ProgressBarHelper - - def percentage_progress(object_model, report) - if %w{ aborted canceled terminated }.include? object_model.status - percentage_progress = "100" - elsif object_model.status == "started" && report.total_steps != 0 - percentage_progress = "#{report.current_step / report.total_steps}" - else # %w{ scheduled nil }.include? object_model.status - percentage_progress = "0" - end - end def progress_bar_tag(object_model) - puts object_model.report - report = object_model.report - percentage_progress = percentage_progress(object_model, report) - - percentage_info = "" - if %w{ aborted canceled scheduled terminated }.include? object_model.status - percentage_info = "#{percentage_progress}% " + I18n.t("#{object_model.class.to_s.downcase.pluralize}.statuses.#{object_model.status}") - elsif object_model.status == "started" - percentage_info = "Niv #{report.current_level} : #{report.current_step_name.downcase} #{report.current_step} / #{report.total_steps}" - end + report = object_model.report if %w{ aborted canceled }.include? object_model.status div_class = "progress-bar progress-bar-danger" elsif %w{ started scheduled }.include? object_model.status - div_class = "progress-bar progress-bar-info" + div_class = "progress-bar progress-bar-striped active progress-bar-info" elsif object_model.status == "terminated" div_class = "progress-bar progress-bar-success" else div_class = "progress-bar" - end + end + + if object_model.status != "terminated" + progress = content_tag :div, :class => "progress" do + concat(content_tag(:div, :class => div_class, role: "progressbar", :'aria-valuenow' => "#{report.level_progress}", :'aria-valuemin' => "0", :'aria-valuemax' => "100", :style => "width: #{report.level_progress}%;") do + end) + concat( content_tag(:span, t("progress_bar.level"), :class => "progress-type") ) + concat( content_tag(:span, "#{report.progression.current_step}/#{report.progression.steps_count}", :class => "progress-completed") ) + end - content_tag :div, :class => "progress", :title => percentage_info do - content_tag :div, :class => div_class, role: "progressbar", :'aria-valuenow' => "#{percentage_progress}", :'aria-valuemin' => "0", :'aria-valuemax' => "100", :style => "width: #{percentage_progress}%;" do - "#{percentage_progress}%" + progress += content_tag :div, :class => "progress" do + concat(content_tag( :div, :class => div_class, role: "progressbar", :'aria-valuenow' => "#{report.step_progress}", :'aria-valuemin' => "0", :'aria-valuemax' => "100", :style => "width: 100%;" ) do + end) + concat( content_tag(:span, t("progress_bar.step"), :class => "progress-type") ) + concat( content_tag(:span, "#{report.current_step.realized}/#{report.current_step.total}", :class => "progress-completed") ) end end + end end diff --git a/app/models/concerns/report_concern.rb b/app/models/concerns/report_concern.rb index af37e3d03..762c86698 100644 --- a/app/models/concerns/report_concern.rb +++ b/app/models/concerns/report_concern.rb @@ -10,25 +10,41 @@ module ReportConcern module ClassMethods end + + def progression? + datas.progression? + end + + def progression + datas.progression + end + + def percentage(a, b) + (a.to_f / b.to_f * 100).round(0) + end - def current_level - datas.progression.current_step if datas.progression + def level_progress + percentage( progression.current_step, progression.steps_count) if progression? end def last_step - datas.progression.steps.last if datas.progression + datas.progression.steps.last if progression? end - def current_step_name - last_step.step if last_step + def current_step + datas.progression.steps[progression.current_step] end - def current_step - last_step.realized if last_step + def step_progress + return 100 if progression.current_step == progression.steps_count + + percentage( current_step.realized, current_step.total ) end + + def step_progress_name + return last_step.step if progression.current_step == progression.steps_count - def total_steps - last_step.total if last_step + current_step.step end def zip_file diff --git a/app/views/exports/show.html.erb b/app/views/exports/show.html.erb index d79b3f3cf..a44f49362 100644 --- a/app/views/exports/show.html.erb +++ b/app/views/exports/show.html.erb @@ -1,7 +1,9 @@ <div class="test"> <%= title_tag job_status_title(@export) %> </div> - +<div class="progress_bars"> + <%= progress_bar_tag(@export) %> +</div> <div class="export_show"> <div class="links"> <%= link_to( font_awesome_classic_tag("fa-file-#{@export.filename_extension}-o") + t("exports.show.exported_file"), exported_file_referential_export_path(@referential, @export.id) ) if @export.file_path %> diff --git a/app/views/imports/show.html.erb b/app/views/imports/show.html.erb index 1923d8c53..c31d3d26b 100644 --- a/app/views/imports/show.html.erb +++ b/app/views/imports/show.html.erb @@ -1,7 +1,9 @@ <div class="test"> <%= title_tag job_status_title(@import) %> </div> - +<div class="progress_bars"> + <%= progress_bar_tag(@import) %> +</div> <div class="import_show"> <div class="links"> <%= link_to font_awesome_classic_tag("fa-file-#{@import.filename_extension}-o") + t("imports.show.imported_file"), imported_file_referential_import_path(@referential, @import.id) if @import.file_path? %> |
