Unified · Split
| @@ -20,13 +20,15 @@ class app.views.Resizer extends app.View · 19 unmodified lines | ||
| 20 | 20 | MIN = 250 |
| 21 | 21 | MAX = 600 |
| 22 | 22 | |
| 23 | − resize: (newSize) -> | |
| 24 | − return unless newSize > 0 | |
| 25 | − newSize = Math.min(Math.max(Math.round(newSize), MIN), MAX) | |
| 26 | − app.settings.setSize(newSize) | |
| 27 | − newSize = "#{newSize}px" | |
| 23 | + resize: (value, save) -> | |
| 24 | + return unless value > 0 | |
| 25 | + value = Math.min(Math.max(Math.round(value), MIN), MAX) | |
| 26 | + newSize = "#{value}px" | |
| 28 | 27 | @style.innerHTML = @style.innerHTML.replace(new RegExp(@size, 'g'), newSize) |
| 29 | 28 | @size = newSize |
| 29 | + if save | |
| 30 | + app.settings.setSize(value) | |
| 31 | + app.appCache?.updateInBackground() | |
| 30 | 32 | return |
| 31 | 33 | |
| 32 | 34 | onDragStart: (event) => |
| @@ -38,9 +40,9 @@ class app.views.Resizer extends app.View · 5 unmodified lines | ||
| 38 | 40 | onDrag: (event) => |
| 39 | 41 | return if @lastDrag and @lastDrag > Date.now() - 50 |
| 40 | 42 | @lastDrag = Date.now() |
| 41 | − @resize event.clientX | |
| 43 | + @resize(event.clientX, false) | |
| 42 | 44 | return |
| 43 | 45 | |
| 44 | 46 | onDragEnd: (event) => |
| 45 | − @resize event.screenX - window.screenX | |
| 47 | + @resize(event.screenX - window.screenX, true) | |
| 46 | 48 | return |
| @@ -81,6 +81,17 @@ class AppTest < MiniTest::Spec · 80 unmodified lines | ||
| 81 | 81 | assert_includes last_response.body, '# dark' |
| 82 | 82 | refute_includes last_response.body, '# light' |
| 83 | 83 | end |
| 84 | + | |
| 85 | + it "sets default size" do | |
| 86 | + get '/manifest.appcache' | |
| 87 | + assert_includes last_response.body, '18rem' | |
| 88 | + end | |
| 89 | + | |
| 90 | + it "sets size from cookie" do | |
| 91 | + set_cookie('size=42') | |
| 92 | + get '/manifest.appcache' | |
| 93 | + assert_includes last_response.body, '42px' | |
| 94 | + end | |
| 84 | 95 | end |
| 85 | 96 | |
| 86 | 97 | describe "/[doc]" do |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | CACHE MANIFEST |
| 2 | −# <%= cookies[:dark].nil? ? 'light' : 'dark' %> | |
| 2 | +# <%= cookies[:dark].nil? ? 'light' : 'dark' %> <%= size %> | |
| 3 | 3 | |
| 4 | 4 | CACHE: |
| 5 | 5 | / |