diff options
| author | Luc Donnet | 2015-04-27 16:30:07 +0200 |
|---|---|---|
| committer | Luc Donnet | 2015-04-27 16:30:07 +0200 |
| commit | 245286c7643b426b36deb400b7c7682c88eb4c2d (patch) | |
| tree | a200f399988d130ddbb377b9c89bb4bb36265727 /app | |
| parent | 8d2329a9c7172689901186e293951fb48636b254 (diff) | |
| download | chouette-core-245286c7643b426b36deb400b7c7682c88eb4c2d.tar.bz2 | |
Update export views
Diffstat (limited to 'app')
| -rw-r--r-- | app/assets/stylesheets/main/exports.css.scss | 80 | ||||
| -rw-r--r-- | app/assets/stylesheets/main/imports.css.scss | 17 | ||||
| -rw-r--r-- | app/controllers/exports_controller.rb | 39 | ||||
| -rw-r--r-- | app/controllers/imports_controller.rb | 3 | ||||
| -rw-r--r-- | app/helpers/exports_helper.rb | 9 | ||||
| -rw-r--r-- | app/helpers/progress_bar_helper.rb | 1 | ||||
| -rw-r--r-- | app/models/export.rb | 63 | ||||
| -rw-r--r-- | app/models/export_report.rb | 24 | ||||
| -rw-r--r-- | app/models/export_service.rb | 2 | ||||
| -rw-r--r-- | app/models/import.rb | 10 | ||||
| -rw-r--r-- | app/views/exports/_export.erb | 10 | ||||
| -rw-r--r-- | app/views/exports/index.html.erb | 3 | ||||
| -rw-r--r-- | app/views/exports/show.html.erb | 1 | ||||
| -rw-r--r-- | app/views/exports/show.js.coffee | 2 | ||||
| -rw-r--r-- | app/views/imports/_import.erb | 7 | ||||
| -rw-r--r-- | app/views/imports/show.html.erb | 1 |
16 files changed, 109 insertions, 163 deletions
diff --git a/app/assets/stylesheets/main/exports.css.scss b/app/assets/stylesheets/main/exports.css.scss index 6b11e8b7f..dd5a38f48 100644 --- a/app/assets/stylesheets/main/exports.css.scss +++ b/app/assets/stylesheets/main/exports.css.scss @@ -7,46 +7,60 @@ } #workspace.exports.show { - table { - th { - font-style: italic; + .resume { + &:after{ + content: " "; + display: block; + height: 0; + clear: both; + visibility: hidden; } - th.severity { - width: 30px; - } - th.created_at { - text-align: center; - width: 100px; + + #files_statistics { height: 225px; } + #objects_statistics { height: 225px; } + + .caption { + text-align :center; + font-weight: bold; } - th.position { - padding-right: 5px; - text-align: right; - width: 40px; + } + + .report { + margin-top: 20px; + + .files { + img { + margin-right: 5px; + } + + .file_name{ + font-weight: bold; + margin-right: 30px; + } } - td.severity { - text-align: center; + + .files_error{ + color: #e22b1b; + display: none; } - td.created_at { - padding-right: 3px; + + .files_ignored{ + color: #898e7f; + display: none; } - td.position { - padding-right: 5px; - text-align: right; + + .files_ok{ + color: #8fc861; + display: none; } - } -} -#workspace.exports.new #workspace.exports.create form.new_export { - padding: 0.5em 0; - margin-top: -0.5em; - margin-bottom: 1em; + .lines{ + display: none; + + th, td{ + text-align: center; + } - label { - display: block; - width: 25%; - float: left; - } - select { - width: 25%; + } } } diff --git a/app/assets/stylesheets/main/imports.css.scss b/app/assets/stylesheets/main/imports.css.scss index 93fb499f9..8ac7314ff 100644 --- a/app/assets/stylesheets/main/imports.css.scss +++ b/app/assets/stylesheets/main/imports.css.scss @@ -68,25 +68,10 @@ .lines{ display: none; - td{ + th, td{ text-align: center; } } } } - -#workspace.imports.new #workspace.imports.create form.import_new { - padding: 0.5em 0; - margin-top: -0.5em; - margin-bottom: 1em; - - label { - display: block; - width: 25%; - float: left; - } - select { - width: 25%; - } -} diff --git a/app/controllers/exports_controller.rb b/app/controllers/exports_controller.rb index 0fb66294d..ae8aa1b75 100644 --- a/app/controllers/exports_controller.rb +++ b/app/controllers/exports_controller.rb @@ -1,15 +1,13 @@ require 'will_paginate/array' +require 'open-uri' class ExportsController < ChouetteController defaults :resource_class => Export - respond_to :xml, :json - respond_to :html, :only => [:show, :index, :new, :create, :delete] + respond_to :html, :only => [:show, :index, :destroy, :exported_file] respond_to :js, :only => [:show, :index] belongs_to :referential - #curl -F "file=@corolis.zip;filename=corolis_gtfs.zip" -F "file=@parameters.json;filename=parameters.json" http://localhost:8080/chouette_iev/referentials/corolis/exporter/gtfs - def index begin index! do @@ -33,37 +31,20 @@ class ExportsController < ChouetteController redirect_to referential_path(@referential) end end - - def new - begin - new! do - puts "OK" - end - rescue Ievkit::Error => error - logger.error("Iev failure : #{error.message}") - flash[:error] = t('iev.failure') - redirect_to referential_path(@referential) - end - end - - def create + + def destroy begin - create! do - puts "OK" - end + destroy! rescue Ievkit::Error => error logger.error("Iev failure : #{error.message}") flash[:error] = t('iev.failure') redirect_to referential_path(@referential) end end - - def delete + + def exported_file begin - delete! do - export_service.delete(@export.id) - redirect_to referential_exports_path(@referential) - end + send_file open(resource.file_path), { :type => "application/#{resource.filename_extension}", :disposition => "attachment", :filename => resource.filename } rescue Ievkit::Error => error logger.error("Iev failure : #{error.message}") flash[:error] = t('iev.failure') @@ -76,10 +57,6 @@ class ExportsController < ChouetteController def export_service ExportService.new(@referential) end - - def build_resource(attributes = {}) - @export ||= ExportTask.new - end def resource @export ||= export_service.find( params[:id] ) diff --git a/app/controllers/imports_controller.rb b/app/controllers/imports_controller.rb index e09fdfec5..a8a1636c7 100644 --- a/app/controllers/imports_controller.rb +++ b/app/controllers/imports_controller.rb @@ -34,8 +34,7 @@ class ImportsController < ChouetteController def destroy begin - destroy! do - end + destroy! rescue Ievkit::Error => error logger.error("Iev failure : #{error.message}") flash[:error] = t('iev.failure') diff --git a/app/helpers/exports_helper.rb b/app/helpers/exports_helper.rb index cb1f42f36..21fec001f 100644 --- a/app/helpers/exports_helper.rb +++ b/app/helpers/exports_helper.rb @@ -24,13 +24,4 @@ module ExportsHelper end end - def export_progress_bar_tag(export) - div_class = "" - content_tag :div, :class => "progress" do - content_tag :div, :class => div_class, role: "progressbar", :'aria-valuenow' => "#{export.percentage_progress}", :'aria-valuemin' => "0", :'aria-valuemax' => "100", :style => "width: #{export.percentage_progress}%;" do - "#{export.percentage_progress}% " + I18n.t("export_tasks.statuses.#{export.status}") - end - end - end - end diff --git a/app/helpers/progress_bar_helper.rb b/app/helpers/progress_bar_helper.rb index 9a4bbfc9c..e4102027a 100644 --- a/app/helpers/progress_bar_helper.rb +++ b/app/helpers/progress_bar_helper.rb @@ -11,6 +11,7 @@ module ProgressBarHelper end def progress_bar_tag(object_model) + puts object_model.report report = object_model.report percentage_progress = percentage_progress(object_model, report) diff --git a/app/models/export.rb b/app/models/export.rb index 95317504a..b9cef12e0 100644 --- a/app/models/export.rb +++ b/app/models/export.rb @@ -10,8 +10,16 @@ class Export @datas = response end + def links + {}.tap do |links| + datas.links.each do |link| + links[link["rel"]] = link["href"] + end + end + end + def report - report_path = datas.links.select{ |link| link["rel"] == "action_report"}.first.href + report_path = links["action_report"] if report_path response = Ievkit.get(report_path) ExportReport.new(response) @@ -20,31 +28,16 @@ class Export end end - def compliance_check - compliance_check_path = datas.links.select{ |link| link["rel"] == "validation_report"}.first.href - if compliance_check_path - response = Ievkit.get(compliance_check_path) - ComplianceCheck.new(response) - else - raise Ievkit::Error("Impossible to access compliance check path link for export") - end - end - - def delete - delete_path = datas.links.select{ |link| link["rel"] == "delete"}.first.href + def destroy + delete_path = links["delete"] + cancel_path = links["cancel"] + if delete_path Ievkit.delete(delete_path) - else - raise Ievkit::Error("Impossible to access delete path link for export") - end - end - - def cancel - cancel_path = datas.links.select{ |link| link["rel"] == "cancel"}.first.href - if cancel_path + elsif cancel_path Ievkit.delete(cancel_path) else - raise Ievkit::Error("Impossible to access cancel path link for export") + raise Ievkit::Error("Impossible to access delete or cancel path link for import") end end @@ -53,7 +46,7 @@ class Export end def status - datas.status + datas.status.downcase end def format @@ -68,16 +61,6 @@ class Export File.extname(filename) if filename end - def percentage_progress - if %w{created}.include? status - 0 - elsif %w{ terminated canceled aborted }.include? status - 100 - else - 20 - end - end - def referential_name datas.referential end @@ -90,19 +73,11 @@ class Export datas.action_parameters.user_name end - def created_at? - datas.created? - end - - def created_at - Time.at(datas.created.to_i / 1000) if created_at? + def created_at + Time.at(datas.created.to_i / 1000) if datas.created end - def updated_at? - datas.updated? - end - def updated_at - Time.at(datas.updated.to_i / 1000) if updated_at? + Time.at(datas.updated.to_i / 1000) if datas.updated end end diff --git a/app/models/export_report.rb b/app/models/export_report.rb index a843d8148..6b3530437 100644 --- a/app/models/export_report.rb +++ b/app/models/export_report.rb @@ -3,12 +3,30 @@ class ExportReport extend ActiveModel::Translation include ActiveModel::Model - attr_reader :datas, :errors, :metadatas + attr_reader :datas def initialize(response) @datas = response.action_report - @errors = response.errors - @metadatas = response.metadatas + end + + def current_level + datas.progression.current_step if datas.progression + end + + def last_step + datas.progression.steps.last if datas.progression + end + + def current_step_name + last_step.step if last_step + end + + def current_step + last_step.realized if last_step + end + + def total_steps + last_step.total if last_step end def error_files diff --git a/app/models/export_service.rb b/app/models/export_service.rb index d41c045d1..2dbe0d7b3 100644 --- a/app/models/export_service.rb +++ b/app/models/export_service.rb @@ -8,7 +8,7 @@ class ExportService # Find an export whith his id def find(id) - Export.new(Ievkit.scheduled_job(referential.slug, id, { :action => "exporter" })) + Export.new( Ievkit.scheduled_job(referential.slug, id, { :action => "exporter" }) ) end # Find all exports diff --git a/app/models/import.rb b/app/models/import.rb index f596fe82a..13e76823f 100644 --- a/app/models/import.rb +++ b/app/models/import.rb @@ -3,17 +3,11 @@ class Import extend ActiveModel::Naming extend ActiveModel::Translation include ActiveModel::Model - - # enumerize :status, in: %w{started scheduled terminated canceled aborted}, default: "created", predicates: true - # enumerize :format, in: %w{neptune netex gtfs}, default: "neptune", predicates: true attr_reader :datas def initialize( response ) @datas = response - Validation.new(response) - # @status = @datas.status.downcase if @datas.status? - # @format = @datas.type.downcase if @datas.type? end def links @@ -57,7 +51,7 @@ class Import elsif cancel_path Ievkit.delete(cancel_path) else - raise Ievkit::Error("Impossible to access delete path link for import") + raise Ievkit::Error("Impossible to access delete or cancel path link for import") end end @@ -70,7 +64,7 @@ class Import end def format - datas.type + datas.format end def filename diff --git a/app/views/exports/_export.erb b/app/views/exports/_export.erb index c5d8b7002..ac39466c5 100644 --- a/app/views/exports/_export.erb +++ b/app/views/exports/_export.erb @@ -2,17 +2,15 @@ <div class="panel-heading"> <div class="panel-title clearfix"> <span class="pull-right"> - <% location = export.datas.links.select { |link| link["rel"] == "location" } %> - <% location = location.first if location %> - <% location = location.href if location %> - <%= link_to "#{location}", :method => :delete, :data => {:confirm => t('exports.actions.destroy_confirm')}, :class => "btn btn-danger btn-sm" do %> + <% location = export.datas.links.select { |link| link["rel"] == "location" }.first.href %> + <%= link_to referential_export_path(@referential, export.id), :method => :delete, :data => {:confirm => t('exports.actions.destroy_confirm')}, :class => "btn btn-danger btn-sm" do %> <span class="fa fa-trash-o"></span> <% end %> </span> <h5> <%= link_to( referential_export_path(@referential, export.id), :class => "preview", :title => "#{Export.model_name.human.capitalize} #{export.name}") do %> <span class="name"> - <i class="fa fa-save"></i> <%= truncate(export.name, :length => 20) %> + <%= truncate(export.name, :length => 20) %> </span> <% end %> </h5> @@ -21,7 +19,7 @@ <div class="panel-body"> </div> <div class="panel-footer"> - <%= export_progress_bar_tag(export) %> + <%= progress_bar_tag(export) %> <div class="history"> <%= l export.created_at, :format => "%d/%m/%Y %H:%M" %> | <%= export.user_name %> </div> diff --git a/app/views/exports/index.html.erb b/app/views/exports/index.html.erb index a0310e6d1..df66225fa 100644 --- a/app/views/exports/index.html.erb +++ b/app/views/exports/index.html.erb @@ -6,7 +6,6 @@ <% content_for :sidebar do %> <ul class="actions"> - <li><%= link_to t('exports.actions.new'), new_referential_export_task_path(@referential), :class => "add" %></li> - <li><%= link_to t('rule_parameter_sets.actions.index'), referential_rule_parameter_sets_path(@referential), :class => "link" %></li> + <li><%= link_to t('exports.actions.new'), new_referential_export_task_path(@referential), :class => "add" %></li> </ul> <% end %> diff --git a/app/views/exports/show.html.erb b/app/views/exports/show.html.erb index dc278b11e..9278447c1 100644 --- a/app/views/exports/show.html.erb +++ b/app/views/exports/show.html.erb @@ -1,5 +1,4 @@ <div class="test"> - <% title = "<i class='fa fa-save'></i>" %> <%= title_tag "#{title} #{@export.name} <span class='status status_#{@export.status}'>#{ t('exports.statuses.'+ @export.status) }</span>" %> </div> diff --git a/app/views/exports/show.js.coffee b/app/views/exports/show.js.coffee index de9ce8744..25d4b7432 100644 --- a/app/views/exports/show.js.coffee +++ b/app/views/exports/show.js.coffee @@ -42,4 +42,4 @@ jQuery -> padding: 40, hideHover: true }).on('click', update = (i, row) -> - get_export_results( $(".report"), $(".lines")) )
\ No newline at end of file + get_export_results( $(".report"), $(".lines")) ) diff --git a/app/views/imports/_import.erb b/app/views/imports/_import.erb index 14e29cb32..b6ec16e7b 100644 --- a/app/views/imports/_import.erb +++ b/app/views/imports/_import.erb @@ -2,10 +2,7 @@ <div class="panel-heading"> <div class="panel-title clearfix"> <span class="pull-right"> - <% location = import.datas.links.select { |link| link["rel"] == "location" } %> - <% location = location.first if location %> - <% location = location.href if location %> - <%= link_to referential_import_path(@referential, import.id), :method => :delete, :data => {:confirm => t('import_tasks.actions.destroy_confirm')}, :class => "btn btn-danger btn-sm" do %> + <%= link_to referential_import_path(@referential, import.id), :method => :delete, :data => {:confirm => t('imports.actions.destroy_confirm')}, :class => "btn btn-danger btn-sm" do %> <span class="fa fa-trash-o"></span> <% end %> </span> @@ -24,7 +21,7 @@ <div class="panel-footer"> <%= progress_bar_tag(import) %> <div class="history"> - <%= l(import.created_at, :format => :short) if import.created_at %> | <%= import.user_name %> + <%= l(import.created_at, :format => "%d/%m/%Y %H:%M") if import.created_at %> | <%= import.user_name %> </div> </div> </div> diff --git a/app/views/imports/show.html.erb b/app/views/imports/show.html.erb index 0e3a6a6cb..796f7981e 100644 --- a/app/views/imports/show.html.erb +++ b/app/views/imports/show.html.erb @@ -1,5 +1,4 @@ <div class="test"> - <% title = @import.no_save ? "": "<i class='fa fa-save'></i>" %> <%= title_tag "#{title} #{@import.name} <span class='status status_#{@import.status}'>#{ t('imports.statuses.'+ @import.status) }</span>" %> </div> |
