CRM-17637 - Refactor out versionCheck setting
authorColeman Watts <coleman@civicrm.org>
Sat, 5 Dec 2015 03:17:29 +0000 (22:17 -0500)
committerColeman Watts <coleman@civicrm.org>
Sat, 5 Dec 2015 03:18:54 +0000 (22:18 -0500)
CRM/Admin/Form/Setting/Miscellaneous.php
CRM/Core/Config/MagicMerge.php
CRM/Utils/Check/Env.php
api/v3/examples/Setting/GetFields.php
settings/Core.setting.php
templates/CRM/Admin/Form/Setting/Miscellaneous.tpl

index 4a4645a628d647b8d690f3f19a68e71d07fd6838..1630ed9ce964b8a41cf382445d6e87b2888813ae 100644 (file)
@@ -40,7 +40,6 @@ class CRM_Admin_Form_Setting_Miscellaneous extends CRM_Admin_Form_Setting {
     'max_attachments' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
     'contact_undelete' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
     'dashboardCacheTimeout' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
-    'versionCheck' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
     'empoweredBy' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
     'logging' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
     'maxFileSize' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
index 39a0a493f5700a728d539aa528f294b13545d06d..57bf9c9c0f311a65edb15b372649dcef8e3af082 100644 (file)
@@ -172,7 +172,6 @@ class CRM_Core_Config_MagicMerge {
       'userFrameworkLogging' => array('setting'),
       'userFrameworkUsersTableName' => array('setting'),
       'verpSeparator' => array('setting'),
-      'versionCheck' => array('setting'),
       'wkhtmltopdfPath' => array('setting'),
       'wpBasePage' => array('setting'),
       'wpLoadPhp' => array('setting'),
index 7b4a9d9112380959274061efd8a85e25583634c3..574795a08135b8eb836ee83d6ed3344e2115ad9a 100644 (file)
@@ -292,63 +292,75 @@ class CRM_Utils_Check_Env {
   public function checkVersion() {
     $messages = array();
 
-    if (Civi::settings()->get('versionCheck')) {
-      $vc = new CRM_Utils_VersionCheck();
-      $newerVersion = $vc->isNewerVersionAvailable();
-
-      if ($newerVersion['version']) {
-        $vInfo = array(
-          1 => $newerVersion['version'],
-          2 => $vc->localVersion,
-        );
-        // LTS = long-term support version
-        if ($newerVersion['status'] == 'lts') {
-          $vInfo[1] .= ' ' . ts('(long-term support)');
-        }
-
-        if ($newerVersion['upgrade'] == 'security') {
-          // Security
-          $severity = \Psr\Log\LogLevel::CRITICAL;
-          $title = ts('CiviCRM Security Update Required');
-          $message = ts('New security release %1 is available. The site is currently running %2.', $vInfo);
-        }
-        elseif ($newerVersion['status'] == 'eol') {
-          // Warn about EOL
-          $severity = \Psr\Log\LogLevel::WARNING;
-          $title = ts('CiviCRM Update Needed');
-          $message = ts('New version %1 is available. The site is currently running %2, which has reached its end of life.', $vInfo);
-        }
-        else {
-          // For most new versions, just make them notice
-          $severity = \Psr\Log\LogLevel::NOTICE;
-          $title = ts('CiviCRM Update Available');
-          $message = ts('New version %1 is available. The site is currently running %2.', $vInfo);
-        }
+    $vc = new CRM_Utils_VersionCheck();
+    $newerVersion = $vc->isNewerVersionAvailable();
+
+    if ($newerVersion['version']) {
+      $vInfo = array(
+        1 => $newerVersion['version'],
+        2 => $vc->localVersion,
+      );
+      // LTS = long-term support version
+      if ($newerVersion['status'] == 'lts') {
+        $vInfo[1] .= ' ' . ts('(long-term support)');
+      }
+
+      if ($newerVersion['upgrade'] == 'security') {
+        // Security
+        $severity = \Psr\Log\LogLevel::CRITICAL;
+        $title = ts('CiviCRM Security Update Required');
+        $message = ts('New security release %1 is available. The site is currently running %2.', $vInfo);
+      }
+      elseif ($newerVersion['status'] == 'eol') {
+        // Warn about EOL
+        $severity = \Psr\Log\LogLevel::WARNING;
+        $title = ts('CiviCRM Update Needed');
+        $message = ts('New version %1 is available. The site is currently running %2, which has reached its end of life.', $vInfo);
       }
       else {
-        $vNum = $vc->localVersion;
-        // LTS = long-term support version
-        if ($newerVersion['status'] == 'lts') {
-          $vNum .= ' ' . ts('(long-term support)');
-        }
-
-        $severity = \Psr\Log\LogLevel::INFO;
-        $title = ts('CiviCRM Up-to-Date');
-        $message = ts('CiviCRM version %1 is up-to-date.', array(1 => $vNum));
+        // For most new versions, just make them notice
+        $severity = \Psr\Log\LogLevel::NOTICE;
+        $title = ts('CiviCRM Update Available');
+        $message = ts('New version %1 is available. The site is currently running %2.', $vInfo);
       }
-
-      $messages[] = new CRM_Utils_Check_Message(
-        __FUNCTION__,
-        $message,
-        $title,
-        $severity,
-        'fa-cloud-upload'
-      );
     }
     else {
+      $vNum = $vc->localVersion;
+      // LTS = long-term support version
+      if ($newerVersion['status'] == 'lts') {
+        $vNum .= ' ' . ts('(long-term support)');
+      }
+
+      $severity = \Psr\Log\LogLevel::INFO;
+      $title = ts('CiviCRM Up-to-Date');
+      $message = ts('CiviCRM version %1 is up-to-date.', array(1 => $vNum));
+    }
+
+    $messages[] = new CRM_Utils_Check_Message(
+      __FUNCTION__,
+      $message,
+      $title,
+      $severity,
+      'fa-cloud-upload'
+    );
+
+    // Make sure the version_check job is enabled
+    $jobs = civicrm_api3('Job', 'get', array(
+      'sequential' => 1,
+      'api_action' => "version_check",
+      'api_entity' => "job",
+    ));
+    if (!$jobs['count'] || empty($jobs['values'][0]['is_active'])) {
+      $args = array('reset' => 1);
+      if (!empty($jobs['id'])) {
+        $args += array(
+          'action' => 'update',
+          'id' => $jobs['id'],
+        );
+      }
       $messages[] = new CRM_Utils_Check_Message(
-        __FUNCTION__,
-        ts('The check for new versions of CiviCRM has been disabled. <a %1>Re-enable the setting</a> to receive important security update notifications.', array(1 => 'href="' . CRM_Utils_System::url('civicrm/admin/setting/misc', 'reset=1') . '"')),
+        'checkVersionDisabled',
+        ts('The check for new versions of CiviCRM has been disabled. <a %1>Re-enable the scheduled job</a> to receive important security update notifications.', array(1 => 'href="' . CRM_Utils_System::url('civicrm/admin/job', $args) . '"')),
         ts('Update Check Disabled'),
         \Psr\Log\LogLevel::NOTICE,
         'fa-times-circle-o'
index 2f1b5d0ff8b85705329edb0392866c84ba0021a1..4d3549586d95651a7fa3c764046c789015f7fd40 100644 (file)
@@ -527,20 +527,6 @@ function setting_getfields_expectedresult() {
         'description' => 'Allow Permanent Delete for contacts who are linked to live financial transactions',
         'help_text' => '',
       ),
-      'versionCheck' => array(
-        'group_name' => 'CiviCRM Preferences',
-        'group' => 'core',
-        'name' => 'versionCheck',
-        'type' => 'Boolean',
-        'quick_form_type' => 'YesNo',
-        'default' => 1,
-        'add' => '4.3',
-        'title' => 'Automatically Check for Updates',
-        'is_domain' => 1,
-        'is_contact' => 0,
-        'description' => '',
-        'help_text' => '',
-      ),
       'securityAlert' => array(
         'group_name' => 'CiviCRM Preferences',
         'group' => 'core',
index e7a0931c50c6de57e3c31c5d64adc61fcd195984..00bbf3525ec90700d592bfad768d12cbd3f8e169 100644 (file)
@@ -361,20 +361,6 @@ return array(
     'description' => 'Allow Permanent Delete for contacts who are linked to live financial transactions',
     'help_text' => NULL,
   ),
-  'versionCheck' => array(
-    'group_name' => 'CiviCRM Preferences',
-    'group' => 'core',
-    'name' => 'versionCheck',
-    'type' => 'Boolean',
-    'quick_form_type' => 'YesNo',
-    'default' => 1,
-    'add' => '4.3',
-    'title' => 'Automatically Check for Updates',
-    'is_domain' => 1,
-    'is_contact' => 0,
-    'description' => "",
-    'help_text' => NULL,
-  ),
   'securityAlert' => array(
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
index 5af743be029205fbc45747d6e469f227b68d791c..b995a3fb04283d47e975719ada3ca1b0cf5ac106 100644 (file)
                 <p class="description">{ts 1="http://wkhtmltopdf.org/"}<a href="%1">wkhtmltopdf is an alternative utility for generating PDF's</a> which may provide better performance especially if you are generating a large number of PDF letters or receipts. Your system administrator will need to download and install this utility, and enter the executable path here.{/ts}</p>
             </td>
         </tr>
-        <tr class="crm-miscellaneous-form-block-versionCheck">
-            <td class="label">{$form.versionCheck.label}</td>
-            <td>{$form.versionCheck.html}<br />
-                <p class="description">{ts}When enabled, statistics about your CiviCRM installation are reported anonymously to the CiviCRM team to assist in prioritizing ongoing development efforts. The following information is gathered: CiviCRM version, versions of PHP, MySQL and framework (Drupal/Joomla/standalone), and default language. Counts (but no actual data) of the following record types are reported: contacts, activities, cases, relationships, contributions, contribution pages, contribution products, contribution widgets, discounts, price sets, profiles, events, participants, tell-a-friend pages, grants, mailings, memberships, membership blocks, pledges, pledge blocks and active payment processor types.{/ts}</p></td>
-        </tr>
         <tr class="crm-miscellaneous-form-block-empoweredBy">
             <td class="label">{$form.empoweredBy.label}</td>
             <td>{$form.empoweredBy.html}<br />
         </table>
            <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div>
 </div>
-{literal}
-<script type="text/javascript">
-  CRM.$(function($) {
-    'use strict';
-    $('input[name=versionCheck][value=0]').change(function() {
-      if ($(this).is(':checked')) {
-        CRM.confirm({message: {/literal}"{ts escape='js'}Disabling this option will prevent CiviCRM from checking for important security updates. Are you sure?{/ts}"{literal}})
-          .on('crmConfirm:no', function() {
-            $('input[name=versionCheck][value=0]').prop('checked', false);
-            $('input[name=versionCheck][value=1]').prop('checked', true);
-          })
-      }
-    });
-  });
-</script>
-{/literal}
\ No newline at end of file