diff --git a/app/assets/javascripts/charts.js b/app/assets/javascripts/charts.js
index c72f8a232..4ec173d41 100644
--- a/app/assets/javascripts/charts.js
+++ b/app/assets/javascripts/charts.js
@@ -25,7 +25,6 @@ var Charts = {
var options = chart.data();
var data = $.parseJSON(chart.attr('data-value'));
if(options.pname) data.series.name = options.pname;
- Charts.applyDarkModeWatermark(chart, data);
Charts.renderChart(this, data, '200', options);
});
},
@@ -149,6 +148,12 @@ var Charts = {
width: 950,
lang: {
thousandsSep: ','
+ },
+ exporting: {
+ enabled: false
+ },
+ credits: {
+ enabled: false
}
})
@@ -168,7 +173,6 @@ var Charts = {
success: function(data, textStatus) {
if(options.pname) data.series.name = options.pname;
- Charts.applyDarkModeWatermark($chart, data);
setTimeout(function(){
Charts.renderChart(chart, data, textStatus, options);
}, 100);
@@ -184,57 +188,6 @@ var Charts = {
}
},
- // Only swap background-image when dark mode is active — never touch it in light mode
- applyDarkModeWatermark: function($chart, data) {
- if (!$('html').hasClass('dark')) return;
- var darkUrl = $chart.data('dark-watermark');
- var lightUrl = $chart.data('light-watermark');
- if (darkUrl && data.chart && data.chart.style && data.chart.style['background-image']) {
- if (darkUrl === lightUrl) {
- // CSS ::before handles dark appearance — remove background-image so inline style doesn't block CSS
- delete data.chart.style['background-image'];
- } else {
- data.chart.style['background-image'] = 'url(' + darkUrl + ')';
- }
- }
- },
-
- // Update already-rendered charts when theme toggles
- updateWatermarks: function(isDark) {
- $('.chart[data-dark-watermark], .chart-with-data[data-dark-watermark]').each(function() {
- var $chart = $(this);
- var $container = $chart.find('.highcharts-container');
- if (!$container.length) return;
- var darkUrl = $chart.data('dark-watermark');
- var lightUrl = $chart.data('light-watermark');
- if (isDark) {
- if (darkUrl === lightUrl) {
- // CSS ::before handles dark appearance — clear inline style so CSS background-image: none applies
- $container[0].style.removeProperty('background-image');
- } else {
- if (darkUrl) $container[0].style.setProperty('background-image', 'url(' + darkUrl + ')', 'important');
- }
- } else {
- if (lightUrl) $container[0].style.setProperty('background-image', 'url(' + lightUrl + ')', 'important');
- }
- });
-
- // Handle streamgraph (D3 SVG) watermark
- // Dark mode: CSS ::before on #ohloh_streamgraph handles watermark — clear SVG inline style
- // Light mode: restore watermark on SVG since html.dark class is gone
- var $streamgraph = $('#ohloh_streamgraph[data-dark-watermark]');
- if ($streamgraph.length) {
- var $svg = $streamgraph.find('svg.background-watermark');
- if ($svg.length) {
- if (isDark) {
- $svg[0].style.removeProperty('background-image');
- } else {
- var lightUrl = $streamgraph.data('light-watermark');
- if (lightUrl) $svg[0].style.backgroundImage = 'url(' + lightUrl + ')';
- }
- }
- }
- },
commit_volume_formatter: function() {
return '' + this.series.name + '
' + this.y + ' Commits (' + Math.floor(this.percentage) + '%)';
diff --git a/app/assets/javascripts/enlistments.js.coffee b/app/assets/javascripts/enlistments.js.coffee
index 43df16d43..9dd71da81 100644
--- a/app/assets/javascripts/enlistments.js.coffee
+++ b/app/assets/javascripts/enlistments.js.coffee
@@ -14,7 +14,7 @@ class App.EnlistmentSelect
showSpinnerAndSubmit = ->
$(this).attr('disabled', 'disabled')
$('.enlistment .spinner').show()
- $('.well.enlistment form').submit()
+ $('.enlistment form').submit()
hideAllScmInfo = ->
$('.enlistment .scm_info').hide()
diff --git a/app/assets/javascripts/theme_toggle.js b/app/assets/javascripts/theme_toggle.js
index 09b7318c0..7d6c196bd 100644
--- a/app/assets/javascripts/theme_toggle.js
+++ b/app/assets/javascripts/theme_toggle.js
@@ -147,10 +147,6 @@ var ThemeToggle = {
}
this.setCookie(this.COOKIE_NAME, theme, this.COOKIE_DAYS);
-
- if (typeof Charts !== 'undefined') {
- Charts.updateWatermarks(theme === 'dark');
- }
},
toggleTheme: function() {
diff --git a/app/assets/stylesheets/api/custom.sass b/app/assets/stylesheets/api/custom.sass
index a605c6915..11cce9759 100644
--- a/app/assets/stylesheets/api/custom.sass
+++ b/app/assets/stylesheets/api/custom.sass
@@ -1687,59 +1687,43 @@
padding: 6px
#cve-cvss3, #cvss3, #cve-cvss3-mobile, #cvss3-mobile
- background: asset-url("charts/watermark_340.png") no-repeat center
- background-size: contain
position: relative
width: 100%
height: 100%
- html.dark &
- background-image: none
-
- &::before
- content: ''
- position: absolute
- top: 0
- left: 0
- right: 0
- bottom: 0
- background: asset-url("charts/watermark_340.png") no-repeat center
- background-size: contain
- filter: hue-rotate(260deg) saturate(1.2) brightness(0.3)
- opacity: 0.2
- pointer-events: none
-
- .highcharts-axis-labels text,
- .highcharts-axis-title text
- fill: #d1d5db !important
- stroke: none !important
- stroke-width: 0 !important
- -webkit-text-stroke: 0 !important
- paint-order: stroke fill !important
-
- .highcharts-legend text
- fill: #d1d5db !important
- stroke: none !important
- stroke-width: 0 !important
- -webkit-text-stroke: 0 !important
- paint-order: stroke fill !important
-
- svg text
- stroke: none !important
- stroke-width: 0 !important
- -webkit-text-stroke: 0 !important
-
- text[stroke]
- stroke: none !important
- stroke-width: 0 !important
- -webkit-text-stroke: 0 !important
-
- .highcharts-axis-line
- stroke: #6b7280 !important
-
- .highcharts-grid-line
- stroke: #374151 !important
- opacity: 0.3
+html.dark
+ #cve-cvss3, #cvss3, #cve-cvss3-mobile, #cvss3-mobile
+ .highcharts-axis-labels text,
+ .highcharts-axis-title text
+ fill: #d1d5db !important
+ stroke: none !important
+ stroke-width: 0 !important
+ -webkit-text-stroke: 0 !important
+ paint-order: stroke fill !important
+
+ .highcharts-legend text
+ fill: #d1d5db !important
+ stroke: none !important
+ stroke-width: 0 !important
+ -webkit-text-stroke: 0 !important
+ paint-order: stroke fill !important
+
+ svg text
+ stroke: none !important
+ stroke-width: 0 !important
+ -webkit-text-stroke: 0 !important
+
+ text[stroke]
+ stroke: none !important
+ stroke-width: 0 !important
+ -webkit-text-stroke: 0 !important
+
+ .highcharts-axis-line
+ stroke: #6b7280 !important
+
+ .highcharts-grid-line
+ stroke: #374151 !important
+ opacity: 0.3
.search-container
display: flex
diff --git a/app/assets/stylesheets/charts.sass b/app/assets/stylesheets/charts.sass
index 5826cd5da..4702fda0f 100644
--- a/app/assets/stylesheets/charts.sass
+++ b/app/assets/stylesheets/charts.sass
@@ -1,28 +1,3 @@
-.watermark340 .highcharts-container
- background: asset-url("charts/watermark_340.png") no-repeat center
- background-size: contain
-
-.watermark440 .highcharts-container
- background: asset-url("charts/watermark_440.png") no-repeat center
- background-size: contain
-
-#project_contributions .highcharts-container
- background: asset-url("charts/watermark_692.png") no-repeat 18% 50%
- background-size: contain
-
-.watermark860 .highcharts-container
- background: asset-url("charts/watermark_860.png") no-repeat center
- background-size: contain
-
-.watermark900white .highcharts-container
- background: asset-url("charts/watermark_white_900.png") no-repeat center
- background-size: contain
- background-color: #ffffff
-
-.watermark914 .highcharts-container,
-#all_projects .highcharts-container
- background: asset-url("charts/watermark_914.png") no-repeat center
- background-size: contain
#vulnerabilities_index_page,
#vulnerability_version_chart
diff --git a/app/assets/stylesheets/dark_theme.sass b/app/assets/stylesheets/dark_theme.sass
index ff7f87325..e5a5e2ad7 100644
--- a/app/assets/stylesheets/dark_theme.sass
+++ b/app/assets/stylesheets/dark_theme.sass
@@ -459,48 +459,6 @@ html.dark
#all_projects
.highcharts-container
background-image: none
- position: relative
- &::before
- content: ''
- position: absolute
- top: 0
- left: 0
- right: 0
- bottom: 0
- z-index: 1
- background: asset-url("charts/watermark_340.png") no-repeat center
- background-size: contain
- filter: hue-rotate(260deg) saturate(1.2) brightness(0.3)
- opacity: 0.2
- pointer-events: none
-
-// Per-class background overrides — shared block above always uses watermark_340.png
-html.dark
- .watermark440
- .highcharts-container
- &::before
- background: asset-url("charts/watermark_440.png") no-repeat center
- background-size: contain
-html.dark
- .watermark860
- .highcharts-container
- &::before
- background: asset-url("charts/watermark_860.png") no-repeat center
- background-size: contain
-html.dark
- .watermark900white
- .highcharts-container
- background-color: #1D0631 !important
- &::before
- background: asset-url("charts/watermark_white_900.png") no-repeat center
- background-size: contain
-html.dark
- .watermark914,
- #all_projects
- .highcharts-container
- &::before
- background: asset-url("charts/watermark_914.png") no-repeat center
- background-size: contain
// Vulnerability all-version chart dark mode (index page — no .project-show-redesign wrapper)
html.dark #vulnerability_all_version_chart
diff --git a/app/assets/stylesheets/streamgraph.sass b/app/assets/stylesheets/streamgraph.sass
index ee24bcc47..cbb7c0006 100644
--- a/app/assets/stylesheets/streamgraph.sass
+++ b/app/assets/stylesheets/streamgraph.sass
@@ -61,50 +61,6 @@
font-size: 12px
line-height: 1
-.full
- .background-watermark
- background: asset_url('charts/watermark_860.png') no-repeat center
-
-.regular
- .background-watermark
- background: asset_url('charts/watermark_692.png') no-repeat center left
- background-size: contain
-
-html.dark .regular .background-watermark
- background: none
-
-html.dark #ohloh_streamgraph.regular
- position: relative
- &::before
- content: ''
- position: absolute
- top: 0
- left: 0
- right: 0
- bottom: 0
- background: asset_url('charts/watermark_692.png') no-repeat center left
- background-size: contain
- filter: hue-rotate(260deg) saturate(1.2) brightness(0.3)
- opacity: 0.2
- pointer-events: none
-
-html.dark .full .background-watermark
- background: none
-
-html.dark #ohloh_streamgraph.full
- position: relative
- &::before
- content: ''
- position: absolute
- top: 0
- left: 0
- right: 0
- bottom: 0
- background: asset_url('charts/watermark_860.png') no-repeat center
- background-size: contain
- filter: hue-rotate(260deg) saturate(1.2) brightness(0.3)
- opacity: 0.2
- pointer-events: none
@media only all and (min-width: 320px) and (max-width: 480px)
#ohloh_streamgraph
&.languages
diff --git a/app/decorators/analysis/code_history_chart.rb b/app/decorators/analysis/code_history_chart.rb
index 741ecfb2f..3894b3666 100644
--- a/app/decorators/analysis/code_history_chart.rb
+++ b/app/decorators/analysis/code_history_chart.rb
@@ -9,13 +9,12 @@ def initialize(analysis)
end
def data
- series_and_range_data(@defaults).deep_merge(chart_watermark)
+ series_and_range_data(@defaults)
end
def data_for_lines_of_code
data.deep_merge(ANALYSIS_CHARTS_OPTIONS['no_auxillaries'])
.deep_merge(ANALYSIS_CHARTS_OPTIONS['lines_of_code'])
- .deep_merge(chart_watermark)
end
private