14 use Illuminate\Database\Migrations\Migration;
15 use Illuminate\Database\Schema\Builder;
16 use Illuminate\Database\Schema\Blueprint;
17 use Illuminate\Database\Capsule\Manager as Capsule;
24 public function up() {
25 Capsule::schema()->table(
'submissions',
function (Blueprint $table) {
27 $table->dropColumn(
'locale');
29 $table->dropColumn(
'section_id');
31 Capsule::schema()->table(
'publication_settings',
function (Blueprint $table) {
33 $table->mediumText(
'setting_value')->nullable()->change();
35 Capsule::schema()->table(
'authors',
function (Blueprint $table) {
37 $table->dropColumn(
'submission_id');
39 Capsule::schema()->table(
'author_settings',
function (Blueprint $table) {
41 $table->dropColumn(
'setting_type');
43 Capsule::schema()->table(
'announcements',
function (Blueprint $table) {
45 $table->date(
'date_expire')->change();
49 if (!Capsule::schema()->hasColumn(
'email_templates_default',
'stage_id')) {
50 Capsule::schema()->table(
'email_templates_default',
function (Blueprint $table) {
52 $table->bigInteger(
'stage_id')->nullable();
57 Capsule::schema()->table(
'user_settings',
function (Blueprint $table) {
58 $table->bigInteger(
'assoc_type')->
default(0)->change();
59 $table->bigInteger(
'assoc_id')->
default(0)->change();
61 Capsule::schema()->table(
'announcement_types',
function (Blueprint $table) {
62 $table->bigInteger(
'assoc_type')->change();
64 Capsule::schema()->table(
'email_templates',
function (Blueprint $table) {
65 $table->bigInteger(
'context_id')->
default(0)->change();
67 Capsule::schema()->table(
'genres',
function (Blueprint $table) {
68 $table->bigInteger(
'seq')->change();
69 $table->smallInteger(
'supplementary')->
default(0)->change();
71 Capsule::schema()->table(
'event_log',
function (Blueprint $table) {
72 $table->bigInteger(
'assoc_type')->change();
73 $table->bigInteger(
'assoc_id')->change();
75 Capsule::schema()->table(
'email_log',
function (Blueprint $table) {
76 $table->bigInteger(
'assoc_type')->change();
77 $table->bigInteger(
'assoc_id')->change();
79 Capsule::schema()->table(
'notes',
function (Blueprint $table) {
80 $table->bigInteger(
'assoc_type')->change();
81 $table->bigInteger(
'assoc_id')->change();
83 Capsule::schema()->table(
'review_forms',
function (Blueprint $table) {
84 $table->bigInteger(
'assoc_type')->change();
85 $table->bigInteger(
'assoc_id')->change();
87 Capsule::schema()->table(
'review_assignments',
function (Blueprint $table) {
88 $table->bigInteger(
'review_round_id')->change();
90 Capsule::schema()->table(
'authors',
function (Blueprint $table) {
91 $table->bigInteger(
'publication_id')->change();
93 Capsule::schema()->table(
'edit_decisions',
function (Blueprint $table) {
94 $table->bigInteger(
'review_round_id')->change();
96 Capsule::connection()->unprepared(
'UPDATE review_assignments SET review_form_id=NULL WHERE review_form_id=0');
98 $this->_populateEmailTemplates();
99 $this->_makeRemoteUrlLocalizable();
114 private function _populateEmailTemplates() {
117 $data = $xmlDao->parseStruct($emailTemplateDao->getMainEmailTemplatesFilename(), array(
'email'));
118 foreach ($data[
'email'] as $template) {
119 $attr = $template[
'attributes'];
120 if (array_key_exists(
'stage_id', $attr)) {
121 Capsule::table(
'email_templates_default')->where(
'email_key', $attr[
'key'])->update(array(
'stage_id' => $attr[
'stage_id']));
130 private function _makeRemoteUrlLocalizable() {
132 $contextIds = $contextService->getIds();
133 foreach ($contextIds as $contextId) {
134 $context = $contextService->get($contextId);
135 $locales = $context->getData(
'supportedLocales');
137 $navigationItems = Capsule::table(
'navigation_menu_items')->where(
'context_id', $contextId)->pluck(
'url',
'navigation_menu_item_id')->filter()->all();
138 foreach ($navigationItems as $navigation_menu_item_id => $url) {
139 foreach ($locales as $locale) {
140 Capsule::table(
'navigation_menu_item_settings')->insert([
141 'navigation_menu_item_id' => $navigation_menu_item_id,
143 'setting_name' =>
'remoteUrl',
144 'setting_value' => $url,
145 'setting_type' =>
'string'
152 $site = $siteDao->getSite();
153 $supportedLocales = $site->getSupportedLocales();
154 $navigationItems = Capsule::table(
'navigation_menu_items')->where(
'context_id',
'0')->pluck(
'url',
'navigation_menu_item_id')->filter()->all();
155 foreach ($navigationItems as $navigation_menu_item_id => $url) {
156 foreach ($supportedLocales as $locale) {
157 Capsule::table(
'navigation_menu_item_settings')->insert([
158 'navigation_menu_item_id' => $navigation_menu_item_id,
160 'setting_name' =>
'remoteUrl',
161 'setting_value' => $url,
162 'setting_type' =>
'string'
167 Capsule::schema()->table(
'navigation_menu_items',
function (Blueprint $table) {
168 $table->dropColumn(
'url');