[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/resources/sql/patches/ -> 20130919.mfieldconf.php (source)

   1  <?php
   2  
   3  echo "Migrating Maniphest custom field configuration...\n";
   4  
   5  $old_key = 'maniphest.custom-fields';
   6  $new_key = 'maniphest.custom-field-definitions';
   7  
   8  if (PhabricatorEnv::getEnvConfig($new_key)) {
   9    echo "Skipping migration, new data is already set.\n";
  10    return;
  11  }
  12  
  13  $old = PhabricatorEnv::getEnvConfigIfExists($old_key);
  14  if (!$old) {
  15    echo "Skipping migration, old data does not exist.\n";
  16    return;
  17  }
  18  
  19  $new = array();
  20  foreach ($old as $field_key => $spec) {
  21    $new_spec = array();
  22  
  23    foreach ($spec as $key => $value) {
  24      switch ($key) {
  25        case 'label':
  26          $new_spec['name'] = $value;
  27          break;
  28        case 'required':
  29        case 'default':
  30        case 'caption':
  31        case 'options':
  32          $new_spec[$key] = $value;
  33          break;
  34        case 'checkbox-label':
  35          $new_spec['strings']['edit.checkbox'] = $value;
  36          break;
  37        case 'checkbox-value':
  38          $new_spec['strings']['view.yes'] = $value;
  39          break;
  40        case 'type':
  41          switch ($value) {
  42            case 'string':
  43              $value = 'text';
  44              break;
  45            case 'user':
  46              $value = 'users';
  47              $new_spec['limit'] = 1;
  48              break;
  49          }
  50          $new_spec['type'] = $value;
  51          break;
  52        case 'copy':
  53          $new_spec['copy'] = $value;
  54          break;
  55      }
  56    }
  57  
  58    $new[$field_key] = $new_spec;
  59  }
  60  
  61  PhabricatorConfigEntry::loadConfigEntry($new_key)
  62    ->setIsDeleted(0)
  63    ->setValue($new)
  64    ->save();
  65  
  66  echo "Done.\n";


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1