CRM-16907 - Fix navigation upgrade script
authorColeman Watts <coleman@civicrm.org>
Fri, 2 Oct 2015 20:04:15 +0000 (16:04 -0400)
committerColeman Watts <coleman@civicrm.org>
Fri, 2 Oct 2015 20:43:06 +0000 (16:43 -0400)
CRM/Upgrade/Incremental/sql/4.6.6.mysql.tpl
CRM/Upgrade/Incremental/sql/4.6.9.mysql.tpl

index 2e0516f0a15bc7b426c0e20cfcf32dc69bbc8bcc..3da4eb64e2e37a9068e1df0b197eebef777b9099 100644 (file)
@@ -1,4 +1,3 @@
-
 {* file to handle db changes in 4.6.6 during upgrade *}
 
 -- CRM-16846 - This upgrade may have been previously skipped so moving it to 4.6.6
@@ -10,35 +9,3 @@ UPDATE `civicrm_navigation`
 SET `permission` = 'edit message templates'
 WHERE `parent_id` = @messages_menu_id
 AND name = 'Message Templates';
-
--- CRM-16907
-SELECT @adminHelplastID := id FROM civicrm_navigation WHERE name = 'Help';
-UPDATE civicrm_navigation
-SET name = 'Support', label = 'Support'
-WHERE id = @adminHelplastID;
-
-DELETE FROM civicrm_navigation where parent_id = @adminHelplastID;
-
-INSERT INTO civicrm_navigation
-     ( domain_id, url, label, name, permission, permission_operator, parent_id, is_active, has_separator, weight )
- VALUES
-     ( {$domainID}, 'http://civicrm.org/get-started?src=iam',        '{ts escape="sql" skip="true"}Get started{/ts}',        'Get started',        NULL, 'AND', @adminHelplastID, '1', NULL, 1 ),
-     ( {$domainID}, 'http://civicrm.org/documentation?src=iam',      '{ts escape="sql" skip="true"}Documentation{/ts}',      'Documentation',      NULL, 'AND', @adminHelplastID, '1', NULL, 2 ),
-     ( {$domainID}, 'http://civicrm.org/ask-a-question?src=iam',     '{ts escape="sql" skip="true"}Ask a question{/ts}',     'Ask a question',     NULL, 'AND', @adminHelplastID, '1', NULL, 3 ),
-     ( {$domainID}, 'http://civicrm.org/experts?src=iam',            '{ts escape="sql" skip="true"}Get expert help{/ts}',    'Get expert help',    NULL, 'AND', @adminHelplastID, '1', NULL, 4 ),
-     ( {$domainID}, 'http://civicrm.org/about?src=iam',              '{ts escape="sql" skip="true"}About CiviCRM{/ts}',      'About CiviCRM',      NULL, 'AND', @adminHelplastID, '1', 1, 5 ),
-     ( {$domainID}, 'http://civicrm.org/register-your-site?src=iam', '{ts escape="sql" skip="true"}Register your site{/ts}', 'Register your site', NULL, 'AND', @adminHelplastID, '1', NULL, 6 ),    
-     ( {$domainID}, 'http://civicrm.org/become-member?src=iam',      '{ts escape="sql" skip="true"}Join CiviCRM{/ts}',       'Join CiviCRM',       NULL, 'AND', @adminHelplastID, '1', NULL, 7 );
-
-INSERT INTO civicrm_navigation
-     ( domain_id, url, label, name, permission, permission_operator, parent_id, is_active, has_separator, weight )
- VALUES
-     ( {$domainID}, NULL, '{ts escape="sql" skip="true"}Developer{/ts}', 'Developer', 'administer CiviCRM', '', @adminHelplastID, '1', 1, 8 );
-
-SET @devellastID:=LAST_INSERT_ID();
-INSERT INTO civicrm_navigation
-     ( domain_id, url, label, name, permission, permission_operator, parent_id, is_active, has_separator, weight )
- VALUES
-     ( {$domainID}, 'civicrm/api', '{ts escape="sql" skip="true"}API Explorer{/ts}','API Explorer', 'administer CiviCRM', '', @devellastID, '1', NULL, 1 ),
-     ( {$domainID}, 'http://civicrm.org/developer-documentation?src=iam', '{ts escape="sql" skip="true"}Developer Docs{/ts}', 'Developer Docs', 'administer CiviCRM', '', @devellastID, '1', NULL, 3 );
\ No newline at end of file
index 991a0e96de8c43ae8910f1d32f20548a2b290d01..e195f325ea68a117404c50f1e308658e88fc04a7 100644 (file)
@@ -13,3 +13,44 @@ ADD COLUMN `created_id` int(10) unsigned DEFAULT NULL COMMENT 'FK to contact tab
 ADD COLUMN `owner_id` int(10) unsigned DEFAULT NULL COMMENT 'FK to contact table.',
 ADD CONSTRAINT `FK_civicrm_report_instance_created_id` FOREIGN KEY (`created_id`) REFERENCES `civicrm_contact` (`id`) ON DELETE SET NULL,
 ADD CONSTRAINT `FK_civicrm_report_instance_owner_id` FOREIGN KEY (`owner_id`) REFERENCES `civicrm_contact` (`id`) ON DELETE SET NULL;
+
+-- CRM-16907
+SELECT @navMaxWeight := MAX(ROUND(weight)) from civicrm_navigation WHERE parent_id IS NULL;
+
+-- Add "support" menu if it's not there already
+INSERT INTO civicrm_navigation (domain_id, label, name, is_active, weight)
+SELECT * FROM (SELECT {$domainID} as domain_id, 'Support' as label, 'Help' as name, 1 as is_active, @navMaxWeight + 1 as weight) AS tmp
+WHERE NOT EXISTS (
+SELECT name FROM civicrm_navigation WHERE name = 'Help' AND domain_id = {$domainID}
+) LIMIT 1;
+
+SELECT @adminHelplastID := id FROM civicrm_navigation WHERE name = 'Help' AND domain_id = {$domainID};
+
+UPDATE civicrm_navigation
+SET name = 'Support', label = '{ts escape="sql" skip="true"}Support{/ts}'
+WHERE id = @adminHelplastID;
+
+DELETE FROM civicrm_navigation where parent_id = @adminHelplastID;
+
+INSERT INTO civicrm_navigation
+( domain_id, url, label, name, permission, permission_operator, parent_id, is_active, has_separator, weight )
+VALUES
+( {$domainID}, 'http://civicrm.org/get-started?src=iam',        '{ts escape="sql" skip="true"}Get started{/ts}',        'Get started',        NULL, 'AND', @adminHelplastID, '1', NULL, 1 ),
+( {$domainID}, 'http://civicrm.org/documentation?src=iam',      '{ts escape="sql" skip="true"}Documentation{/ts}',      'Documentation',      NULL, 'AND', @adminHelplastID, '1', NULL, 2 ),
+( {$domainID}, 'http://civicrm.org/ask-a-question?src=iam',     '{ts escape="sql" skip="true"}Ask a question{/ts}',     'Ask a question',     NULL, 'AND', @adminHelplastID, '1', NULL, 3 ),
+( {$domainID}, 'http://civicrm.org/experts?src=iam',            '{ts escape="sql" skip="true"}Get expert help{/ts}',    'Get expert help',    NULL, 'AND', @adminHelplastID, '1', NULL, 4 ),
+( {$domainID}, 'http://civicrm.org/about?src=iam',              '{ts escape="sql" skip="true"}About CiviCRM{/ts}',      'About CiviCRM',      NULL, 'AND', @adminHelplastID, '1', 1, 5 ),
+( {$domainID}, 'http://civicrm.org/register-your-site?src=iam', '{ts escape="sql" skip="true"}Register your site{/ts}', 'Register your site', NULL, 'AND', @adminHelplastID, '1', NULL, 6 ),
+( {$domainID}, 'http://civicrm.org/become-member?src=iam',      '{ts escape="sql" skip="true"}Join CiviCRM{/ts}',       'Join CiviCRM',       NULL, 'AND', @adminHelplastID, '1', NULL, 7 );
+
+INSERT INTO civicrm_navigation
+( domain_id, url, label, name, permission, permission_operator, parent_id, is_active, has_separator, weight )
+VALUES
+( {$domainID}, NULL, '{ts escape="sql" skip="true"}Developer{/ts}', 'Developer', 'administer CiviCRM', '', @adminHelplastID, '1', 1, 8 );
+
+SET @devellastID:=LAST_INSERT_ID();
+INSERT INTO civicrm_navigation
+( domain_id, url, label, name, permission, permission_operator, parent_id, is_active, has_separator, weight )
+VALUES
+( {$domainID}, 'civicrm/api', '{ts escape="sql" skip="true"}API Explorer{/ts}','API Explorer', 'administer CiviCRM', '', @devellastID, '1', NULL, 1 ),
+( {$domainID}, 'http://civicrm.org/developer-documentation?src=iam', '{ts escape="sql" skip="true"}Developer Docs{/ts}', 'Developer Docs', 'administer CiviCRM', '', @devellastID, '1', NULL, 3 );