Skip to content

Commit c030438

Browse files
author
Lionel Laské
committed
Merge branch 'release/1.4.0'
2 parents f0dca5b + b75e6f7 commit c030438

File tree

2,012 files changed

+271789
-56539
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,012 files changed

+271789
-56539
lines changed

CHANGELOG.md

+62-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,68 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
55
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
66

7-
## [1.3.0] - 2020-03-27
7+
## [1.4.0] - 2020-03-23
8+
### Added
9+
- Fraction activity #205
10+
- Implode activity #710
11+
- Planets activity
12+
- Chess activity
13+
- Curriculum activity
14+
- MindMath activity
15+
- Vote activity
16+
- Tangram activity
17+
- Simon mode game in TamTam activity #686
18+
- Vue.js activity template
19+
- Activity Development Tutorial in Vue.js
20+
- Duplicate action on Journal entries
21+
- ES6 compatibility for activities (except modules)
22+
- Support autologoff mode for Electron and Sugarizer OS
23+
- Support for native Android app in activities.json
24+
- Join shared activity in one click in neighborhood view
25+
26+
### Changed
27+
- Improve Presence palette UI, now handle list of users and disconnection
28+
- Improve Sugarizer spiral in home view #579
29+
- Localize and standardize activities title
30+
31+
### Fixed
32+
- Falabracman activity don't detect win condition for restarted game #723
33+
- Falabracman only accepts a specific letter in case of repeated letters in a word #725
34+
- Speak Text button hides text under it in speak activity #727
35+
- Video Viewer shows tutorial for a feature not available #731
36+
- Labyrinth shows tutorial for functions not available on small screens #733
37+
- Blockrain tutorial overflows off screen on smaller screens #736
38+
- Get Things Done can't handle multiple lines #741
39+
- Stop button not visible in Scratch activity on small screens #715
40+
- Wrong title of network button in Memorize activity #745
41+
- Text not showing under erase button in qr-code activity #700
42+
- Food Chain tutorial off screen in small resolutions #752
43+
- Food Chain activity palette behind canvas #754
44+
- Awkward placement of Labyrinth canvas tutorial #758
45+
- Stopwatch activity palette text not visible #756
46+
- Tutorial button hidden on login screens #697
47+
- Pomodoro timer resets on break change #750
48+
- Awkward positioning of contents in the searchfield of video viewer activity #761
49+
- Size and speed palettes of game of life activity don't works on touch screen #766
50+
- Speech and Face Palettes of speak activity doesn't work on touch screen #764
51+
- Keyboard overlaps input fields on Android #739
52+
- Alignment of help button in some activities #777
53+
- Presence palette implementation in Memorize is non standard #374
54+
- Splitbar in toolbar of Clock activity are half sized in Chrome #789
55+
- Wrong title of blinker button in Game Of Life activity #792
56+
- Alert "user already exists" should come earlier #580
57+
- Wrong song is play on slow device/connection in TamTam activity #803
58+
- Removed resize option in Shared Notes
59+
- When connected to server, activities get shared automatically #810
60+
- Private button in presence palette shares the activity #811
61+
- Export palette in Write activity pop at the wrong place #807
62+
- Last One Loses activity is unplayable after sharing without second player #815
63+
- Spinner on first screen is at the bottom of the screen
64+
- Countries and view palettes pop at the wrong place in Constellation activity
65+
- Timer in chess activity stops on inactive tabs #828
66+
67+
68+
## [1.3.0] - 2020-03-28
869
### Added
970
- Calligra activity
1071
- Falabracman activity

CONTRIBUTING.md

+8-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
As all Open Source software, contributions to Sugarizer are welcome.
22

3-
The best way to start is to read the [architecture](docs/architecture.md) then to do the whole [tutorial](docs/tutorial.md). It will give you a good understanding of Sugarizer internal.
3+
A good way to start to contribute is testing and trying Sugarizer to find some issues. If you find one, don't be shy, submit your issue [here](https://github.com/llaske/Sugarizer/issues) by giving the maximum information on it, specifically detailed steps to reproduce it. We will check your issue and ask your more information if needed.
44

5-
Then, you could start to contribute by trying to fix some existing issues [here](https://github.com/llaske/Sugarizer/issues).
5+
If you're a developper, the best way to start is to read the [architecture](docs/architecture.md) then to do the whole [tutorial](docs/tutorial.md). It will give you a good understanding of Sugarizer internal.
66

7-
Note than the **master** branch of the repository is for released/stable version, the **dev** branch is for development. So to contribute:
7+
When you think you're ready, you could try to fix some existing issues [here](https://github.com/llaske/Sugarizer/issues). If you find a fix, send a Pull Request, we will be please to review it.
8+
9+
Note than the **master** branch of the repository is for released/stable version, the **dev** branch is for development.
10+
11+
So to send your Pull Request:
812

913
* [ ] Clone this repository,
1014
* [ ] Fork the **dev** branch of your new repository,
@@ -20,4 +24,4 @@ Few rules to respect when you fix an issue:
2024

2125
Please note there is <u>no need to ask permission to work on an issue</u>. You should check for pull requests linked to an issue you are addressing; if there are none, then assume nobody has done anything. Begin to fix the problem, test, make your commits, push your commits, then make a pull request. These practices allow the competition of ideas and give priority to meritocracy.
2226

23-
Thanks in advance for your contribution.
27+
Thanks in advance for your contribution and to become a member of Sugarizer community!

Gruntfile.js

+7-50
Original file line numberDiff line numberDiff line change
@@ -2,68 +2,25 @@ module.exports = function(grunt) {
22

33
// Project configuration.
44
grunt.initConfig({
5-
uglify: {
5+
terser: {
66
options: {
7-
banner: '/*! Sugarizer <%= grunt.template.today("yyyy-mm-dd") %> */\n'
7+
keep_fnames: true
88
},
99
dynamic_mappings: {
1010
expand: true,
1111
src: [
1212
'lib/*.js',
1313
'js/*.js',
14-
'activities/Abacus.activity/**/*.js',
15-
'activities/Abecedarium.activity/**/*.js',
16-
'activities/Blockrain.activity/**/*.js',
17-
'activities/Calculate.activity/**/*.js',
18-
'activities/Calligra.activity/lib/*.js', // TODO: js/vue.js don't work
19-
'activities/ChatPrototype.activity/**/*.js',
20-
'activities/Clock.activity/**/*.js',
21-
'activities/ColorMyWorld.activity/**/*.js',
22-
'activities/Constellation.activity/**/*.js',
23-
'activities/Etoys.activity/**/*.js',
24-
'activities/EbookReader.activity/lib/*.js', // TODO: js/vue.js don't work
25-
'activities/Falabracman.activity/**/*.js',
26-
'activities/Flip.activity/**/*.js',
27-
'activities/FoodChain.activity/**/*.js',
28-
'activities/Fototoon.activity/**/*.js',
29-
'activities/GameOfLife.activity/**/*.js',
30-
'activities/Gears.activity/js/*.js', // TODO: lib/gearsketch dont work
31-
'activities/GetThingsDone.activity/**/*.js',
32-
'activities/Gridpaint.activity/**/*.js',
33-
'activities/Jappy.activity/**/*.js',
34-
'activities/LabyrinthJS.activity/**/*.js',
35-
'activities/LastOneLoses.activity/**/*.js',
36-
'activities/Markdown.activity/**/*.js',
37-
'activities/MazeWeb.activity/**/*.js',
38-
'activities/MediaViewer.activity/**/*.js',
39-
'activities/Memorize.activity/**/*.js',
40-
'activities/Moon.activity/**/*.js',
41-
'activities/Paint.activity/**/*.js',
42-
'activities/PhysicsJS.activity/**/*.js',
43-
'activities/Pomodoro.activity/**/*.js',
44-
'activities/QRCode.activity/**/*.js',
45-
'activities/Record.activity/lib/*.js', // TODO: js/recordrtc.js don't work
46-
'activities/Reflection.activity/**/*.js',
47-
'activities/Scratch.activity/**/*.js',
48-
'activities/SharedNotes.activity/**/*.js',
49-
'activities/Speak.activity/**/*.js',
50-
'activities/Stopwatch.activity/**/*.js',
51-
'activities/TamTamMicro.activity/**/*.js',
52-
'activities/TankOp.activity/**/*.js',
53-
'activities/TurtleBlocksJS.activity/**/*.js',
54-
'activities/VideoViewer.activity/**/*.js',
55-
'activities/Write.activity/js/*.js', // TODO: lib/quill is in ES6
56-
'activities/XOEditor.activity/**/*.js'
57-
],
58-
dest: 'build/'
14+
'activities/**/*.js'
15+
]
5916
}
6017
}
6118
});
6219

63-
// Load the plugin that provides the "uglify" task.
64-
grunt.loadNpmTasks('grunt-contrib-uglify');
20+
// Load the plugin that provides the "terser" task.
21+
grunt.loadNpmTasks('grunt-terser');
6522

6623
// Default task(s).
67-
grunt.registerTask('default', ['uglify']);
24+
grunt.registerTask('default', ['terser']);
6825

6926
};

LICENSE

+12-1
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,18 @@
176176

177177
END OF TERMS AND CONDITIONS
178178

179-
Copyright Lionel Laské
179+
APPENDIX: How to apply the Apache License to your work.
180+
181+
To apply the Apache License to your work, attach the following
182+
boilerplate notice, with the fields enclosed by brackets "[]"
183+
replaced with your own identifying information. (Don't include
184+
the brackets!) The text should be enclosed in the appropriate
185+
comment syntax for the file format. We also recommend that a
186+
file or class name and description of purpose be included on the
187+
same "printed page" as the copyright notice for easier
188+
identification within third-party archives.
189+
190+
Copyright [yyyy] [name of copyright owner]
180191

181192
Licensed under the Apache License, Version 2.0 (the "License");
182193
you may not use this file except in compliance with the License.

NOTICE

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
Copyright 2013 Lionel Laské
2+
3+
Licensed under the Apache License, Version 2.0 (the "License");
4+
you may not use this file except in compliance with the License.
5+
You may obtain a copy of the License at
6+
7+
http://www.apache.org/licenses/LICENSE-2.0
8+
9+
Unless required by applicable law or agreed to in writing, software
10+
distributed under the License is distributed on an "AS IS" BASIS,
11+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
See the License for the specific language governing permissions and
13+
limitations under the License.

README.md

+12-12
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
# What is Sugarizer ?
44

5-
Sugarizer is a free/libre learning platform. The Sugarizer UI use ergonomic principles from The [Sugar platform](https://sugarlabs.org/), developed for the One Laptop per Child project and used every day by more than 2 million children around the world.
5+
Sugarizer is a free/libre learning platform. The Sugarizer UI use ergonomic principles from The [Sugar platform](https://sugarlabs.org/), developed for the One Laptop per Child project and used by more than 2 million children around the world.
66

7-
Sugarizer runs on every device: from Raspberry Pi computers to Android and iOS phones to tablets and to laptops and desktops.
7+
Sugarizer runs on every device: laptops, desktops, tiny computers, tablets or smartphones.
88

9-
Sugarizer includes a bunch of pedagogic activities thought for children, see [here](https://sugarizer.org) for more.
9+
Sugarizer includes a large set of pedagogic activities thought for children, see [here](https://sugarizer.org/activities.html) for a full list.
1010

1111
Sugarizer is available as:
1212

@@ -39,6 +39,7 @@ The Sugarizer desktop application has three possible arguments:
3939

4040
* `--window` to open Sugarizer in a window (instead of fullscreen)
4141
* `--debug` to open Sugarizer with the debug console
42+
* `--logoff` to logoff the previous user if one is connected (unsynchronized content will be lost)
4243
* `--init` to remove all existing Journal and settings (all will be lost)
4344

4445
If you're a developer you could also launch Sugarizer desktop application using [electron](https://github.com/electron/electron). First install Node.js and npm on your computer. See [here](http://nodejs.org/) for more information. Then install electron and specific modules for Sugarizer by running:
@@ -111,12 +112,12 @@ If you're a developer and you want to learn more about Sugarizer architecture, s
111112

112113
# Activities distribution
113114

114-
All activities could be found in the [activities](../activities) directory. Each activity has its own subdirectory. So for example, the *Abecedarium* activity is located in [activities/Abecedarium.activity](../activities/Abecedarium.activity)
115+
All activities could be found in the [activities](activities) directory. Each activity has its own subdirectory. So for example, the *Abecedarium* activity is located in [activities/Abecedarium.activity](activities/Abecedarium.activity)
115116

116117
You could distribute Sugarizer with whatever activities you want.
117-
To do that, you first need to adapt the content of the [activities](../activities) directory to match your wish: removing activities you don't want to distribute and adding in this directory new activities you want to include.
118+
To do that, you first need to adapt the content of the [activities](activities) directory to match your wish: removing activities you don't want to distribute and adding in this directory new activities you want to include.
118119

119-
Then you need to update the [activities.json](../activities.json) file to reflect your choice.
120+
Then you need to update the [activities.json](activities.json) file to reflect your choice.
120121
Here an example of this file:
121122

122123
[
@@ -161,8 +162,8 @@ Remove in this file rows for activities that you want to remove. Add in this fil
161162

162163
Note than:
163164

164-
1. The [activities/ActivityTemplate](../activities/ActivityTemplate) directory does not contain a real activity. It's just a template that you could use to create your own activity.
165-
2. The [activities.json](../activities.json) is used only by Sugarizer Application, the Web Application relies on the */api/activities* API that dynamically browse the [activities](../activities) directory. By the way, it's a good practice to match the content of the activities.json file and the content of the activities directory.
165+
1. The [activities/ActivityTemplate](activities/ActivityTemplate) directory does not contain a real activity. It's just a template that you could use to create your own activity.
166+
2. The [activities.json](activities.json) is used only by Sugarizer Application, the Web Application relies on the */api/activities* API that dynamically browse the [activities](activities) directory. By the way, it's a good practice to match the content of the activities.json file and the content of the activities directory.
166167

167168
# Create your own activity
168169

@@ -236,15 +237,14 @@ The [Gruntfile.js](Gruntfile.js) contains tasks settings to build an optimized v
236237

237238
Then install specific component for Sugarizer by running:
238239

239-
npm install --dev
240+
npm install --only=dev
240241

241242
Finally launch:
242243

243244
grunt -v
244245

245-
At the end of the process, the `build` directory will contain the optimized version of each file in a same directory that the initial one, so you could just copy files:
246+
At the end of the process, all JavaScript files in all directories have been replaced by an optimized version.
246247

247-
cp -r build/* .
248248

249249
# Localization
250250

@@ -282,7 +282,7 @@ Sugarizer settings display a list of all available languages. You need to add yo
282282

283283
French=Français
284284

285-
* Add your string in the [js/dialog.js](dialog.js) file in the create function of the Enyo class Sugar.DialogLanguage. You should give the ISO 639-1 language code and the new string for your language name. For example:
285+
* Add your string in the [js/dialog.js](js/dialog.js) file in the create function of the Enyo class Sugar.DialogLanguage. You should give the ISO 639-1 language code and the new string for your language name. For example:
286286

287287
{code: "fr", icon: null, name: l10n.get("French")},
288288

0 commit comments

Comments
 (0)