Skip to content

Commit 576f32d

Browse files
committed
Make service worker opt-in in development
1 parent 0cd1527 commit 576f32d

12 files changed

Lines changed: 36 additions & 31 deletions

File tree

Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
FROM ruby:2.6.0
22

33
ENV LANG=C.UTF-8
4+
ENV ENABLE_SERVICE_WORKER=true
45

56
WORKDIR /devdocs
67

Dockerfile-alpine

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
FROM ruby:2.6.0-alpine
22

33
ENV LANG=C.UTF-8
4+
ENV ENABLE_SERVICE_WORKER=true
45

56
WORKDIR /devdocs
67

assets/javascripts/app/config.coffee.erb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@ app.config =
1414
release: <%= Time.now.utc.httpdate.to_json %>
1515
mathml_stylesheet: '<%= App.cdn_origin %>/mathml.css'
1616
service_worker_path: '/service-worker.js'
17+
service_worker_enabled: <%= App.environment == 'production' || !ENV["ENABLE_SERVICE_WORKER"].nil? %>

assets/javascripts/app/serviceworker.coffee

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ class app.ServiceWorker
22
$.extend @prototype, Events
33

44
@isEnabled: ->
5-
!!navigator.serviceWorker
5+
!!navigator.serviceWorker and app.config.service_worker_enabled
66

77
constructor: ->
88
@registration = null

assets/javascripts/app/settings.coffee

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ class app.Settings
55
'manualUpdate'
66
'fastScroll'
77
'arrowScroll'
8-
'bypassCache'
98
'docs'
109
'dark'
1110
'layout'
@@ -92,11 +91,6 @@ class app.Settings
9291
@set 'size', value
9392
return
9493

95-
setBypassCache: (value) ->
96-
@set 'bypassCache', value
97-
app.serviceWorker?.updateInBackground()
98-
return
99-
10094
dump: ->
10195
@store.dump()
10296

assets/javascripts/templates/pages/offline_tmpl.coffee

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,12 @@ canICloseTheTab = ->
4444
if app.ServiceWorker.isEnabled()
4545
""" Yes! Even offline, you can open a new tab, go to <a href="//devdocs.io">devdocs.io</a>, and everything will work as if you were online (provided you installed all the documentations you want to use beforehand). """
4646
else
47-
""" No. Service Workers aren't available in your browser (or are disabled), so loading <a href="//devdocs.io">devdocs.io</a> offline won't work.<br>
47+
reason = "aren't available in your browser (or are disabled)"
48+
49+
if app.config.env != 'production'
50+
reason = "are disabled in your development instance of DevDocs (enable them by setting the ENABLE_SERVICE_WORKERS environment variable)"
51+
52+
""" No. Service Workers #{reason}, so loading <a href="//devdocs.io">devdocs.io</a> offline won't work.<br>
4853
The current tab will continue to function even when you go offline (provided you installed all the documentations beforehand). """
4954

5055
app.templates.offlineDoc = (doc, status) ->

assets/javascripts/templates/pages/root_tmpl.coffee.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ app.templates.intro = """
88
<p>Thanks for downloading DevDocs. Here are a few things you should know:
99
<ol class="_intro-list">
1010
<li>Your local version of DevDocs won't self-update. Unless you're modifying the code,
11-
I&nbsp;recommend using the hosted version at <a href="https://devdocs.io">devdocs.io</a>.
11+
we&nbsp;recommend using the hosted version at <a href="https://devdocs.io">devdocs.io</a>.
1212
<li>Run <code>thor docs:list</code> to see all available documentations.
1313
<li>Run <code>thor docs:download &lt;name&gt;</code> to download documentations.
1414
<li>Run <code>thor docs:download --installed</code> to update all downloaded documentations.

assets/javascripts/templates/pages/settings_tmpl.coffee

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,6 @@ app.templates.settingsPage = (settings) -> """
1515
<input type="checkbox" form="settings" name="layout" value="_sidebar-hidden"#{if settings['_sidebar-hidden'] then ' checked' else ''}>Automatically hide and show the sidebar
1616
<small>Tip: drag the edge of the sidebar to resize it.</small>
1717
</label>
18-
<label class="_settings-label">
19-
<input type="checkbox" form="settings" name="bypassCache" value="1"#{if settings.bypassCache then ' checked' else ''}>Bypass Service Worker cache
20-
<small>When this is checked, the Service Worker will always fetch the latest version of requested files. Useful when making changes to the DevDocs source code.</small>
21-
</label>
2218
</div>
2319
</div>
2420

assets/javascripts/views/content/settings_page.coffee

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ class app.views.SettingsPage extends app.View
1414
settings.dark = app.settings.get('dark')
1515
settings.smoothScroll = !app.settings.get('fastScroll')
1616
settings.arrowScroll = app.settings.get('arrowScroll')
17-
settings.bypassCache = app.settings.get('bypassCache')
1817
settings[layout] = app.settings.hasLayout(layout) for layout in app.settings.LAYOUTS
1918
settings
2019

@@ -33,10 +32,6 @@ class app.views.SettingsPage extends app.View
3332
app.settings.set('fastScroll', !enable)
3433
return
3534

36-
toggleBypassCache: (enable) ->
37-
app.settings.setBypassCache(!!enable)
38-
return
39-
4035
toggle: (name, enable) ->
4136
app.settings.set(name, enable)
4237
return
@@ -80,8 +75,6 @@ class app.views.SettingsPage extends app.View
8075
@toggleSmoothScroll input.checked
8176
when 'import'
8277
@import input.files[0], input
83-
when 'bypassCache'
84-
@toggleBypassCache input.checked
8578
else
8679
@toggle input.name, input.checked
8780
return

docs/adding-docs.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ Adding a documentation may look like a daunting task but once you get the hang o
22

33
**Note:** please read the [contributing guidelines](../.github/CONTRIBUTING.md) before submitting a new documentation.
44

5-
**Note:** when editing any of the files in the `assets` directory or the `public` directory, you'll have to bypass the service worker cache. To do this, go to the Preferences page on your local instance of DevDocs, check "Bypass Service Worker cache" and refresh the page.
6-
75
1. Create a subclass of `Docs::UrlScraper` or `Docs::FileScraper` in the `lib/docs/scrapers/` directory. Its name should be the [PascalCase](http://api.rubyonrails.org/classes/String.html#method-i-camelize) equivalent of the filename (e.g. `my_doc``MyDoc`)
86
2. Add the appropriate class attributes and filter options (see the [Scraper Reference](./scraper-reference.md) page).
97
3. Check that the scraper is listed in `thor docs:list`.

0 commit comments

Comments
 (0)