20190409000001_setting_ticket_overview_priority_icon_and_color.rb 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. class SettingTicketOverviewPriorityIconAndColor < ActiveRecord::Migration[5.1]
  2. def change
  3. Setting.create_if_not_exists(
  4. title: 'Priority Icons in Overviews',
  5. name: 'ui_ticket_overview_priority_icon',
  6. area: 'UI::TicketOverview::PriorityIcons',
  7. description: 'Enables priority icons in ticket overviews.',
  8. options: {
  9. form: [
  10. {
  11. display: '',
  12. null: true,
  13. name: 'ui_ticket_overview_priority_icon',
  14. tag: 'boolean',
  15. translate: true,
  16. options: {
  17. true => 'yes',
  18. false => 'no',
  19. },
  20. },
  21. ],
  22. },
  23. state: false,
  24. preferences: {
  25. prio: 500,
  26. permission: ['admin.ui'],
  27. },
  28. frontend: true
  29. )
  30. if ActiveRecord::Base.connection.columns('ticket_priorities').map(&:name).exclude?('ui_icon')
  31. add_column :ticket_priorities, :ui_icon, :string, limit: 100, null: true
  32. end
  33. if ActiveRecord::Base.connection.columns('ticket_priorities').map(&:name).exclude?('ui_color')
  34. add_column :ticket_priorities, :ui_color, :string, limit: 100, null: true
  35. end
  36. Ticket::Priority.reset_column_information
  37. priority = Ticket::Priority.find_by(name: '1 low')
  38. priority&.update!(ui_icon: 'low-priority', ui_color: 'low-priority')
  39. priority = Ticket::Priority.find_by(name: '3 high')
  40. priority&.update!(ui_icon: 'important', ui_color: 'high-priority')
  41. end
  42. end