diff --git a/include/upgrader/streams/core/1ee831c8-36f6b328.task.php b/include/upgrader/streams/core/1ee831c8-36f6b328.task.php index ef8cd369069ee874343ebf3083a3d4c2c688a17c..d507553358cb17a25ecef590cf3c127f89dbedc7 100644 --- a/include/upgrader/streams/core/1ee831c8-36f6b328.task.php +++ b/include/upgrader/streams/core/1ee831c8-36f6b328.task.php @@ -37,7 +37,8 @@ class GroupRoles extends MigrationTask { $ht['permissions'] = $perms; - $role = Role::__create($ht); + $errors = array(); + $role = Role::__create($ht, $errors); $group->role_id = $role->getId(); $group->save(); } diff --git a/include/upgrader/streams/core/8f99b8bf-03ff59bf.task.php b/include/upgrader/streams/core/8f99b8bf-03ff59bf.task.php index f7bb36f7db2da78056a307b730543f6cc43ad5b0..cd41e131bdc7617503aa789d731e538ad0fb7db5 100644 --- a/include/upgrader/streams/core/8f99b8bf-03ff59bf.task.php +++ b/include/upgrader/streams/core/8f99b8bf-03ff59bf.task.php @@ -19,17 +19,8 @@ class SequenceLoader extends MigrationTask { .'(SELECT MAX(ticket_id)+1 FROM '.TICKET_TABLE.') ' .'WHERE `id`=1'); - require_once(INCLUDE_DIR . 'class.list.php'); - - $lists = $i18n->getTemplate('list.yaml')->getData(); - foreach ($lists as $l) { - DynamicList::create($l); - } - - $statuses = $i18n->getTemplate('ticket_status.yaml')->getData(); - foreach ($statuses as $s) { - TicketStatus::__create($s); - } + // list.yaml and ticket_status.yaml import moved to + // core/b26f29a6-1ee831c8.task.php // Initialize MYSQL search backend MysqlSearchBackend::__init(); diff --git a/include/upgrader/streams/core/934954de-f1ccd3bb.task.php b/include/upgrader/streams/core/934954de-f1ccd3bb.task.php new file mode 100644 index 0000000000000000000000000000000000000000..7fe0f141ed159be2a6d177219c1e8abed25ce2d8 --- /dev/null +++ b/include/upgrader/streams/core/934954de-f1ccd3bb.task.php @@ -0,0 +1,26 @@ +<?php + +class FileImport extends MigrationTask { + var $description = "Import core osTicket attachment files"; + + function run($runtime) { + $errors = array(); + + $i18n = new Internationalization('en_US'); + $files = $i18n->getTemplate('file.yaml')->getData(); + foreach ($files as $f) { + if (!($id = AttachmentFile::create($f, $errors))) + continue; + + // Ensure the new files are never deleted (attached to Disk) + $sql ='INSERT INTO '.ATTACHMENT_TABLE + .' SET object_id=0, `type`=\'D\', inline=1' + .', file_id='.db_input($id); + db_query($sql); + } + } +} + +return 'FileImport'; + +?> diff --git a/include/upgrader/streams/core/b26f29a6-1ee831c8.task.php b/include/upgrader/streams/core/b26f29a6-1ee831c8.task.php index ba6d63515b8bee4a3535185464103057ce66a7fa..19bed1964633046d1152708ca9b4574210738783 100644 --- a/include/upgrader/streams/core/b26f29a6-1ee831c8.task.php +++ b/include/upgrader/streams/core/b26f29a6-1ee831c8.task.php @@ -69,6 +69,20 @@ class IntlMigrator extends MigrationTask { // Add in new custom date format flag $cfg->set('date_formats', $touched ? 'custom' : '' ); + + // Moved here from core/8f99b8bf-03ff59bf.task.php + require_once(INCLUDE_DIR . 'class.list.php'); + $i18n = new Internationalization($cfg->get('system_language', 'en_US')); + $lists = $i18n->getTemplate('list.yaml')->getData(); + foreach ($lists as $l) { + DynamicList::create($l); + } + + $statuses = $i18n->getTemplate('ticket_status.yaml')->getData(); + foreach ($statuses as $s) { + TicketStatus::__create($s); + } + } } diff --git a/include/upgrader/streams/core/d51f303a-dad45ca2.task.php b/include/upgrader/streams/core/d51f303a-dad45ca2.task.php index 309f68e836e9f808a47fd3e69f6f143642226597..03a77f61d6349db29cd3d058ffa629afc388f53f 100644 --- a/include/upgrader/streams/core/d51f303a-dad45ca2.task.php +++ b/include/upgrader/streams/core/d51f303a-dad45ca2.task.php @@ -16,16 +16,7 @@ class NewHtmlTemplate extends MigrationTask { EmailTemplateGroup::create($t, $errors); } - $files = $i18n->getTemplate('file.yaml')->getData(); - foreach ($files as $f) { - $id = AttachmentFile::create($f, $errors); - - // Ensure the new files are never deleted (attached to Disk) - $sql ='INSERT INTO '.ATTACHMENT_TABLE - .' SET object_id=0, `type`=\'D\', inline=1' - .', file_id='.db_input($id); - db_query($sql); - } + // NOTE: Core files import moved to 934954de-f1ccd3bb.task.php } } return 'NewHtmlTemplate'; diff --git a/include/upgrader/streams/core/dad45ca2-61c9d5d7.task.php b/include/upgrader/streams/core/dad45ca2-61c9d5d7.task.php index 98d128fbdaed3a1a4a57fe3af06cd0fbb99c591e..9f046b3e68716184692821096d20498955be0a0a 100644 --- a/include/upgrader/streams/core/dad45ca2-61c9d5d7.task.php +++ b/include/upgrader/streams/core/dad45ca2-61c9d5d7.task.php @@ -11,9 +11,50 @@ class DynamicFormLoader extends MigrationTask { function run($max_time) { $i18n = new Internationalization('en_US'); $forms = $i18n->getTemplate('form.yaml')->getData(); - foreach ($forms as $f) + foreach ($forms as &$f) { + // Only import forms which exist at this stage. + if (!in_array($f['type'], array('U', 'T', 'C', 'O'))) + continue; + + if ($f['fields']) { + foreach($f['fields'] as &$field) { + $flags = $field['flags']; + // Edit mask + $field['edit_mask'] = $this->f2m($flags); + // private + if (!($flags & DynamicFormField::FLAG_CLIENT_VIEW)) + $field['private'] = true; + // required + if (($flags & DynamicFormField::FLAG_CLIENT_REQUIRED) + || ($flags & DynamicFormField::FLAG_AGENT_REQUIRED)) + $field['required'] = true; + + unset($field['flags']); + } + unset($field); + } + DynamicForm::create($f); + } + unset($f); } + + function f2m($flags) { + $masks = array( + 1 => DynamicFormField::FLAG_MASK_DELETE, + 2 => DynamicFormField::FLAG_MASK_NAME, + 4 => DynamicFormField::FLAG_MASK_VIEW, + 8 => DynamicFormField::FLAG_MASK_REQUIRE + ); + + $mask = 0; + foreach ($masks as $k => $v) + if (($flags & $v) != 0) + $mask += $k; + + return $mask; + } + } return 'DynamicFormLoader';