Skip to content

Commit

Permalink
Merge branch 'release/v2.0.0-beta.9'
Browse files Browse the repository at this point in the history
  • Loading branch information
fuzoh committed Mar 18, 2019
2 parents c572904 + 9fbf070 commit db7f0d1
Show file tree
Hide file tree
Showing 18 changed files with 323 additions and 153 deletions.
11 changes: 4 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,14 @@
> Livecoding is a desktop appliaction where newbies can learn the basics of programmation.
> The principle is simple : You write commands in the in-app editor, press send, and the commands will interact the a little game (like pacman).
## Changelog - v2.0.0-beta.8
## Changelog - v2.0.0-beta.9

*This version is unstable - do not use in production !*

**Client :**
- Now deployed via Github pages : [LiveCoding](https://cpnv-es.github.io/LiveCoding/).
- Support of mobile devices (tablets only).
- Livecoding implement PWA support, the app is installable on mobile and desktop (with chrome).
- A serviceWorker is registered to update the app and manage assets cache.
- Layout now responsive (tablets, desktop).
- Instructions links now displayed in a dropdown menu.
- Game menu now in a dedicated modal.
- The editor noe auto resize when you resize the browser window.
- On little screens a burger menu regroups the right navbar menus.

**Processor :**
- Fix processor crash with commands return params.
Expand Down
4 changes: 2 additions & 2 deletions client/dist/index.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=stylesheet href=https://use.fontawesome.com/releases/v5.2.0/css/all.css><link href="https://fonts.googleapis.com/css?family=IBM+Plex+Mono:400,400i" rel=stylesheet><title>LiveCoding</title><style>.loader-container {
<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width;initial-scale=1;maximum-scale=1;user-scalable=0;"><link rel=stylesheet href=https://use.fontawesome.com/releases/v5.2.0/css/all.css><link href="https://fonts.googleapis.com/css?family=IBM+Plex+Mono:400,400i" rel=stylesheet><title>LiveCoding</title><style>.loader-container {
margin-top: 30vh;
display: flex;
align-items: center;
Expand Down Expand Up @@ -58,4 +58,4 @@
100% {
transform: translate(19px, 0);
}
}</style><link href=/LiveCoding/js/chunk-2d0a3577.7be23f74.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0a43df.826105cb.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0aa90c.e5cb9965.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0aab07.3d11ad3a.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0abc00.7f283706.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0ae937.6d80902d.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0aeb45.77bb6e1c.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0afa49.f6cafe9c.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0b2762.3eb80639.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0b6187.60705860.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0ba136.c2ab0fe0.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0bb267.176df850.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0bcec1.d9d4b342.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0bff92.62de0f0e.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0c0494.0065452a.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0c0a09.1c8b5da4.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0c1ed0.28a2f58c.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0c4313.83748bfa.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0c46d1.7b37816c.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0c512b.137359a7.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0cf16e.1f7d624c.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0d056d.1321372c.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0d0645.1ff67e1e.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0d2f22.2d46f17b.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0d7e63.2f7df359.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0e1b57.eff1735d.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0e1fbe.4c524960.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0e22d6.16f4c93f.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0e542a.ae492a0f.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0e57ec.f2de30d6.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0e6553.5aac81b6.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0e6c86.608e1c8b.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0ea098.ce4a8b4a.js rel=prefetch><link href=/LiveCoding/js/chunk-2d208ac5.083909ee.js rel=prefetch><link href=/LiveCoding/js/chunk-2d209408.5bba37e8.js rel=prefetch><link href=/LiveCoding/js/chunk-2d20f745.fa607cb3.js rel=prefetch><link href=/LiveCoding/js/chunk-2d20ff23.5849963d.js rel=prefetch><link href=/LiveCoding/js/chunk-2d2138c7.742b81c2.js rel=prefetch><link href=/LiveCoding/js/chunk-2d216f3b.537dc933.js rel=prefetch><link href=/LiveCoding/js/chunk-2d217e5b.1892e718.js rel=prefetch><link href=/LiveCoding/js/chunk-2d21b84a.c881a93c.js rel=prefetch><link href=/LiveCoding/js/chunk-2d21dcd2.1ac39739.js rel=prefetch><link href=/LiveCoding/js/chunk-2d21f327.4b78d9de.js rel=prefetch><link href=/LiveCoding/js/chunk-2d2214b3.195e3c76.js rel=prefetch><link href=/LiveCoding/js/chunk-2d221814.2034f211.js rel=prefetch><link href=/LiveCoding/js/chunk-2d221a34.2a8a8654.js rel=prefetch><link href=/LiveCoding/js/chunk-2d22502a.8ec4a8af.js rel=prefetch><link href=/LiveCoding/js/chunk-2d228ca6.78c56d3c.js rel=prefetch><link href=/LiveCoding/js/chunk-2d2295e9.f915af09.js rel=prefetch><link href=/LiveCoding/js/chunk-2d22c171.8bf26ffe.js rel=prefetch><link href=/LiveCoding/js/chunk-2d22c2b8.0af9d737.js rel=prefetch><link href=/LiveCoding/js/chunk-2d22ca58.5a15fef4.js rel=prefetch><link href=/LiveCoding/js/chunk-2d2311f7.dc1ba2eb.js rel=prefetch><link href=/LiveCoding/js/chunk-2d237ee7.bb0b1217.js rel=prefetch><link href=/LiveCoding/js/chunk-2d238465.d9d37e4c.js rel=prefetch><link href=/LiveCoding/js/chunk-7532b3ea.39a25a8d.js rel=prefetch><link href=/LiveCoding/js/chunk-774ac664.db105340.js rel=prefetch><link href=/LiveCoding/css/app.b2d20be3.css rel=preload as=style><link href=/LiveCoding/css/chunk-vendors.2c9fa0f8.css rel=preload as=style><link href=/LiveCoding/js/app.61dd00c6.js rel=preload as=script><link href=/LiveCoding/js/chunk-vendors.31f54077.js rel=preload as=script><link href=/LiveCoding/css/chunk-vendors.2c9fa0f8.css rel=stylesheet><link href=/LiveCoding/css/app.b2d20be3.css rel=stylesheet><link rel=icon type=image/png sizes=32x32 href=/LiveCoding/img/icons/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/LiveCoding/img/icons/favicon-16x16.png><link rel=manifest href=/LiveCoding/manifest.json><meta name=theme-color content=#4DBA87><meta name=apple-mobile-web-app-capable content=no><meta name=apple-mobile-web-app-status-bar-style content=default><meta name=apple-mobile-web-app-title content=livecoding><link rel=apple-touch-icon href=/LiveCoding/img/icons/apple-touch-icon-152x152.png><link rel=mask-icon href=/LiveCoding/img/icons/safari-pinned-tab.svg color=#4DBA87><meta name=msapplication-TileImage content=/LiveCoding/img/icons/msapplication-icon-144x144.png><meta name=msapplication-TileColor content=#000000></head><body><div id=app><div class=loader-container><div class=points-loader><div></div><div></div><div></div><div></div></div></div></div><script src=/LiveCoding/js/chunk-vendors.31f54077.js></script><script src=/LiveCoding/js/app.61dd00c6.js></script></body></html>
}</style><link href=/LiveCoding/js/chunk-2d0a3577.7be23f74.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0a43df.826105cb.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0aa90c.e5cb9965.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0aab07.3d11ad3a.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0abc00.7f283706.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0ae937.6d80902d.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0aeb45.77bb6e1c.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0afa49.f6cafe9c.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0b2762.3eb80639.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0b6187.60705860.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0ba136.c2ab0fe0.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0bb267.176df850.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0bcec1.d9d4b342.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0bff92.62de0f0e.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0c0494.0065452a.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0c0a09.1c8b5da4.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0c1ed0.28a2f58c.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0c4313.83748bfa.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0c46d1.7b37816c.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0c512b.137359a7.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0cf16e.1f7d624c.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0d056d.1321372c.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0d0645.1ff67e1e.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0d2f22.2d46f17b.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0d7e63.2f7df359.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0e1b57.eff1735d.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0e1fbe.4c524960.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0e22d6.16f4c93f.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0e542a.ae492a0f.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0e57ec.f2de30d6.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0e6553.5aac81b6.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0e6c86.608e1c8b.js rel=prefetch><link href=/LiveCoding/js/chunk-2d0ea098.ce4a8b4a.js rel=prefetch><link href=/LiveCoding/js/chunk-2d208ac5.083909ee.js rel=prefetch><link href=/LiveCoding/js/chunk-2d209408.5bba37e8.js rel=prefetch><link href=/LiveCoding/js/chunk-2d20f745.fa607cb3.js rel=prefetch><link href=/LiveCoding/js/chunk-2d20ff23.5849963d.js rel=prefetch><link href=/LiveCoding/js/chunk-2d2138c7.742b81c2.js rel=prefetch><link href=/LiveCoding/js/chunk-2d216f3b.537dc933.js rel=prefetch><link href=/LiveCoding/js/chunk-2d217e5b.1892e718.js rel=prefetch><link href=/LiveCoding/js/chunk-2d21b84a.c881a93c.js rel=prefetch><link href=/LiveCoding/js/chunk-2d21dcd2.1ac39739.js rel=prefetch><link href=/LiveCoding/js/chunk-2d21f327.4b78d9de.js rel=prefetch><link href=/LiveCoding/js/chunk-2d2214b3.195e3c76.js rel=prefetch><link href=/LiveCoding/js/chunk-2d221814.2034f211.js rel=prefetch><link href=/LiveCoding/js/chunk-2d221a34.2a8a8654.js rel=prefetch><link href=/LiveCoding/js/chunk-2d22502a.8ec4a8af.js rel=prefetch><link href=/LiveCoding/js/chunk-2d228ca6.78c56d3c.js rel=prefetch><link href=/LiveCoding/js/chunk-2d2295e9.f915af09.js rel=prefetch><link href=/LiveCoding/js/chunk-2d22c171.8bf26ffe.js rel=prefetch><link href=/LiveCoding/js/chunk-2d22c2b8.0af9d737.js rel=prefetch><link href=/LiveCoding/js/chunk-2d22ca58.5a15fef4.js rel=prefetch><link href=/LiveCoding/js/chunk-2d2311f7.dc1ba2eb.js rel=prefetch><link href=/LiveCoding/js/chunk-2d237ee7.bb0b1217.js rel=prefetch><link href=/LiveCoding/js/chunk-2d238465.d9d37e4c.js rel=prefetch><link href=/LiveCoding/js/chunk-7532b3ea.39a25a8d.js rel=prefetch><link href=/LiveCoding/js/chunk-774ac664.db105340.js rel=prefetch><link href=/LiveCoding/css/app.b2d20be3.css rel=preload as=style><link href=/LiveCoding/css/chunk-vendors.2c9fa0f8.css rel=preload as=style><link href=/LiveCoding/js/app.8bc24cf5.js rel=preload as=script><link href=/LiveCoding/js/chunk-vendors.2f51b49a.js rel=preload as=script><link href=/LiveCoding/css/chunk-vendors.2c9fa0f8.css rel=stylesheet><link href=/LiveCoding/css/app.b2d20be3.css rel=stylesheet><link rel=icon type=image/png sizes=32x32 href=/LiveCoding/img/icons/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/LiveCoding/img/icons/favicon-16x16.png><link rel=manifest href=/LiveCoding/manifest.json><meta name=theme-color content=#4DBA87><meta name=apple-mobile-web-app-capable content=no><meta name=apple-mobile-web-app-status-bar-style content=default><meta name=apple-mobile-web-app-title content=livecoding><link rel=apple-touch-icon href=/LiveCoding/img/icons/apple-touch-icon-152x152.png><link rel=mask-icon href=/LiveCoding/img/icons/safari-pinned-tab.svg color=#4DBA87><meta name=msapplication-TileImage content=/LiveCoding/img/icons/msapplication-icon-144x144.png><meta name=msapplication-TileColor content=#000000></head><body><div id=app><div class=loader-container><div class=points-loader><div></div><div></div><div></div><div></div></div></div></div><script src=/LiveCoding/js/chunk-vendors.2f51b49a.js></script><script src=/LiveCoding/js/app.8bc24cf5.js></script></body></html>
1 change: 0 additions & 1 deletion client/dist/js/app.61dd00c6.js

This file was deleted.

1 change: 1 addition & 0 deletions client/dist/js/app.8bc24cf5.js

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
self.__precacheManifest = [
{
"revision": "70333c3ff51372aee90c",
"revision": "28f70cad6414e555a897",
"url": "/LiveCoding/css/app.b2d20be3.css"
},
{
"revision": "70333c3ff51372aee90c",
"url": "/LiveCoding/js/app.61dd00c6.js"
"revision": "28f70cad6414e555a897",
"url": "/LiveCoding/js/app.8bc24cf5.js"
},
{
"revision": "584ffc7cd02d5b743335",
Expand Down Expand Up @@ -236,12 +236,12 @@ self.__precacheManifest = [
"url": "/LiveCoding/js/chunk-774ac664.db105340.js"
},
{
"revision": "91138550d621aad9e338",
"revision": "1b0b59702788da9637ab",
"url": "/LiveCoding/css/chunk-vendors.2c9fa0f8.css"
},
{
"revision": "91138550d621aad9e338",
"url": "/LiveCoding/js/chunk-vendors.31f54077.js"
"revision": "1b0b59702788da9637ab",
"url": "/LiveCoding/js/chunk-vendors.2f51b49a.js"
},
{
"revision": "679bf55259d721f8f65649d4535d23e4",
Expand All @@ -260,7 +260,7 @@ self.__precacheManifest = [
"url": "/LiveCoding/typescript.worker.js"
},
{
"revision": "1a1d1315184c8d059f73ede622cc42fa",
"revision": "c63497b60e126f786c3d1aa82d668a3d",
"url": "/LiveCoding/index.html"
},
{
Expand Down
2 changes: 1 addition & 1 deletion client/dist/service-worker.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
importScripts("https://storage.googleapis.com/workbox-cdn/releases/3.6.3/workbox-sw.js");

importScripts(
"/LiveCoding/precache-manifest.248c91ab746260373ed90ad7a0358985.js"
"/LiveCoding/precache-manifest.6cef750533a071b30b6a7acf0fb5c3d9.js"
);

workbox.core.setCacheNameDetails({prefix: "livecoding"});
Expand Down
2 changes: 1 addition & 1 deletion client/public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css">
<link href="https://fonts.googleapis.com/css?family=IBM+Plex+Mono:400,400i" rel="stylesheet">
<title>LiveCoding</title>
Expand Down
12 changes: 8 additions & 4 deletions client/src/components/NavBar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,16 @@
*
* @author Bastien Nicoud
*/
import GameUrlInput from '@/components/game/GameUrlInput'
import EditorMenu from '@/components/editor/EditorMenu'
import GameActionsButtons from '@/components/game/GameActionsButtons'
import SettingsButton from '@/components/SettingsButton'
import { mapState } from 'vuex'
export default {
components: {
GameUrlInput,
EditorMenu
GameActionsButtons,
EditorMenu,
SettingsButton
},
data () {
return {
Expand Down Expand Up @@ -41,6 +43,7 @@ export default {
LiveCoding{{ gameLoaded ? ` - ${gameManager.provider.gameName}` : '' }}
</h1>
</div>
<!-- Burger for little screens -->
<a
role="button"
class="navbar-burger burger"
Expand All @@ -61,7 +64,8 @@ export default {
:class="{ 'is-active': toggle_burger }"
>
<div class="navbar-end">
<GameUrlInput />
<GameActionsButtons />
<SettingsButton />
</div>
</div>
</nav>
Expand Down
File renamed without changes.
36 changes: 36 additions & 0 deletions client/src/components/SettingsButton.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<script>
import SettingsBox from '@/components/SettingsBox'
/**
* This components display the inputs to load a game from a url
*/
export default {
methods: {
/**
* Displays the settings modal
*/
openSettingsModal () {
this.$modal.open({
parent: this,
component: SettingsBox,
hasModalCard: true
})
}
}
}
</script>

<template>
<div class="navbar-item">
<div class="field is-grouped">
<div class="control">
<button
class="button is-primary"
@click="openSettingsModal()"
>
Paramètres
</button>
</div>
</div>
</div>
</template>
1 change: 1 addition & 0 deletions client/src/components/editor/EditorBox.vue
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ export default {
language: this.language,
fontSize: this.fontSize,
fontFamily: 'IBM Plex Mono',
automaticLayout: true,
minimap: {
enabled: false
}
Expand Down
1 change: 1 addition & 0 deletions client/src/components/editor/EditorMenu.vue
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ export default {
</span>
</button>
</div>
<!-- DISPLAY INSTRUCTION DROPDOWN -->
<div
v-if="gameManager && gameManager.provider.gameInstructions"
class="control"
Expand Down
75 changes: 75 additions & 0 deletions client/src/components/game/GameActionsButtons.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
<script>
import GameSettingsBox from '@/components/game/GameSettingsBox'
import { mapState } from 'vuex'
/**
* This components display the inputs to load a game from a url
*/
export default {
computed: {
...mapState({
loading: state => state.game.loading
})
},
methods: {
/**
* Launch the game loading procedure
*/
async reload () {
try {
await this.$store.dispatch('load')
this.$snackbar.open({
message: 'Game reloaded, ready !',
type: 'is-success',
position: 'is-top',
actionText: 'OK',
duration: 3000
})
} catch {
this.$snackbar.open({
message: 'Error during game loading, see console for details',
type: 'is-danger',
position: 'is-top',
actionText: 'OK',
duration: 4500
})
}
},
/**
* Displays the settings modal
*/
openGameSettingsModal () {
this.$modal.open({
parent: this,
component: GameSettingsBox,
hasModalCard: true
})
}
}
}
</script>

<template>
<div class="navbar-item">
<div class="field is-grouped">
<div class="control">
<button
class="button is-warning"
@click="reload()"
>
<span class="icon is-left">
<i class="fas fa-redo-alt" />
</span>
</button>
</div>
<div class="control">
<button
class="button is-primary"
@click="openGameSettingsModal()"
>
Jeux
</button>
</div>
</div>
</div>
</template>
Loading

0 comments on commit db7f0d1

Please sign in to comment.