mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-30 18:52:42 +01:00
67 lines
1.4 KiB
PHP
67 lines
1.4 KiB
PHP
|
<?php
|
||
|
|
||
|
echo "Migrating Maniphest custom field configuration...\n";
|
||
|
|
||
|
$old_key = 'maniphest.custom-fields';
|
||
|
$new_key = 'maniphest.custom-field-definitions';
|
||
|
|
||
|
if (PhabricatorEnv::getEnvConfig($new_key)) {
|
||
|
echo "Skipping migration, new data is already set.\n";
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
$old = PhabricatorEnv::getEnvConfigIfExists($old_key);
|
||
|
if (!$old) {
|
||
|
echo "Skipping migration, old data does not exist.\n";
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
$new = array();
|
||
|
foreach ($old as $field_key => $spec) {
|
||
|
$new_spec = array();
|
||
|
|
||
|
foreach ($spec as $key => $value) {
|
||
|
switch ($key) {
|
||
|
case 'label':
|
||
|
$new_spec['name'] = $value;
|
||
|
break;
|
||
|
case 'required':
|
||
|
case 'default':
|
||
|
case 'caption':
|
||
|
case 'options':
|
||
|
$new_spec[$key] = $value;
|
||
|
break;
|
||
|
case 'checkbox-label':
|
||
|
$new_spec['strings']['edit.checkbox'] = $value;
|
||
|
break;
|
||
|
case 'checkbox-value':
|
||
|
$new_spec['strings']['view.yes'] = $value;
|
||
|
break;
|
||
|
case 'type':
|
||
|
switch ($value) {
|
||
|
case 'string':
|
||
|
$value = 'text';
|
||
|
break;
|
||
|
case 'user':
|
||
|
$value = 'users';
|
||
|
$new_spec['limit'] = 1;
|
||
|
break;
|
||
|
}
|
||
|
$new_spec['type'] = $value;
|
||
|
break;
|
||
|
case 'copy':
|
||
|
$new_spec['copy'] = $value;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$new[$field_key] = $new_spec;
|
||
|
}
|
||
|
|
||
|
PhabricatorConfigEntry::loadConfigEntry($new_key)
|
||
|
->setIsDeleted(0)
|
||
|
->setValue($new)
|
||
|
->save();
|
||
|
|
||
|
echo "Done.\n";
|