mirror of
https://github.com/bckelley/cgm-remote-monitor.git
synced 2026-08-24 03:14:12 -05:00
Merge branch 'dev' of https://github.com/nightscout/cgm-remote-monitor into dev
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
# Don't include the .git history in the Docker image:
|
||||
.git
|
||||
|
||||
# Items from .gitignore
|
||||
bower_components/
|
||||
node_modules/
|
||||
bundle/bundle.out.js
|
||||
.idea/
|
||||
*.iml
|
||||
my.env
|
||||
*.env
|
||||
static/bower_components/
|
||||
.*.sw?
|
||||
.DS_Store
|
||||
.vagrant
|
||||
/iisnode
|
||||
coverage/
|
||||
npm-debug.log
|
||||
+13
-3
@@ -1,5 +1,5 @@
|
||||
language: node_js
|
||||
sudo: false
|
||||
sudo: required
|
||||
node_js:
|
||||
- 0.10
|
||||
- 0.12
|
||||
@@ -10,11 +10,21 @@ matrix:
|
||||
allow_failures:
|
||||
- node_js: 4
|
||||
- node_js: 5
|
||||
services: mongodb
|
||||
services:
|
||||
- mongodb
|
||||
- docker
|
||||
script: make travis
|
||||
after_success:
|
||||
- nvm version
|
||||
- if [[ ! -z "$DOCKER_USER" ]] && [[ "$(nvm version)" = "v0.12."* ]]; then docker login -u ${DOCKER_USER} -p ${DOCKER_PASS} && git checkout -- . && git clean -fd . && make docker_release; fi
|
||||
after_script: make report
|
||||
env:
|
||||
- CXX=g++-4.8
|
||||
global:
|
||||
- CXX=g++-4.8
|
||||
- secure: "QW33rAsCulSORXkSQK9fQotS5GuXwsr3P0KX+R0CE88N0rNE1gZuKZL5cIfYvHTdd4BiReMWja6Cox+QJJC/lu3UKZTPdArT5yUMvJ1AP8nbzzEYR1gKMy7DmcQ7OaZ8lD8LGG27P1+uRTiQ+94FmR31izg8jVXjD6ogEAayDMy5in3HoklnG+07RLdqo/8N5N7LoPcajHG051m/DRxvREdLg2L9K4yMqGKi1fpNFFti8L8jm5jAlylDlL9NGWdUj/4G1NeNIjkFrYZFodvd6R8oBDf8C6V6Tj0yvdyUQBLivTD9B8gKUWpyqE9fuy1Hz7UrZ9I9m7X6G5WPneVBRFRJpoRtg/VjiNrmbDUkBJXeXniGm2pi8dxcxV8lQ0m7D3S2UkJwNutEkGt9tp5y/RSEUo+7x8AnOIBb+H8f0SitUX9j3z1rzHfr4FGzW0EYprM9u8xzruOaZWF2yFe42YrJFgh22WWauhTtm1lgTO25xv/YP+wiVyshgswXgRuKPan5nal7WnIzP++yhAvAwYGs9z7zhQ9h63AaEav+4rjzJPHlD0hh2Y0lkVvcwTafkmPwVEkhV9R+QqhXX2Y2UcTMr77zJGE5S545WOWQpf2GmCewduixzCgjPEXLAhAI67biJRUxYaiLyZrAk8XouA9P8FzIcvqsOpfzWXcNXAc="
|
||||
- secure: "c9XEIaL9ZvhpPwXN893Ek3dNp5c1fMb1TzAiK37EzLxNbyVtB5vOXw3qQGFtgwJBA/2DodDQL4ZwuR5EEJgSfpPrH3D/A6BFTIXOGzvPwmqSTYY6fV3LOmEf8AIy4Y2N2AitMkjrGHS0GfwTOr23horrVSnjXHwsGilN9wcNIuh2RDCknRTxJWY9eK6hOh4/F+TSW7hESQH1Zzk0pDUt127wifmkhBf93GmJPpX8b8/fmb6osNkfCUdy0Ec7h7SafJWXcSxrp8p+AP2m54f8EtiKY07pN0pt8RKu66fh4BEQPUp4P2/u26oWHC2P1o2meAtoFde2Fzk5BjFCKgy3DZcIFjJ9BFUpMzYFQ5WtNAcHPHvIjTUz63peFsXsAq7dlwBjWbAUJWtyvk8CGvLCI20/Q2qSEB4RciEXYGaGdQmCLuPnmTwN9Pa1CF1bIYWgK7ztYhe02GDUJJa3AikqIdEDnI0eodKmkTa+Do9nrLgZLWhG8HXm06SySICClnhqUmbAAHuliQxSdnDixuwhgcBkkPX/5Ta/pHIz0u5r9mdGKShKg1irC1alV4jtr6dJU7ly/orhW8zvoV1mu6C75lnc3aeqc1CVPMyowLUS+y+XQpOiGds57n0UlRFq38LE5n06ODv1x2eMFf8Wk+pbxgaOI4Co338A4opRjLPbULs="
|
||||
- secure: "ZfFaKGU6OxyPFWuFT4eqIzpxJDZB9ABEe3L+mlyH6trhzFcA3EMghhAwuJOm4tvaRrn32l378b451qrcJ84TmKHB8KxYo7krAfIb5zf49A08YoCMpqKqITSS13jCiEuM0Yua8epXRbHzEiEuq8xGV1fqXZ3Wvii/IA0qVV2RTaM="
|
||||
- secure: "AKz1AcG+xxnAPlMf7twqho6TsCwjafSHFObiUVP7J47t74HLklbKzI3hH7mJpkpYLhRDYGbQSzgP1Is00Hy4EwJyChocKMnWIsY2+5mGg1fkV5I2L1sncLtxyLakFw2TBQFvju7f7FaYtpvv9L3mt9i5JZ4E7BmSO+YBDv53uTA="
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
FROM node:0.12
|
||||
|
||||
MAINTAINER Nightscout Contributors
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get -y dist-upgrade && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
||||
git \
|
||||
nodejs \
|
||||
nodejs-legacy \
|
||||
npm && \
|
||||
apt-get -y clean
|
||||
|
||||
RUN mkdir -p /opt/app
|
||||
ADD . /opt/app
|
||||
WORKDIR /opt/app
|
||||
|
||||
RUN npm install && \
|
||||
npm run postinstall && \
|
||||
npm run env
|
||||
|
||||
EXPOSE 1337
|
||||
|
||||
CMD ["node", "server.js"]
|
||||
@@ -24,6 +24,8 @@ ISTANBUL=./node_modules/.bin/istanbul
|
||||
ANALYZED=./coverage/lcov.info
|
||||
export CODACY_REPO_TOKEN=e29ae5cf671f4f918912d9864316207c
|
||||
|
||||
DOCKER_IMAGE=nightscout/cgm-remote-monitor-travis
|
||||
|
||||
all: test
|
||||
|
||||
coverage:
|
||||
@@ -45,4 +47,26 @@ travis:
|
||||
NODE_ENV=test ${MONGO_SETTINGS} \
|
||||
${ISTANBUL} cover ${MOCHA} --report lcovonly -- -R tap ${TESTS}
|
||||
|
||||
.PHONY: all coverage report test travis
|
||||
docker_release:
|
||||
# Get the version from the package.json file
|
||||
$(eval DOCKER_TAG=$(shell cat package.json | jq '.version' | tr -d '"'))
|
||||
#
|
||||
# Rebuild the image. We do this with no-cache so that we have all security upgrades,
|
||||
# since that's more important than fewer layers in the Docker image.
|
||||
docker build --no-cache=true -f Dockerfile.example -t $(DOCKER_IMAGE):$(DOCKER_TAG) .
|
||||
# Push an image to Docker Hub with the version from package.json:
|
||||
docker push $(DOCKER_IMAGE):$(DOCKER_TAG)
|
||||
#
|
||||
# Push the master branch to Docker hub as 'latest'
|
||||
if [ "$(TRAVIS_BRANCH)" = "master" ]; then \
|
||||
docker tag $(DOCKER_IMAGE):$(DOCKER_TAG) $(DOCKER_IMAGE):latest && \
|
||||
docker push $(DOCKER_IMAGE):latest; \
|
||||
fi
|
||||
#
|
||||
# Push the dev branch to Docker Hub as 'latest_dev'
|
||||
if [ "$(TRAVIS_BRANCH)" = "dev" ]; then \
|
||||
docker tag $(DOCKER_IMAGE):$(DOCKER_TAG) $(DOCKER_IMAGE):latest_dev && \
|
||||
docker push $(DOCKER_IMAGE):latest_dev; \
|
||||
fi
|
||||
|
||||
.PHONY: all coverage docker_release report test travis
|
||||
|
||||
@@ -174,7 +174,7 @@ function init (client, d3) {
|
||||
return '<strong>'+translate('Time')+':</strong> ' + client.formatTime(new Date(d.mills)) + '<br/>' +
|
||||
(d.eventType ? '<strong>'+translate('Treatment type')+':</strong> ' + translate(client.careportal.resolveEventName(d.eventType)) + '<br/>' : '') +
|
||||
(d.reason ? '<strong>'+translate('Reason')+':</strong> ' + translate(d.reason) + '<br/>' : '') +
|
||||
(d.glucose ? '<strong>'+translate('BG')+':</strong> ' + utils.scaleMgdl(d.glucose) + (d.glucoseType ? ' (' + translate(d.glucoseType) + ')': '') + '<br/>' : '') +
|
||||
(d.glucose ? '<strong>'+translate('BG')+':</strong> ' + d.glucose + (d.glucoseType ? ' (' + translate(d.glucoseType) + ')': '') + '<br/>' : '') +
|
||||
(d.enteredBy ? '<strong>'+translate('Entered By')+':</strong> ' + d.enteredBy + '<br/>' : '') +
|
||||
(d.targetTop ? '<strong>'+translate('Target Top')+':</strong> ' + d.targetTop + '<br/>' : '') +
|
||||
(d.targetBottom ? '<strong>'+translate('Target Bottom')+':</strong> ' + d.targetBottom + '<br/>' : '') +
|
||||
@@ -493,7 +493,7 @@ function init (client, d3) {
|
||||
(treatment.carbs ? '<strong>' + translate('Carbs') + ':</strong> ' + treatment.carbs + '<br/>' : '') +
|
||||
(treatment.insulin ? '<strong>' + translate('Insulin') + ':</strong> ' + treatment.insulin + '<br/>' : '') +
|
||||
(treatment.enteredinsulin ? '<strong>' + translate('Combo Bolus') + ':</strong> ' + treatment.enteredinsulin + 'U, ' + treatment.splitNow + '% : ' + treatment.splitExt + '%, ' + translate('Duration') + ': ' + treatment.duration + '<br/>' : '') +
|
||||
(treatment.glucose ? '<strong>' + translate('BG') + ':</strong> ' + utils.scaleMgdl(treatment.glucose) + (treatment.glucoseType ? ' (' + translate(treatment.glucoseType) + ')' : '') + '<br/>' : '') +
|
||||
(treatment.glucose ? '<strong>' + translate('BG') + ':</strong> ' + treatment.glucose + (treatment.glucoseType ? ' (' + translate(treatment.glucoseType) + ')' : '') + '<br/>' : '') +
|
||||
(treatment.enteredBy ? '<strong>' + translate('Entered By') + ':</strong> ' + treatment.enteredBy + '<br/>' : '') +
|
||||
(treatment.notes ? '<strong>' + translate('Notes') + ':</strong> ' + treatment.notes : '') +
|
||||
boluscalcTooltip(treatment)
|
||||
|
||||
+2
-2
@@ -154,7 +154,7 @@ function init(ctx) {
|
||||
sbx.notifications.requestNotify({
|
||||
level: level
|
||||
, title: 'Loop isn\'t looping'
|
||||
, message: 'Last Loop: ' + utils.formatAgo(prop.lastLoop.moment, now.valueOf())
|
||||
, message: 'Last Loop: ' + utils.formatAgo(prop.lastOkMoment, now.valueOf())
|
||||
, pushoverSound: 'echo'
|
||||
, group: 'Loop'
|
||||
, plugin: loop
|
||||
@@ -231,7 +231,7 @@ function init(ctx) {
|
||||
if (prop.lastLoop && prop.lastLoop.cob) {
|
||||
var cob = prop.lastLoop.cob;
|
||||
var cob = prop.lastLoop.cob.cob;
|
||||
cob = Math.round(cob);
|
||||
cob = Math.round(cob);
|
||||
valueParts = valueParts.concat([
|
||||
', COB: '
|
||||
, cob + 'g'
|
||||
|
||||
+10
-2
@@ -198,10 +198,18 @@ function init() {
|
||||
info.value += ' (' + device.min.voltageDisplay + ')';
|
||||
}
|
||||
|
||||
if (device.min && device.min.temperature) {
|
||||
info.value += ' ' + device.min.temperature;
|
||||
}
|
||||
return info;
|
||||
});
|
||||
} else if (prop.min && prop.min.battery && prop.min.voltageDisplay) {
|
||||
infos = [{label: 'Voltage', value: prop.min.voltageDisplay}];
|
||||
} else {
|
||||
if (prop.min && prop.min.battery && prop.min.voltageDisplay) {
|
||||
infos = [{label: 'Voltage', value: prop.min.voltageDisplay}];
|
||||
}
|
||||
if (prop.min && prop.min.temperature) {
|
||||
infos.push({label: 'Temp', value : prop.min.temperature});
|
||||
}
|
||||
}
|
||||
|
||||
sbx.pluginBase.updatePillText(upbat, {
|
||||
|
||||
+8
-8
@@ -228,7 +228,7 @@
|
||||
|
||||
<fieldset id="bg">
|
||||
<legend class="translate">Glucose Reading</legend>
|
||||
<input type="number" step="any" id="glucoseValue" />
|
||||
<input type="number" step="any" id="glucoseValue" pattern="\d*" />
|
||||
<label><br><span class="translate">Measurement Method</span><br></label>
|
||||
<label for="meter">
|
||||
<input type="radio" name="glucoseType" id="meter" value="Finger"/>
|
||||
@@ -241,17 +241,17 @@
|
||||
</fieldset>
|
||||
<label id="carbsGivenLabel" for="carbsGiven" class="left-column short-label">
|
||||
<span class="translate">Carbs Given</span>
|
||||
<input type="number" step="any" min="0" id="carbsGiven" placeholder="Amount in grams" class="titletranslate"/>
|
||||
<input type="number" step="any" min="0" id="carbsGiven" placeholder="Amount in grams" class="titletranslate" pattern="\d*" />
|
||||
</label>
|
||||
<label id="insulinGivenLabel" for="insulinGiven" class="left-column short-label">
|
||||
<span class="translate">Insulin Given</span>
|
||||
<input type="number" step="any" min="0" id="insulinGiven" placeholder="Amount in units" class="titletranslate"/>
|
||||
<input type="number" step="any" min="0" id="insulinGiven" placeholder="Amount in units" class="titletranslate" pattern="[0-9.]*" />
|
||||
</label>
|
||||
<label id="insulinSplitLabel" for="insulinSplit" class="left-column short-label">
|
||||
<span class="translate">Split</span>
|
||||
<input type="number" step="5" min="0" max="100" style="width:50px" id="insulinSplitNow" placeholder="% now" class="titletranslate"/>%
|
||||
<input type="number" step="5" min="0" max="100" style="width:50px" id="insulinSplitNow" placeholder="% now" class="titletranslate" pattern="\d*" />%
|
||||
:
|
||||
<input type="number" step="5" min="0" max="100" style="width:50px" id="insulinSplitExt" placeholder="% extended" class="titletranslate"/>%
|
||||
<input type="number" step="5" min="0" max="100" style="width:50px" id="insulinSplitExt" placeholder="% extended" class="titletranslate" pattern="\d*" />%
|
||||
</label>
|
||||
<label id="durationLabel" for="duration" class="left-column short-label">
|
||||
<span class="translate">Duration</span>
|
||||
@@ -259,7 +259,7 @@
|
||||
</label>
|
||||
<label id="percentLabel" for="percent" class="left-column short-label">
|
||||
<span class="translate">Percent</span>
|
||||
<input type="number" step="10" id="percent" placeholder="Basal change in %" class="titletranslate"/>
|
||||
<input type="number" step="10" id="percent" placeholder="Basal change in %" class="titletranslate" pattern="\d*" />
|
||||
</label>
|
||||
<label id="profileLabel" for="profile" class="left-column short-label">
|
||||
<span class="translate">Profile</span>
|
||||
@@ -327,7 +327,7 @@
|
||||
<td>
|
||||
<span class="translate">BG</span>:
|
||||
<span style="float:right;">
|
||||
<input type="text" size="3" id="bc_bg" class="insulincalculationpart">
|
||||
<input type="number" size="3" id="bc_bg" class="insulincalculationpart" pattern="[0-9.]*" >
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
@@ -383,7 +383,7 @@
|
||||
<td>
|
||||
<span class="translate">Carbs</span>:
|
||||
<span style="float:right;">
|
||||
<input type="text" size="3" id="bc_carbs" value="0" class="insulincalculationpart"> g
|
||||
<input type="number" size="3" id="bc_carbs" value="0" class="insulincalculationpart" pattern="\d*" > g
|
||||
</span>
|
||||
</td>
|
||||
<td id="bc_inzulincarbstd" class="insulincalculation">
|
||||
|
||||
Reference in New Issue
Block a user