Skip to content
Snippets Groups Projects
Commit 70a2c0fd authored by Masami  Suzuki's avatar Masami Suzuki Committed by Yas Naoi
Browse files

Issue #3255212 by Masami, yas: Setup a custom URL for d3-horizon-chart

parent 1126cb90
No related branches found
No related tags found
No related merge requests found
......@@ -1161,3 +1161,13 @@ function cloud_update_8154(): void {
$config->set('cloud_custom_datatables_js_url', 'https://cdn.jsdelivr.net/npm/simple-datatables@3.1.2/dist/umd/simple-datatables.min.js');
$config->save();
}
/**
* Add configuration items for D3 Horizon Chart library.
*/
function cloud_update_8155(): void {
$config_factory = \Drupal::configFactory();
$config = $config_factory->getEditable('cloud.settings');
$config->set('cloud_custom_d3_horizon_chart_js_url', 'https://unpkg.com/@docomoinnovations/horizon-chart@1.1.0/dist/d3-horizon-chart.js');
$config->save();
}
......@@ -255,6 +255,7 @@ function cloud_library_info_alter(&$libraries, $extension): void {
if (empty($source)) {
$libraries['d3']['js'] = [];
$libraries['d3-horizon-chart']['js'] = [];
$libraries['c3']['js'] = [];
$libraries['c3']['css']['theme'] = [];
$libraries['chartjs']['js'] = [];
......@@ -262,6 +263,7 @@ function cloud_library_info_alter(&$libraries, $extension): void {
$libraries['select2']['css']['theme'] = [];
$libraries['d3']['js'][trim($config->get('cloud_custom_d3_js_url'))] = [];
$libraries['d3-horizon-chart']['js'][trim($config->get('cloud_custom_d3_horizon_chart_js_url'))] = [];
$libraries['c3']['js'][trim($config->get('cloud_custom_c3_js_url'))] = [];
$libraries['c3']['css']['theme'][trim($config->get('cloud_custom_c3_css_url'))] = [];
$libraries['chartjs']['js'][trim($config->get('cloud_custom_chart_js_url'))] = [];
......
......@@ -2,6 +2,7 @@ cloud_location_geocoder_plugin: 'openstreetmap'
cloud_default_location_map_json_url: 'https://enjalot.github.io/wwsd/data/world/ne_50m_admin_0_countries.geojson'
cloud_custom_location_map_json_url: 'https://enjalot.github.io/wwsd/data/world/ne_50m_admin_0_countries.geojson'
cloud_custom_d3_js_url: 'https://d3js.org/d3.v5.min.js'
cloud_custom_d3_horizon_chart_js_url: 'https://unpkg.com/@docomoinnovations/horizon-chart@1.1.0/dist/d3-horizon-chart.js'
cloud_custom_c3_js_url: 'https://cdnjs.cloudflare.com/ajax/libs/c3/0.7.15/c3.min.js'
cloud_custom_c3_css_url: 'https://cdnjs.cloudflare.com/ajax/libs/c3/0.7.15/c3.min.css'
cloud_custom_chart_js_url: 'https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.js'
......
......@@ -9,6 +9,8 @@ cloud.settings:
type: string
cloud_custom_d3_js_url:
type: string
cloud_custom_d3_horizon_chart_js_url:
type: string
cloud_custom_c3_js_url:
type: string
cloud_custom_c3_css_url:
......
......@@ -156,6 +156,18 @@ class CloudAdminSettings extends ConfigFormBase {
],
];
$form['custom_urls']['cloud_custom_d3_horizon_chart_js_url'] = [
'#type' => 'url',
'#title' => $this->t('D3 Horizon Chart JavaScript URL'),
'#default_value' => $config->get('cloud_custom_d3_horizon_chart_js_url'),
'#description' => $this->t('The default URL is <em>https://unpkg.com/@docomoinnovations/horizon-chart@1.1.0/dist/d3-horizon-chart.js</em>.'),
'#states' => [
'visible' => [
'input[name="cloud_use_default_urls"]' => ['checked' => FALSE],
],
],
];
$form['custom_urls']['cloud_custom_c3_js_url'] = [
'#type' => 'url',
'#title' => $this->t('C3.js JavaScript URL'),
......@@ -264,6 +276,7 @@ class CloudAdminSettings extends ConfigFormBase {
*/
public function validateForm(array &$form, FormStateInterface $form_state): void {
$d3_url = $form_state->getValue('cloud_custom_d3_js_url');
$d3_horizon_chart_url = $form_state->getValue('cloud_custom_d3_horizon_chart_js_url');
$c3_js_url = $form_state->getValue('cloud_custom_c3_js_url');
$c3_css_url = $form_state->getValue('cloud_custom_c3_css_url');
$chartjs_url = $form_state->getValue('cloud_custom_chart_js_url');
......@@ -272,6 +285,7 @@ class CloudAdminSettings extends ConfigFormBase {
$datatables_js_url = $form_state->getValue('cloud_custom_datatables_js_url');
if (empty($d3_url)
|| empty($d3_horizon_chart_url)
|| empty($c3_js_url)
|| empty($c3_css_url)
|| empty($chartjs_url)
......@@ -279,6 +293,7 @@ class CloudAdminSettings extends ConfigFormBase {
|| empty($select2_js_url)
|| empty($datatables_js_url)) {
$form_state->setErrorByName('cloud_custom_d3_js_url', $this->t('Enter D3.js JavaScript URL.'));
$form_state->setErrorByName('cloud_custom_d3_horizon_chart_js_url', $this->t('Enter D3 Horizon Chart JavaScript URL.'));
$form_state->setErrorByName('cloud_custom_c3_js_url', $this->t('Enter C3.js JavaScript URL.'));
$form_state->setErrorByName('cloud_custom_c3_css_url', $this->t('Enter C3.js CSS URL.'));
$form_state->setErrorByName('cloud_custom_chart_js_url', $this->t('Enter Chart.js JavaScript URL.'));
......@@ -298,6 +313,7 @@ class CloudAdminSettings extends ConfigFormBase {
$config->set('cloud_use_default_urls', $form_state->getValue('cloud_use_default_urls'));
$config->set('cloud_custom_location_map_json_url', $form_state->getValue('cloud_custom_location_map_json_url'));
$config->set('cloud_custom_d3_js_url', $form_state->getValue('cloud_custom_d3_js_url'));
$config->set('cloud_custom_d3_horizon_chart_js_url', $form_state->getValue('cloud_custom_d3_horizon_chart_js_url'));
$config->set('cloud_custom_c3_js_url', $form_state->getValue('cloud_custom_c3_js_url'));
$config->set('cloud_custom_c3_css_url', $form_state->getValue('cloud_custom_c3_css_url'));
$config->set('cloud_custom_chart_js_url', $form_state->getValue('cloud_custom_chart_js_url'));
......
......@@ -60,6 +60,7 @@ trait CloudTestFormDataTrait {
'cloud_use_default_urls' => 0,
'cloud_custom_location_map_json_url' => 'https://' . $this->random->name(10, TRUE),
'cloud_custom_d3_js_url' => 'https://' . $this->random->name(10, TRUE),
'cloud_custom_d3_horizon_chart_js_url' => 'https://' . $this->random->name(10, TRUE),
'cloud_custom_c3_js_url' => 'https://' . $this->random->name(10, TRUE),
'cloud_custom_c3_css_url' => 'https://' . $this->random->name(10, TRUE),
'cloud_custom_chart_js_url' => 'https://' . $this->random->name(10, TRUE),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment