diff options
Diffstat (limited to 'app')
21 files changed, 105 insertions, 109 deletions
diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js b/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js index 34689070d..825e7bb7d 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js @@ -90,7 +90,7 @@ const actions = { resetValidation: (target) => { $(target).parent().removeClass('has-error').children('.help-block').remove() }, - humanOID : (oid) => oid.split(':')[2], + humanOID : (oid) => oid.split(':')[2].split("-").pop(), validateFields : (fields) => { const test = [] diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js index de87c14af..2e2e06514 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js @@ -269,7 +269,7 @@ const actions = { type: 'RECEIVE_TOTAL_COUNT', total }), - humanOID: (oid) => oid.split(':')[2], + humanOID: (oid) => oid.split(':')[2].split("-").pop(), fetchVehicleJourneys : (dispatch, currentPage, nextPage, queryString) => { if(currentPage == undefined){ currentPage = 1 diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/MissionSelect2.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/MissionSelect2.js index 922a1e5ee..2f49e9980 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/MissionSelect2.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/MissionSelect2.js @@ -2,6 +2,7 @@ var _ = require('lodash') var React = require('react') var PropTypes = require('react').PropTypes var Select2 = require('react-select2') +var humanOID = require('../../../actions').humanOID // get JSON full path var origin = window.location.origin @@ -34,7 +35,7 @@ class BSelect4 extends React.Component{ delay: '500', data: function(params) { return { - q: {published_name_cont_or_short_id_or_registration_number_cont: params.term}, + q: {published_name_or_objectid_or_registration_number_cont: params.term}, }; }, processResults: function(data, params) { @@ -43,7 +44,7 @@ class BSelect4 extends React.Component{ item => _.assign( {}, item, - { text: "<strong>" + item.published_name + " - " + item.short_id + "</strong><br/><small>" + item.registration_number + "</small>" } + { text: "<strong>" + item.published_name + " - " + humanOID(item.object_id) + "</strong><br/><small>" + item.registration_number + "</small>" } ) ) }; diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/TimetableSelect2.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/TimetableSelect2.js index 5157300ba..2248175ab 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/TimetableSelect2.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/TimetableSelect2.js @@ -2,7 +2,7 @@ var _ = require('lodash') var React = require('react') var PropTypes = require('react').PropTypes var Select2 = require('react-select2') -var actions = require('../../../actions') +var humanOID = require('../../../actions').humanOID // get JSON full path var origin = window.location.origin @@ -48,7 +48,7 @@ class BSelect4 extends React.Component{ item => _.assign( {}, item, - {text: '<strong>' + "<span class='fa fa-circle' style='color:" + (item.color ? item.color : '#4B4B4B') + "'></span> " + item.comment + ' - ' + item.short_id + '</strong><br/><small>' + (item.day_types ? item.day_types.match(/[A-Z]?[a-z]+/g).join(', ') : "") + '</small>'} + {text: '<strong>' + "<span class='fa fa-circle' style='color:" + (item.color ? item.color : '#4B4B4B') + "'></span> " + item.comment + ' - ' + humanOID(item.objectid) + '</strong><br/><small>' + (item.day_types ? item.day_types.match(/[A-Z]?[a-z]+/g).join(', ') : "") + '</small>'} ) ) }; diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/VJSelect2.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/VJSelect2.js index cc2ee4b9e..b9678ea9a 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/VJSelect2.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/VJSelect2.js @@ -2,6 +2,7 @@ var _ = require('lodash') var React = require('react') var PropTypes = require('react').PropTypes var Select2 = require('react-select2') +var humanOID = require('../../../actions').humanOID // get JSON full path var origin = window.location.origin @@ -12,10 +13,6 @@ class BSelect4b extends React.Component{ constructor(props) { super(props) } - humanOID(oid) { - var a = oid.split(':') - return a[a.length - 1] - } render() { return ( @@ -46,7 +43,7 @@ class BSelect4b extends React.Component{ item => _.assign( {}, item, - { id: item.objectid, text: _.last(_.split(item.objectid, ':')) } + { id: item.objectid, text: humanOID(item.objectid) } ) ) }; diff --git a/app/controllers/api_keys_controller.rb b/app/controllers/api_keys_controller.rb index 7059cf52e..03e5ef237 100644 --- a/app/controllers/api_keys_controller.rb +++ b/app/controllers/api_keys_controller.rb @@ -3,19 +3,27 @@ class ApiKeysController < BreadcrumbController def create @api_key = Api::V1::ApiKey.new(api_key_params.merge(organisation: current_organisation)) - create! { organisation_api_keys_path } - end - - def index - @api_keys = decorate_api_keys(current_organisation.api_keys.paginate(page: params[:page])) + create! do |format| + format.html { + redirect_to workbenches_path + } + end end def update - update! { organisation_api_key_path(resource) } + update! do |format| + format.html { + redirect_to workbenches_path + } + end end def destroy - destroy! { organisation_api_keys_path } + destroy! do |format| + format.html { + redirect_to workbenches_path + } + end end private diff --git a/app/controllers/referential_lines_controller.rb b/app/controllers/referential_lines_controller.rb index 1da64991d..ec0bbbb18 100644 --- a/app/controllers/referential_lines_controller.rb +++ b/app/controllers/referential_lines_controller.rb @@ -11,7 +11,7 @@ class ReferentialLinesController < ChouetteController belongs_to :referential def show - @routes = resource.routes + @routes = resource.routes.order(:objectid) case sort_route_column when "stop_points", "journey_patterns" diff --git a/app/decorators/route_decorator.rb b/app/decorators/route_decorator.rb index 46cb6cd5f..510c941a3 100644 --- a/app/decorators/route_decorator.rb +++ b/app/decorators/route_decorator.rb @@ -45,28 +45,28 @@ class RouteDecorator < Draper::Decorator ) ) - if h.policy(object).destroy? + if h.policy(object).duplicate? links << Link.new( - content: h.destroy_link_content, - href: h.referential_line_route_path( + content: h.t('routes.duplicate.title'), + href: h.duplicate_referential_line_route_path( context[:referential], context[:line], object ), - method: :delete, - data: { confirm: h.t('routes.actions.destroy_confirm') } + method: :post ) end - if h.policy(object).duplicate? + if h.policy(object).destroy? links << Link.new( - content: h.t('routes.duplicate.title'), - href: h.duplicate_referential_line_route_path( + content: h.destroy_link_content, + href: h.referential_line_route_path( context[:referential], context[:line], object ), - method: :post + method: :delete, + data: { confirm: h.t('routes.actions.destroy_confirm') } ) end diff --git a/app/models/chouette/netex_object_id.rb b/app/models/chouette/netex_object_id.rb index 07d862992..441004c1e 100644 --- a/app/models/chouette/netex_object_id.rb +++ b/app/models/chouette/netex_object_id.rb @@ -5,7 +5,7 @@ class Chouette::NetexObjectId < String end alias_method :objectid?, :valid? - @@format = /^([A-Za-z_]+):([0-9A-Za-z_]+):([A-Za-z]+):([0-9A-Za-z_-]+)$/ + @@format = /^([A-Za-z_]+):([0-9A-Za-z_]+):([A-Za-z]+):([0-9A-Za-z_-]+)$/ cattr_reader :format def parts @@ -27,7 +27,7 @@ class Chouette::NetexObjectId < String def local_id parts.try(:fourth) end - + def self.create(provider_id, system_id, object_type, local_id) new [provider_id, system_id, object_type, local_id].join(":") end diff --git a/app/models/chouette/object_id.rb b/app/models/chouette/object_id.rb index 4f58048e1..0b122c91b 100644 --- a/app/models/chouette/object_id.rb +++ b/app/models/chouette/object_id.rb @@ -5,7 +5,7 @@ class Chouette::ObjectId < String end alias_method :objectid?, :valid? - @@format = /^([0-9A-Za-z_]+):([A-Za-z]+):([0-9A-Za-z_-]+)$/ + @@format = /^([0-9A-Za-z_]+):([A-Za-z]+):([0-9A-Za-z_-]+)$/ cattr_reader :format def parts @@ -23,7 +23,7 @@ class Chouette::ObjectId < String def local_id parts.try(:third) end - + def self.create(system_id, object_type, local_id) new [system_id, object_type, local_id].join(":") end diff --git a/app/models/chouette/stif_netex_objectid.rb b/app/models/chouette/stif_netex_objectid.rb index 3b11691d9..a0a91668a 100644 --- a/app/models/chouette/stif_netex_objectid.rb +++ b/app/models/chouette/stif_netex_objectid.rb @@ -26,6 +26,10 @@ class Chouette::StifNetexObjectid < String parts.try(:fourth) end + def short_id + local_id.try(:split, "-").try(:[], -1) + end + def self.create(provider_id, object_type, local_id, boiv_id) new [provider_id, object_type, local_id, boiv_id].join(":") end diff --git a/app/views/api_keys/_api_key.html.slim b/app/views/api_keys/_api_key.html.slim deleted file mode 100644 index 4cb07ef83..000000000 --- a/app/views/api_keys/_api_key.html.slim +++ /dev/null @@ -1,18 +0,0 @@ -#index_item.panel.panel-default.api_key - .panel-heading - .panel-title.clearfix - span.pull-right - = link_to edit_referential_api_key_path(@referential, api_key), class: "btn btn-default btn-sm" do - span.fa.fa-pencil - - = link_to referential_api_key_path(@referential, api_key), :method => :delete, :data => {:confirm => t('api_keys.actions.destroy_confirm')}, class: "btn btn-danger btn-sm" do - span.fa.fa-trash-o - - h5 - = link_to([@referential, api_key], class: "preview", :title => "#{Chouette::StopArea.model_name.human.capitalize} #{api_key.name}") do - span.name = truncate(api_key.name, :length => 20) - - .panel-body - p = "#{api_key.class.human_attribute_name('token')} #{truncate(api_key.token, :length => 20)}" - - p = "#{api_key.class.human_attribute_name('updated_at')} #{l(api_key.updated_at)}"
\ No newline at end of file diff --git a/app/views/api_keys/_form.html.slim b/app/views/api_keys/_form.html.slim index f3ebf3fe1..94a3ae57e 100644 --- a/app/views/api_keys/_form.html.slim +++ b/app/views/api_keys/_form.html.slim @@ -1,7 +1,9 @@ -= simple_form_for @api_key, url: action_url do |f| - = f.input :name - - unless @api_key.new_record? - = f.input :token, :input_html => { readonly: true } += simple_form_for @api_key, html: {class: 'form-horizontal', id: 'api_key_form'}, wrapper: :horizontal_form do |f| + .row + .col-lg-12 + = f.input :name + - unless @api_key.new_record? + = f.input :token, :input_html => { readonly: true } - = f.association :referential - = f.button :submit, 'submit', class: 'btn-primary' + / = f.association :referential + = f.button :submit, t('actions.submit'), class: 'btn btn-default formSubmitr', form: 'api_key_form' diff --git a/app/views/api_keys/edit.html.slim b/app/views/api_keys/edit.html.slim index e47deddf7..b1bd1858d 100644 --- a/app/views/api_keys/edit.html.slim +++ b/app/views/api_keys/edit.html.slim @@ -1,2 +1,18 @@ -= title_tag t('api_keys.edit.title') -== render partial: 'form', locals: {action_url: organisation_api_key_path} +/ PageHeader += pageheader 'Clé d\'API', + t('api_keys.edit.title'), + 'Lorem ipsum dolor sit amet', + t('last_update', time: l(@api_key.updated_at, format: :short)), + '' + + / Below is secundary actions & optional contents (filters, ...) + .row.mb-sm + .col-lg-12.text-right + = ( policy(@api_key).destroy? ? link_to(t('actions.destroy'), api_key_path(@api_key), :method => :delete, class: 'btn btn-default') : '' ) + +/ PageContent +.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' diff --git a/app/views/api_keys/index.html.slim b/app/views/api_keys/index.html.slim deleted file mode 100644 index 9757b8955..000000000 --- a/app/views/api_keys/index.html.slim +++ /dev/null @@ -1,27 +0,0 @@ -- header_params = ['map-marker', - t('.title'), - ''] -- header_params << link_to(t('actions.add'), new_organisation_api_key_path, class: 'btn btn-default') if policy(Api::V1::ApiKey).create? -= pageheader(*header_params) do - - -- if @api_keys.any? - .row - .col-lg-12 - = table_builder_2 @api_keys, - [ \ - TableBuilderHelper::Column.new( \ - key: :name, \ - attribute: 'name', \ - link_to: lambda do |api_key| \ - organisation_api_key_path(api_key) \ - end \ - ), \ - TableBuilderHelper::Column.new( \ - key: :token, \ - attribute: 'token' \ - ), \ - ], - cls: 'table has-search' - - = new_pagination @api_keys, 'pull-right' diff --git a/app/views/api_keys/new.html.slim b/app/views/api_keys/new.html.slim index 291c9f8a6..9acb08a94 100644 --- a/app/views/api_keys/new.html.slim +++ b/app/views/api_keys/new.html.slim @@ -1,2 +1,12 @@ -= title_tag t('api_keys.new.title') -== render partial: 'form', locals: {action_url: organisation_api_keys_path} +/ PageHeader += pageheader 'Clé d\'API', + t('api_keys.new.title'), + 'Lorem ipsum dolor sit amet', + '' + +/ PageContent +.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' diff --git a/app/views/api_keys/show.html.slim b/app/views/api_keys/show.html.slim deleted file mode 100644 index de30ac125..000000000 --- a/app/views/api_keys/show.html.slim +++ /dev/null @@ -1,17 +0,0 @@ -= title_tag t('api_keys.show.title') - -.api_keys_show - .summary - p - label = "#{@api_key.class.human_attribute_name('name')} : " - = @api_key.name - - p - label = "#{@api_key.class.human_attribute_name('token')} : " - = @api_key.token - -- content_for :sidebar do - ul.actions - li = link_to t('api_keys.actions.edit'), edit_organisation_api_key_path(@api_key), class: "edit" - li = link_to t('api_keys.actions.destroy'), organisation_api_key_path(@api_key), :method => :delete, :data => {:confirm => t('api_keys.actions.destroy_confirm')}, class: "remove" - br diff --git a/app/views/referential_lines/show.html.slim b/app/views/referential_lines/show.html.slim index cbce7a7d5..6e59d83b3 100644 --- a/app/views/referential_lines/show.html.slim +++ b/app/views/referential_lines/show.html.slim @@ -46,7 +46,7 @@ [ \ TableBuilderHelper::Column.new( \ name: 'ID', \ - attribute: Proc.new { |n| n.objectid.local_id }, \ + attribute: Proc.new { |n| n.objectid.short_id }, \ sortable: false \ ), \ TableBuilderHelper::Column.new( \ diff --git a/app/views/routes/show.html.slim b/app/views/routes/show.html.slim index a21b5ec8a..e2681d215 100644 --- a/app/views/routes/show.html.slim +++ b/app/views/routes/show.html.slim @@ -21,7 +21,7 @@ .row .col-lg-6.col-md-6.col-sm-12.col-xs-12 = definition_list t('metadatas'), - { t('id_codif') => @route.try(:objectid).try(:local_id), + { t('objectid') => @route.objectid.short_id, t('activerecord.attributes.route.published_name') => (@route.published_name ? @route.published_name : '-'), @route.human_attribute_name(:wayback) => (@route.wayback ? @route.wayback_text : '-' ), @route.human_attribute_name(:opposite_route) => (@route.opposite_route ? @route.opposite_route.name : '-') } @@ -29,7 +29,7 @@ - if @route_sp.any? .col-lg-6.col-md-6.col-sm-12.col-xs-12 #route_map.map.mb-lg - + .row .col-lg-12 - if @route_sp.any? diff --git a/app/views/time_tables/index.html.slim b/app/views/time_tables/index.html.slim index a1b9c4e09..b984f95c8 100644 --- a/app/views/time_tables/index.html.slim +++ b/app/views/time_tables/index.html.slim @@ -18,7 +18,7 @@ [ \ TableBuilderHelper::Column.new( \ name: 'ID', \ - attribute: Proc.new { |n| n.objectid.local_id }, \ + attribute: Proc.new { |n| n.objectid.short_id}, \ sortable: false \ ), \ TableBuilderHelper::Column.new( \ @@ -69,4 +69,4 @@ = javascript_tag do | window.I18n = #{(I18n.backend.send(:translations).to_json).html_safe}; -= javascript_include_tag 'filters/timetable.js' += javascript_include_tag 'filters/time_table.js' diff --git a/app/views/workbenches/index.html.slim b/app/views/workbenches/index.html.slim index 6140c4f8c..d35ed8121 100644 --- a/app/views/workbenches/index.html.slim +++ b/app/views/workbenches/index.html.slim @@ -2,6 +2,13 @@ = pageheader 'tableau-de-bord', t('.title', organisation: current_organisation.name) + / Below is secundary actions & optional contents (filters, ...) + .row.mb-sm + .col-lg-12.text-right + - if policy(Api::V1::ApiKey).create? + = link_to t('actions.create_api_key'), new_api_key_path, class: 'btn btn-primary' + + / PageContent .page_content .container-fluid @@ -27,6 +34,19 @@ .panel-body em.small.text-muted = t('.offers.no_content') + .panel.panel-default + .panel-heading + h3.panel-title + = t('.offers.api_keys') + span.badge.ml-xs = current_organisation.api_keys.count if current_organisation.api_keys.any? + - if current_organisation.api_keys.any? + - current_organisation.api_keys.each do |api_key| + .list-group + = policy(api_key).edit? ? link_to( "#{api_key.name} : #{api_key.token}", edit_api_key_path(api_key), class: 'list-group-item') : "#{api_key.name} : #{api_key.token}" + - else + .panel-body + em.small.text-muted = t('.offers.no_content') + .col-lg-6.col-md-6.col-sm-6.col-xs-12 .panel.panel-default .panel-heading |
