Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/release/v3.30.0' into release/v3…
Browse files Browse the repository at this point in the history
….30.1
  • Loading branch information
esurface committed Nov 10, 2023
2 parents 1eedf26 + 38c7b08 commit 18176d8
Show file tree
Hide file tree
Showing 88 changed files with 3,962 additions and 1,029 deletions.
1 change: 0 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ node_modules
editor/node_modules
online-survey-app/node_modules
client/node_modules
online-survey-app/node_modules
client/app/node_modules
client/tangy-forms/node_modules
client/tangy-forms/bower_components
Expand Down
Empty file added .jshintrc
Empty file.
123 changes: 121 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,84 @@
# What's new

## v3.30.1

__New Feautres__
- Multiple Location Lists can be configured using the Tangerine server web interface
-- Create and manage location lists for use in Tangerine forms
-- The default location list is used for device and device user assignment

__Server upgrade instructions__

Reminder: Consider using the [Tangerine Upgrade Checklist](https://docs.tangerinecentral.org/system-administrator/upgrade-checklist.html) for making sure you test the upgrade safely.

```
cd tangerine
# Check the size of the data folder.
du -sh data
# Check disk for free space.
df -h
# If there is not more than 12 GB plus the size of the data folder, create more space before proceeding.
# Good candidates to remove are: data back-up folders and older versions of the Tangerine image
# rm -rf ../data-backup-<date>
# docker rmi tangerine/tangerine:<version>
# Create a backup of the data folder.
cp -r data ../data-backup-$(date "+%F-%T")
# Check logs for the past hour on the server to ensure it's not being actively used. Look for log messages like "Created sync session" for Devices that are syncing and "login success" for users logging in on the server.
docker logs --since=60m tangerine
# Fetch the updates.
git fetch origin
git checkout -b v3.30.1 v3.30.1
./start.sh v3.30.1
# Remove Tangerine's previous version Docker Image.
docker rmi tangerine/tangerine:<previous_version>
```

## v3.30.0

__New Features__
- The 'teach' content-set now supports an optional 'Attendance' feature, enabled by adding `"useAttendanceFeature": true`
to app-config.json. It also has a new view, 'responsesForAttendanceByClassId', an 'Attendance and Behaviour' subtest menu
item which enables collection of those values per student, and an 'Attendance' report.
- New app-config.json configuration for teach properties:
```js
"teachProperties": {
"units": ["unit 1", "unit 2", "unit 3"],
"cutoffRange": "10"
}
```
- Updated docker-tangerine-base-image to v3.8.0, which adds the cordova-plugin-x-socialsharing plugin and enables sharing to WhatsApp.


__Fixes__
- Fixed PWA assets (sound,video) only work when online [#1905](https://github.com/Tangerine-Community/Tangerine/issues/1905)

__Server upgrade instructions__

Reminder: Consider using the [Tangerine Upgrade Checklist](https://docs.tangerinecentral.org/system-administrator/upgrade-checklist.html) for making sure you test the upgrade safely.

```
cd tangerine
# Check the size of the data folder.
du -sh data
# Check disk for free space.
df -h
# If there is not more than 12 GB plus the size of the data folder, create more space before proceeding.
# Good candidates to remove are: data back-up folders and older versions of the Tangerine image
# rm -rf ../data-backup-<date>
# docker rmi tangerine/tangerine:<version>
# Create a backup of the data folder.
cp -r data ../data-backup-$(date "+%F-%T")
# Check logs for the past hour on the server to ensure it's not being actively used. Look for log messages like "Created sync session" for Devices that are syncing and "login success" for users logging in on the server.
docker logs --since=60m tangerine
# Fetch the updates.
git fetch origin
git checkout -b v3.30.0 v3.30.0
./start.sh v3.30.0
# Remove Tangerine's previous version Docker Image.
docker rmi tangerine/tangerine:<previous_version>
```


## v3.29.0

__New Features__
Expand Down Expand Up @@ -36,9 +115,9 @@ git checkout -b v3.29.0 v3.29.0
docker rmi tangerine/tangerine:<previous_version>
```

## v3.28.X
## v3.28

This released turned into v4.X
- This became v4

## v3.27.8

Expand Down Expand Up @@ -86,6 +165,46 @@ git checkout -b v3.27.8 v3.27.8
docker rmi tangerine/tangerine:v3.27.7
```

## v3.29.0

__New Features__
- Case, Event and Form Archive and Unarchive

We have released an update to Tangerine which allows for the archiving and un-archiving of both events, and forms within events. This is an extension of the already existing functionality by which an entire case can be archived. The purpose of this is to empower data management teams using Tangerine to "clean up" messy cases where extraneous data has been added to a case in error, or by a conflict situation. The purpose of this document is to summarize both the configuration to enable this, and to demonstrate the use of these functions. This functionality will only apply to the web-based version of Tangerine, and will not be available on tablets.

__Package Updates__
- Updated tangy-form to v4.40.0

__Server upgrade instructions__

Reminder: Consider using the [Tangerine Upgrade Checklist](https://docs.tangerinecentral.org/system-administrator/upgrade-checklist.html) for making sure you test the upgrade safely.

```
cd tangerine
# Check the size of the data folder.
du -sh data
# Check disk for free space.
df -h
# If there is not more than 12 GB plus the size of the data folder, create more space before proceeding.
# Good candidates to remove are: data back-up folders and older versions of the Tangerine image
# rm -rf ../data-backup-<date>
# docker rmi tangerine/tangerine:<version>
# Create a backup of the data folder.
cp -r data ../data-backup-$(date "+%F-%T")
# Check logs for the past hour on the server to ensure it's not being actively used. Look for log messages like "Created sync session" for Devices that are syncing and "login success" for users logging in on the server.
docker logs --since=60m tangerine
# Fetch the updates.
git fetch origin
git checkout -b v3.29.0 v3.29.0
./start.sh v3.29.0
# Remove Tangerine's previous version Docker Image.
docker rmi tangerine/tangerine:<previous_version>
```

## v3.28.X

- Became v4.0

## v3.27.7

__Fixes__
Expand Down
14 changes: 8 additions & 6 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Start with docker-tangerine-base-image, which provides the core Tangerine apps.
FROM tangerine/docker-tangerine-base-image:v3.7.4
FROM tangerine/docker-tangerine-base-image:v3.8.0

RUN git config --global url."https://".insteadOf git://

Expand Down Expand Up @@ -69,13 +69,13 @@ RUN cd /tangerine/online-survey-app && \

# build client.
add client /tangerine/client
run cd /tangerine/client && \
RUN cd /tangerine/client && \
./node_modules/.bin/ng build --base-href "./"

# Build editor.
ADD editor /tangerine/editor
RUN cd /tangerine/editor && ./node_modules/.bin/ng build --base-href "./"
RUN cd /tangerine/editor && ./node_modules/.bin/workbox generate:sw
RUN cd /tangerine/editor && ./node_modules/.bin/workbox generate:sw

# Build PWA tools.
RUN cd /tangerine/client/pwa-tools/updater-app && \
Expand All @@ -99,9 +99,8 @@ ADD server /tangerine/server
RUN cd /tangerine/server && \
npm link


#
# Wrap up
# Wrap up
#

ADD ./ /tangerine
Expand All @@ -111,4 +110,7 @@ RUN mkdir /groups
RUN echo {} > /paid-worker-state.json

EXPOSE 80
ENTRYPOINT cd /tangerine/server/ && npm start
ENTRYPOINT cd /tangerine/server/ && npm start

## Used for testing...
#CMD ["/bin/bash"]
22 changes: 13 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,16 @@ The [Bullet points for Tangerine Development](./docs/developer/development-bulle

Prereqs includes [node](https://nodejs.org/en/). Before setting up your sandbox, see the decide which Content Set you would like to set it up with. Content Sets are configuration and forms for Tangerine that serve as starting places and examples of the different ways Tangerine Client can be used. See the list of Content Sets in the `content-sets` folder and note which one you will be installing with which will be referenced in the commands below.

For Tangerine instances based on a v3.x branch, you may need to install phantomjs globally in order to run tests.
```bash
cd /usr/local/share
sudo wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.8-linux-x86_64.tar.bz2
sudo tar xjf phantomjs-1.9.8-linux-x86_64.tar.bz2
sudo ln -s /usr/local/share/phantomjs-1.9.8-linux-x86_64/bin/phantomjs /usr/local/share/phantomjs
sudo ln -s /usr/local/share/phantomjs-1.9.8-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs
sudo ln -s /usr/local/share/phantomjs-1.9.8-linux-x86_64/bin/phantomjs /usr/bin/phantomjs
```

```bash
# Install Angular CLI globally. This is useful for using the `ng generate` subcommand for templating out new Components, Modules, etc.
npm install -g @angular/cli
Expand All @@ -184,21 +194,15 @@ cp -r ../content-sets/<your pick>/client src/assets
cp src/assets/app-config.defaults.json src/assets/app-config.json
# Copy the latest translations into the Angular Assets folder.
cp ../translations/translation* src/assets/
# Workaround for ssl issue in phantomjs: error:0308010C:digital envelope routines::unsupported
export NODE_OPTIONS=--openssl-legacy-provider
# Start the Angular development server.
npm start
```

View the app at <http://localhost:4200>.

__Optional__: If you are also developing the form library Tangy Form at the same time, you can symlink that repository into `node_modules` folder. For example...

```bash
rm -r node_modules/tangy-form
ln -s /Users/rjsteinert/Git/tangerine-community/tangy-form /Users/rjsteinert/Git/tangerine-community/tangerine/client/node_modules/tangy-form
```
It's nice that the Angular webpack dev server will reload your browser when making changes in the symlinked tangy-form folder.


If using ngrok.io or tunnelto.dev, use the 'start-using-proxy' instead of 'start' command. This will add some switches that enable the use of some older libraries.

## Deprecated Version of Tangerine

Expand Down
56 changes: 1 addition & 55 deletions client/angular.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,8 @@
"src/assets"
],
"styles": [
"./node_modules/material-design-icons/iconfont/material-icons.css",
"src/styles.scss"
],
"scripts": []
]
},
"configurations": {
"production": {
Expand Down Expand Up @@ -82,31 +80,6 @@
"browserTarget": "tangerine-client:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.spec.json",
"karmaConfig": "karma.conf.js",
"styles": [
"src/styles.scss"
],
"scripts": [
"./src/app/core/sync-records/peers/memorystream-standalone.js",
"./src/app/core/sync-records/peers/pouchdb.replication-stream.min.js"
],
"assets": [
"src/libs/bcrypt.min.js",
"src/libs/plotly-latest.min.js",
"src/logo.png",
"src/loading.gif",
"src/favicon.ico",
"src/shell/index.html",
"src/assets"
]
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
Expand All @@ -120,33 +93,6 @@
}
}
}
},
"tangerine-client-e2e": {
"root": "e2e/",
"projectType": "application",
"architect": {
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "e2e/protractor.conf.js",
"devServerTarget": "tangerine-client:serve"
},
"configurations": {
"production": {
"devServerTarget": "tangerine-client:serve:production"
}
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": "e2e/tsconfig.e2e.json",
"exclude": [
"**/node_modules/**"
]
}
}
}
}
},
"defaultProject": "tangerine-client",
Expand Down
21 changes: 8 additions & 13 deletions client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"scripts": {
"ng": "ng",
"start": "ng serve",
"start-using-proxy": "export NODE_OPTIONS=--openssl-legacy-provider;ng serve --disable-host-check",
"build": "ng build --base-href \"./\"",
"test": "ng test",
"test-ci": "ng test --watch=false",
Expand All @@ -23,6 +24,7 @@
"@angular/common": "~9.1.4",
"@angular/compiler": "~9.1.4",
"@angular/core": "~9.1.4",
"@angular/elements": "^9.1.13",
"@angular/forms": "~9.1.4",
"@angular/material": "^9.2.1",
"@angular/platform-browser": "~9.1.4",
Expand All @@ -31,6 +33,8 @@
"@ngx-translate/core": "^11.0.1",
"@ngx-translate/http-loader": "^4.0.0",
"@polymer/font-roboto-local": "^3.0.2",
"@polymer/iron-icons": "^3.0.1",
"@polymer/paper-icon-button": "^3.0.2",
"@polymer/paper-item": "^3.0.1",
"@polymer/paper-listbox": "^3.0.1",
"@polymer/paper-menu-button": "^3.0.1",
Expand All @@ -52,8 +56,7 @@
"js-uuid": "0.0.6",
"lit-element": "^2.3.1",
"luxon": "^1.25.0",
"material-design-icons": "^3.0.1",
"material-design-icons-iconfont": "^3.0.3",
"material-design-icons-iconfont": "^6.7.0",
"moment": "^2.23.0",
"ngx-cookie-service": "^2.1.0",
"pako": "^1.0.6",
Expand All @@ -64,10 +67,12 @@
"pouchdb-find": "^7.1.1",
"pouchdb-replication-stream": "github:orolle/pouchdb-replication-stream",
"pouchdb-upsert": "^2.2.0",
"redux": "^4.2.1",
"rxjs": "^6.5.5",
"rxjs-compat": "^6.5.5",
"sanitize-filename-ts": "^1.0.2",
"spark-md5": "^3.0.2",
"tangy-form": "^4.42.0",
"tangy-form": "4.41.1",
"translation-web-component": "1.1.1",
"tslib": "^1.10.0",
"underscore": "^1.9.1",
Expand All @@ -79,18 +84,8 @@
"@angular/cli": "~9.1.4",
"@angular/compiler-cli": "~9.1.4",
"@angular/language-service": "~9.1.4",
"@types/jasmine": "~3.5.0",
"@types/jasminewd2": "~2.0.3",
"@types/node": "^12.11.1",
"codelyzer": "^5.1.2",
"jasmine-core": "~3.8.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~5.0.0",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage-istanbul-reporter": "~2.1.0",
"karma-jasmine": "~3.0.1",
"karma-jasmine-html-reporter": "^1.4.2",
"protractor": "~5.4.3",
"ts-node": "~8.3.0",
"tslint": "~6.1.0",
"typescript": "~3.8.3"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module.exports = {
"maximumFileSizeToCacheInBytes": 9915000000,
"globDirectory": ".pwa-temporary",
"globPatterns": [
"**/*.{md,html,json,png,txt,xml,ico,svg,jpg,gif,js,css,woff2,woff,ttf}"
"**/*.{md,html,json,png,txt,xml,ico,svg,jpg,gif,js,css,woff2,woff,ttf,mp3,mp4}"
],
"swDest": ".pwa-temporary/sw.js",
"skipWaiting": true,
Expand Down
Loading

0 comments on commit 18176d8

Please sign in to comment.