Merged migrations.

This commit is contained in:
Martin Edenhofer 2015-09-26 17:31:53 +02:00
parent 04c8a6bcf8
commit 2314f318ff
6 changed files with 782 additions and 1252 deletions

View file

@ -11,7 +11,8 @@ class CreateTicket < ActiveRecord::Migration
create_table :ticket_states do |t|
t.references :state_type, null: false
t.column :name, :string, limit: 250, null: false
t.column :name, :string, limit: 250, null: false
t.column :next_state_id, :integer, null: true
t.column :note, :string, limit: 250, null: true
t.column :active, :boolean, null: false, default: true
t.column :updated_by_id, :integer, null: false

View file

@ -478,6 +478,786 @@ class CreateObjectManager < ActiveRecord::Migration
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'login',
display: 'Login',
data_type: 'input',
data_option: {
type: 'text',
maxlength: 100,
null: true,
autocapitalize: false,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {},
view: {
'-all-' => {
shown: false,
},
},
},
pending_migration: false,
position: 100,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'firstname',
display: 'Firstname',
data_type: 'input',
data_option: {
type: 'text',
maxlength: 150,
null: false,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {
'-all-' => {
null: false,
},
},
invite_agent: {
'-all-' => {
null: false,
},
},
edit: {
'-all-' => {
null: false,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 200,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'lastname',
display: 'Lastname',
data_type: 'input',
data_option: {
type: 'text',
maxlength: 150,
null: false,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {
'-all-' => {
null: false,
},
},
invite_agent: {
'-all-' => {
null: false,
},
},
edit: {
'-all-' => {
null: false,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 300,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'email',
display: 'Email',
data_type: 'input',
data_option: {
type: 'email',
maxlength: 150,
null: false,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {
'-all-' => {
null: false,
},
},
invite_agent: {
'-all-' => {
null: false,
},
},
edit: {
'-all-' => {
null: false,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 400,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'web',
display: 'Web',
data_type: 'input',
data_option: {
type: 'url',
maxlength: 250,
null: true,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 500,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'phone',
display: 'Phone',
data_type: 'input',
data_option: {
type: 'phone',
maxlength: 100,
null: true,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 600,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'mobile',
display: 'Mobile',
data_type: 'input',
data_option: {
type: 'phone',
maxlength: 100,
null: true,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 700,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'fax',
display: 'Fax',
data_type: 'input',
data_option: {
type: 'phone',
maxlength: 100,
null: true,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 800,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'organization_id',
display: 'Organization',
data_type: 'autocompletion_ajax',
data_option: {
multiple: false,
nulloption: true,
null: true,
relation: 'Organization',
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 900,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'department',
display: 'Department',
data_type: 'input',
data_option: {
type: 'text',
maxlength: 200,
null: true,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 1000,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'street',
display: 'Street',
data_type: 'input',
data_option: {
type: 'text',
maxlength: 100,
null: true,
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 1100,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'zip',
display: 'Zip',
data_type: 'input',
data_option: {
type: 'text',
maxlength: 100,
null: true,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 1200,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'city',
display: 'City',
data_type: 'input',
data_option: {
type: 'text',
maxlength: 100,
null: true,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 1300,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'password',
display: 'Password',
data_type: 'input',
data_option: {
type: 'password',
maxlength: 100,
null: true,
autocomplete: 'off',
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {
'-all-' => {
null: false,
},
},
invite_agent: {},
edit: {
Admin: {
null: true,
},
},
view: {}
},
pending_migration: false,
position: 1400,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'vip',
display: 'VIP',
data_type: 'boolean',
data_option: {
null: true,
default: false,
item_class: 'formGroup--halfSize',
options: {
false: 'no',
true: 'yes',
},
translate: true,
},
editable: false,
active: true,
screens: {
edit: {
Admin: {
null: true,
},
Agent: {
null: true,
},
},
view: {
'-all-' => {
shown: false,
},
},
},
pending_migration: false,
position: 1490,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'note',
display: 'Note',
data_type: 'richtext',
data_option: {
type: 'text',
maxlength: 250,
null: true,
note: 'Notes are visible to agents only, never to customers.',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 1500,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'role_ids',
display: 'Roles',
data_type: 'checkbox',
data_option: {
multiple: true,
null: false,
relation: 'Role',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
Admin: {
null: false,
},
},
view: {
'-all-' => {
shown: false,
},
},
},
pending_migration: false,
position: 1600,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'group_ids',
display: 'Groups',
data_type: 'checkbox',
data_option: {
multiple: true,
null: true,
relation: 'Group',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {
'-all-' => {
null: false,
},
},
edit: {
Admin: {
null: true,
},
},
view: {
'-all-' => {
shown: false,
},
},
},
pending_migration: false,
position: 1700,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'active',
display: 'Active',
data_type: 'active',
data_option: {
default: true,
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
Admin: {
null: false,
},
},
view: {
'-all-' => {
shown: false,
},
},
},
pending_migration: false,
position: 1800,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'Organization',
name: 'name',
display: 'Name',
data_type: 'input',
data_option: {
type: 'text',
maxlength: 150,
null: false,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
edit: {
'-all-' => {
null: false,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 200,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'Organization',
name: 'shared',
display: 'Shared organization',
data_type: 'boolean',
data_option: {
maxlength: 250,
null: true,
default: true,
note: 'Customers in the organization can view each other items.',
item_class: 'formGroup--halfSize',
options: {
true: 'Yes',
false: 'No',
}
},
editable: false,
active: true,
screens: {
edit: {
Admin: {
null: false,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 1400,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'Organization',
name: 'note',
display: 'Note',
data_type: 'richtext',
data_option: {
type: 'text',
maxlength: 250,
null: true,
note: 'Notes are visible to agents only, never to customers.',
},
editable: false,
active: true,
screens: {
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 1500,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'Organization',
name: 'active',
display: 'Active',
data_type: 'active',
data_option: {
default: true,
},
editable: false,
active: true,
screens: {
edit: {
Admin: {
null: false,
},
},
view: {
'-all-' => {
shown: false,
},
},
},
pending_migration: false,
position: 1800,
created_by_id: 1,
updated_by_id: 1,
)
end
def down

View file

@ -1,789 +0,0 @@
class UpdateObjectManager2 < ActiveRecord::Migration
def up
#remove_index :object_manager_attributes, [:name]
ObjectManager::Attribute.add(
object: 'User',
name: 'login',
display: 'Login',
data_type: 'input',
data_option: {
type: 'text',
maxlength: 100,
null: true,
autocapitalize: false,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {},
view: {
'-all-' => {
shown: false,
},
},
},
pending_migration: false,
position: 100,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'firstname',
display: 'Firstname',
data_type: 'input',
data_option: {
type: 'text',
maxlength: 150,
null: false,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {
'-all-' => {
null: false,
},
},
invite_agent: {
'-all-' => {
null: false,
},
},
edit: {
'-all-' => {
null: false,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 200,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'lastname',
display: 'Lastname',
data_type: 'input',
data_option: {
type: 'text',
maxlength: 150,
null: false,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {
'-all-' => {
null: false,
},
},
invite_agent: {
'-all-' => {
null: false,
},
},
edit: {
'-all-' => {
null: false,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 300,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'email',
display: 'Email',
data_type: 'input',
data_option: {
type: 'email',
maxlength: 150,
null: false,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {
'-all-' => {
null: false,
},
},
invite_agent: {
'-all-' => {
null: false,
},
},
edit: {
'-all-' => {
null: false,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 400,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'web',
display: 'Web',
data_type: 'input',
data_option: {
type: 'url',
maxlength: 250,
null: true,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 500,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'phone',
display: 'Phone',
data_type: 'input',
data_option: {
type: 'phone',
maxlength: 100,
null: true,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 600,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'mobile',
display: 'Mobile',
data_type: 'input',
data_option: {
type: 'phone',
maxlength: 100,
null: true,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 700,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'fax',
display: 'Fax',
data_type: 'input',
data_option: {
type: 'phone',
maxlength: 100,
null: true,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 800,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'organization_id',
display: 'Organization',
data_type: 'autocompletion_ajax',
data_option: {
multiple: false,
nulloption: true,
null: true,
relation: 'Organization',
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 900,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'department',
display: 'Department',
data_type: 'input',
data_option: {
type: 'text',
maxlength: 200,
null: true,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 1000,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'street',
display: 'Street',
data_type: 'input',
data_option: {
type: 'text',
maxlength: 100,
null: true,
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 1100,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'zip',
display: 'Zip',
data_type: 'input',
data_option: {
type: 'text',
maxlength: 100,
null: true,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 1200,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'city',
display: 'City',
data_type: 'input',
data_option: {
type: 'text',
maxlength: 100,
null: true,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 1300,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'password',
display: 'Password',
data_type: 'input',
data_option: {
type: 'password',
maxlength: 100,
null: true,
autocomplete: 'off',
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
signup: {
'-all-' => {
null: false,
},
},
invite_agent: {},
edit: {
Admin: {
null: true,
},
},
view: {}
},
pending_migration: false,
position: 1400,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'vip',
display: 'VIP',
data_type: 'boolean',
data_option: {
null: true,
default: false,
item_class: 'formGroup--halfSize',
options: {
false: 'no',
true: 'yes',
},
translate: true,
},
editable: false,
active: true,
screens: {
edit: {
Admin: {
null: true,
},
Agent: {
null: true,
},
},
view: {
'-all-' => {
shown: false,
},
},
},
pending_migration: false,
position: 1490,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'note',
display: 'Note',
data_type: 'richtext',
data_option: {
type: 'text',
maxlength: 250,
null: true,
note: 'Notes are visible to agents only, never to customers.',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 1500,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'role_ids',
display: 'Roles',
data_type: 'checkbox',
data_option: {
multiple: true,
null: false,
relation: 'Role',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
Admin: {
null: false,
},
},
view: {
'-all-' => {
shown: false,
},
},
},
pending_migration: false,
position: 1600,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'group_ids',
display: 'Groups',
data_type: 'checkbox',
data_option: {
multiple: true,
null: true,
relation: 'Group',
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {
'-all-' => {
null: false,
},
},
edit: {
Admin: {
null: true,
},
},
view: {
'-all-' => {
shown: false,
},
},
},
pending_migration: false,
position: 1700,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'User',
name: 'active',
display: 'Active',
data_type: 'active',
data_option: {
default: true,
},
editable: false,
active: true,
screens: {
signup: {},
invite_agent: {},
edit: {
Admin: {
null: false,
},
},
view: {
'-all-' => {
shown: false,
},
},
},
pending_migration: false,
position: 1800,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'Organization',
name: 'name',
display: 'Name',
data_type: 'input',
data_option: {
type: 'text',
maxlength: 150,
null: false,
item_class: 'formGroup--halfSize',
},
editable: false,
active: true,
screens: {
edit: {
'-all-' => {
null: false,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 200,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'Organization',
name: 'shared',
display: 'Shared organization',
data_type: 'boolean',
data_option: {
maxlength: 250,
null: true,
default: true,
note: 'Customers in the organization can view each other items.',
item_class: 'formGroup--halfSize',
options: {
true: 'Yes',
false: 'No',
}
},
editable: false,
active: true,
screens: {
edit: {
Admin: {
null: false,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 1400,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'Organization',
name: 'note',
display: 'Note',
data_type: 'richtext',
data_option: {
type: 'text',
maxlength: 250,
null: true,
note: 'Notes are visible to agents only, never to customers.',
},
editable: false,
active: true,
screens: {
edit: {
'-all-' => {
null: true,
},
},
view: {
'-all-' => {
shown: true,
},
},
},
pending_migration: false,
position: 1500,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'Organization',
name: 'active',
display: 'Active',
data_type: 'active',
data_option: {
default: true,
},
editable: false,
active: true,
screens: {
edit: {
Admin: {
null: false,
},
},
view: {
'-all-' => {
shown: false,
},
},
},
pending_migration: false,
position: 1800,
created_by_id: 1,
updated_by_id: 1,
)
end
def down
end
end

View file

@ -1,128 +0,0 @@
class UpdateOverviewAndTicketState < ActiveRecord::Migration
def up
# if we are on upgrade mode
overview_role = Role.where( name: 'Agent' ).first
add_column :ticket_states, :next_state_id, :integer, null: true
UserInfo.current_user_id = 1
return true if !overview_role
Overview.create_or_update(
name: 'My pending reached Tickets',
link: 'my_pending_reached',
prio: 1010,
role_id: overview_role.id,
condition: {
'tickets.state_id' => [3],
'tickets.owner_id' => 'current_user.id',
'tickets.pending_time' => { 'direction' => 'before', 'count' => 1, 'area' => 'minute' },
},
order: {
by: 'created_at',
direction: 'ASC',
},
view: {
d: %w(title customer group created_at),
s: %w(title customer group created_at),
m: %w(number title customer group created_at),
view_mode_default: 's',
},
)
Ticket::State.create_or_update( id: 3, name: 'pending reminder', state_type_id: Ticket::StateType.where(name: 'pending reminder').first.id )
Ticket::State.create_or_update( id: 6, name: 'removed', state_type_id: Ticket::StateType.where(name: 'removed').first.id, active: false )
Ticket::State.create_or_update( id: 7, name: 'pending close', state_type_id: Ticket::StateType.where(name: 'pending action').first.id )
ObjectManager::Attribute.add(
object: 'Ticket',
name: 'state_id',
display: 'State',
data_type: 'select',
data_option: {
relation: 'TicketState',
nulloption: true,
multiple: false,
null: false,
default: 2,
translate: true,
filter: [1, 2, 3, 4, 7],
},
editable: false,
active: true,
screens: {
create_middle: {
Agent: {
null: false,
item_class: 'column',
},
Customer: {
item_class: 'column',
nulloption: false,
null: true,
filter: [1, 4],
default: 1,
},
},
edit: {
Agent: {
nulloption: false,
null: false,
filter: [2, 3, 4, 7],
},
Customer: {
nulloption: false,
null: true,
filter: [2, 4],
default: 2,
},
},
},
pending_migration: false,
position: 40,
created_by_id: 1,
updated_by_id: 1,
)
ObjectManager::Attribute.add(
object: 'Ticket',
name: 'pending_time',
display: 'Pending till',
data_type: 'datetime',
data_option: {
future: true,
past: false,
diff: 24,
null: true,
translate: true,
required_if: {
state_id: [3, 7]
},
shown_if: {
state_id: [3, 7]
},
},
editable: false,
active: true,
screens: {
create_middle: {
'-all-' => {
null: false,
item_class: 'column',
},
},
edit: {
Agent: {
null: false,
},
},
},
pending_migration: false,
position: 41,
created_by_id: 1,
updated_by_id: 1,
)
end
def down
end
end

View file

@ -1,69 +0,0 @@
class UpdateSettings < ActiveRecord::Migration
def up
Setting.create_or_update(
title: 'Organization',
name: 'organization',
area: 'System::Branding',
description: 'Will be shown in the app and is included in email footers.',
options: {
form: [
{
display: '',
null: false,
name: 'organization',
tag: 'input',
},
],
},
state: '',
preferences: { prio: 2 },
frontend: true
)
Setting.create_or_update(
title: 'Send client stats',
name: 'ui_send_client_stats',
area: 'System::UI',
description: 'Send client stats/error message to central server to improve the usability.',
options: {
form: [
{
display: '',
null: true,
name: 'ui_send_client_stats',
tag: 'boolean',
options: {
true => 'yes',
false => 'no',
},
},
],
},
state: true,
preferences: { prio: 1 },
frontend: true
)
Setting.create_or_update(
title: 'Client storage',
name: 'ui_client_storage',
area: 'System::UI',
description: 'Use client storage to cache data to perform speed of application.',
options: {
form: [
{
display: '',
null: true,
name: 'ui_client_storage',
tag: 'boolean',
options: {
true => 'yes',
false => 'no',
},
},
],
},
state: false,
preferences: { prio: 2 },
frontend: true
)
end
end

View file

@ -1,265 +0,0 @@
class AddSettingOnlineService < ActiveRecord::Migration
def up
# return if it's a new setup
return if !Setting.find_by(name: 'system_init_done')
Setting.create_or_update(
title: 'System Init Done',
name: 'system_init_done',
area: 'Core',
description: 'Defines if application is in init mode.',
options: {},
state: Setting.get('system_init_done'),
preferences: { online_service_disable: true },
frontend: true
)
Setting.create_or_update(
title: 'Developer System',
name: 'developer_mode',
area: 'Core::Develop',
description: 'Defines if application is in developer mode (useful for developer, all users have the same password, password reset will work without email delivery).',
options: {},
state: Setting.get('developer_mode'),
preferences: { online_service_disable: true },
frontend: true
)
Setting.create_or_update(
title: 'Online Service',
name: 'system_online_service',
area: 'Core',
description: 'Defines if application is used as online service.',
options: {},
state: Setting.get('system_online_service'),
preferences: { online_service_disable: true },
frontend: true
)
Setting.create_or_update(
title: 'SystemID',
name: 'system_id',
area: 'System::Base',
description: 'Defines the system identifier. Every ticket number contains this ID. This ensures that only tickets which belong to your system will be processed as follow-ups (useful when communicating between two instances of Zammad).',
options: {
form: [
{
display: '',
null: true,
name: 'system_id',
tag: 'select',
options: {
'10' => '10',
'11' => '11',
'12' => '12',
'13' => '13',
},
},
],
},
state: '10',
preferences: { online_service_disable: true },
frontend: true
)
Setting.create_or_update(
title: 'Fully Qualified Domain Name',
name: 'fqdn',
area: 'System::Base',
description: 'Defines the fully qualified domain name of the system. This setting is used as a variable, #{setting.fqdn} which is found in all forms of messaging used by the application, to build links to the tickets within your system.',
options: {
form: [
{
display: '',
null: false,
name: 'fqdn',
tag: 'input',
},
],
},
state: Setting.get('fqdn'),
preferences: { online_service_disable: true },
frontend: true
)
Setting.create_or_update(
title: 'websocket port',
name: 'websocket_port',
area: 'System::WebSocket',
description: 'Defines the port of the websocket server.',
options: {
form: [
{
display: '',
null: false,
name: 'websocket_port',
tag: 'input',
},
],
},
state: Setting.get('websocket_port'),
preferences: { online_service_disable: true },
frontend: true
)
Setting.create_or_update(
title: 'http type',
name: 'http_type',
area: 'System::Base',
description: 'Defines the type of protocol, used by the web server, to serve the application. If https protocol will be used instead of plain http, it must be specified in here. Since this has no affect on the web server\'s settings or behavior, it will not change the method of access to the application and, if it is wrong, it will not prevent you from logging into the application. This setting is used as a variable, #{setting.http_type} which is found in all forms of messaging used by the application, to build links to the tickets within your system.',
options: {
form: [
{
display: '',
null: true,
name: 'http_type',
tag: 'select',
options: {
'https' => 'https',
'http' => 'http',
},
},
],
},
state: Setting.get('http_type'),
preferences: { online_service_disable: true },
frontend: true
)
Setting.create_or_update(
title: 'Storage Mechanism',
name: 'storage',
area: 'System::Storage',
description: '"Database" stores all attachments in the database (not recommended for storing large amounts of data). "Filesystem" stores the data on the filesystem. You can switch between the modules even on a system that is already in production without any loss of data.',
options: {
form: [
{
display: '',
null: true,
name: 'storage',
tag: 'select',
options: {
'DB' => 'Database',
'FS' => 'Filesystem',
},
},
],
},
state: Setting.get('storage'),
preferences: { online_service_disable: true },
frontend: false
)
Setting.create_or_update(
title: 'Max. Email Size',
name: 'postmaster_max_size',
area: 'Email::Base',
description: 'Maximal size in MB of emails.',
options: {
form: [
{
display: '',
null: true,
name: 'postmaster_max_size',
tag: 'select',
options: {
1 => 1,
2 => 2,
3 => 3,
4 => 4,
5 => 5,
6 => 6,
7 => 7,
8 => 8,
9 => 9,
10 => 10,
11 => 11,
12 => 12,
13 => 13,
14 => 14,
15 => 15,
16 => 16,
17 => 17,
18 => 18,
19 => 19,
20 => 20,
},
},
],
},
state: Setting.get('postmaster_max_size'),
preferences: { online_service_disable: true },
frontend: false
)
Setting.create_or_update(
title: 'Notification Sender',
name: 'notification_sender',
area: 'Email::Base',
description: 'Defines the sender of email notifications.',
options: {
form: [
{
display: '',
null: false,
name: 'notification_sender',
tag: 'input',
},
],
},
state: Setting.get('notification_sender'),
preferences: { online_service_disable: true },
frontend: false
)
Setting.create_or_update(
title: 'Elasticsearch Endpoint URL',
name: 'es_url',
area: 'SearchIndex::Elasticsearch',
description: 'Define endpoint of Elastic Search.',
state: Setting.get('es_url'),
preferences: { online_service_disable: true },
frontend: false
)
Setting.create_or_update(
title: 'Elasticsearch Endpoint User',
name: 'es_user',
area: 'SearchIndex::Elasticsearch',
description: 'Define http basic auth user of Elasticsearch.',
state: Setting.get('es_user'),
preferences: { online_service_disable: true },
frontend: false
)
Setting.create_or_update(
title: 'Elastic Search Endpoint Password',
name: 'es_password',
area: 'SearchIndex::Elasticsearch',
description: 'Define http basic auth password of Elasticsearch.',
state: Setting.get('es_password'),
preferences: { online_service_disable: true },
frontend: false
)
Setting.create_or_update(
title: 'Elastic Search Endpoint Index',
name: 'es_index',
area: 'SearchIndex::Elasticsearch',
description: 'Define Elasticsearch index name.',
state: Setting.get('es_index'),
preferences: { online_service_disable: true },
frontend: false
)
Setting.create_or_update(
title: 'Elastic Search Attachment Extentions',
name: 'es_attachment_ignore',
area: 'SearchIndex::Elasticsearch',
description: 'Define attachment extentions which are ignored for Elasticsearch.',
state: Setting.get('es_attachment_ignore'),
preferences: { online_service_disable: true },
frontend: false
)
Setting.create_or_update(
title: 'Elastic Search Attachment Size',
name: 'es_attachment_max_size_in_mb',
area: 'SearchIndex::Elasticsearch',
description: 'Define max. attachment size for Elasticsearch.',
state: Setting.get('es_attachment_max_size_in_mb'),
preferences: { online_service_disable: true },
frontend: false
)
end
end