From ca397f09fc5f73c12a189cda96770c1d0f6b3500 Mon Sep 17 00:00:00 2001 From: Josef Citrine Date: Thu, 19 May 2016 00:46:58 +0100 Subject: [PATCH] Basic mobile support (#81) Mobile specific view. Basically Pony.fm desktop squashed into a mobile view --- public/images/icons/app-icon-144.png | Bin 0 -> 11139 bytes public/images/icons/app-icon-192.png | Bin 0 -> 15974 bytes public/images/icons/app-icon-96.png | Bin 0 -> 6963 bytes public/manifest.json | 24 ++++ public/service-worker.js | 47 +++++++ .../app/controllers/application.coffee | 12 ++ resources/assets/scripts/shared/layout.coffee | 17 ++- resources/assets/styles/app.less | 1 + resources/assets/styles/layout.less | 101 +++++++++----- resources/assets/styles/mobile.less | 127 ++++++++++++++++++ resources/views/shared/_app_layout.blade.php | 18 ++- resources/views/shared/_layout.blade.php | 4 +- 12 files changed, 311 insertions(+), 40 deletions(-) create mode 100644 public/images/icons/app-icon-144.png create mode 100644 public/images/icons/app-icon-192.png create mode 100644 public/images/icons/app-icon-96.png create mode 100644 public/manifest.json create mode 100644 public/service-worker.js create mode 100644 resources/assets/styles/mobile.less diff --git a/public/images/icons/app-icon-144.png b/public/images/icons/app-icon-144.png new file mode 100644 index 0000000000000000000000000000000000000000..f54d5b33416a0fbf35d1c43335090f0d9209f534 GIT binary patch literal 11139 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 VR=tpJUAX`N002ovPDHLkV1kCyW!C@z literal 0 HcmV?d00001 diff --git a/public/images/icons/app-icon-192.png b/public/images/icons/app-icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..86e679ca1c62696edf3ccee2db05117bb8454f70 GIT binary patch literal 15974 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. + +var urlsToCache = [ + '/', + '/build/styles/app.css', + '/build/scripts/app.js', + '/build/scripts/templates.js', + '/templates/directives/player.html', + '/templates/directives/search.html', + '/templates/directives/tracks-list.html', + '/templates/directives/users-list.html', + '/templates/directives/albums-list.html', + '/templates/directives/playlists-list.html', + '/templates/home/index.html', + +]; + +var CACHE_NAME = 'pfm-cache-v1'; + +// Set the callback for the install step +self.addEventListener('install', function(event) { + // Doesn't do anything right now + // Could never get offline to fully + // work without bugs :( + + // Perform install steps + event.waitUntil( + caches.open(CACHE_NAME) + .then(function(cache) { + console.log('Opened cache'); + }) + ); +}); diff --git a/resources/assets/scripts/app/controllers/application.coffee b/resources/assets/scripts/app/controllers/application.coffee index 9bcfc1cd..a8010494 100644 --- a/resources/assets/scripts/app/controllers/application.coffee +++ b/resources/assets/scripts/app/controllers/application.coffee @@ -21,9 +21,20 @@ module.exports = angular.module('ponyfm').controller "application", [ $scope.$state = $state $scope.$stateParams = $stateParams $scope.isPinnedPlaylistSelected = false + $scope.menuActive = false $loadingElement = null loadingStateName = null + if 'serviceWorker' of navigator + console.log 'Service Worker is supported' + navigator.serviceWorker.register('service-worker.js').then((reg) -> + console.log 'SW registered', reg + ).catch (err) -> + console.log 'SW register failed', err + + $scope.menuToggle = () -> + $scope.menuActive = !$scope.menuActive + if window.pfm.error $state.transitionTo 'errors-' + window.pfm.error @@ -60,6 +71,7 @@ module.exports = angular.module('ponyfm').controller "application", [ statesPreloaded = {} $scope.$on '$stateChangeStart', (e, newState, newParams, oldState, oldParams) -> + $scope.menuActive = false $scope.isPinnedPlaylistSelected = false if newState.name == 'content.playlist' diff --git a/resources/assets/scripts/shared/layout.coffee b/resources/assets/scripts/shared/layout.coffee index 47f1d7d1..b32c7897 100644 --- a/resources/assets/scripts/shared/layout.coffee +++ b/resources/assets/scripts/shared/layout.coffee @@ -16,8 +16,14 @@ window.handleResize = () -> windowHeight = $(window).height() + windowWidth = $(window).width() + isMobile = windowWidth <= 480 $siteBody = $ '.site-body' - $siteBody.height windowHeight - $('header').height() + + if isMobile + $siteBody.height windowHeight - $('.now-playing').height() * 2 + else + $siteBody.height windowHeight - $('header').height() $('.dropdown-menu').each () -> $this = $ this @@ -26,10 +32,11 @@ window.handleResize = () -> 'max-height': newMaxHeight $('.stretch-to-bottom').each () -> - $this = $ this - newHeight = windowHeight - $this.offset().top - if newHeight > 0 - $this.height newHeight + if !isMobile + $this = $ this + newHeight = windowHeight - $this.offset().top + if newHeight > 0 + $this.height newHeight $('.revealable').each () -> $this = $ this diff --git a/resources/assets/styles/app.less b/resources/assets/styles/app.less index d952709d..0ee068c4 100644 --- a/resources/assets/styles/app.less +++ b/resources/assets/styles/app.less @@ -36,3 +36,4 @@ @import 'components/uploader'; @import 'components/search'; @import 'components/track-editor'; +@import 'mobile'; diff --git a/resources/assets/styles/layout.less b/resources/assets/styles/layout.less index 5886807c..fbd1f155 100644 --- a/resources/assets/styles/layout.less +++ b/resources/assets/styles/layout.less @@ -31,35 +31,7 @@ html body { } header { - > a { - display: block; - float: left; - width: (@pfm-sidebar-size); - height: 64px; - line-height: 42px; - background: #84528A; - color: #fff; - font-size: 24pt; - font-weight: lighter; - position: relative; - z-index: 600; - font-family: 'Josefin Sans', sans-serif; - position: relative; - &:hover { - background: darken(#84528A, 25%); - color: #fff; - text-decoration: none; - } - - img.logo { - padding-left: 6px; - width: 100%; - max-width: 90%; - padding-top: 13px; - max-height: 45% - } - } .user-details { float: right; @@ -116,15 +88,46 @@ header { } .sidebar { + > a { + display: block; + float: left; + width: (@pfm-sidebar-size); + height: 64px; + line-height: 42px; + background: #84528A; + color: #fff; + font-size: 24pt; + font-weight: lighter; + position: relative; + z-index: 600; + font-family: 'Josefin Sans', sans-serif; + position: relative; + + &:hover { + background: darken(#84528A, 25%); + color: #fff; + text-decoration: none; + } + + img.logo { + padding-left: 6px; + width: 100%; + max-width: 90%; + padding-top: 13px; + max-height: 45% + } + } + background: #515151; width: @pfm-sidebar-size; height: 100%; - float: left; list-style: none; padding: 0px; margin: 0px; font-size: 10pt; - position: relative; + position: absolute; + bottom: 0; + left: 0; li { margin: 0px; @@ -251,3 +254,41 @@ header { .chart-btn-container { margin-bottom: 10px; } + +.mobile-header { + display: none; +} + +.burger-wrapper { + top:20px; + left: 20px; + position: absolute; +} + +.burger { + width: 25px; + height: 20px; + top: 20px; + left: 20px; +} + +.bun-top,.meat,.bun-bottom { + position: absolute; + display: block; + border-radius: 4px; + background: white; + width: 25px; + height: 2px; +} + +.bun-top { + top: 0; +} + +.meat { + top: 9px; +} + +.bun-bottom { + bottom: 0; +} diff --git a/resources/assets/styles/mobile.less b/resources/assets/styles/mobile.less new file mode 100644 index 00000000..a9b34a53 --- /dev/null +++ b/resources/assets/styles/mobile.less @@ -0,0 +1,127 @@ +@media only screen and (max-width: 480px) { + html, body { + overflow: hidden !important; + } + + body > header { + margin-top: 64px; + } + + .site-content { + margin-left: 0px; + overflow: scroll; + } + + .now-playing { + margin-left: 0px; + position: fixed; + width: 100%; + bottom: 0; + z-index: 1010; + box-shadow: 0 0 8px rgba(0,0,0,0.5); + } + + .user-details { + position: fixed; + top: 0; + right: 0; + z-index: 1002; + } + + .mobile-header { + display: block !important; + position: absolute; + z-index: 1001; + background: #84528A; + height: 64px; + width: 100%; + top: 0; + + .logo { + text-align: center; + vertical-align: middle; + display: block; + margin-left: auto; + margin-right: auto; + height: 40px; + width: 160px; + padding-top: 16px; + + > img { + max-height: 75%; + } + } + } + + .sidebar { + left: -170px; + transition: transform 0.5s ease; + transform: translateX(0px) translateZ(0); + perspective: 1000; + backface-visibility: hidden; + will-change: transform; + z-index: 1011; + height: ~"calc(100% - 64px)"; + box-shadow: 0 8px 8px rgba(0,0,0,0.5); + + > a { + display: none; + } + } + + .sidebar.active { + transform: translateX(170px) translateZ(0); + } + + .user-details > .avatar { + border: 0 !important; + box-shadow: initial !important; + background: transparent !important; + + > img { + border-radius: 20px; + } + + > span { + display: none !important; + } + } + + .track-player { + margin-right: 0px !important; + .buttons { + li.volume, li.status { + display: none; + } + } + } + + input.search-input { + border: 0; + } + + .dropdowns { + margin-bottom: 0px; + > li { + margin-bottom: 10px; + > .btn { + font-size: 10pt; + } + } + } + .details-columns { + .cboxElement { + display: none; + } + .right { + float: none; + padding: 0px; + width: auto; + } + .left { + margin-right: 0px; + margin-left: 0px; + margin-top: 10px; + } + } +} diff --git a/resources/views/shared/_app_layout.blade.php b/resources/views/shared/_app_layout.blade.php index 1017000a..515112d9 100644 --- a/resources/views/shared/_app_layout.blade.php +++ b/resources/views/shared/_app_layout.blade.php @@ -42,9 +42,16 @@
- - - +
+
+
+
+
+
+
+
+ +
@if (Auth::check())
-