Bump updatenotification

Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
This commit is contained in:
John Molakvoæ (skjnldsv) 2018-06-07 08:35:00 +02:00
parent 14cb805cf1
commit fd147cc3fd
No known key found for this signature in database
GPG Key ID: 60C25B8C072916CF
19 changed files with 3421 additions and 5818 deletions

View File

@ -14,10 +14,17 @@ pipeline:
when: when:
matrix: matrix:
TESTS: jsunit TESTS: jsunit
vue-builds: vue-build-settings:
image: node image: node
commands: commands:
- ./build/vue-builds.sh - ./build/vue-builds.sh ./settings/js/main.js
when:
matrix:
TESTS: vue-builds
vue-build-updatenotification:
image: node
commands:
- ./build/vue-builds.sh ./apps/updatenotification/js/merged.js
when: when:
matrix: matrix:
TESTS: vue-builds TESTS: vue-builds

4
.gitignore vendored
View File

@ -32,8 +32,8 @@
!/apps/admin_audit !/apps/admin_audit
!/apps/updatenotification !/apps/updatenotification
/apps/updatenotification/build /apps/updatenotification/build
/apps/updatenotification/js/merged.js #/apps/updatenotification/js/merged.js
/apps/updatenotification/js/merged.js.map #/apps/updatenotification/js/merged.js.map
/apps/updatenotification/js/*.hot-update.* /apps/updatenotification/js/*.hot-update.*
/apps/updatenotification/node_modules /apps/updatenotification/node_modules
!/apps/theming !/apps/theming

View File

@ -3,14 +3,15 @@ app_name=updatenotification
project_dir=$(CURDIR)/../$(app_name) project_dir=$(CURDIR)/../$(app_name)
build_dir=$(CURDIR)/build build_dir=$(CURDIR)/build
source_dir=$(build_dir)/$(app_name) source_dir=$(build_dir)/$(app_name)
sign_dir=$(build_dir)/sign
all: package all: dev-setup build-js-production package
dev-setup: clean npm-update build-js dev-setup: clean clean-dev npm-init
npm-init:
npm install
npm-update: npm-update:
rm -rf node_modules
npm update npm update
build-js: build-js:
@ -19,9 +20,17 @@ build-js:
build-js-production: build-js-production:
npm run build npm run build
watch-js:
npm run watch
clean: clean:
rm -f js/merged.js
rm -f js/merged.js.map
rm -rf $(build_dir) rm -rf $(build_dir)
clean-dev:
rm -rf node_modules
package: clean build-js-production package: clean build-js-production
mkdir -p $(source_dir) mkdir -p $(source_dir)
rsync -a \ rsync -a \

View File

@ -1,54 +0,0 @@
/**
* @copyright (c) 2018 Joas Schilling <coding@schilljs.com>
*
* @author Joas Schilling <coding@schilljs.com>
*
* This file is licensed under the Affero General Public License version 3 or
* later. See the COPYING file.
*/
/* global $, define */
define(function (require) {
"use strict";
return {
/** @type {Vue|null} */
vm: null,
/**
* Initialise the app
*/
initialise: function() {
var data = JSON.parse($('#updatenotification').attr('data-json'));
var Vue = require('vue');
var vSelect = require('vue-select');
Vue.component('v-select', vSelect.VueSelect);
Vue.mixin({
methods: {
t: function(app, text, vars, count, options) {
return OC.L10N.translate(app, text, vars, count, options);
},
n: function(app, textSingular, textPlural, count, vars, options) {
return OC.L10N.translatePlural(app, textSingular, textPlural, count, vars, options);
}
}
});
this.vm = new Vue(require('./components/root.vue'));
this.vm.newVersionString = data.newVersionString;
this.vm.lastCheckedDate = data.lastChecked;
this.vm.isUpdateChecked = data.isUpdateChecked;
this.vm.updaterEnabled = data.updaterEnabled;
this.vm.downloadLink = data.downloadLink;
this.vm.isNewVersionAvailable = data.isNewVersionAvailable;
this.vm.updateServerURL = data.updateServerURL;
this.vm.currentChannel = data.currentChannel;
this.vm.channels = data.channels;
this.vm.notifyGroups = data.notifyGroups;
this.vm.isDefaultUpdateServerURL = data.isDefaultUpdateServerURL;
this.vm.versionIsEol = data.versionIsEol;
}
};
});

View File

@ -79,11 +79,13 @@
</template> </template>
<script> <script>
import vSelect from 'vue-select';
export default { export default {
name: "root", name: 'root',
components: {
el: '#updatenotification', vSelect,
},
data: function () { data: function () {
return { return {
newVersionString: '', newVersionString: '',

View File

@ -19,13 +19,36 @@
*/ */
/* global define, $ */ /* global define, $ */
import Vue from 'vue';
import Root from './components/root'
define(function(require) { var data = JSON.parse($('#updatenotification').attr('data-json'));
'use strict'; Vue.mixin({
methods: {
var App = require('./app'); t: function(app, text, vars, count, options) {
return OC.L10N.translate(app, text, vars, count, options);
$(function() { },
App.initialise(); n: function(app, textSingular, textPlural, count, vars, options) {
}); return OC.L10N.translatePlural(app, textSingular, textPlural, count, vars, options);
}
}
}); });
const vm = new Vue({
render: h => h(Root)
}).$mount('#updatenotification');
vm.newVersionString = data.newVersionString;
vm.lastCheckedDate = data.lastChecked;
vm.isUpdateChecked = data.isUpdateChecked;
vm.updaterEnabled = data.updaterEnabled;
vm.downloadLink = data.downloadLink;
vm.isNewVersionAvailable = data.isNewVersionAvailable;
vm.updateServerURL = data.updateServerURL;
vm.currentChannel = data.currentChannel;
vm.channels = data.channels;
vm.notifyGroups = data.notifyGroups;
vm.isDefaultUpdateServerURL = data.isDefaultUpdateServerURL;
vm.versionIsEol = data.versionIsEol;

View File

@ -0,0 +1,28 @@
const path = require('path')
const { VueLoaderPlugin } = require('vue-loader');
module.exports = {
entry: './js-src/init.js',
output: {
path: path.resolve(__dirname, '../js'),
publicPath: '/',
filename: 'merged.js'
},
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
}
]
},
plugins: [
new VueLoaderPlugin()
],
resolve: {
alias: {
'vue$': 'vue/dist/vue.esm.js'
},
extensions: ['*', '.js', '.vue', '.json']
}
}

View File

@ -1,56 +0,0 @@
var path = require('path');
var webpack = require('webpack');
module.exports = {
entry: './js-src/init.js',
output: {
path: path.resolve(__dirname, '../js'),
publicPath: '/',
filename: 'merged.js'
},
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: {
},
esModule: false
// other vue-loader options go here
}
}
]
},
resolve: {
alias: {
'vue-select': 'vue-select/dist/vue-select.js',
'vue': process.env.NODE_ENV === 'production' ? 'vue/dist/vue.min.js' : 'vue/dist/vue.js'
}
},
performance: {
hints: false
},
devtool: '#eval-source-map'
};
if (process.env.NODE_ENV === 'production') {
module.exports.devtool = '#source-map';
// http://vue-loader.vuejs.org/en/workflow/production.html
module.exports.plugins = (module.exports.plugins || []).concat([
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: '"production"'
}
}),
new webpack.optimize.UglifyJsPlugin({
sourceMap: true,
compress: {
warnings: false
}
}),
new webpack.LoaderOptionsPlugin({
minimize: true
})
]);
}

View File

@ -0,0 +1,12 @@
const merge = require('webpack-merge');
const common = require('./webpack.common.js');
module.exports = merge(common, {
mode: 'development',
devServer: {
historyApiFallback: true,
noInfo: true,
overlay: true
},
devtool: '#eval-source-map',
})

View File

@ -0,0 +1,7 @@
const merge = require('webpack-merge')
const common = require('./webpack.common.js')
module.exports = merge(common, {
mode: 'production',
devtool: '#source-map'
})

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "notifications", "name": "notifications",
"version": "2.2.0", "version": "2.3.0",
"description": "This app provides a backend and frontend for the notification API available in Nextcloud.", "description": "This app provides a backend and frontend for the notification API available in Nextcloud.",
"main": "init.js", "main": "init.js",
"directories": { "directories": {
@ -8,8 +8,9 @@
"test": "tests" "test": "tests"
}, },
"scripts": { "scripts": {
"dev": "cross-env NODE_ENV=development webpack --progress --hot --config js-src/webpack.config.js --watch", "dev": "webpack --config js-src/webpack.dev.js",
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules --config js-src/webpack.config.js", "watch": "webpack --progress --watch --config js-src/webpack.dev.js",
"build": "webpack --progress --hide-modules --config js-src/webpack.prod.js",
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"
}, },
"repository": { "repository": {
@ -27,11 +28,12 @@
"vue-select": "^2.4.0" "vue-select": "^2.4.0"
}, },
"devDependencies": { "devDependencies": {
"cross-env": "^5.1.6",
"css-loader": "^0.28.11", "css-loader": "^0.28.11",
"file-loader": "^1.1.6", "file-loader": "^1.1.11",
"vue-loader": "^13.7.0", "vue-loader": "^15.2.4",
"vue-template-compiler": "^2.5.16", "vue-template-compiler": "^2.5.16",
"webpack": "^3.6.0" "webpack": "^4.11.1",
"webpack-cli": "^3.0.3",
"webpack-merge": "^4.1.2"
} }
} }

View File

@ -2,10 +2,13 @@
declare -a apps=("./settings/js/main.js" "./apps/updatenotification/js/merged.js") declare -a apps=("./settings/js/main.js" "./apps/updatenotification/js/merged.js")
root=$(pwd) root=$(pwd)
entryFile=$1
for i in "${apps[@]}" if [ ! -f "$entryFile" ]
do then
entryFile=$i echo "The build file $entryFile does not exists"
exit 2
else
backupFile="$entryFile.orig" backupFile="$entryFile.orig"
path=$(dirname "$entryFile") path=$(dirname "$entryFile")
@ -31,4 +34,4 @@ do
else else
echo "$entryFile build is up-to-date" echo "$entryFile build is up-to-date"
fi fi
done fi

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -2595,7 +2595,8 @@
"ansi-regex": { "ansi-regex": {
"version": "2.1.1", "version": "2.1.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"aproba": { "aproba": {
"version": "1.2.0", "version": "1.2.0",
@ -2616,12 +2617,14 @@
"balanced-match": { "balanced-match": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"brace-expansion": { "brace-expansion": {
"version": "1.1.11", "version": "1.1.11",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"balanced-match": "^1.0.0", "balanced-match": "^1.0.0",
"concat-map": "0.0.1" "concat-map": "0.0.1"
@ -2636,17 +2639,20 @@
"code-point-at": { "code-point-at": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"console-control-strings": { "console-control-strings": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
@ -2763,7 +2769,8 @@
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"ini": { "ini": {
"version": "1.3.5", "version": "1.3.5",
@ -2775,6 +2782,7 @@
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"number-is-nan": "^1.0.0" "number-is-nan": "^1.0.0"
} }
@ -2789,6 +2797,7 @@
"version": "3.0.4", "version": "3.0.4",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"brace-expansion": "^1.1.7" "brace-expansion": "^1.1.7"
} }
@ -2796,12 +2805,14 @@
"minimist": { "minimist": {
"version": "0.0.8", "version": "0.0.8",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"minipass": { "minipass": {
"version": "2.2.4", "version": "2.2.4",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"safe-buffer": "^5.1.1", "safe-buffer": "^5.1.1",
"yallist": "^3.0.0" "yallist": "^3.0.0"
@ -2820,6 +2831,7 @@
"version": "0.5.1", "version": "0.5.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"minimist": "0.0.8" "minimist": "0.0.8"
} }
@ -2900,7 +2912,8 @@
"number-is-nan": { "number-is-nan": {
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
@ -2912,6 +2925,7 @@
"version": "1.4.0", "version": "1.4.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"wrappy": "1" "wrappy": "1"
} }
@ -2997,7 +3011,8 @@
"safe-buffer": { "safe-buffer": {
"version": "5.1.1", "version": "5.1.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"safer-buffer": { "safer-buffer": {
"version": "2.1.2", "version": "2.1.2",
@ -3033,6 +3048,7 @@
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"code-point-at": "^1.0.0", "code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0", "is-fullwidth-code-point": "^1.0.0",
@ -3052,6 +3068,7 @@
"version": "3.0.1", "version": "3.0.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"ansi-regex": "^2.0.0" "ansi-regex": "^2.0.0"
} }
@ -3095,12 +3112,14 @@
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"yallist": { "yallist": {
"version": "3.0.2", "version": "3.0.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
} }
} }
}, },

View File

@ -4,8 +4,8 @@ const { VueLoaderPlugin } = require('vue-loader');
module.exports = { module.exports = {
entry: './src/main.js', entry: './src/main.js',
output: { output: {
path: __dirname + '/js', path: path.resolve(__dirname, './js'),
publicPath: '/dist/', publicPath: '/',
filename: 'main.js' filename: 'main.js'
}, },
module: { module: {