aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorLuc Donnet2015-04-27 16:30:07 +0200
committerLuc Donnet2015-04-27 16:30:07 +0200
commit245286c7643b426b36deb400b7c7682c88eb4c2d (patch)
treea200f399988d130ddbb377b9c89bb4bb36265727 /app
parent8d2329a9c7172689901186e293951fb48636b254 (diff)
downloadchouette-core-245286c7643b426b36deb400b7c7682c88eb4c2d.tar.bz2
Update export views
Diffstat (limited to 'app')
-rw-r--r--app/assets/stylesheets/main/exports.css.scss80
-rw-r--r--app/assets/stylesheets/main/imports.css.scss17
-rw-r--r--app/controllers/exports_controller.rb39
-rw-r--r--app/controllers/imports_controller.rb3
-rw-r--r--app/helpers/exports_helper.rb9
-rw-r--r--app/helpers/progress_bar_helper.rb1
-rw-r--r--app/models/export.rb63
-rw-r--r--app/models/export_report.rb24
-rw-r--r--app/models/export_service.rb2
-rw-r--r--app/models/import.rb10
-rw-r--r--app/views/exports/_export.erb10
-rw-r--r--app/views/exports/index.html.erb3
-rw-r--r--app/views/exports/show.html.erb1
-rw-r--r--app/views/exports/show.js.coffee2
-rw-r--r--app/views/imports/_import.erb7
-rw-r--r--app/views/imports/show.html.erb1
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>