diff options
| author | Alban Peignier | 2018-05-10 21:39:38 +0200 | 
|---|---|---|
| committer | GitHub | 2018-05-10 21:39:38 +0200 | 
| commit | 093599f1c2e75ba2a4e3e9e8a6aa2cf665919886 (patch) | |
| tree | d6488fa756d37198f0b50c93e7ddf8e23d3ee46e /app/views | |
| parent | fdde7e05c29738356abe488a1b80ade098ef269d (diff) | |
| parent | 6f624a7ca68600e93aae71f98182dfeb8c082674 (diff) | |
| download | chouette-core-093599f1c2e75ba2a4e3e9e8a6aa2cf665919886.tar.bz2 | |
Merge pull request #558 from af83/6960-workgroup-edition
Workgroup edition. Fixes #6960
Diffstat (limited to 'app/views')
| -rw-r--r-- | app/views/compliance_check_sets/show.html.slim | 1 | ||||
| -rw-r--r-- | app/views/import_resources/show.html.slim | 52 | ||||
| -rw-r--r-- | app/views/imports/import/_gtf.html.slim | 42 | ||||
| -rw-r--r-- | app/views/imports/import/_netex.html.slim | 44 | ||||
| -rw-r--r-- | app/views/imports/import/_workbench.html.slim | 53 | ||||
| -rw-r--r-- | app/views/imports/show.html.slim | 55 | ||||
| -rw-r--r-- | app/views/layouts/navigation/_main_nav_left_content.html.slim | 8 | ||||
| -rw-r--r-- | app/views/layouts/navigation/_main_nav_left_content_stif.html.slim | 6 | ||||
| -rw-r--r-- | app/views/workbenches/_form.html.slim | 7 | ||||
| -rw-r--r-- | app/views/workgroups/_form.html.slim | 15 | ||||
| -rw-r--r-- | app/views/workgroups/edit.html.slim | 8 | 
11 files changed, 232 insertions, 59 deletions
diff --git a/app/views/compliance_check_sets/show.html.slim b/app/views/compliance_check_sets/show.html.slim index 4e1a8e2f9..bf4642b21 100644 --- a/app/views/compliance_check_sets/show.html.slim +++ b/app/views/compliance_check_sets/show.html.slim @@ -9,6 +9,7 @@          = definition_list( t('metadatas'),            { I18n.t("compliance_check_sets.show.metadatas.referential") => (@compliance_check_set.referential.nil? ? '' : link_to(@compliance_check_set.referential.name, referential_path(@compliance_check_set.referential)) ),              I18n.t("compliance_check_sets.show.metadatas.referential_type") => 'Jeu de données', +            I18n.t("compliance_check_sets.show.metadatas.status") => import_status(@compliance_check_set.status, verbose: true),              I18n.t("compliance_check_sets.show.metadatas.compliance_check_set_executed") => link_to(@compliance_check_set.name, executed_workbench_compliance_check_set_path(@compliance_check_set.workbench_id, @compliance_check_set)),              I18n.t("compliance_check_sets.show.metadatas.compliance_control_owner") => @compliance_check_set.organisation.name,              I18n.t("compliance_check_sets.show.metadatas.import") => '' }) diff --git a/app/views/import_resources/show.html.slim b/app/views/import_resources/show.html.slim new file mode 100644 index 000000000..7fd8b4456 --- /dev/null +++ b/app/views/import_resources/show.html.slim @@ -0,0 +1,52 @@ +- breadcrumb :import_resource, @import_resource + +.page_content.import_messages +  .container-fluid +    .row +      .col-lg-12 +        - metadata = { 'Bilan d\'import' => link_to(@import_resource.root_import.name, workbench_import_path(@import_resource.root_import.workbench, @import_resource.root_import) ), +            'Jeu de données associé' => ( @import_resource.referential.present? ? link_to(@import_resource.referential.name, referential_path(@import_resource.referential)) : '-' ) } +        - metadata = metadata.update({t('.status') => import_status(@import_resource.status, verbose: true) }) +        = definition_list t('metadatas'), metadata + + +      .col-lg-12 +        .error_messages +          = render 'shared/iev_interfaces/messages', messages: @import_resource.messages + + +      // XXX +      //- if @import_resource.children.present? +      - if @import_resource&.netex_import&.resources.present? +        .col-lg-12 +          h2 = t('.table_title') +        .col-lg-12 +          = t('.table_explanation') +        .col-lg-12 +          = table_builder_2 @import_resource.netex_import.resources.where(resource_type: :file), +            [ \ +              TableBuilderHelper::Column.new( \ +                key: :name, \ +                attribute: 'name', \ +                sortable: false, \ +              ), \ +              TableBuilderHelper::Column.new( \ +                key: :status, \ +                attribute: Proc.new { |n| import_resource_status(n.status) }, \ +                sortable: false, \ +              ), \ +              TableBuilderHelper::Column.new( \ +                name: 'Résultat des tests' , \ +                attribute: Proc.new { |n| I18n.t('import_resources.index.metrics', n.metrics.deep_symbolize_keys) }, \ +                sortable: false, \ +              ), \ +              TableBuilderHelper::Column.new( \ +                name: 'Téléchargement' , \ +                attribute: Proc.new { |n| '<i class="fa fa-download" aria-hidden="true"></i>'.html_safe }, \ +                sortable: false, \ +                link_to: lambda do |import_resource| \ +                  workbench_import_import_resource_import_messages_path(import_resource.import.workbench, import_resource.import, import_resource, format: 'csv' ) \ +                end \ +              ), \ +            ], +            cls: 'table has-search' diff --git a/app/views/imports/import/_gtf.html.slim b/app/views/imports/import/_gtf.html.slim new file mode 100644 index 000000000..8b92f2e92 --- /dev/null +++ b/app/views/imports/import/_gtf.html.slim @@ -0,0 +1,42 @@ +.row +  .col-lg-6.col-md-6.col-sm-12.col-xs-12 +    - metadata = { t('.parent') => link_to(@import.parent.name, [@import.parent.workbench, @import.parent]) } +    - metadata = metadata.update({t('.status') => import_status(@import.status, verbose: true) }) +    - metadata = metadata.update({t('.referential') => @import.referential ? link_to(@import.referential.name, [@import.referential]) : "-" }) +    = definition_list t('metadatas'), metadata + +.col-lg-12 +  .error_messages +    = render 'shared/iev_interfaces/messages', messages: @import.main_resource.messages + +- if @import.resources.any? +  .col-lg-12 +    = table_builder_2 @import.resources, +      [ \ +        TableBuilderHelper::Column.new( \ +          name: t('.referential_name'), \ +          attribute: 'name', \ +          sortable: false, \ +          link_to: lambda do |item| \ +            referential_path(item.referential) if item.referential.present? \ +          end \ +        ), \ +        TableBuilderHelper::Column.new( \ +          key: :status, \ +          attribute: Proc.new { |n| import_status(n.status, verbose: true, default_status: :pending) }, \ +          sortable: false, \ +          link_to: lambda do |item| \ +            item.netex_import.present? ? [@import.workbench, item.netex_import] : [@import.workbench, @import, item] \ +          end \ +        )\ +      ], +      cls: 'table', +      overhead: [ \ +        {}, \ +        {}, \ +        { \ +          title: I18n.t('imports.show.summary').html_safe, \ +          width: controls.size, \ +          cls: 'overheaded-default colspan="2"' \ +        } \ +      ] diff --git a/app/views/imports/import/_netex.html.slim b/app/views/imports/import/_netex.html.slim new file mode 100644 index 000000000..2f341016a --- /dev/null +++ b/app/views/imports/import/_netex.html.slim @@ -0,0 +1,44 @@ +.row +  .col-lg-6.col-md-6.col-sm-12.col-xs-12 +    - metadata = { t('.parent') => link_to(@import.parent.name, [@import.parent.workbench, @import.parent]) } +    - metadata = metadata.update({t('.status') => import_status(@import.status, verbose: true) }) +    - metadata = metadata.update({t('.referential') => @import.referential ? link_to(@import.referential.name, [@import.referential]) : "-" }) +    = definition_list t('metadatas'), metadata + +.col-lg-12 +  .error_messages +    = render 'shared/iev_interfaces/messages', messages: @import.main_resource.messages + +- if @import.resources.present? +  .col-lg-12 +    h2 = t('.table_title') +  .col-lg-12 +    = t('.table_explanation') +  .col-lg-12 +    = table_builder_2 @import.resources.where(resource_type: :file), +      [ \ +        TableBuilderHelper::Column.new( \ +          key: :name, \ +          attribute: 'name', \ +          sortable: false, \ +        ), \ +        TableBuilderHelper::Column.new( \ +          key: :status, \ +          attribute: Proc.new { |n| import_resource_status(n.status) }, \ +          sortable: false, \ +        ), \ +        TableBuilderHelper::Column.new( \ +          name: 'Résultat des tests' , \ +          attribute: Proc.new { |n| I18n.t('import_resources.index.metrics', n.metrics.deep_symbolize_keys) }, \ +          sortable: false, \ +        ), \ +        TableBuilderHelper::Column.new( \ +          name: 'Téléchargement' , \ +          attribute: Proc.new { |n| '<i class="fa fa-download" aria-hidden="true"></i>'.html_safe }, \ +          sortable: false, \ +          link_to: lambda do |import_resource| \ +            workbench_import_import_resource_import_messages_path(import_resource.import.workbench, import_resource.import, import_resource, format: 'csv' ) \ +          end \ +        ), \ +      ], +      cls: 'table has-search' diff --git a/app/views/imports/import/_workbench.html.slim b/app/views/imports/import/_workbench.html.slim new file mode 100644 index 000000000..e41ceb0f0 --- /dev/null +++ b/app/views/imports/import/_workbench.html.slim @@ -0,0 +1,53 @@ +.row +  .col-lg-6.col-md-6.col-sm-12.col-xs-12 +    - metadata = { t('.data_recovery') => '-', t('.filename') => @import.try(:file_identifier)} +    - metadata = metadata.update({t('.status') => import_status(@import.status, verbose: true) }) +    = definition_list t('metadatas'), metadata + +.col-lg-12 +  .error_messages +    = render 'shared/iev_interfaces/messages', messages: @import.messages + +ruby: + controls = @workbench.workgroup.import_compliance_control_sets.map do |key, label| +   TableBuilderHelper::Column.new( +     name: label, +     attribute: Proc.new { |n| n.workbench.compliance_control_set(key).present? ? import_status(n.workbench_import_check_set(key)&.status, verbose: true, default_status: (n.status == "ERROR" ? :aborted : :pending)) : '-' }, +     sortable: false, +     link_to: lambda do |item| +       item.workbench_import_check_set(key).present? && [@import.workbench, item.workbench_import_check_set(key)] +    end +    ) +  end + +- if @import.resources.any? +  .col-lg-12 +    = table_builder_2 @import.resources, +      [ \ +        TableBuilderHelper::Column.new( \ +          name: t('.referential_name'), \ +          attribute: 'name', \ +          sortable: false, \ +          link_to: lambda do |item| \ +            referential_path(item.referential) if item.referential.present? \ +          end \ +        ), \ +        TableBuilderHelper::Column.new( \ +          key: :status, \ +          attribute: Proc.new { |n| import_status(n.netex_import&.status || n.status, verbose: true, default_status: :pending) }, \ +          sortable: false, \ +          link_to: lambda do |item| \ +            item.netex_import.present? ? [@import.workbench, item.netex_import] : [@import.workbench, @import, item] \ +          end \ +        ), *controls \ +      ], +      cls: 'table', +      overhead: [ \ +        {}, \ +        {}, \ +        controls.present? ? { \ +          title: I18n.t('imports.show.summary').html_safe, \ +          width: controls.size, \ +          cls: "overheaded-default colspan='#{controls.size}'" \ +        } : nil \ +      ].compact diff --git a/app/views/imports/show.html.slim b/app/views/imports/show.html.slim index 9d0a6423d..10552129d 100644 --- a/app/views/imports/show.html.slim +++ b/app/views/imports/show.html.slim @@ -4,57 +4,4 @@  .page_content    .container-fluid -    .row -      .col-lg-6.col-md-6.col-sm-12.col-xs-12 -        = definition_list t('metadatas'), { t('.data_recovery') => '-', t('.filename') => @import.try(:file_identifier)} - -    .row -      .col-lg-12 -        .error_messages -          = render 'shared/iev_interfaces/messages', messages: @import.messages - -    - if @import.children.any? -      .row -        .col-lg-12 -          = table_builder_2 @import.children, -            [ \ -              TableBuilderHelper::Column.new( \ -                name: t('.referential_name'), \ -                attribute: 'name', \ -                sortable: false, \ -                link_to: lambda do |import| \ -                  referential_path(import.referential) if import.referential.present? \ -                end \ -              ), \ -              TableBuilderHelper::Column.new( \ -                key: :status, \ -                attribute: Proc.new { |n| import_status(n.status) }, \ -                sortable: false, \ -                link_to: lambda do |import| \ -                  workbench_import_import_resources_path(import.workbench_id, import) \ -                end \ -              ), \ -              TableBuilderHelper::Column.new( \ -                name: t('.stif_control'), \ -                attribute: '', \ -                sortable: false, \ -              ), \ -              TableBuilderHelper::Column.new( \ -                name: t('.organisation_control'), \ -                attribute: '', \ -                sortable: false, \ -              ) \ -            ], -            cls: 'table', -            overhead: [ \ -              {}, \ -              { \ -                title: I18n.t('imports.show.results', count: @import.children_succeedeed, total: @import.children.count), \ -                width: 1, \ -                cls: "#{@import.import_status_css_class} full-border" \ -              }, { \ -                title: I18n.t('imports.show.summary').html_safe, \ -                width: 2, \ -                cls: 'overheaded-default colspan="2"' \ -              } \ -            ] +    = render partial: "imports/#{@import.type.tableize.singularize}" diff --git a/app/views/layouts/navigation/_main_nav_left_content.html.slim b/app/views/layouts/navigation/_main_nav_left_content.html.slim index 0b55578a7..889f8f944 100644 --- a/app/views/layouts/navigation/_main_nav_left_content.html.slim +++ b/app/views/layouts/navigation/_main_nav_left_content.html.slim @@ -15,6 +15,9 @@              span = t('layouts.navbar.workbench_outputs.organisation')            = link_to '#', class: 'list-group-item disabled' do              span = t('layouts.navbar.workbench_outputs.workgroup') +          - if policy(workbench.workgroup).edit? +            = link_to [:edit, workbench.workgroup], class: 'list-group-item' do +              span = t('layouts.navbar.workbench_outputs.edit_workgroup')      .menu-item.panel        .panel-heading @@ -36,7 +39,10 @@              span = t('activerecord.models.compliance_check_set.other').capitalize            = link_to compliance_control_sets_path, class: 'list-group-item' do              span = t('activerecord.models.compliance_control_set.other').capitalize -             +          - if policy(workbench).edit? +            = link_to [:edit, workbench], class: 'list-group-item' do +              span = t('workbenches.edit.link') +      .menu-item.panel        .panel-heading          h4.panel-title diff --git a/app/views/layouts/navigation/_main_nav_left_content_stif.html.slim b/app/views/layouts/navigation/_main_nav_left_content_stif.html.slim index 9404eeae6..a7bb3f511 100644 --- a/app/views/layouts/navigation/_main_nav_left_content_stif.html.slim +++ b/app/views/layouts/navigation/_main_nav_left_content_stif.html.slim @@ -14,6 +14,9 @@              span = t('layouts.navbar.workbench_outputs.organisation')            = link_to '#', class: 'list-group-item disabled' do              span = t('layouts.navbar.workbench_outputs.workgroup') +          - if policy(workbench.workgroup).edit? +            = link_to [:edit, workbench.workgroup], class: 'list-group-item' do +              span = t('layouts.navbar.workbench_outputs.edit_workgroup')      .menu-item.panel        .panel-heading @@ -35,6 +38,9 @@              span = t('activerecord.models.compliance_check_set.other').capitalize            = link_to compliance_control_sets_path, class: 'list-group-item' do              span = t('activerecord.models.compliance_control_set.other').capitalize +          - if policy(workbench).edit? +            = link_to [:edit, workbench], class: 'list-group-item' do +              span = t('workbenches.edit.link')      .menu-item.panel        .panel-heading diff --git a/app/views/workbenches/_form.html.slim b/app/views/workbenches/_form.html.slim index 534a5f378..819346c35 100644 --- a/app/views/workbenches/_form.html.slim +++ b/app/views/workbenches/_form.html.slim @@ -1,9 +1,8 @@  = simple_form_for @workbench, html: { class: 'form-horizontal', id: 'workbench_form' }, wrapper: :horizontal_form do |f|    .row      .col-lg-12 -      = f.input :import_compliance_control_set_id, as: :select, collection: current_organisation.compliance_control_sets, value_method: :id -      = f.input :merge_compliance_control_set_id, as: :select, collection: current_organisation.compliance_control_sets, value_method: :id - -  .separator +      = f.fields_for :compliance_control_set_ids do |ff| +        - @workbench.workgroup.compliance_control_sets_by_workbench.each do |cc, label| +          = ff.input cc, as: :select, collection: current_organisation.compliance_control_sets, value_method: :id, label: label, selected: @workbench.compliance_control_set(cc).try(:id).try(:to_s), include_blank: true    = f.button :submit, t('actions.submit'), class: 'btn btn-default formSubmitr', form: 'workbench_form' diff --git a/app/views/workgroups/_form.html.slim b/app/views/workgroups/_form.html.slim new file mode 100644 index 000000000..7245cfc40 --- /dev/null +++ b/app/views/workgroups/_form.html.slim @@ -0,0 +1,15 @@ += simple_form_for @workgroup, html: { class: 'form-horizontal', id: 'workgroup_form' }, wrapper: :horizontal_form do |f| +  table.table +    thead +      th +        - @workgroup.compliance_control_sets_by_workgroup.values.each do |cc| +          th= cc +    - @workgroup.workbenches.each_with_index do |w,i| +      tr +        th= w.organisation.name +        - @workgroup.compliance_control_sets_by_workgroup.keys.each do |cc| +          td +            = hidden_field_tag "workgroup[workbenches_attributes][#{i}][id]", w.id +            = select_tag "workgroup[workbenches_attributes][#{i}][compliance_control_set_ids][#{cc}]", options_from_collection_for_select(current_organisation.compliance_control_sets, :id, :name, w.compliance_control_set(cc).try(:id)), include_blank: true + +  = f.button :submit, t('actions.submit'), class: 'btn btn-default formSubmitr', form: 'workgroup_form' diff --git a/app/views/workgroups/edit.html.slim b/app/views/workgroups/edit.html.slim new file mode 100644 index 000000000..49847acf2 --- /dev/null +++ b/app/views/workgroups/edit.html.slim @@ -0,0 +1,8 @@ +- breadcrumb @workgroup +- page_header_content_for @workgroup + +.page_content + .container-fluid +   .row +     .col-lg-8.col-lg-offset-2.col-md-8.col-md-offset-2.col-sm-10.col-sm-offset-1 +       == render 'form'  | 
