mirror of
https://github.com/alextselegidis/easyappointments.git
synced 2024-11-24 00:43:28 +03:00
Updated the gulp flow (simplified tasks).
This commit is contained in:
parent
d709028eca
commit
afd0323571
16 changed files with 177 additions and 630 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -25,4 +25,4 @@
|
|||
/!storage/uploads/index.html
|
||||
/vendor/
|
||||
/metafile
|
||||
/**/.DS_Store
|
||||
.DS_Store
|
||||
|
|
|
@ -627,7 +627,7 @@ window.GeneralFunctions = window.GeneralFunctions || {};
|
|||
* @returns {string} The rendered HTML.
|
||||
*/
|
||||
exports.renderMapIcon = function (user) {
|
||||
const data = [];
|
||||
var data = [];
|
||||
|
||||
if (user.address) {
|
||||
data.push(user.address);
|
||||
|
|
|
@ -1,17 +1,8 @@
|
|||
{
|
||||
"name": "alextselegidis/easyappointments",
|
||||
"description": "Open Source Web Scheduler",
|
||||
"keywords": [
|
||||
"calendar",
|
||||
"scheduler",
|
||||
"appointments",
|
||||
"events",
|
||||
"dates",
|
||||
"google",
|
||||
"services"
|
||||
],
|
||||
"type": "project",
|
||||
"homepage": "https://easyappointments.org",
|
||||
"type": "project",
|
||||
"license": "GPL-3.0",
|
||||
"authors": [
|
||||
{
|
||||
|
@ -25,6 +16,15 @@
|
|||
"wiki": "https://easyappointments.org/docs",
|
||||
"source": "https://github.com/alextselegidis/easyappointments"
|
||||
},
|
||||
"keywords": [
|
||||
"calendar",
|
||||
"scheduler",
|
||||
"appointments",
|
||||
"events",
|
||||
"dates",
|
||||
"google",
|
||||
"services"
|
||||
],
|
||||
"minimum-stability": "stable",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
|
@ -36,6 +36,7 @@
|
|||
"ext-curl": "*",
|
||||
"ext-json": "*",
|
||||
"ext-mbstring": "*",
|
||||
"ext-gd": "*",
|
||||
"gregwar/captcha": "^1.1",
|
||||
"phpmailer/phpmailer": "^5.2",
|
||||
"codeigniter/framework": "^3.1.6",
|
||||
|
@ -45,5 +46,8 @@
|
|||
"require-dev": {
|
||||
"roave/security-advisories": "dev-master",
|
||||
"phpunit/phpunit": "^7.4"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "php vendor/bin/phpunit tests"
|
||||
}
|
||||
}
|
||||
|
|
139
gulpfile.js
139
gulpfile.js
|
@ -11,25 +11,142 @@
|
|||
|
||||
// Gulp instance and plugins.
|
||||
const gulp = require('gulp');
|
||||
const fs = require('fs-extra');
|
||||
const zip = require('zip-dir');
|
||||
const plugins = require('gulp-load-plugins')();
|
||||
const {execSync} = require('child_process');
|
||||
|
||||
// Gulp error handling.
|
||||
const source = gulp.src;
|
||||
gulp.src = function() {
|
||||
gulp.src = function () {
|
||||
return source.apply(gulp, arguments)
|
||||
.pipe(plugins.plumber({
|
||||
errorHandler: plugins.notify.onError('Error: <%= error.message %>')
|
||||
}));
|
||||
};
|
||||
|
||||
// Define gulp tasks.
|
||||
gulp.task('build', require('./tools/gulp/build')(gulp, plugins));
|
||||
gulp.task('clean', require('./tools/gulp/clean')(gulp, plugins));
|
||||
gulp.task('composer', require('./tools/gulp/composer')(gulp, plugins));
|
||||
gulp.task('dev', require('./tools/gulp/dev')(gulp, plugins));
|
||||
gulp.task('docs', require('./tools/gulp/docs')(gulp, plugins));
|
||||
gulp.task('scripts', require('./tools/gulp/scripts')(gulp, plugins));
|
||||
gulp.task('styles', require('./tools/gulp/styles')(gulp, plugins));
|
||||
gulp.task('tests', require('./tools/gulp/tests')(gulp, plugins));
|
||||
gulp.task('watch', require('./tools/gulp/watch')(gulp, plugins));
|
||||
gulp.task('build', (done) => {
|
||||
const archive = 'easyappointments-0.0.0.zip';
|
||||
|
||||
fs.removeSync('build');
|
||||
fs.removeSync(archive);
|
||||
|
||||
fs.mkdirsSync('build');
|
||||
|
||||
fs.copySync('application', 'build/application');
|
||||
fs.copySync('assets', 'build/assets');
|
||||
fs.copySync('engine', 'build/engine');
|
||||
fs.copySync('storage', 'build/storage');
|
||||
fs.copySync('index.php', 'build/index.php');
|
||||
fs.copySync('composer.json', 'build/composer.json');
|
||||
fs.copySync('composer.lock', 'build/composer.lock');
|
||||
fs.copySync('config-sample.php', 'build/config-sample.php');
|
||||
fs.copySync('CHANGELOG.md', 'build/CHANGELOG.md');
|
||||
fs.copySync('README.md', 'build/README.md');
|
||||
fs.copySync('LICENSE', 'build/LICENSE');
|
||||
|
||||
execSync('cd build && composer install --no-dev --no-interaction --no-scripts --optimize-autoloader', function (err, stdout, stderr) {
|
||||
console.log(stdout);
|
||||
console.log(stderr);
|
||||
});
|
||||
|
||||
fs.removeSync('build/composer.json');
|
||||
fs.removeSync('build/composer.lock');
|
||||
fs.removeSync('build/storage/uploads/*');
|
||||
fs.removeSync('!build/storage/uploads/index.html');
|
||||
fs.removeSync('build/storage/logs/*');
|
||||
fs.removeSync('!build/storage/logs/index.html');
|
||||
fs.removeSync('build/storage/sessions/*');
|
||||
fs.removeSync('!build/storage/sessions/.htaccess');
|
||||
fs.removeSync('!build/storage/sessions/index.html');
|
||||
fs.removeSync('build/storage/cache/*');
|
||||
fs.removeSync('!build/storage/cache/.htaccess');
|
||||
fs.removeSync('!build/storage/cache/index.html');
|
||||
|
||||
zip('build', {saveTo: archive}, function (err) {
|
||||
if (err)
|
||||
console.log('Zip Error', err);
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
gulp.task('clean', (done) => {
|
||||
fs.removeSync('assets/js/**/*.min.js');
|
||||
fs.removeSync('assets/css/**/*.min.css');
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
gulp.task('docs', (done) => {
|
||||
fs.removeSync('docs/apigen/html');
|
||||
fs.removeSync('docs/jsdoc/html');
|
||||
fs.removeSync('docs/plato/html');
|
||||
|
||||
fs.mkdirSync('docs/apigen/html');
|
||||
fs.mkdirSync('docs/jsdoc/html');
|
||||
fs.mkdirSync('docs/plato/html');
|
||||
|
||||
const commands = [
|
||||
'php docs/apigen/apigen.phar generate ' +
|
||||
'-s "application/controllers,application/models,application/libraries" ' +
|
||||
'-d "docs/apigen/html" --exclude "*external*" --tree --todo --template-theme "bootstrap"',
|
||||
|
||||
'npx jsdoc "assets/js" -d "docs/jsdoc/html"',
|
||||
|
||||
'npx plato -r -d "docs/plato/html" "assets/js"'
|
||||
];
|
||||
|
||||
commands.forEach(function (command) {
|
||||
execSync(command, function (err, stdout, stderr) {
|
||||
console.log(stdout);
|
||||
console.log(stderr);
|
||||
});
|
||||
});
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
gulp.task('scripts', (done) => {
|
||||
gulp.src([
|
||||
'assets/js/**/*.js',
|
||||
'!assets/js/**/*.min.js'
|
||||
])
|
||||
.pipe(plugins.changed('assets/js/**/*'))
|
||||
.pipe(plugins.uglify().on('error', plugins.util.log))
|
||||
.pipe(plugins.rename({suffix: '.min'}))
|
||||
.pipe(gulp.dest('assets/js'));
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
gulp.task('styles', (done) => {
|
||||
gulp.src([
|
||||
'assets/css/**/*.css',
|
||||
'!assets/css/**/*.min.css'
|
||||
])
|
||||
.pipe(plugins.changed('assets/css/**/*'))
|
||||
.pipe(plugins.cleanCss())
|
||||
.pipe(plugins.rename({suffix: '.min'}))
|
||||
.pipe(gulp.dest('assets/css'));
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
gulp.task('watch', (done) => {
|
||||
gulp.watch([
|
||||
'assets/js/**/*.js',
|
||||
'!assets/js/**/*.min.js'
|
||||
], gulp.parallel('scripts'));
|
||||
|
||||
gulp.watch([
|
||||
'assets/css/**/*.css',
|
||||
'!assets/css/**/*.min.css'
|
||||
], gulp.parallel('styles'));
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
gulp.task('dev', gulp.series('clean', 'scripts', 'styles', 'watch'));
|
||||
|
||||
gulp.task('default', gulp.parallel('dev'));
|
||||
|
|
293
package-lock.json
generated
293
package-lock.json
generated
|
@ -184,12 +184,6 @@
|
|||
"integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=",
|
||||
"dev": true
|
||||
},
|
||||
"array-differ": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
|
||||
"integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
|
||||
"dev": true
|
||||
},
|
||||
"array-each": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
|
||||
|
@ -418,12 +412,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"beeper": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
|
||||
"integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=",
|
||||
"dev": true
|
||||
},
|
||||
"binary-extensions": {
|
||||
"version": "1.13.1",
|
||||
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
|
||||
|
@ -707,24 +695,12 @@
|
|||
"wrap-ansi": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"clone": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
|
||||
"integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
|
||||
"dev": true
|
||||
},
|
||||
"clone-buffer": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz",
|
||||
"integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=",
|
||||
"dev": true
|
||||
},
|
||||
"clone-stats": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
|
||||
"integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
|
||||
"dev": true
|
||||
},
|
||||
"cloneable-readable": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz",
|
||||
|
@ -957,12 +933,6 @@
|
|||
"integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
|
||||
"dev": true
|
||||
},
|
||||
"dateformat": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz",
|
||||
"integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=",
|
||||
"dev": true
|
||||
},
|
||||
"datejs": {
|
||||
"version": "0.0.2",
|
||||
"resolved": "https://registry.npmjs.org/datejs/-/datejs-0.0.2.tgz",
|
||||
|
@ -1176,15 +1146,6 @@
|
|||
"domelementtype": "1"
|
||||
}
|
||||
},
|
||||
"duplexer2": {
|
||||
"version": "0.0.2",
|
||||
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
|
||||
"integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"readable-stream": "~1.1.9"
|
||||
}
|
||||
},
|
||||
"duplexify": {
|
||||
"version": "3.7.1",
|
||||
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
|
||||
|
@ -2960,73 +2921,6 @@
|
|||
"integrity": "sha512-swzbIGb/arEoFK89tPY58vg3Ok1bw+d35PfUNwWqdo7KM4jkmuGA78JiDNqR+JeZFaeeHnRg9N7aihX3YPmsyg==",
|
||||
"dev": true
|
||||
},
|
||||
"gulp-shell": {
|
||||
"version": "0.6.5",
|
||||
"resolved": "https://registry.npmjs.org/gulp-shell/-/gulp-shell-0.6.5.tgz",
|
||||
"integrity": "sha512-f3m1WcS0o2B72/PGj1Jbv9zYR9rynBh/EQJv64n01xQUo7j7anols0eww9GG/WtDTzGVQLrupVDYkifRFnj5Zg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"async": "^2.1.5",
|
||||
"chalk": "^2.3.0",
|
||||
"fancy-log": "^1.3.2",
|
||||
"lodash": "^4.17.4",
|
||||
"lodash.template": "^4.4.0",
|
||||
"plugin-error": "^0.1.2",
|
||||
"through2": "^2.0.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
||||
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-convert": "^1.9.0"
|
||||
}
|
||||
},
|
||||
"async": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
|
||||
"integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lodash": "^4.17.10"
|
||||
}
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.4.1",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
|
||||
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
}
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.11",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
|
||||
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
|
||||
"dev": true
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "^3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"gulp-sync": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/gulp-sync/-/gulp-sync-0.1.4.tgz",
|
||||
"integrity": "sha1-IuuVKPlXN9RxXAEnIYCgjyQTPbU=",
|
||||
"dev": true
|
||||
},
|
||||
"gulp-uglify": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.2.tgz",
|
||||
|
@ -3072,73 +2966,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"gulp-util": {
|
||||
"version": "3.0.8",
|
||||
"resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz",
|
||||
"integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"array-differ": "^1.0.0",
|
||||
"array-uniq": "^1.0.2",
|
||||
"beeper": "^1.0.0",
|
||||
"chalk": "^1.0.0",
|
||||
"dateformat": "^2.0.0",
|
||||
"fancy-log": "^1.1.0",
|
||||
"gulplog": "^1.0.0",
|
||||
"has-gulplog": "^0.1.0",
|
||||
"lodash._reescape": "^3.0.0",
|
||||
"lodash._reevaluate": "^3.0.0",
|
||||
"lodash._reinterpolate": "^3.0.0",
|
||||
"lodash.template": "^3.0.0",
|
||||
"minimist": "^1.1.0",
|
||||
"multipipe": "^0.1.2",
|
||||
"object-assign": "^3.0.0",
|
||||
"replace-ext": "0.0.1",
|
||||
"through2": "^2.0.0",
|
||||
"vinyl": "^0.5.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"lodash.template": {
|
||||
"version": "3.6.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
|
||||
"integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lodash._basecopy": "^3.0.0",
|
||||
"lodash._basetostring": "^3.0.0",
|
||||
"lodash._basevalues": "^3.0.0",
|
||||
"lodash._isiterateecall": "^3.0.0",
|
||||
"lodash._reinterpolate": "^3.0.0",
|
||||
"lodash.escape": "^3.0.0",
|
||||
"lodash.keys": "^3.0.0",
|
||||
"lodash.restparam": "^3.0.0",
|
||||
"lodash.templatesettings": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"lodash.templatesettings": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz",
|
||||
"integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lodash._reinterpolate": "^3.0.0",
|
||||
"lodash.escape": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"object-assign": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
|
||||
"integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
|
||||
"dev": true
|
||||
},
|
||||
"replace-ext": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
|
||||
"integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"gulplog": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
|
||||
|
@ -3959,98 +3786,12 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"lodash._basecopy": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
|
||||
"integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash._basetostring": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
|
||||
"integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash._basevalues": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
|
||||
"integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash._getnative": {
|
||||
"version": "3.9.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
|
||||
"integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash._isiterateecall": {
|
||||
"version": "3.0.9",
|
||||
"resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
|
||||
"integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash._reescape": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
|
||||
"integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash._reevaluate": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
|
||||
"integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash._reinterpolate": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
|
||||
"integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash._root": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
|
||||
"integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.escape": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
|
||||
"integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lodash._root": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"lodash.isarguments": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
|
||||
"integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.isarray": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
|
||||
"integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.keys": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
|
||||
"integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lodash._getnative": "^3.0.0",
|
||||
"lodash.isarguments": "^3.0.0",
|
||||
"lodash.isarray": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"lodash.restparam": {
|
||||
"version": "3.6.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
|
||||
"integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.template": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz",
|
||||
|
@ -4276,12 +4017,6 @@
|
|||
"sigmund": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"minimist": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
||||
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
|
||||
"dev": true
|
||||
},
|
||||
"mixin-deep": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
|
||||
|
@ -4331,15 +4066,6 @@
|
|||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
||||
"dev": true
|
||||
},
|
||||
"multipipe": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
|
||||
"integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"duplexer2": "0.0.2"
|
||||
}
|
||||
},
|
||||
"mute-stdout": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz",
|
||||
|
@ -6307,25 +6033,6 @@
|
|||
"integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=",
|
||||
"dev": true
|
||||
},
|
||||
"vinyl": {
|
||||
"version": "0.5.3",
|
||||
"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
|
||||
"integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"clone": "^1.0.0",
|
||||
"clone-stats": "^0.0.1",
|
||||
"replace-ext": "0.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"replace-ext": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
|
||||
"integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"vinyl-fs": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz",
|
||||
|
|
66
package.json
66
package.json
|
@ -1,44 +1,27 @@
|
|||
{
|
||||
"name": "easyappointments",
|
||||
"description": "Open Source Web Scheduler",
|
||||
"homepage": "https://easyappointments.org",
|
||||
"author": "A.Tselegidis <alextselegidis@gmail.com>",
|
||||
"license": "GPL-3.0",
|
||||
"keywords": [
|
||||
"calendar",
|
||||
"scheduler",
|
||||
"appointments",
|
||||
"events",
|
||||
"dates",
|
||||
"google",
|
||||
"services"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/alextselegidis/easyappointments.git"
|
||||
},
|
||||
"keywords": [
|
||||
"php",
|
||||
"javascript",
|
||||
"mysql",
|
||||
"html"
|
||||
],
|
||||
"author": "A.Tselegidis <alextselegidis@gmail.com>",
|
||||
"license": "GPL-3.0",
|
||||
"bugs": {
|
||||
"url": "https://github.com/alextselegidis/easyappointments/issues"
|
||||
},
|
||||
"homepage": "http://easyappointments.org",
|
||||
"devDependencies": {
|
||||
"del": "^2.2.0",
|
||||
"fs-extra": "^0.26.3",
|
||||
"gulp": "^4.0.2",
|
||||
"gulp-changed": "^3.2.0",
|
||||
"gulp-clean-css": "^3.10.0",
|
||||
"gulp-debug": "^4.0.0",
|
||||
"gulp-load-plugins": "^1.6.0",
|
||||
"gulp-notify": "^3.2.0",
|
||||
"gulp-plumber": "^1.2.1",
|
||||
"gulp-rename": "^1.4.0",
|
||||
"gulp-shell": "^0.6.5",
|
||||
"gulp-sync": "^0.1.4",
|
||||
"gulp-uglify": "^3.0.2",
|
||||
"gulp-util": "^3.0.8",
|
||||
"jsdoc": "^3.6.2",
|
||||
"node-notifier": "^5.4.0",
|
||||
"plato": "^1.5.0",
|
||||
"zip-dir": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.12"
|
||||
"node": ">=10"
|
||||
},
|
||||
"dependencies": {
|
||||
"bootstrap": "^3.4.1",
|
||||
|
@ -53,10 +36,25 @@
|
|||
"sticky-table-headers": "^0.1.24",
|
||||
"trumbowyg": "^2.18.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"fs-extra": "^0.26.3",
|
||||
"gulp": "^4.0.2",
|
||||
"gulp-changed": "^3.2.0",
|
||||
"gulp-clean-css": "^3.10.0",
|
||||
"gulp-debug": "^4.0.0",
|
||||
"gulp-load-plugins": "^1.6.0",
|
||||
"gulp-notify": "^3.2.0",
|
||||
"gulp-plumber": "^1.2.1",
|
||||
"gulp-rename": "^1.4.0",
|
||||
"gulp-uglify": "^3.0.2",
|
||||
"jsdoc": "^3.6.2",
|
||||
"node-notifier": "^5.4.0",
|
||||
"plato": "^1.5.0",
|
||||
"zip-dir": "^1.0.0"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "gulp",
|
||||
"build": "gulp build",
|
||||
"docs": "gulp docs",
|
||||
"tests": "gulp tests"
|
||||
"start": "npx gulp",
|
||||
"build": "npx gulp build",
|
||||
"docs": "npx gulp docs"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,6 +13,5 @@
|
|||
|
||||
// Bootstrap Easy!Appointments PHPUnit Tests
|
||||
|
||||
require_once __DIR__ . '/../../src/config.php';
|
||||
require_once __DIR__ . '/../../src/autoload.php';
|
||||
require_once __DIR__ . '/../../config.php';
|
||||
require_once __DIR__ . '/../../vendor/autoload.php';
|
||||
|
|
|
@ -1,58 +0,0 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* Easy!Appointments - Open Source Web Scheduler
|
||||
*
|
||||
* @package EasyAppointments
|
||||
* @author A.Tselegidis <alextselegidis@gmail.com>
|
||||
* @copyright Copyright (c) 2013 - 2018, Alex Tselegidis
|
||||
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
|
||||
* @link http://easyappointments.org
|
||||
* @since v1.4.0
|
||||
* ---------------------------------------------------------------------------- */
|
||||
|
||||
const del = require('del');
|
||||
const fs = require('fs-extra');
|
||||
const zip = require('zip-dir');
|
||||
|
||||
module.exports = (gulp, plugins) => {
|
||||
return (done) => {
|
||||
del.sync([
|
||||
'build',
|
||||
'easyappointments-0.0.0.zip'
|
||||
]);
|
||||
|
||||
fs.copySync('src', 'build');
|
||||
fs.removeSync('build/config.php');
|
||||
fs.copySync('CHANGELOG.md', 'build/CHANGELOG.md');
|
||||
fs.copySync('README.md', 'build/README.md');
|
||||
fs.copySync('LICENSE', 'build/LICENSE');
|
||||
|
||||
del.sync([
|
||||
'build/storage/uploads/*',
|
||||
'!build/storage/uploads/index.html'
|
||||
]);
|
||||
|
||||
del.sync([
|
||||
'build/storage/logs/*',
|
||||
'!build/storage/logs/index.html'
|
||||
]);
|
||||
|
||||
del.sync([
|
||||
'build/storage/sessions/*',
|
||||
'!build/storage/sessions/.htaccess',
|
||||
'!build/storage/sessions/index.html'
|
||||
]);
|
||||
|
||||
del.sync([
|
||||
'build/storage/cache/*',
|
||||
'!build/storage/cache/.htaccess',
|
||||
'!build/storage/cache/index.html'
|
||||
]);
|
||||
|
||||
zip('build', {saveTo: 'easyappointments-0.0.0.zip'}, function (err, buffer) {
|
||||
if (err)
|
||||
console.log('Zip Error', err);
|
||||
|
||||
done();
|
||||
});
|
||||
};
|
||||
};
|
|
@ -1,21 +0,0 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* Easy!Appointments - Open Source Web Scheduler
|
||||
*
|
||||
* @package EasyAppointments
|
||||
* @author A.Tselegidis <alextselegidis@gmail.com>
|
||||
* @copyright Copyright (c) 2013 - 2018, Alex Tselegidis
|
||||
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
|
||||
* @link http://easyappointments.org
|
||||
* @since v1.4.0
|
||||
* ---------------------------------------------------------------------------- */
|
||||
|
||||
const del = require('del');
|
||||
|
||||
module.exports = (gulp, plugins) => {
|
||||
return () => {
|
||||
del.sync([
|
||||
'src/assets/js/**/*.min.js',
|
||||
'src/assets/css/**/*.min.css'
|
||||
])
|
||||
};
|
||||
};
|
|
@ -1,45 +0,0 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* Easy!Appointments - Open Source Web Scheduler
|
||||
*
|
||||
* @package EasyAppointments
|
||||
* @author A.Tselegidis <alextselegidis@gmail.com>
|
||||
* @copyright Copyright (c) 2013 - 2018, Alex Tselegidis
|
||||
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
|
||||
* @link http://easyappointments.org
|
||||
* @since v1.4.0
|
||||
* ---------------------------------------------------------------------------- */
|
||||
|
||||
const del = require('del');
|
||||
|
||||
/**
|
||||
* Install and copy the required files from the "vendor" directory.
|
||||
*
|
||||
* Composer needs to be installed and configured in order for this command to
|
||||
* work properly.
|
||||
*/
|
||||
module.exports = (gulp, plugins) => {
|
||||
return () => {
|
||||
del.sync([
|
||||
'./src/vendor/**/*',
|
||||
'!./src/vendor/index.html'
|
||||
]);
|
||||
|
||||
return gulp.src([
|
||||
'vendor/**/*',
|
||||
'!vendor/**/{demo,docs,doc,fixtures,examples,test,tests,extras,language,license,LICENSE}{,/**}',
|
||||
'!vendor/**/{composer.json,composer.lock,.gitignore}',
|
||||
'!vendor/**/{*.yml,*.xml,*.md,*phpunit*,*.mdown}',
|
||||
'!vendor/bin{,/**}',
|
||||
'!vendor/codeigniter{,/**}',
|
||||
'!vendor/doctrine{,/**}',
|
||||
'!vendor/phpdocumentor{,/**}',
|
||||
'!vendor/phpspec{,/**}',
|
||||
'!vendor/phpunit{,/**}',
|
||||
'!vendor/sebastian{,/**}',
|
||||
'!vendor/symfony{,/**}',
|
||||
'!vendor/phar-io{,/**}',
|
||||
'!vendor/webmozart{,/**}'
|
||||
])
|
||||
.pipe(gulp.dest('./src/vendor/'));
|
||||
};
|
||||
};
|
|
@ -1,20 +0,0 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* Easy!Appointments - Open Source Web Scheduler
|
||||
*
|
||||
* @package EasyAppointments
|
||||
* @author A.Tselegidis <alextselegidis@gmail.com>
|
||||
* @copyright Copyright (c) 2013 - 2018, Alex Tselegidis
|
||||
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
|
||||
* @link http://easyappointments.org
|
||||
* @since v1.4.0
|
||||
* ---------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
|
||||
module.exports = (gulp, plugins) => {
|
||||
const task = require('gulp-sync')(gulp);
|
||||
|
||||
return () => {
|
||||
gulp.start(task.sync(['clean', 'scripts', 'styles', 'watch']), 'dev');
|
||||
};
|
||||
};
|
|
@ -1,47 +0,0 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* Easy!Appointments - Open Source Web Scheduler
|
||||
*
|
||||
* @package EasyAppointments
|
||||
* @author A.Tselegidis <alextselegidis@gmail.com>
|
||||
* @copyright Copyright (c) 2013 - 2018, Alex Tselegidis
|
||||
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
|
||||
* @link http://easyappointments.org
|
||||
* @since v1.4.0
|
||||
* ---------------------------------------------------------------------------- */
|
||||
|
||||
const exec = require('child_process').execSync;
|
||||
const fs = require('fs-extra');
|
||||
const path = require('path');
|
||||
|
||||
/**
|
||||
* Generate code documentation.
|
||||
*/
|
||||
module.exports = (gulp, plugins) => {
|
||||
return (done) => {
|
||||
fs.removeSync('docs/apigen/html');
|
||||
fs.mkdirSync('docs/apigen/html');
|
||||
fs.removeSync('docs/jsdoc/html');
|
||||
fs.mkdirSync('docs/jsdoc/html');
|
||||
fs.removeSync('docs/plato/html');
|
||||
fs.mkdirSync('docs/plato/html');
|
||||
|
||||
const commands = [
|
||||
'php docs/apigen/apigen.phar generate ' +
|
||||
'-s "src/application/controllers,src/application/models,src/application/libraries" ' +
|
||||
'-d "docs/apigen/html" --exclude "*external*" --tree --todo --template-theme "bootstrap"',
|
||||
|
||||
path.join('.', 'node_modules', '.bin', 'jsdoc') + ' "src/assets/js" -d "docs/jsdoc/html"',
|
||||
|
||||
path.join('.', 'node_modules', '.bin', 'plato') + ' -r -d "docs/plato/html" "src/assets/js"'
|
||||
];
|
||||
|
||||
commands.forEach(function (command) {
|
||||
exec(command, function (err, stdout, stderr) {
|
||||
console.log(stdout);
|
||||
console.log(stderr);
|
||||
});
|
||||
});
|
||||
|
||||
done();
|
||||
};
|
||||
};
|
|
@ -1,24 +0,0 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* Easy!Appointments - Open Source Web Scheduler
|
||||
*
|
||||
* @package EasyAppointments
|
||||
* @author A.Tselegidis <alextselegidis@gmail.com>
|
||||
* @copyright Copyright (c) 2013 - 2018, Alex Tselegidis
|
||||
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
|
||||
* @link http://easyappointments.org
|
||||
* @since v1.4.0
|
||||
* ---------------------------------------------------------------------------- */
|
||||
|
||||
module.exports = (gulp, plugins) => {
|
||||
return () => {
|
||||
gulp.src([
|
||||
'src/assets/js/**/*.js',
|
||||
'!src/assets/js/**/*.min.js'
|
||||
])
|
||||
.pipe(plugins.changed('src/assets/js/**/*'))
|
||||
.pipe(plugins.uglify().on('error', plugins.util.log))
|
||||
.pipe(plugins.rename({suffix: '.min'}))
|
||||
.pipe(gulp.dest('src/assets/js'));
|
||||
};
|
||||
};
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* Easy!Appointments - Open Source Web Scheduler
|
||||
*
|
||||
* @package EasyAppointments
|
||||
* @author A.Tselegidis <alextselegidis@gmail.com>
|
||||
* @copyright Copyright (c) 2013 - 2018, Alex Tselegidis
|
||||
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
|
||||
* @link http://easyappointments.org
|
||||
* @since v1.4.0
|
||||
* ---------------------------------------------------------------------------- */
|
||||
|
||||
module.exports = (gulp, plugins) => {
|
||||
return () => {
|
||||
gulp.src([
|
||||
'src/assets/css/**/*.css',
|
||||
'!src/assets/css/**/*.min.css'
|
||||
])
|
||||
.pipe(plugins.changed('src/assets/css/**/*'))
|
||||
.pipe(plugins.cleanCss())
|
||||
.pipe(plugins.rename({suffix: '.min'}))
|
||||
.pipe(gulp.dest('src/assets/css'));
|
||||
};
|
||||
};
|
|
@ -1,16 +0,0 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* Easy!Appointments - Open Source Web Scheduler
|
||||
*
|
||||
* @package EasyAppointments
|
||||
* @author A.Tselegidis <alextselegidis@gmail.com>
|
||||
* @copyright Copyright (c) 2013 - 2018, Alex Tselegidis
|
||||
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
|
||||
* @link http://easyappointments.org
|
||||
* @since v1.4.0
|
||||
* ---------------------------------------------------------------------------- */
|
||||
|
||||
module.exports = (gulp, plugins) => {
|
||||
return () => {
|
||||
plugins.util.log('Not implemented yet.');
|
||||
};
|
||||
};
|
|
@ -1,24 +0,0 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* Easy!Appointments - Open Source Web Scheduler
|
||||
*
|
||||
* @package EasyAppointments
|
||||
* @author A.Tselegidis <alextselegidis@gmail.com>
|
||||
* @copyright Copyright (c) 2013 - 2018, Alex Tselegidis
|
||||
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
|
||||
* @link http://easyappointments.org
|
||||
* @since v1.4.0
|
||||
* ---------------------------------------------------------------------------- */
|
||||
|
||||
module.exports = (gulp, plugins) => {
|
||||
return () => {
|
||||
gulp.watch([
|
||||
'src/assets/js/**/*.js',
|
||||
'!src/assets/js/**/*.min.js'
|
||||
], ['scripts']);
|
||||
|
||||
gulp.watch([
|
||||
'src/assets/css/**/*.css',
|
||||
'!src/assets/css/**/*.min.css'
|
||||
], ['styles']);
|
||||
};
|
||||
};
|
Loading…
Reference in a new issue