diff --git a/include/class.dynamic_forms.php b/include/class.dynamic_forms.php index d2cee5573987e0cde80c3c7f1a1bcacc98a9f703..b582110b0100c933334ed03592e3d2c8f6afddeb 100644 --- a/include/class.dynamic_forms.php +++ b/include/class.dynamic_forms.php @@ -424,7 +424,7 @@ class DynamicFormField extends VerySimpleModel { var $_field; const FLAG_ENABLED = 0x0001; - const FLAG_STORABLE = 0x0002; + const FLAG_EXT_STORED = 0x0002; // Value stored outside of form_entry_value const FLAG_CLOSE_REQUIRED = 0x0004; const FLAG_MASK_CHANGE = 0x0010; diff --git a/include/class.forms.php b/include/class.forms.php index 3410477d781b8d56b95883e426a0e5b9f41521f4..c3d61ea25454a428252841834fbaa5c14ba1d822 100644 --- a/include/class.forms.php +++ b/include/class.forms.php @@ -407,7 +407,7 @@ class FormField { */ function isStorable() { - return (($this->get('flags') & 2) == 0); + return (($this->get('flags') & DynamicFormField::FLAG_EXT_STORED) == 0); } /** diff --git a/include/upgrader/streams/core.sig b/include/upgrader/streams/core.sig index 595363a70fc0d9b2206f9b3054e4aca2deaa66e6..776ffc839a61c0b88c0387008deb5ea18c453bce 100644 --- a/include/upgrader/streams/core.sig +++ b/include/upgrader/streams/core.sig @@ -1 +1 @@ -7c218d81e84b304c1436326c26ace09d +1ee831c854fe9f35115a3e672916bb91 diff --git a/include/upgrader/streams/core/b26f29a6-7c218d81.cleanup.sql b/include/upgrader/streams/core/b26f29a6-1ee831c8.cleanup.sql similarity index 86% rename from include/upgrader/streams/core/b26f29a6-7c218d81.cleanup.sql rename to include/upgrader/streams/core/b26f29a6-1ee831c8.cleanup.sql index 38a11ec1a9dff14d79cdfb20ef5c229b8cafd6c0..f56a5cb2c0d24deac939bc08b185cbdcc53119d1 100644 --- a/include/upgrader/streams/core/b26f29a6-7c218d81.cleanup.sql +++ b/include/upgrader/streams/core/b26f29a6-1ee831c8.cleanup.sql @@ -1,6 +1,6 @@ /** - * @signature d7480e1c31a1f20d6954ecbb342722d3 - * @version v1.9.5 + * @signature 1ee831c854fe9f35115a3e672916bb91 + * @version v1.9.6 * @title Make editable content translatable * * This patch adds support for translatable administratively editable diff --git a/include/upgrader/streams/core/b26f29a6-7c218d81.patch.sql b/include/upgrader/streams/core/b26f29a6-1ee831c8.patch.sql similarity index 78% rename from include/upgrader/streams/core/b26f29a6-7c218d81.patch.sql rename to include/upgrader/streams/core/b26f29a6-1ee831c8.patch.sql index 4d98136aa645bd97aaf5f32a775cb7e378ddbafe..52d6856b725f2ec369144174172e330bceb9f2b0 100644 --- a/include/upgrader/streams/core/b26f29a6-7c218d81.patch.sql +++ b/include/upgrader/streams/core/b26f29a6-1ee831c8.patch.sql @@ -1,5 +1,5 @@ /** - * @signature 7c218d81e84b304c1436326c26ace09d + * @signature 1ee831c854fe9f35115a3e672916bb91 * @version v1.9.6 * @title Make editable content translatable and add queues * @@ -172,7 +172,41 @@ CREATE TABLE `%TABLE_PREFIX%queue` ( primary key (`id`) ) DEFAULT CHARSET=utf8; +-- Add flags field to form field +ALTER TABLE `%TABLE_PREFIX%form_field` + ADD `flags` INT UNSIGNED NOT NULL DEFAULT '1' AFTER `form_id`; + +-- Flag field stored in the system elsewhere as nonstorable locally. +UPDATE `%TABLE_PREFIX%form_field` A1 JOIN `%TABLE_PREFIX%form` A2 ON(A2.id=A1.form_id) + SET A1.`flags` = 3 + WHERE A2.`type` = 'U' AND A1.`name` IN('name','email'); + +UPDATE `%TABLE_PREFIX%form_field` A1 JOIN `%TABLE_PREFIX%form` A2 ON(A2.id=A1.form_id) + SET A1.`flags`=3 + WHERE A2.`type`='O' AND A1.`name` IN('name'); + +set @client_edit = ( + select value from `%TABLE_PREFIX%config` where `key` = 'allow_client_updates'); + +-- Transfer previous visibility and requirement settings to new flag field +UPDATE `%TABLE_PREFIX%form_field` SET `flags` = `flags` | + CASE WHEN `private` = 0 and @client_edit = 1 THEN CONV(3300, 16, 10) + WHEN `private` = 0 and @client_edit = 0 THEN CONV(3100, 16, 10) + WHEN `private` = 1 THEN CONV(3000, 16, 10) + WHEN `private` = 2 and @client_edit = 1 THEN CONV(300, 16, 10) END + WHEN `private` = 2 and @client_edit = 0 THEN CONV(100, 16, 10) END + | CASE WHEN `required` = 0 THEN 0 + WHEN `required` = 1 THEN CONV(4400, 16, 10) + WHEN `required` = 2 THEN CONV(400, 16, 10) + WHEN `required` = 3 THEN CONV(4000, 16, 10) END + | IF(`edit_mask` & 1, CONV(20, 16, 10), 0) + | IF(`edit_mask` & 2, CONV(40000, 16, 10), 0) + | IF(`edit_mask` & 4, CONV(10000, 16, 10), 0) + | IF(`edit_mask` & 8, CONV(20000, 16, 10), 0) + | IF(`edit_mask` & 16, CONV(10, 16, 10), 0) + | IF(`edit_mask` & 32, CONV(40, 16, 10), 0); + -- Finished with patch UPDATE `%TABLE_PREFIX%config` - SET `value` = '7c218d81e84b304c1436326c26ace09d' + SET `value` = '1ee831c854fe9f35115a3e672916bb91' WHERE `key` = 'schema_signature' AND `namespace` = 'core'; diff --git a/include/upgrader/streams/core/b26f29a6-7c218d81.task.php b/include/upgrader/streams/core/b26f29a6-1ee831c8.task.php similarity index 100% rename from include/upgrader/streams/core/b26f29a6-7c218d81.task.php rename to include/upgrader/streams/core/b26f29a6-1ee831c8.task.php