From 162d50a33b8c72d09bd3dc82967c36d559f8278f Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Thu, 18 May 2017 17:49:35 +0200 Subject: [PATCH] Git repo can be used as submodules Clean templates files as they are useless for usage in submodules into a project. Change-Id: I24c71b64ab2b3a958494f3f190c014227a1da576 Signed-off-by: Romain Forlot --- templates/html5/.gitignore | 8 - templates/html5/AGLbuild | 47 -- templates/html5/CMakeLists.txt | 33 -- templates/html5/LICENSE | 17 - templates/html5/README.md | 112 ---- templates/html5/app/CMakeLists.txt | 49 -- templates/html5/app/Frontend/app.js | 55 -- templates/html5/app/Frontend/etc/AppConfig.js | 65 --- templates/html5/app/Frontend/etc/routes.js | 1 - templates/html5/app/Frontend/favicon.ico | Bin 1150 -> 0 bytes .../html5/app/Frontend/images/avatars/istoobig.jpg | Bin 7204 -> 0 bytes .../html5/app/Frontend/images/avatars/istoobig.png | Bin 35678 -> 0 bytes .../app/Frontend/images/avatars/tux-admin.png | Bin 58558 -> 0 bytes .../html5/app/Frontend/images/avatars/tux-bzh.png | Bin 65172 -> 0 bytes .../app/Frontend/images/avatars/tux-visitor.png | Bin 84573 -> 0 bytes .../app/Frontend/images/logo/logo_iot_bzh.svg | 139 ----- .../app/Frontend/images/logo/logo_iot_bzhx350.png | Bin 14449 -> 0 bytes .../Frontend/images/logo/tampon-iot-bzhx450.png | Bin 44996 -> 0 bytes .../app/Frontend/images/logo/triskel_iot_bzh.png | Bin 55940 -> 0 bytes .../app/Frontend/images/logo/triskel_iot_bzh.svg | 110 ---- .../Frontend/images/logo/triskel_iot_bzhx250.png | Bin 18787 -> 0 bytes templates/html5/app/Frontend/index.html | 41 -- .../app/Frontend/pages/SampleHome/SampleHome.html | 34 -- .../app/Frontend/pages/SampleHome/SampleHome.js | 104 ---- .../app/Frontend/pages/SampleHome/SampleHome.scss | 71 --- templates/html5/app/Frontend/services/JQueryEmu.js | 79 --- templates/html5/app/Frontend/styles/README.md | 28 - .../html5/app/Frontend/styles/app/_ibz-mixins.scss | 52 -- .../html5/app/Frontend/styles/app/ibz-global.scss | 43 -- .../styles/foundation/_foundation-icons.scss | 591 ------------------- .../styles/foundation/_foundation-settings.scss | 605 -------------------- .../styles/foundation/foundation-conf.scss | 19 - .../widgets/ActionButtons/ActionButtons.scss | 40 -- .../Frontend/widgets/ActionButtons/AppliButton.js | 205 ------- .../Frontend/widgets/ActionButtons/SubmitButton.js | 52 -- .../app/Frontend/widgets/Navigation/LinkButton.js | 57 -- .../Frontend/widgets/Navigation/Navigation.scss | 26 - .../widgets/Notifications/ModalNotification.js | 85 --- .../widgets/Notifications/Notifications.scss | 63 -- .../widgets/Notifications/TokenRefreshSvc.js | 149 ----- .../widgets/RangeSliders/RangeSliderMod.js | 631 --------------------- .../Frontend/widgets/RangeSliders/Rangeslider.scss | 67 --- templates/html5/app/bower.json | 22 - templates/html5/app/etc/AppDefaults.js | 32 -- templates/html5/app/etc/_Config.js | 44 -- templates/html5/app/etc/_Trace.js | 55 -- templates/html5/app/gulpfile.js | 438 -------------- templates/html5/app/package.json | 61 -- templates/html5/etc/config.cmake | 109 ---- templates/html5/etc/export.map | 1 - templates/html5/etc/macros.cmake | 263 --------- templates/html5/packaging/wgt/config.xml.in | 11 - templates/html5/packaging/wgt/icon.png.in | Bin 6848 -> 0 bytes templates/hybrid-html5/.gitignore | 10 - templates/hybrid-html5/AGLbuild | 47 -- templates/hybrid-html5/CMakeLists.txt | 33 -- templates/hybrid-html5/README.md | 57 -- templates/hybrid-html5/app/CMakeLists.txt | 51 -- templates/hybrid-html5/app/Frontend/app.js | 55 -- .../hybrid-html5/app/Frontend/etc/AppConfig.js | 65 --- templates/hybrid-html5/app/Frontend/etc/routes.js | 1 - templates/hybrid-html5/app/Frontend/favicon.ico | Bin 1150 -> 0 bytes .../app/Frontend/images/avatars/istoobig.jpg | Bin 7204 -> 0 bytes .../app/Frontend/images/avatars/istoobig.png | Bin 35678 -> 0 bytes .../app/Frontend/images/avatars/tux-admin.png | Bin 58558 -> 0 bytes .../app/Frontend/images/avatars/tux-bzh.png | Bin 65172 -> 0 bytes .../app/Frontend/images/avatars/tux-visitor.png | Bin 84573 -> 0 bytes .../app/Frontend/images/logo/logo_iot_bzh.svg | 139 ----- .../app/Frontend/images/logo/logo_iot_bzhx350.png | Bin 14449 -> 0 bytes .../Frontend/images/logo/tampon-iot-bzhx450.png | Bin 44996 -> 0 bytes .../app/Frontend/images/logo/triskel_iot_bzh.png | Bin 55940 -> 0 bytes .../app/Frontend/images/logo/triskel_iot_bzh.svg | 110 ---- .../Frontend/images/logo/triskel_iot_bzhx250.png | Bin 18787 -> 0 bytes templates/hybrid-html5/app/Frontend/index.html | 41 -- .../app/Frontend/pages/SampleHome/SampleHome.html | 30 - .../app/Frontend/pages/SampleHome/SampleHome.js | 63 -- .../app/Frontend/pages/SampleHome/SampleHome.scss | 71 --- .../app/Frontend/services/JQueryEmu.js | 79 --- .../hybrid-html5/app/Frontend/styles/README.md | 28 - .../app/Frontend/styles/app/_ibz-mixins.scss | 52 -- .../app/Frontend/styles/app/ibz-global.scss | 43 -- .../styles/foundation/_foundation-icons.scss | 591 ------------------- .../styles/foundation/_foundation-settings.scss | 605 -------------------- .../styles/foundation/foundation-conf.scss | 19 - .../widgets/ActionButtons/ActionButtons.scss | 40 -- .../Frontend/widgets/ActionButtons/AppliButton.js | 205 ------- .../Frontend/widgets/ActionButtons/SubmitButton.js | 52 -- .../app/Frontend/widgets/Navigation/LinkButton.js | 57 -- .../Frontend/widgets/Navigation/Navigation.scss | 26 - .../widgets/Notifications/ModalNotification.js | 85 --- .../widgets/Notifications/Notifications.scss | 63 -- .../widgets/Notifications/TokenRefreshSvc.js | 149 ----- .../widgets/RangeSliders/RangeSliderMod.js | 631 --------------------- .../Frontend/widgets/RangeSliders/Rangeslider.scss | 67 --- templates/hybrid-html5/app/bower.json | 22 - templates/hybrid-html5/app/etc/AppDefaults.js | 32 -- templates/hybrid-html5/app/etc/_Config.js | 44 -- templates/hybrid-html5/app/etc/_Trace.js | 55 -- templates/hybrid-html5/app/gulpfile.js | 438 -------------- templates/hybrid-html5/app/package.json | 61 -- templates/hybrid-html5/binding/CMakeLists.txt | 76 --- templates/hybrid-html5/binding/xxx-cb.c | 29 - templates/hybrid-html5/binding/xxx-hat.c | 46 -- templates/hybrid-html5/binding/xxx-hat.h | 29 - templates/hybrid-html5/etc/config.cmake | 109 ---- templates/hybrid-html5/etc/export.map | 1 - templates/hybrid-html5/etc/macros.cmake | 263 --------- templates/hybrid-html5/packaging/wgt/config.xml.in | 11 - templates/hybrid-html5/packaging/wgt/icon.png.in | Bin 4482 -> 0 bytes templates/native/.gitignore | 3 - templates/native/AGLbuild | 47 -- templates/native/CMakeLists.txt | 33 -- templates/native/app/CMakeLists.txt | 85 --- templates/native/app/xxx-native-app.c | 242 -------- templates/native/etc/config.cmake | 109 ---- templates/native/etc/export.map | 1 - templates/native/etc/macros.cmake | 263 --------- templates/native/packaging/wgt/config.xml.in | 11 - templates/native/packaging/wgt/icon.png.in | Bin 5276 -> 0 bytes templates/service/.gitignore | 4 - templates/service/AGLbuild | 47 -- templates/service/CMakeLists.txt | 33 -- templates/service/README.md | 66 --- templates/service/binding/CMakeLists.txt | 69 --- templates/service/binding/xxx-service-cb.c | 241 -------- templates/service/binding/xxx-service-hat.c | 58 -- templates/service/binding/xxx-service-hat.h | 78 --- templates/service/etc/config.cmake | 109 ---- templates/service/etc/export.map | 1 - templates/service/etc/macros.cmake | 263 --------- templates/service/packaging/wgt/config.xml.in | 11 - templates/service/packaging/wgt/icon.png.in | Bin 13273 -> 0 bytes 132 files changed, 11269 deletions(-) delete mode 100644 templates/html5/.gitignore delete mode 100755 templates/html5/AGLbuild delete mode 100644 templates/html5/CMakeLists.txt delete mode 100644 templates/html5/LICENSE delete mode 100644 templates/html5/README.md delete mode 100644 templates/html5/app/CMakeLists.txt delete mode 100644 templates/html5/app/Frontend/app.js delete mode 100644 templates/html5/app/Frontend/etc/AppConfig.js delete mode 100644 templates/html5/app/Frontend/etc/routes.js delete mode 100644 templates/html5/app/Frontend/favicon.ico delete mode 100644 templates/html5/app/Frontend/images/avatars/istoobig.jpg delete mode 100644 templates/html5/app/Frontend/images/avatars/istoobig.png delete mode 100644 templates/html5/app/Frontend/images/avatars/tux-admin.png delete mode 100644 templates/html5/app/Frontend/images/avatars/tux-bzh.png delete mode 100644 templates/html5/app/Frontend/images/avatars/tux-visitor.png delete mode 100644 templates/html5/app/Frontend/images/logo/logo_iot_bzh.svg delete mode 100644 templates/html5/app/Frontend/images/logo/logo_iot_bzhx350.png delete mode 100644 templates/html5/app/Frontend/images/logo/tampon-iot-bzhx450.png delete mode 100644 templates/html5/app/Frontend/images/logo/triskel_iot_bzh.png delete mode 100644 templates/html5/app/Frontend/images/logo/triskel_iot_bzh.svg delete mode 100644 templates/html5/app/Frontend/images/logo/triskel_iot_bzhx250.png delete mode 100644 templates/html5/app/Frontend/index.html delete mode 100644 templates/html5/app/Frontend/pages/SampleHome/SampleHome.html delete mode 100644 templates/html5/app/Frontend/pages/SampleHome/SampleHome.js delete mode 100644 templates/html5/app/Frontend/pages/SampleHome/SampleHome.scss delete mode 100644 templates/html5/app/Frontend/services/JQueryEmu.js delete mode 100644 templates/html5/app/Frontend/styles/README.md delete mode 100644 templates/html5/app/Frontend/styles/app/_ibz-mixins.scss delete mode 100644 templates/html5/app/Frontend/styles/app/ibz-global.scss delete mode 100644 templates/html5/app/Frontend/styles/foundation/_foundation-icons.scss delete mode 100644 templates/html5/app/Frontend/styles/foundation/_foundation-settings.scss delete mode 100644 templates/html5/app/Frontend/styles/foundation/foundation-conf.scss delete mode 100644 templates/html5/app/Frontend/widgets/ActionButtons/ActionButtons.scss delete mode 100644 templates/html5/app/Frontend/widgets/ActionButtons/AppliButton.js delete mode 100644 templates/html5/app/Frontend/widgets/ActionButtons/SubmitButton.js delete mode 100644 templates/html5/app/Frontend/widgets/Navigation/LinkButton.js delete mode 100644 templates/html5/app/Frontend/widgets/Navigation/Navigation.scss delete mode 100644 templates/html5/app/Frontend/widgets/Notifications/ModalNotification.js delete mode 100644 templates/html5/app/Frontend/widgets/Notifications/Notifications.scss delete mode 100644 templates/html5/app/Frontend/widgets/Notifications/TokenRefreshSvc.js delete mode 100644 templates/html5/app/Frontend/widgets/RangeSliders/RangeSliderMod.js delete mode 100644 templates/html5/app/Frontend/widgets/RangeSliders/Rangeslider.scss delete mode 100644 templates/html5/app/bower.json delete mode 100644 templates/html5/app/etc/AppDefaults.js delete mode 100644 templates/html5/app/etc/_Config.js delete mode 100644 templates/html5/app/etc/_Trace.js delete mode 100644 templates/html5/app/gulpfile.js delete mode 100644 templates/html5/app/package.json delete mode 100644 templates/html5/etc/config.cmake delete mode 100644 templates/html5/etc/export.map delete mode 100644 templates/html5/etc/macros.cmake delete mode 100644 templates/html5/packaging/wgt/config.xml.in delete mode 100644 templates/html5/packaging/wgt/icon.png.in delete mode 100644 templates/hybrid-html5/.gitignore delete mode 100755 templates/hybrid-html5/AGLbuild delete mode 100644 templates/hybrid-html5/CMakeLists.txt delete mode 100644 templates/hybrid-html5/README.md delete mode 100644 templates/hybrid-html5/app/CMakeLists.txt delete mode 100644 templates/hybrid-html5/app/Frontend/app.js delete mode 100644 templates/hybrid-html5/app/Frontend/etc/AppConfig.js delete mode 100644 templates/hybrid-html5/app/Frontend/etc/routes.js delete mode 100644 templates/hybrid-html5/app/Frontend/favicon.ico delete mode 100644 templates/hybrid-html5/app/Frontend/images/avatars/istoobig.jpg delete mode 100644 templates/hybrid-html5/app/Frontend/images/avatars/istoobig.png delete mode 100644 templates/hybrid-html5/app/Frontend/images/avatars/tux-admin.png delete mode 100644 templates/hybrid-html5/app/Frontend/images/avatars/tux-bzh.png delete mode 100644 templates/hybrid-html5/app/Frontend/images/avatars/tux-visitor.png delete mode 100644 templates/hybrid-html5/app/Frontend/images/logo/logo_iot_bzh.svg delete mode 100644 templates/hybrid-html5/app/Frontend/images/logo/logo_iot_bzhx350.png delete mode 100644 templates/hybrid-html5/app/Frontend/images/logo/tampon-iot-bzhx450.png delete mode 100644 templates/hybrid-html5/app/Frontend/images/logo/triskel_iot_bzh.png delete mode 100644 templates/hybrid-html5/app/Frontend/images/logo/triskel_iot_bzh.svg delete mode 100644 templates/hybrid-html5/app/Frontend/images/logo/triskel_iot_bzhx250.png delete mode 100644 templates/hybrid-html5/app/Frontend/index.html delete mode 100644 templates/hybrid-html5/app/Frontend/pages/SampleHome/SampleHome.html delete mode 100644 templates/hybrid-html5/app/Frontend/pages/SampleHome/SampleHome.js delete mode 100644 templates/hybrid-html5/app/Frontend/pages/SampleHome/SampleHome.scss delete mode 100644 templates/hybrid-html5/app/Frontend/services/JQueryEmu.js delete mode 100644 templates/hybrid-html5/app/Frontend/styles/README.md delete mode 100644 templates/hybrid-html5/app/Frontend/styles/app/_ibz-mixins.scss delete mode 100644 templates/hybrid-html5/app/Frontend/styles/app/ibz-global.scss delete mode 100644 templates/hybrid-html5/app/Frontend/styles/foundation/_foundation-icons.scss delete mode 100644 templates/hybrid-html5/app/Frontend/styles/foundation/_foundation-settings.scss delete mode 100644 templates/hybrid-html5/app/Frontend/styles/foundation/foundation-conf.scss delete mode 100644 templates/hybrid-html5/app/Frontend/widgets/ActionButtons/ActionButtons.scss delete mode 100644 templates/hybrid-html5/app/Frontend/widgets/ActionButtons/AppliButton.js delete mode 100644 templates/hybrid-html5/app/Frontend/widgets/ActionButtons/SubmitButton.js delete mode 100644 templates/hybrid-html5/app/Frontend/widgets/Navigation/LinkButton.js delete mode 100644 templates/hybrid-html5/app/Frontend/widgets/Navigation/Navigation.scss delete mode 100644 templates/hybrid-html5/app/Frontend/widgets/Notifications/ModalNotification.js delete mode 100644 templates/hybrid-html5/app/Frontend/widgets/Notifications/Notifications.scss delete mode 100644 templates/hybrid-html5/app/Frontend/widgets/Notifications/TokenRefreshSvc.js delete mode 100644 templates/hybrid-html5/app/Frontend/widgets/RangeSliders/RangeSliderMod.js delete mode 100644 templates/hybrid-html5/app/Frontend/widgets/RangeSliders/Rangeslider.scss delete mode 100644 templates/hybrid-html5/app/bower.json delete mode 100644 templates/hybrid-html5/app/etc/AppDefaults.js delete mode 100644 templates/hybrid-html5/app/etc/_Config.js delete mode 100644 templates/hybrid-html5/app/etc/_Trace.js delete mode 100644 templates/hybrid-html5/app/gulpfile.js delete mode 100644 templates/hybrid-html5/app/package.json delete mode 100644 templates/hybrid-html5/binding/CMakeLists.txt delete mode 100644 templates/hybrid-html5/binding/xxx-cb.c delete mode 100644 templates/hybrid-html5/binding/xxx-hat.c delete mode 100644 templates/hybrid-html5/binding/xxx-hat.h delete mode 100644 templates/hybrid-html5/etc/config.cmake delete mode 100644 templates/hybrid-html5/etc/export.map delete mode 100644 templates/hybrid-html5/etc/macros.cmake delete mode 100644 templates/hybrid-html5/packaging/wgt/config.xml.in delete mode 100644 templates/hybrid-html5/packaging/wgt/icon.png.in delete mode 100644 templates/native/.gitignore delete mode 100755 templates/native/AGLbuild delete mode 100644 templates/native/CMakeLists.txt delete mode 100644 templates/native/app/CMakeLists.txt delete mode 100644 templates/native/app/xxx-native-app.c delete mode 100644 templates/native/etc/config.cmake delete mode 100644 templates/native/etc/export.map delete mode 100644 templates/native/etc/macros.cmake delete mode 100644 templates/native/packaging/wgt/config.xml.in delete mode 100644 templates/native/packaging/wgt/icon.png.in delete mode 100644 templates/service/.gitignore delete mode 100755 templates/service/AGLbuild delete mode 100644 templates/service/CMakeLists.txt delete mode 100644 templates/service/README.md delete mode 100644 templates/service/binding/CMakeLists.txt delete mode 100644 templates/service/binding/xxx-service-cb.c delete mode 100644 templates/service/binding/xxx-service-hat.c delete mode 100644 templates/service/binding/xxx-service-hat.h delete mode 100644 templates/service/etc/config.cmake delete mode 100644 templates/service/etc/export.map delete mode 100644 templates/service/etc/macros.cmake delete mode 100644 templates/service/packaging/wgt/config.xml.in delete mode 100644 templates/service/packaging/wgt/icon.png.in diff --git a/templates/html5/.gitignore b/templates/html5/.gitignore deleted file mode 100644 index 54d0fba..0000000 --- a/templates/html5/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -bower_components/ -node_modules/ -dist.*/ -*.DS_Store -nbproject/private/ -.noderc* -*.wgt -build diff --git a/templates/html5/AGLbuild b/templates/html5/AGLbuild deleted file mode 100755 index 5f8f595..0000000 --- a/templates/html5/AGLbuild +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/make -f -# Copyright (C) 2015, 2016 "IoT.bzh" -# Author "Romain Forlot" -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -BUILD_DIR := build -PACKAGING_DIR := packaging/wgt - -VPATH = etc:$(PACKAGING_DIR):$(PACKAGING_DIR)/etc:$(BUILD_DIR) - -.PHONY: all clean mrproper package - -all: build - -clean: - @([ -d ${BUILD_DIR} ] && make -C ${BUILD_DIR} clean) || echo Nothing to clean - -mrproper: - @rm -rf ${BUILD_DIR} - -build: ${BUILD_DIR}/Makefile - @cmake --build ${BUILD_DIR} --target all - -package: config.xml.in icon.png.in build | $(PKG_FILELIST) - @mkdir -p ${BUILD_DIR}/$@/bin - @mkdir -p ${BUILD_DIR}/$@/etc - @mkdir -p ${BUILD_DIR}/$@/lib - @mkdir -p ${BUILD_DIR}/$@/htdocs - @mkdir -p ${BUILD_DIR}/$@/data - @mkdir -p package - @cmake --build ${BUILD_DIR} --target widget - @cp ${BUILD_DIR}/*wgt package - -${BUILD_DIR}/Makefile: - @[ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR} - @[ -f ${BUILD_DIR}/Makefile ] || (cd ${BUILD_DIR} && cmake ${CMAKE_OPTS} ..) diff --git a/templates/html5/CMakeLists.txt b/templates/html5/CMakeLists.txt deleted file mode 100644 index 1ddb659..0000000 --- a/templates/html5/CMakeLists.txt +++ /dev/null @@ -1,33 +0,0 @@ -########################################################################### -# Copyright 2015, 2016, 2017 IoT.bzh -# -# author: Romain Forlot -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -########################################################################### - -CMAKE_MINIMUM_REQUIRED(VERSION 3.3) - -include(${CMAKE_CURRENT_SOURCE_DIR}/etc/config.cmake) -include(${CMAKE_CURRENT_SOURCE_DIR}/etc/macros.cmake) - -# Will add each subdirs with a CMakeLists.txt file -project_subdirs_add() - -# Populate each target with LABELS specified. -project_targets_populate() -# Build package widget once populated. -project_package_build() - -#Display CLOSING_MESSAGE specified in config.cmake file. -project_closing_msg() diff --git a/templates/html5/LICENSE b/templates/html5/LICENSE deleted file mode 100644 index 89f9ced..0000000 --- a/templates/html5/LICENSE +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ diff --git a/templates/html5/README.md b/templates/html5/README.md deleted file mode 100644 index cab879e..0000000 --- a/templates/html5/README.md +++ /dev/null @@ -1,112 +0,0 @@ -# Template HTML5 Application for Application Framework Binder - -## Setup - -Install HTML5 development toolchain on your host - -``` -$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - -$ sudo apt-get install nodejs -$ sudo npm install --global gulp - -``` - -Then install NodeJS dependencies - -``` -$ cd html5 # or the project directory -$ npm install -``` - -## Overload ./app/etc/AppDefaults.js with '.noderc.js' - -``` - var config= { - APPNAME : 'xxxxxx-html5', // AppName is use as main Angular Module name - FRONTEND: "Frontend", // HTML5 frontend [no leading ./] - BACKEND : "Backend", // NodeJS Rest API [no leading ./] - URLBASE : '/opa/', // HTML basedir when running in production [should end with a /] - APIBASE : '/api/', // Api url base dir [should end with a /] - }; - module.exports = config; -``` - -WARNING: in current development version Frontend/services/AppConfig.js is not updated automatically -you should manually assert that backend config is in sync with frontend config. - -## Development build and deployment (development phase) - -``` -$ gulp help -$ gulp build-app-dev -$ BOARDIP=1.2.3.4 # change by your board IP address -$ rsync -Pav dist.dev/ root@$BOARDIP:xxxxxx-html5-dev/ -``` - -## Test Application - -Start AppFramework Binder: - -``` -$ ssh root@$BOARDIP -# afb-daemon --port=1234 --verbose --token=123456789 --rootdir=~/xxxxxx-html5-dev -``` - -Point your browser onto: http://$BOARDIP:1234/opa?token=123456789 - -Note: - - do not forget '/opa' that should match with your config.URLBASE - - if you change --token=xxxx do not forget to update ./Frontend/pages/HomeModules.js - - Force HTML/OPA reload with F5 after each HTML5/OPA update or new pages may not be loaded. - - When reloading HTML/OPA with F5 do not forget that your initial token wont be accepted anymore. You should either: - + restart to clean existing session - + cleanup AJB_session cookie - + start an anonymous web page to get a fresh and clean environment. - -## Create application package and install on target - -Simply run: - -``` -$ gulp widget-prod -``` - -This should produce a .wgt file in the current directory. You can then install the widget file onto the target and run the application using application framework utilities: - -``` -$ scp *.wgt root@$BOARDIP:~/ -$ ssh root@$BOARDIP -# afm-util install xxxxxx-html5.wgt -# afm-util start xxxxxx-html5@0.1 -``` - -## Directory structure - /AppClient - | - |---- package.json - |---- bower.json - |---- gulpfile.js - | - |---- /Frontend - | | - | |---- index.html - | |---- app.js - | | - | |---- /styles - | | | - | | |---- _settings.scss - | | |---- app.scss - | | - | |---- /Widgets - | | | - | | |--- Widget-1 - | | |... - | | - | |-----/Pages - | |--- Home-Page - | |... - | - | - |---- (/dist.dev) - |---- (/dist.prod) - diff --git a/templates/html5/app/CMakeLists.txt b/templates/html5/app/CMakeLists.txt deleted file mode 100644 index 542fa73..0000000 --- a/templates/html5/app/CMakeLists.txt +++ /dev/null @@ -1,49 +0,0 @@ -########################################################################### -# Copyright 2015, 2016, 2017 IoT.bzh -# -# author: Romain Forlot -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -########################################################################### - -# Project target list -# -------------------- -# Add target to project dependency list. -PROJECT_TARGET_ADD(html5-app) - - # Define project Targets - add_custom_command(OUTPUT dist.prod - DEPENDS ${TARGET_NAME} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMAND [ -d app/dist.prod ] && npm install - COMMAND [ -d app/dist.prod ] && gulp widget-config-prod - COMMAND cp -r dist.prod ${CMAKE_CURRENT_BINARY_DIR}) - - add_custom_target(${TARGET_NAME} ALL DEPENDS dist.prod) - - # Targets properties - # ------------------ - # Target properties will be used to build package tree that will be - # built using project_package_build. - # OUTPUT_NAME: Depends what is the name of your output file, it is - # mandatory to specify which is its name with target the property - # OUTPUT_NAME for your target. If file name is same of your target then - # use variable ${TARGET_NAME}. - # LABELS: Choose between "BINDING", "HTDOCS", "EXECUTABLE" depending of - # the type of your target. - # PREFIX: This prefix will be added on the output file name specify with - # OUTPUT_NAME. By default, there isn't PREFIX on target except on - # library target with is "lib". - SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES - LABELS "HTDOCS" - OUTPUT_NAME dist.prod) diff --git a/templates/html5/app/Frontend/app.js b/templates/html5/app/Frontend/app.js deleted file mode 100644 index 976959b..0000000 --- a/templates/html5/app/Frontend/app.js +++ /dev/null @@ -1,55 +0,0 @@ -(function() { - 'use strict'; - - function ParseQueryString () { - var qd = {}; - location.search.substr(1).split("&").forEach(function(item) { - var k = item.split("=")[0]; - var v = decodeURIComponent(item.split("=")[1]); - if (k in qd) qd[k].push(v); else qd[k] = [v]; - }); - return qd; - } - - angular.module('@@APPNAME@@', [ // Warning: Appname should fit with gulpfile.js & index.html - 'ui.router', - 'ngAnimate', - - //foundation - 'foundation', - 'foundation.dynamicRouting', - 'foundation.dynamicRouting.animations', - - // external components - 'ui-notification', - - // Application Components - 'AppConfig', - 'JQueryEmu', - 'SampleHomeModule', - 'LinkButton', - 'TokenRefresh', - 'RangeSlider', - 'ModalNotification' - ]) - .value ('urlquery', ParseQueryString()) - .config(config) - .run(run) - ; - - config.$inject = ['$urlRouterProvider', '$locationProvider']; - - function config($urlProvider, $locationProvider, AppConfig) { - $urlProvider.otherwise('/sample-home'); - - // https://docs.angularjs.org/error/$location/nobase - $locationProvider.html5Mode(true).hashPrefix('!'); - - } - - function run() { - FastClick.attach(document.body); - } - -console.log ("opa=@@APPNAME@@ Loaded"); -})(); diff --git a/templates/html5/app/Frontend/etc/AppConfig.js b/templates/html5/app/Frontend/etc/AppConfig.js deleted file mode 100644 index 382c0a3..0000000 --- a/templates/html5/app/Frontend/etc/AppConfig.js +++ /dev/null @@ -1,65 +0,0 @@ -(function () { - 'use strict'; - - // _all modules only reference dependencies - angular.module('AppConfig', []) - - // Factory is a singleton and share its context within all instances. - .factory('AppConfig', function (urlquery) { - - var myConfig = { - paths: { // Warning paths should end with / - image : 'images/', - avatar: 'images/avatars/' - }, - - session: { // Those data are updated by session service - initial : urlquery.token || '123456789', // typical dev initial token - timeout : 3600, // timeout is updated client sessin context creation - pingrate: 30, // Ping rate to check if server is still alive - uuid : '', // uuid map with cookie or long term session access key - token : '' // will be returned from authentication - } - }; - - return myConfig; - }) - - // Factory is a singleton and share its context within all instances. - .factory('AppCall', function ($http, AppConfig, $log) { - - var myCalls = { - get : function(plugin, action, query, cbresponse, cberror) { - - var onerror = function(response) { - if (cberror) cberror(response.data, response.status, response.config); - else cbresponse(response.data, response.status, response.config); - }; - - var onsuccess =function(response) { - if (!response.data || !response.data.request) { - onerror (response); - return; - } - - var request=response.data.request; - - // if token was updated keep it within application cache - if (request.token) AppConfig.session.token = request.token; - if (request.uuid) AppConfig.session.uuid = request.uuid; - if (request.timeout) AppConfig.session.timeout = request.timeout; - - cbresponse(response.data, response.status, response.config); - }; - - - if (!query.token) query.token = AppConfig.session.token; // add token to provided query - if (!query.reqid) query.reqid = action; // use action as default requestID - var handle= $http.get('/api/' + plugin + '/' + action , {params: query}).then(onsuccess, onerror); - - } - }; - return myCalls; - }); - -})(); \ No newline at end of file diff --git a/templates/html5/app/Frontend/etc/routes.js b/templates/html5/app/Frontend/etc/routes.js deleted file mode 100644 index 0df3030..0000000 --- a/templates/html5/app/Frontend/etc/routes.js +++ /dev/null @@ -1 +0,0 @@ -var foundationRoutes = [{"name":"SampleHome","url":"/sample-home","controller":"SampleHomeController as ctrl","animationIn":"slideInRight","path":"pages/SampleHome/SampleHome.html"}]; diff --git a/templates/html5/app/Frontend/favicon.ico b/templates/html5/app/Frontend/favicon.ico deleted file mode 100644 index eeb7ab7a0612f56c8f115cb25eaf2b39c89ca690..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmb_bOH30{6n#TW6{x0GD3wAfpJ}Hvg9cpim5&HfkQNH1En9!f zd^95EBjCcAm}rb~DGR|JCbGeW2#dy*L=z3f0`=U22BYk}lQZ|d^WM4dzB_jq&6{yAfAdxNQiAArmJ~fK7kH==*xFb|fb_kPZ%;sao-ti+os?+WuNE@YSzC{%L?>ILs^v6(jk<; zyOLOR6q*I_{?sjo)8PtLEcOS_T(A2zM*hWgHtPEkTxD&{?vr#MKzx5<5$wRS!}N$G6K}6WPkMaDz*AXzJ*lBdsgS{eX-g%AbEaZB^`(c z!q>0~{x5?z$U*O*7+%Tk%hH(2KxP7|KoUUz-d5nB23?THf3h9pdf)}V^%L}SN2jIY zFnU-%5NQn!1Q-iqnX%<1#%A*w8*6541Qq&%KW(vqu_fGg#SV{dU%HKPJT!U08^(SD DsKEJf diff --git a/templates/html5/app/Frontend/images/avatars/istoobig.jpg b/templates/html5/app/Frontend/images/avatars/istoobig.jpg deleted file mode 100644 index da0f255a923b36eb143693f2db09b6385afd3487..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7204 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 diff --git a/templates/html5/app/Frontend/images/avatars/istoobig.png b/templates/html5/app/Frontend/images/avatars/istoobig.png deleted file mode 100644 index 5614073fba471f30120f612df9b38b25b1648696..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35678 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 z 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�7_$xkT_mmT$z4Hx_? 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

M#c*UF0M{r&wvC`6oc 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 oA?KYy_%#2!z=`|c-47Bdf+^XF1h($ diff --git a/templates/html5/app/Frontend/images/avatars/tux-visitor.png b/templates/html5/app/Frontend/images/avatars/tux-visitor.png deleted file mode 100644 index bd491b04e4760324a8d2cbd1a489e6f0409b4d56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84573 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

F>gQpgvBKsbVpbL+x0w0((n8630MN zk+BguP7j8;y&Aq~Q6x1irK~LEB(PFCsIT+x{sib{$g_{+nNlm|0P*6BZ%XD&2$~yiBhX`cYLT2zMF))1?;`5wq~}| zuH7ZlD+zzA>-vRuK6u->5JY@9rg`CI=JQiR^$6iKV=XzH3j~+RAcc2DvWSU7jJf_2 zis<7IZA;p2VFYiV(ipXM@Ni=fSVqm^c{S4PGJLge>y(c9=%XAWsAN zM#iyD{=NOpX5=O#=|H-F3r!yXZo*}DL{(ggDbE9o-8%+^mE@L zuhFU&5zS#{?GC|k0Cb5HMx0EV>lYbtr3pD?Awv^2`AlgQ!HtBOeFmg{I5>-ntVP87 ztnsf3P4<7!i#YjwPD&0)nnf#j3D%oCJU+X@N!zpI0gV@0w_?pc!zv&*@4Y(bqKIsE zfydqM{6jDHwu$|fSo*&9@!c5X{n&9Ht?kz9mHpbU|AU`MgzhKyK>y9({7w6#Kl&q5 zN?nX`6=PIYjjFmcv$dw(xxzX{|9ap1JF#VH*49pT-uX(Z{%5#x=R@4=G2tj%>1dY~ zQ`lW2)sH4CpZluXMv1VqiS2O)$ylSS&{;o5U$v61r-9@kxTqI|C)}m`>|Rt^BqW_N>`L?o=JT!)igPOT$EQ3xgSCP4D2D+#!ml}}R) zCBl1xSeCOI=Kh3n-aXh-nZ}|JG|(*c0OTnhM)qM3e@YP^SZ!svIezb)L*ik?H>S~l zFC>}Me#1g4SCr-hZm_1-RERNo9Z!qXYwq=V%&JV-mB=VTx%k;YiG=_ zZwYmuEr87vdt+JoF?`9yaBhsbE>1u$WBNOc&)h_iLI%pImMAxz($l4tNj*O9D<5?2 z54-NMaIr6s=y|y#M|8Izp{bD4pusK$)JiOoKNYhG4EnyOPcb{J3gAMSMTacY+#b`X zCEKPX{eI2SP&G3|=m>ZJ2O96}y6 zxy%tL2V(L*JKI?yNl9*yUbaTOU+OSatazDIxb)K+JRL;zJxzGnHAwsKhpoB;pzou% zmn_|#L`GeHs#LoEMKZeZwPjjDS>B)ZWXle?%|$Q0c{xFYsSR3k+tCYkKB7sjAK zG(o88HPChyeFxj!lD?bKb`5+rmZV%i+ZG3%)>;&^fSJ;o5ed{dwiL90!)Y2pDy^eI&ymq_S;{&KQ?bGeT z{Ii2fD~)6s8~O74uAzDk)`OYU>#mTl#wMQFxXn0jx1~&H^?2|BlbSYqwn^z!czEv) z_aENoqx-jbeAb}a;p!GuNU^qx*32xaY8PYNq?8_~ls;0`cg^evU2NYvJ6ru|({=Z( z?a$g>Y_XXB(I0Prs-o~eRiFd>?(hDt{@(BX-q46o;z9?uGqrPE|HQfOakTig-uOz} z^IY3D*X?mLPkJqEPM>qPZv?q<)UlQgvrW=l8qn1H*GN-aeR7 z4?7*nCjYj>&zw$A{!je@4RqjA4DP3CB2GEf+z0nr#SzTKVzF304TgOC8aBmD4OPvl zJQzNNBKM=9j$Vzf7dG3(c4x%4qU}6wC*xGXRB=9HuBTVVC6{5o?_6E73Z<(YT{KcO zyapN{XljS^ZE;1k$yVKd@g_e9Hvznok{ju!*{&)(#*V40XVPIW;8Po!Hv9KrACXhk z!|~csn-7P9i{pJ|&~iYS+1qTT5!}PjU&}t_u)u;JcK-L7K-#6uxAz`#MoY&!8c$kd z-9;XJ_yP}4YVJJ>w4G;G_f#PnmA52bx7%%0)on`Ytnd5#ec!(yWBg%^@hvm^VQ>1u zcH2JMb$T9K?P*E>>%Z9k)J5UHFo&o=_=7(XGjqGGg_P1frF7lQUQpGqnAz7-N?%JU zz3%1gWsT_;8kbeQYmSds;l|BJZh7;OG>etothUeOqDRj`P5hLDXsn*Ooo2chj@Z}6 zu0$zEvgI?(zs^Dc010wQL_t*lzKVP5XNM{@`s|-uRZf2+C5SzvkwlJ;J*I(}8oIt_ z*Ui|qfvyY0u#==cU-&CFMGGYJ}##2B@$-S%8n zANPI#ao2S}+U<7lv~BytuIt`QDcuYG`Dxp3x9iPWT%DijpZtqAzYyn#FWd_5zy7bj zZGlcD8)~uUQt%3_%7bIj-}cq< zLUl%$>QZ}qdUpG!p-lDQ^lxUIQpbm*eh%~;VlDysLLvd*J+5TB1;e2_m zOILgV`T+Jp`@w}zP*4d^i!n?=*-z|^E;i=?ygm)?{q~)pE?sH>G2VW%8aySn4F8wJ zy;Id-W-~LpW@fil^<`MRuBxwV z>R+>@FH6+tETtQ%*F{RH>AVKOSz&*enH+%4$$_fr;ZlVjG=nY$>bTTWy5|$Uvdm%T z6ND+!mFgh_k>^^T(vFPKBcq2@5DFtX0FIZstRm}CuUG$GhGEvrws z0A_`mRx%^&aoSS3L?F@ao*PXY2M+t-B`;-UHG;_YB$~0z_VcHsq}fwi0ar!zwvr2q zF^6BBhD)=B5zs-O0{Zmdj>7|DLT1Sa1yy0c$Gww`JHorAIjNB5eH9V)-p9&^HiWS8 z;-0AL16BQ~Pw_o7`*Do%y%^(1UDrMAy6!B-xJxNTji&$EfBv6-;r>lunz`%$_)q?^ zq?Dupwl=f5nOzro@s3*e654)6Eq=wKdsX}9rL?Q>#Li#u=N})LSp!sN=FQBR?O81* z9B7qa1o~yHwF6-R76$40iD8pUvKNHeuSy*oT+`Wx6|l z@j1Hc6T}fOqYzKkP@6EhKf4gw!C7_X8ffkdJR9iVHP0+9oIA>@Dbl0XVP@uCWlb~J zs;X1huX^XC4PMr@52uy4haR~r=m%!{UX<#6Gy6ED^f0A#8e`nX7`rltw%_@k-}zEZ z)W19z=koFGKlx)RQQ50%9rez_Y}8A93;2)kkQHo}<#4FY zY>e`XNlIxrL=LvX2H}Ngrru)*zX&)=WGYDMQ}b+~(?1jF?Jivja)6zm08|g{hD3zm zDwLE7G}e)b+48yM$+LL#%KCr5q;mC#vks{O1W$6Afrn)pY;YCoS9@-D>9UV9TzK51 zai%=2t!`Dkr0YHbQmmd?qx*>p&%Q>V3RCzi)ADJD|H>NO&z=c%kt1_n4T+}KYD%3V z8mp@6s;b&<+Z$`=coMvO6ok9M=|>*>P_Pe0?4E_iL*UfRHicN0QcCvCZ+_FhOx%6x zKp#H-@{NBbDJ7?N!zbI+=w@NEJr=QBBJ#Xxcv028=z4k4%w7O)o7qh>J1*)r4N$9U zP*p$476!nJ?!^Y=S#>&3?KV$R%gKd!X~fj@3EO_pem{4izM_fe4%Sg2jw$56;bsL0 zhZ}i&O*?nsG;`_LMIz=i)6GOlWog4%z~iw&FHS;vEHY_&`rJL7%&Tp(O_w|2+bdJ+ z%wT&q(5p0!^!8LkP6$td``~_zOAmrQVMh=Vo3QhS?@dHhQ)S+}-5V z3q1AhTN=c4*!3mY#<`^QL{h$q$y>4w+Hau!NG7)=R@(Tdj`;5 zMY2egJ}bT=IQ2;KnZMwhgKev!KF?{b8yEVufF@he%g8@+s!svS6+F={<^UC*9!FEjQdO70TtwzTQ&Rk@^nF9A?|lKgv(d~;_sy_TB5E+_ zbI@#`nY#P2Ykzr-Tvd*XCB^hUW(S$Yq_I`lU1@Tmx^k#!+|TUQhg=;GTVx~13pqzN z&wTB@TqkNrZ#%^GRL&Eq$r1t%4PDW4cjG*Mzd0v((=lZq)UcU+U+erCjmm6NG5z<& z)Hymg5sWw-v*p7kJhKPl4^#UA;Da=B!fV+NB$74QI-o5KwoM4(+|153xl?dYMEqkB zdE^`qMda~J(~0-hDNa_&Y#Y%wsz&iHd0%NG!ks&J?5`VReMPg-d|LS)k`nr z1GC3x{QR=|@v4tcy8lnQ&FA^}w70)3nqKzvs~+#?{rP2e`9a1K4h{k<(KU)l96;@y z+lt8A%+{*9GP5(_)H!!%W~XG=(o^7xh@6VZsdH{sZnMo1U;2^-C}2lNNA@=fSAXMx zK76cJt3k|Suxa*1pRS$&f8m@v5|Jfvt$_WunLS_9{5#IMTfmJ1{6!h>RR!$(?)?=Y zywb|)Q~vH{Kz~+EdJ$xwbo;+4K)(uXS3TBe9R{D}=U3h4qJV`AO^polp6pey5s{UM zJQ0x-Gkc(_56tX=h&&RJCuHU0bF$p|Mnnc+cOuf8SrQQ~pUh@6` - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - IOT - - BZH - - - - diff --git a/templates/html5/app/Frontend/images/logo/logo_iot_bzhx350.png b/templates/html5/app/Frontend/images/logo/logo_iot_bzhx350.png deleted file mode 100644 index 2c3b2aef11e9b4fe5fd7f22340fab71ff6fa86e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14449 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 diff --git a/templates/html5/app/Frontend/images/logo/tampon-iot-bzhx450.png b/templates/html5/app/Frontend/images/logo/tampon-iot-bzhx450.png deleted file mode 100644 index f365e192612f95359de5d63f87948da554515db6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44996 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 diff --git a/templates/html5/app/Frontend/images/logo/triskel_iot_bzh.png b/templates/html5/app/Frontend/images/logo/triskel_iot_bzh.png deleted file mode 100644 index 832dc1f7eb85c419eaf354aa36d7fe476391d8e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55940 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 - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/templates/html5/app/Frontend/images/logo/triskel_iot_bzhx250.png b/templates/html5/app/Frontend/images/logo/triskel_iot_bzhx250.png deleted file mode 100644 index f4e41aecb824458648c2a19e53b8e3fa65cc8ac5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18787 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 - - - - - - - - Simple Sample Application - - - - - - - - - - - - - - - -

- - - - - - - - - - \ No newline at end of file diff --git a/templates/html5/app/Frontend/pages/SampleHome/SampleHome.html b/templates/html5/app/Frontend/pages/SampleHome/SampleHome.html deleted file mode 100644 index 9c13ea9..0000000 --- a/templates/html5/app/Frontend/pages/SampleHome/SampleHome.html +++ /dev/null @@ -1,34 +0,0 @@ - ---- -name: SampleHome -url: /sample-home -controller: SampleHomeController as ctrl -animationIn: slideInRight ---- - -

- - App Framework - HTML5 Client -

- - - - -
- - - - - - -
-
-
- req= {{ctrl.request}} - res= {{ctrl.response}} - status= {{ctrl.errcode}} -
-
- - - diff --git a/templates/html5/app/Frontend/pages/SampleHome/SampleHome.js b/templates/html5/app/Frontend/pages/SampleHome/SampleHome.js deleted file mode 100644 index 1e404b8..0000000 --- a/templates/html5/app/Frontend/pages/SampleHome/SampleHome.js +++ /dev/null @@ -1,104 +0,0 @@ -(function() { -'use strict'; - -// WARNING: make sure than app/frontend/services/AppConfig.js match your server - -// list all rependencies within the page + controler if needed -angular.module('SampleHomeModule', ['SubmitButton', 'TokenRefresh','ModalNotification']) - - .controller('SampleHomeController', function (AppCall, Notification) { - var scope = this; // I hate JavaScript - scope.uuid ="none"; - scope.token ="none"; - scope.session="none"; - scope.status ="err-no"; - - console.log ("Home Controller"); - - scope.OnResponse= function(jresp, errcode) { - - // Update UI response global display zone - scope.status = jresp.request.status; - scope.errcode = errcode; - scope.request = jresp.request; - scope.response = jresp.response; - - var action=jresp.request.reqid.toUpperCase(); - - switch (action) { - case 'CONNECT': - if (jresp.request.status !== "success") { - Notification.error ({message: action + ": Logout before reconnecting", delay: 5000}); - scope.class [jresp.request.reqid]="fail"; - return; - } - scope.class={}; // reset CSS buttons classes - break; - - case 'LOGOUT': - if (jresp.request.status !== "success") { - Notification.error ({message: action + ": Do connect first", delay: 5000}); - scope.class [jresp.request.reqid]="fail"; - return; - } - scope.class={}; // reset CSS buttons classes - break; - - case 'REFRESH': - case 'CHECK': - if (jresp.request.status !== "success") { - Notification.error ({message: action + ": Need to be Connected to check/refresh session", delay: 5000}); - scope.class [jresp.request.reqid]="fail"; - return; - } - - break; - - default: - Notification.error ({message: "Invalid RequestID:" + jresp.request.reqid , delay: 5000}); - return; - } - - // update button classes within home.html - scope.class [jresp.request.reqid]="success"; - console.log ("OK: "+ JSON.stringify(jresp)); - }; - - scope.ProcessError= function(response, errcode, config) { - Notification.error ({message: "Invalid API:" + response.request.reqid , delay: 5000}); - scope.status = "err-fx"; - scope.errcode = errcode; - scope.request = response.request; - scope.response = ""; - console.log ("FX: "+ JSON.stringify(response)); - }; - - scope.ConnectClient = function() { - console.log ("ConnectClient"); - AppCall.get ("auth", "connect", {/*query*/}, scope.OnResponse, scope.InvalidApiCall); - }; - - scope.CheckSession = function() { - console.log ("CheckSession"); - AppCall.get ("auth", "check", {/*query*/}, scope.OnResponse, scope.InvalidApiCall); - - }; - - scope.RefreshSession = function() { - console.log ("RefreshSession"); - AppCall.get ("auth", "refresh", {/*query*/}, scope.OnResponse, scope.InvalidApiCall); - }; - - scope.LogoutClient = function() { - console.log ("LogoutClient"); - AppCall.get ("auth", "logout", {/*query*/}, scope.OnResponse, scope.InvalidApiCall); - }; - - scope.Initialised = function () { - scope.class = {connect: "success"}; - }; - - }); - -console.log ("SampleControler Loaded"); -})(); diff --git a/templates/html5/app/Frontend/pages/SampleHome/SampleHome.scss b/templates/html5/app/Frontend/pages/SampleHome/SampleHome.scss deleted file mode 100644 index 8bf04a1..0000000 --- a/templates/html5/app/Frontend/pages/SampleHome/SampleHome.scss +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -@import "app/ibz-mixins"; - -$COLOR_SUCCESS: green; -$COLOR_FAIL: red; - -token-refresh { - display: block; - float: right; - margin: .5rem 1rem 0 0; -} - -.button-box { - height : 4.5rem; - - .session-button { - float: left; - width: 5rem; - }; - - .response > span{ - display: block; - margin: .3rem .5rem .3rem .5rem; - } - - .fail { - color:$COLOR_FAIL; - border: 1px solid darken($COLOR_FAIL,10%); - } - .success { - color:$COLOR_SUCCESS; - border: 1px solid darken($COLOR_SUCCESS,10%); - } - -}; - -.message-box { - height : auto; - width: 100%; - font-size: .75rem; - - .response { - .err-no { color:grey; } - .res.err-ok { color: blue; } - .req.err-ok { color:blueviolet; } - .status.err-ok { color:green; } - .status.err-fx { color:red; } - } - - -}; - - - diff --git a/templates/html5/app/Frontend/services/JQueryEmu.js b/templates/html5/app/Frontend/services/JQueryEmu.js deleted file mode 100644 index 6d6e338..0000000 --- a/templates/html5/app/Frontend/services/JQueryEmu.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * Usage: - * - * // mouse event probably point on icon and not on button div - * ... ng-click="LockChannel($event) - var target= angular.element(event.currentTarget); - var button= JQemu.FindInParent (target, 'div'); - * - */ - - -(function () { - 'use strict'; - - - - // _all modules only reference dependencies - angular.module('JQueryEmu', []) - - // Factory is a singleton and share its context within all instances. - .factory('JQemu', function () { - - var FindInParent = function (element, selector) { - var parent = element; - var search = selector.toUpperCase(); - while (parent[0]) { - if (search === parent[0].tagName) { - return parent; - } // HTMLDivElement properties - parent = parent.parent(); - } - }; - - var FindByTag= function (element, tag, selector) { - var search = selector.toLowerCase(); - var type = tag.toLowerCase()+ "Name"; - var children = element.children(); - while (children[0]) { - if (search === children[0][type]) { - return children; - } // HTMLDivElement properties - children = children.next(); - } - }; - - var FindByClass= function (element, selector) { - var search = selector.toLowerCase(); - var children = element.children(); - while (children[0]) { - if (children.hasClass(search)) { - return children; - } // HTMLDivElement properties - children = children.next(); - } - }; - - var myMethods = { - FindInParent: FindInParent, - FindByTag: FindByTag, - FindByClass: FindByClass - }; - - return myMethods; - }); - -})(); \ No newline at end of file diff --git a/templates/html5/app/Frontend/styles/README.md b/templates/html5/app/Frontend/styles/README.md deleted file mode 100644 index dc50ced..0000000 --- a/templates/html5/app/Frontend/styles/README.md +++ /dev/null @@ -1,28 +0,0 @@ -WARNING note about global style dir -------------------------------------- - - - styles placed in Frontend/styles is global and will be posted in dist.prod/styles - - styles defined within widget or page directory will be place in dist.prof/opa/styles - -This model allows to share global styles by multiple applications. - -To change this behaviour just rename styles directory on something else [eg: appstyles] - - - |---- /Frontend - | | - | |---- /styles - | | | - | | |---- _settings.scss - | | |---- app.scss - | | - | |---- /Widgets - | | | - | | |--- widget.js - | | |--- widget.sccs - | | - | |-----/Pages - | |--- page-partial.html - | |--- page-cntrl.js - | |--- page-style.scss - | diff --git a/templates/html5/app/Frontend/styles/app/_ibz-mixins.scss b/templates/html5/app/Frontend/styles/app/_ibz-mixins.scss deleted file mode 100644 index b2fb2ec..0000000 --- a/templates/html5/app/Frontend/styles/app/_ibz-mixins.scss +++ /dev/null @@ -1,52 +0,0 @@ -/* - Every SCSS files will be injected into main HTML page -*/ -shadow-transition { - transition: border 0.2s linear 0s, box-shadow 0.2s linear 0s; - border-radius: 5px; -} - -@mixin ibz-box-content { - border: 2px solid gainsboro !important; - border-radius: 5px; - - margin-left: auto; - margin-right: auto; - min-width: 98% !important; - margin: .5rem .5rem .5rem .5rem; - background: rgba(200,205,200,.3); -} - -@mixin ibz-button ($color, $size:2rem) { - display: inline-block; - border: 1px solid darken($color,10%); - box-shadow: 2px 2px 1px adjust-hue($color,20deg); - color: $color; - border-radius: 5px; - font-style: italic; - padding: 0rem .5rem 0rem .5rem; - margin:.5rem; - background: lighten(#9494b7, 20%); - i { - padding-right: 0.3rem; - font-size: $size; - } - span {font-size: 1rem} - - &:hover { - background: lighten($color, 45%); - border: 2px solid darken($color,20%); - - } -} - -@mixin ibz-input-alert ($color, $background) { - position :fixed; - margin: -2.2rem 0 0 15rem; - border-radius: 5px; - font-style: italic; - border-color: darken($background,10%); - color: $color; - background-color: $background !important; - padding: 0.2rem !important; -} diff --git a/templates/html5/app/Frontend/styles/app/ibz-global.scss b/templates/html5/app/Frontend/styles/app/ibz-global.scss deleted file mode 100644 index 1f5017e..0000000 --- a/templates/html5/app/Frontend/styles/app/ibz-global.scss +++ /dev/null @@ -1,43 +0,0 @@ -/* -Copyright (C) 2015 "IoT.bzh" -Author "Fulup Ar Foll" - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -@import "app/ibz-mixins"; - -submit-button { - float: right; - @include ibz-button(grey); -} - -zf-modal { - background-color: rgba(180,180,180,.5); -} - -.box-content { - @include ibz-box-content; - - .box-title { - display: block; - font-size: 1.3rem; - } -} - -// Change Notifications default size -.ui-notification { - width: auto; - border-radius: 5px; -} \ No newline at end of file diff --git a/templates/html5/app/Frontend/styles/foundation/_foundation-icons.scss b/templates/html5/app/Frontend/styles/foundation/_foundation-icons.scss deleted file mode 100644 index d401f3c..0000000 --- a/templates/html5/app/Frontend/styles/foundation/_foundation-icons.scss +++ /dev/null @@ -1,591 +0,0 @@ -/* - * Foundation Icons v 3.0 - * Made by ZURB 2013 http://zurb.com/playground/foundation-icon-fonts-3 - * MIT License - */ - -@font-face { - font-family: "foundation-icons"; - src: url("/bower_components/foundation-icons.woff") format("woff"); - font-weight: normal; - font-style: normal; -} - - -.fi-address-book:before, -.fi-alert:before, -.fi-align-center:before, -.fi-align-justify:before, -.fi-align-left:before, -.fi-align-right:before, -.fi-anchor:before, -.fi-annotate:before, -.fi-archive:before, -.fi-arrow-down:before, -.fi-arrow-left:before, -.fi-arrow-right:before, -.fi-arrow-up:before, -.fi-arrows-compress:before, -.fi-arrows-expand:before, -.fi-arrows-in:before, -.fi-arrows-out:before, -.fi-asl:before, -.fi-asterisk:before, -.fi-at-sign:before, -.fi-background-color:before, -.fi-battery-empty:before, -.fi-battery-full:before, -.fi-battery-half:before, -.fi-bitcoin-circle:before, -.fi-bitcoin:before, -.fi-blind:before, -.fi-bluetooth:before, -.fi-bold:before, -.fi-book-bookmark:before, -.fi-book:before, -.fi-bookmark:before, -.fi-braille:before, -.fi-burst-new:before, -.fi-burst-sale:before, -.fi-burst:before, -.fi-calendar:before, -.fi-camera:before, -.fi-check:before, -.fi-checkbox:before, -.fi-clipboard-notes:before, -.fi-clipboard-pencil:before, -.fi-clipboard:before, -.fi-clock:before, -.fi-closed-caption:before, -.fi-cloud:before, -.fi-comment-minus:before, -.fi-comment-quotes:before, -.fi-comment-video:before, -.fi-comment:before, -.fi-comments:before, -.fi-compass:before, -.fi-contrast:before, -.fi-credit-card:before, -.fi-crop:before, -.fi-crown:before, -.fi-css3:before, -.fi-database:before, -.fi-die-five:before, -.fi-die-four:before, -.fi-die-one:before, -.fi-die-six:before, -.fi-die-three:before, -.fi-die-two:before, -.fi-dislike:before, -.fi-dollar-bill:before, -.fi-dollar:before, -.fi-download:before, -.fi-eject:before, -.fi-elevator:before, -.fi-euro:before, -.fi-eye:before, -.fi-fast-forward:before, -.fi-female-symbol:before, -.fi-female:before, -.fi-filter:before, -.fi-first-aid:before, -.fi-flag:before, -.fi-folder-add:before, -.fi-folder-lock:before, -.fi-folder:before, -.fi-foot:before, -.fi-foundation:before, -.fi-graph-bar:before, -.fi-graph-horizontal:before, -.fi-graph-pie:before, -.fi-graph-trend:before, -.fi-guide-dog:before, -.fi-hearing-aid:before, -.fi-heart:before, -.fi-home:before, -.fi-html5:before, -.fi-indent-less:before, -.fi-indent-more:before, -.fi-info:before, -.fi-italic:before, -.fi-key:before, -.fi-laptop:before, -.fi-layout:before, -.fi-lightbulb:before, -.fi-like:before, -.fi-link:before, -.fi-list-bullet:before, -.fi-list-number:before, -.fi-list-thumbnails:before, -.fi-list:before, -.fi-lock:before, -.fi-loop:before, -.fi-magnifying-glass:before, -.fi-mail:before, -.fi-male-female:before, -.fi-male-symbol:before, -.fi-male:before, -.fi-map:before, -.fi-marker:before, -.fi-megaphone:before, -.fi-microphone:before, -.fi-minus-circle:before, -.fi-minus:before, -.fi-mobile-signal:before, -.fi-mobile:before, -.fi-monitor:before, -.fi-mountains:before, -.fi-music:before, -.fi-next:before, -.fi-no-dogs:before, -.fi-no-smoking:before, -.fi-page-add:before, -.fi-page-copy:before, -.fi-page-csv:before, -.fi-page-delete:before, -.fi-page-doc:before, -.fi-page-edit:before, -.fi-page-export-csv:before, -.fi-page-export-doc:before, -.fi-page-export-pdf:before, -.fi-page-export:before, -.fi-page-filled:before, -.fi-page-multiple:before, -.fi-page-pdf:before, -.fi-page-remove:before, -.fi-page-search:before, -.fi-page:before, -.fi-paint-bucket:before, -.fi-paperclip:before, -.fi-pause:before, -.fi-paw:before, -.fi-paypal:before, -.fi-pencil:before, -.fi-photo:before, -.fi-play-circle:before, -.fi-play-video:before, -.fi-play:before, -.fi-plus:before, -.fi-pound:before, -.fi-power:before, -.fi-previous:before, -.fi-price-tag:before, -.fi-pricetag-multiple:before, -.fi-print:before, -.fi-prohibited:before, -.fi-projection-screen:before, -.fi-puzzle:before, -.fi-quote:before, -.fi-record:before, -.fi-refresh:before, -.fi-results-demographics:before, -.fi-results:before, -.fi-rewind-ten:before, -.fi-rewind:before, -.fi-rss:before, -.fi-safety-cone:before, -.fi-save:before, -.fi-share:before, -.fi-sheriff-badge:before, -.fi-shield:before, -.fi-shopping-bag:before, -.fi-shopping-cart:before, -.fi-shuffle:before, -.fi-skull:before, -.fi-social-500px:before, -.fi-social-adobe:before, -.fi-social-amazon:before, -.fi-social-android:before, -.fi-social-apple:before, -.fi-social-behance:before, -.fi-social-bing:before, -.fi-social-blogger:before, -.fi-social-delicious:before, -.fi-social-designer-news:before, -.fi-social-deviant-art:before, -.fi-social-digg:before, -.fi-social-dribbble:before, -.fi-social-drive:before, -.fi-social-dropbox:before, -.fi-social-evernote:before, -.fi-social-facebook:before, -.fi-social-flickr:before, -.fi-social-forrst:before, -.fi-social-foursquare:before, -.fi-social-game-center:before, -.fi-social-github:before, -.fi-social-google-plus:before, -.fi-social-hacker-news:before, -.fi-social-hi5:before, -.fi-social-instagram:before, -.fi-social-joomla:before, -.fi-social-lastfm:before, -.fi-social-linkedin:before, -.fi-social-medium:before, -.fi-social-myspace:before, -.fi-social-orkut:before, -.fi-social-path:before, -.fi-social-picasa:before, -.fi-social-pinterest:before, -.fi-social-rdio:before, -.fi-social-reddit:before, -.fi-social-skillshare:before, -.fi-social-skype:before, -.fi-social-smashing-mag:before, -.fi-social-snapchat:before, -.fi-social-spotify:before, -.fi-social-squidoo:before, -.fi-social-stack-overflow:before, -.fi-social-steam:before, -.fi-social-stumbleupon:before, -.fi-social-treehouse:before, -.fi-social-tumblr:before, -.fi-social-twitter:before, -.fi-social-vimeo:before, -.fi-social-windows:before, -.fi-social-xbox:before, -.fi-social-yahoo:before, -.fi-social-yelp:before, -.fi-social-youtube:before, -.fi-social-zerply:before, -.fi-social-zurb:before, -.fi-sound:before, -.fi-star:before, -.fi-stop:before, -.fi-strikethrough:before, -.fi-subscript:before, -.fi-superscript:before, -.fi-tablet-landscape:before, -.fi-tablet-portrait:before, -.fi-target-two:before, -.fi-target:before, -.fi-telephone-accessible:before, -.fi-telephone:before, -.fi-text-color:before, -.fi-thumbnails:before, -.fi-ticket:before, -.fi-torso-business:before, -.fi-torso-female:before, -.fi-torso:before, -.fi-torsos-all-female:before, -.fi-torsos-all:before, -.fi-torsos-female-male:before, -.fi-torsos-male-female:before, -.fi-torsos:before, -.fi-trash:before, -.fi-trees:before, -.fi-trophy:before, -.fi-underline:before, -.fi-universal-access:before, -.fi-unlink:before, -.fi-unlock:before, -.fi-upload-cloud:before, -.fi-upload:before, -.fi-usb:before, -.fi-video:before, -.fi-volume-none:before, -.fi-volume-strike:before, -.fi-volume:before, -.fi-web:before, -.fi-wheelchair:before, -.fi-widget:before, -.fi-wrench:before, -.fi-x-circle:before, -.fi-x:before, -.fi-yen:before, -.fi-zoom-in:before, -.fi-zoom-out:before { - font-family: "foundation-icons"; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - -webkit-font-smoothing: antialiased; - display: inline-block; - text-decoration: inherit; -} - -.fi-address-book:before { content: "\f100"; } -.fi-alert:before { content: "\f101"; } -.fi-align-center:before { content: "\f102"; } -.fi-align-justify:before { content: "\f103"; } -.fi-align-left:before { content: "\f104"; } -.fi-align-right:before { content: "\f105"; } -.fi-anchor:before { content: "\f106"; } -.fi-annotate:before { content: "\f107"; } -.fi-archive:before { content: "\f108"; } -.fi-arrow-down:before { content: "\f109"; } -.fi-arrow-left:before { content: "\f10a"; } -.fi-arrow-right:before { content: "\f10b"; } -.fi-arrow-up:before { content: "\f10c"; } -.fi-arrows-compress:before { content: "\f10d"; } -.fi-arrows-expand:before { content: "\f10e"; } -.fi-arrows-in:before { content: "\f10f"; } -.fi-arrows-out:before { content: "\f110"; } -.fi-asl:before { content: "\f111"; } -.fi-asterisk:before { content: "\f112"; } -.fi-at-sign:before { content: "\f113"; } -.fi-background-color:before { content: "\f114"; } -.fi-battery-empty:before { content: "\f115"; } -.fi-battery-full:before { content: "\f116"; } -.fi-battery-half:before { content: "\f117"; } -.fi-bitcoin-circle:before { content: "\f118"; } -.fi-bitcoin:before { content: "\f119"; } -.fi-blind:before { content: "\f11a"; } -.fi-bluetooth:before { content: "\f11b"; } -.fi-bold:before { content: "\f11c"; } -.fi-book-bookmark:before { content: "\f11d"; } -.fi-book:before { content: "\f11e"; } -.fi-bookmark:before { content: "\f11f"; } -.fi-braille:before { content: "\f120"; } -.fi-burst-new:before { content: "\f121"; } -.fi-burst-sale:before { content: "\f122"; } -.fi-burst:before { content: "\f123"; } -.fi-calendar:before { content: "\f124"; } -.fi-camera:before { content: "\f125"; } -.fi-check:before { content: "\f126"; } -.fi-checkbox:before { content: "\f127"; } -.fi-clipboard-notes:before { content: "\f128"; } -.fi-clipboard-pencil:before { content: "\f129"; } -.fi-clipboard:before { content: "\f12a"; } -.fi-clock:before { content: "\f12b"; } -.fi-closed-caption:before { content: "\f12c"; } -.fi-cloud:before { content: "\f12d"; } -.fi-comment-minus:before { content: "\f12e"; } -.fi-comment-quotes:before { content: "\f12f"; } -.fi-comment-video:before { content: "\f130"; } -.fi-comment:before { content: "\f131"; } -.fi-comments:before { content: "\f132"; } -.fi-compass:before { content: "\f133"; } -.fi-contrast:before { content: "\f134"; } -.fi-credit-card:before { content: "\f135"; } -.fi-crop:before { content: "\f136"; } -.fi-crown:before { content: "\f137"; } -.fi-css3:before { content: "\f138"; } -.fi-database:before { content: "\f139"; } -.fi-die-five:before { content: "\f13a"; } -.fi-die-four:before { content: "\f13b"; } -.fi-die-one:before { content: "\f13c"; } -.fi-die-six:before { content: "\f13d"; } -.fi-die-three:before { content: "\f13e"; } -.fi-die-two:before { content: "\f13f"; } -.fi-dislike:before { content: "\f140"; } -.fi-dollar-bill:before { content: "\f141"; } -.fi-dollar:before { content: "\f142"; } -.fi-download:before { content: "\f143"; } -.fi-eject:before { content: "\f144"; } -.fi-elevator:before { content: "\f145"; } -.fi-euro:before { content: "\f146"; } -.fi-eye:before { content: "\f147"; } -.fi-fast-forward:before { content: "\f148"; } -.fi-female-symbol:before { content: "\f149"; } -.fi-female:before { content: "\f14a"; } -.fi-filter:before { content: "\f14b"; } -.fi-first-aid:before { content: "\f14c"; } -.fi-flag:before { content: "\f14d"; } -.fi-folder-add:before { content: "\f14e"; } -.fi-folder-lock:before { content: "\f14f"; } -.fi-folder:before { content: "\f150"; } -.fi-foot:before { content: "\f151"; } -.fi-foundation:before { content: "\f152"; } -.fi-graph-bar:before { content: "\f153"; } -.fi-graph-horizontal:before { content: "\f154"; } -.fi-graph-pie:before { content: "\f155"; } -.fi-graph-trend:before { content: "\f156"; } -.fi-guide-dog:before { content: "\f157"; } -.fi-hearing-aid:before { content: "\f158"; } -.fi-heart:before { content: "\f159"; } -.fi-home:before { content: "\f15a"; } -.fi-html5:before { content: "\f15b"; } -.fi-indent-less:before { content: "\f15c"; } -.fi-indent-more:before { content: "\f15d"; } -.fi-info:before { content: "\f15e"; } -.fi-italic:before { content: "\f15f"; } -.fi-key:before { content: "\f160"; } -.fi-laptop:before { content: "\f161"; } -.fi-layout:before { content: "\f162"; } -.fi-lightbulb:before { content: "\f163"; } -.fi-like:before { content: "\f164"; } -.fi-link:before { content: "\f165"; } -.fi-list-bullet:before { content: "\f166"; } -.fi-list-number:before { content: "\f167"; } -.fi-list-thumbnails:before { content: "\f168"; } -.fi-list:before { content: "\f169"; } -.fi-lock:before { content: "\f16a"; } -.fi-loop:before { content: "\f16b"; } -.fi-magnifying-glass:before { content: "\f16c"; } -.fi-mail:before { content: "\f16d"; } -.fi-male-female:before { content: "\f16e"; } -.fi-male-symbol:before { content: "\f16f"; } -.fi-male:before { content: "\f170"; } -.fi-map:before { content: "\f171"; } -.fi-marker:before { content: "\f172"; } -.fi-megaphone:before { content: "\f173"; } -.fi-microphone:before { content: "\f174"; } -.fi-minus-circle:before { content: "\f175"; } -.fi-minus:before { content: "\f176"; } -.fi-mobile-signal:before { content: "\f177"; } -.fi-mobile:before { content: "\f178"; } -.fi-monitor:before { content: "\f179"; } -.fi-mountains:before { content: "\f17a"; } -.fi-music:before { content: "\f17b"; } -.fi-next:before { content: "\f17c"; } -.fi-no-dogs:before { content: "\f17d"; } -.fi-no-smoking:before { content: "\f17e"; } -.fi-page-add:before { content: "\f17f"; } -.fi-page-copy:before { content: "\f180"; } -.fi-page-csv:before { content: "\f181"; } -.fi-page-delete:before { content: "\f182"; } -.fi-page-doc:before { content: "\f183"; } -.fi-page-edit:before { content: "\f184"; } -.fi-page-export-csv:before { content: "\f185"; } -.fi-page-export-doc:before { content: "\f186"; } -.fi-page-export-pdf:before { content: "\f187"; } -.fi-page-export:before { content: "\f188"; } -.fi-page-filled:before { content: "\f189"; } -.fi-page-multiple:before { content: "\f18a"; } -.fi-page-pdf:before { content: "\f18b"; } -.fi-page-remove:before { content: "\f18c"; } -.fi-page-search:before { content: "\f18d"; } -.fi-page:before { content: "\f18e"; } -.fi-paint-bucket:before { content: "\f18f"; } -.fi-paperclip:before { content: "\f190"; } -.fi-pause:before { content: "\f191"; } -.fi-paw:before { content: "\f192"; } -.fi-paypal:before { content: "\f193"; } -.fi-pencil:before { content: "\f194"; } -.fi-photo:before { content: "\f195"; } -.fi-play-circle:before { content: "\f196"; } -.fi-play-video:before { content: "\f197"; } -.fi-play:before { content: "\f198"; } -.fi-plus:before { content: "\f199"; } -.fi-pound:before { content: "\f19a"; } -.fi-power:before { content: "\f19b"; } -.fi-previous:before { content: "\f19c"; } -.fi-price-tag:before { content: "\f19d"; } -.fi-pricetag-multiple:before { content: "\f19e"; } -.fi-print:before { content: "\f19f"; } -.fi-prohibited:before { content: "\f1a0"; } -.fi-projection-screen:before { content: "\f1a1"; } -.fi-puzzle:before { content: "\f1a2"; } -.fi-quote:before { content: "\f1a3"; } -.fi-record:before { content: "\f1a4"; } -.fi-refresh:before { content: "\f1a5"; } -.fi-results-demographics:before { content: "\f1a6"; } -.fi-results:before { content: "\f1a7"; } -.fi-rewind-ten:before { content: "\f1a8"; } -.fi-rewind:before { content: "\f1a9"; } -.fi-rss:before { content: "\f1aa"; } -.fi-safety-cone:before { content: "\f1ab"; } -.fi-save:before { content: "\f1ac"; } -.fi-share:before { content: "\f1ad"; } -.fi-sheriff-badge:before { content: "\f1ae"; } -.fi-shield:before { content: "\f1af"; } -.fi-shopping-bag:before { content: "\f1b0"; } -.fi-shopping-cart:before { content: "\f1b1"; } -.fi-shuffle:before { content: "\f1b2"; } -.fi-skull:before { content: "\f1b3"; } -.fi-social-500px:before { content: "\f1b4"; } -.fi-social-adobe:before { content: "\f1b5"; } -.fi-social-amazon:before { content: "\f1b6"; } -.fi-social-android:before { content: "\f1b7"; } -.fi-social-apple:before { content: "\f1b8"; } -.fi-social-behance:before { content: "\f1b9"; } -.fi-social-bing:before { content: "\f1ba"; } -.fi-social-blogger:before { content: "\f1bb"; } -.fi-social-delicious:before { content: "\f1bc"; } -.fi-social-designer-news:before { content: "\f1bd"; } -.fi-social-deviant-art:before { content: "\f1be"; } -.fi-social-digg:before { content: "\f1bf"; } -.fi-social-dribbble:before { content: "\f1c0"; } -.fi-social-drive:before { content: "\f1c1"; } -.fi-social-dropbox:before { content: "\f1c2"; } -.fi-social-evernote:before { content: "\f1c3"; } -.fi-social-facebook:before { content: "\f1c4"; } -.fi-social-flickr:before { content: "\f1c5"; } -.fi-social-forrst:before { content: "\f1c6"; } -.fi-social-foursquare:before { content: "\f1c7"; } -.fi-social-game-center:before { content: "\f1c8"; } -.fi-social-github:before { content: "\f1c9"; } -.fi-social-google-plus:before { content: "\f1ca"; } -.fi-social-hacker-news:before { content: "\f1cb"; } -.fi-social-hi5:before { content: "\f1cc"; } -.fi-social-instagram:before { content: "\f1cd"; } -.fi-social-joomla:before { content: "\f1ce"; } -.fi-social-lastfm:before { content: "\f1cf"; } -.fi-social-linkedin:before { content: "\f1d0"; } -.fi-social-medium:before { content: "\f1d1"; } -.fi-social-myspace:before { content: "\f1d2"; } -.fi-social-orkut:before { content: "\f1d3"; } -.fi-social-path:before { content: "\f1d4"; } -.fi-social-picasa:before { content: "\f1d5"; } -.fi-social-pinterest:before { content: "\f1d6"; } -.fi-social-rdio:before { content: "\f1d7"; } -.fi-social-reddit:before { content: "\f1d8"; } -.fi-social-skillshare:before { content: "\f1d9"; } -.fi-social-skype:before { content: "\f1da"; } -.fi-social-smashing-mag:before { content: "\f1db"; } -.fi-social-snapchat:before { content: "\f1dc"; } -.fi-social-spotify:before { content: "\f1dd"; } -.fi-social-squidoo:before { content: "\f1de"; } -.fi-social-stack-overflow:before { content: "\f1df"; } -.fi-social-steam:before { content: "\f1e0"; } -.fi-social-stumbleupon:before { content: "\f1e1"; } -.fi-social-treehouse:before { content: "\f1e2"; } -.fi-social-tumblr:before { content: "\f1e3"; } -.fi-social-twitter:before { content: "\f1e4"; } -.fi-social-vimeo:before { content: "\f1e5"; } -.fi-social-windows:before { content: "\f1e6"; } -.fi-social-xbox:before { content: "\f1e7"; } -.fi-social-yahoo:before { content: "\f1e8"; } -.fi-social-yelp:before { content: "\f1e9"; } -.fi-social-youtube:before { content: "\f1ea"; } -.fi-social-zerply:before { content: "\f1eb"; } -.fi-social-zurb:before { content: "\f1ec"; } -.fi-sound:before { content: "\f1ed"; } -.fi-star:before { content: "\f1ee"; } -.fi-stop:before { content: "\f1ef"; } -.fi-strikethrough:before { content: "\f1f0"; } -.fi-subscript:before { content: "\f1f1"; } -.fi-superscript:before { content: "\f1f2"; } -.fi-tablet-landscape:before { content: "\f1f3"; } -.fi-tablet-portrait:before { content: "\f1f4"; } -.fi-target-two:before { content: "\f1f5"; } -.fi-target:before { content: "\f1f6"; } -.fi-telephone-accessible:before { content: "\f1f7"; } -.fi-telephone:before { content: "\f1f8"; } -.fi-text-color:before { content: "\f1f9"; } -.fi-thumbnails:before { content: "\f1fa"; } -.fi-ticket:before { content: "\f1fb"; } -.fi-torso-business:before { content: "\f1fc"; } -.fi-torso-female:before { content: "\f1fd"; } -.fi-torso:before { content: "\f1fe"; } -.fi-torsos-all-female:before { content: "\f1ff"; } -.fi-torsos-all:before { content: "\f200"; } -.fi-torsos-female-male:before { content: "\f201"; } -.fi-torsos-male-female:before { content: "\f202"; } -.fi-torsos:before { content: "\f203"; } -.fi-trash:before { content: "\f204"; } -.fi-trees:before { content: "\f205"; } -.fi-trophy:before { content: "\f206"; } -.fi-underline:before { content: "\f207"; } -.fi-universal-access:before { content: "\f208"; } -.fi-unlink:before { content: "\f209"; } -.fi-unlock:before { content: "\f20a"; } -.fi-upload-cloud:before { content: "\f20b"; } -.fi-upload:before { content: "\f20c"; } -.fi-usb:before { content: "\f20d"; } -.fi-video:before { content: "\f20e"; } -.fi-volume-none:before { content: "\f20f"; } -.fi-volume-strike:before { content: "\f210"; } -.fi-volume:before { content: "\f211"; } -.fi-web:before { content: "\f212"; } -.fi-wheelchair:before { content: "\f213"; } -.fi-widget:before { content: "\f214"; } -.fi-wrench:before { content: "\f215"; } -.fi-x-circle:before { content: "\f216"; } -.fi-x:before { content: "\f217"; } -.fi-yen:before { content: "\f218"; } -.fi-zoom-in:before { content: "\f219"; } -.fi-zoom-out:before { content: "\f21a"; } diff --git a/templates/html5/app/Frontend/styles/foundation/_foundation-settings.scss b/templates/html5/app/Frontend/styles/foundation/_foundation-settings.scss deleted file mode 100644 index d4c6415..0000000 --- a/templates/html5/app/Frontend/styles/foundation/_foundation-settings.scss +++ /dev/null @@ -1,605 +0,0 @@ -// FOUNDATION FOR APPS SETTINGS -// ---------------------------- -// -// Table of Contents: -// -// 1. CSS Exports -// 2. Global Styles -// 3. Breakpoints -// 4. Typography -// 5. Grid -// 6. Button -// 7. Accordion -// 8. Action Sheet -// 9. Block List -// 10. Button Group -// 11. Card -// 12. Extras -// 13. Forms -// 14. Iconic -// 15. Label -// 16. Menu Bar -// 17. Modal -// 18. Motion UI -// 19. Notification -// 20. Off-canvas -// 21. Panel -// 22. Popup -// 23. Switch -// 24. Tabs -// 25. Title Bar - -@import "helpers/functions"; - -// 1. CSS Exports -// - - - - - - - - - - - - - - - - -// Change any value in this map from "true" to "false" to disable that component's CSS class output. You'll still be able to use the component's mixins, but none of our pre-written classes will be in your CSS. - - $include-css: ( - accordion: true, - action-sheet: true, - block-list: true, - button: true, - button-group: true, - card: true, - coloring: true, - extras: true, - forms: true, - grid: true, - iconic: true, - label: true, - badge: true, - list: true, - menu-bar: true, - modal: true, - motion: true, - notification: true, - off-canvas: true, - panel: true, - popup: true, - switch: true, - tabs: true, - title-bar: true, - typography: true, - utilities: true, - ); - -// 2. Global Styles -// - - - - - - - - - - - - - - - - -// This sets 1rem to be 16px -// $rem-base: 16px; - -// The default font-size is set to 100% of the browser style sheet (usually 16px) -// for compatibility with browser-based text zoom or user-set defaults. - -// Since the typical default browser font-size is 16px, that makes the calculation for grid size. -// If you want your base font-size to be different and not have it affect the grid breakpoints, -// set $rem-base to $base-font-size and make sure $base-font-size is a px value. -// $base-font-size: 100%; - -// $base-line-height is 24px while $base-font-size is 16px -// $base-line-height: 1.5; - -// Text selector helpers -// $headers: "h1,h2,h3,h4,h5,h6"; - -// We use these to define default font weights -// $font-weight-normal: normal; -// $font-weight-bold: bold; - -// We use these to control various global styles -// $body-background: #fff; -// $body-font-color: #222; -// $body-font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; -// $body-font-weight: $font-weight-normal; -// $body-font-style: normal; -// $body-antialiased: true; - -// Application Colors -// $primary-color: #00558b; -// $secondary-color: #f1f1f1; -// $alert-color: #F04124; -// $info-color: #A0D3E8; -// $success-color: #43AC6A; -// $warning-color: #F08A24; -// $dark-color: #232323; -// $gray: #dfdfdf; -// $gray-dark: darken($gray, 8); -// $gray-light: lighten($gray, 8); - -// We use these to make sure border radius matches unless we want it different. -// $global-radius: 4px; -// $global-rounded: 1000px; - -// We use this for default spacing -// $global-padding: 1rem; -// $global-spacing: rem-calc(15); - -// 3. Breakpoints -// - - - - - - - - - - - - - - - - -// These are our named breakpoints. You can use them in our breakpoint function like this: @include breakpoint(medium) { // Medium and larger styles } -// $breakpoints: ( -// small: rem-calc(0), -// medium: rem-calc(640), -// large: rem-calc(1200), -// xlarge: rem-calc(1440), -// xxlarge: rem-calc(1920), -// ); - -// All of the names in this list will be output as classes in your CSS, like small-12, medium-6, and so on. -// $breakpoint-classes: (small medium large); - -// 4. Typography -// - - - - - - - - - - - - - - - - -// We use these to control header font styles -// $header-font-family: $body-font-family; -// $header-font-weight: $font-weight-normal; -// $header-font-style: $font-weight-normal; -// $header-font-color: #222; -// $header-line-height: 1.4; -// $header-top-margin: .2rem; -// $header-bottom-margin: .5rem; -// $header-text-rendering: optimizeLegibility; - -// We use these to control header font sizes -// $h1-font-size: rem-calc(44); -// $h2-font-size: rem-calc(37); -// $h3-font-size: rem-calc(27); -// $h4-font-size: rem-calc(23); -// $h5-font-size: rem-calc(18); -// $h6-font-size: 1rem; - -// We use these to control header size reduction on small screens -// $h1-font-reduction: rem-calc(10); -// $h2-font-reduction: rem-calc(10); -// $h3-font-reduction: rem-calc(5); -// $h4-font-reduction: rem-calc(5); -// $h5-font-reduction: 0; -// $h6-font-reduction: 0; - -// These control how subheaders are styled. -// $subheader-line-height: 1.4; -// $subheader-font-color: scale-color($header-font-color, $lightness: 35%); -// $subheader-font-weight: $font-weight-normal; -// $subheader-top-margin: .2rem; -// $subheader-bottom-margin: .5rem; - -// A general styling -// $small-font-size: 60%; -// $small-font-color: scale-color($header-font-color, $lightness: 35%); - -// We use these to style paragraphs -// $paragraph-font-family: inherit; -// $paragraph-font-weight: $font-weight-normal; -// $paragraph-font-size: 1rem; -// $paragraph-line-height: 1.6; -// $paragraph-margin-bottom: rem-calc(20); -// $paragraph-aside-font-size: rem-calc(14); -// $paragraph-aside-line-height: 1.35; -// $paragraph-aside-font-style: italic; -// $paragraph-text-rendering: optimizeLegibility; - -// We use these to style tags -// $code-color: grayscale($primary-color); -// $code-font-family: Consolas, 'Liberation Mono', Courier, monospace; -// $code-font-weight: $font-weight-normal; -// $code-background-color: scale-color($secondary-color, $lightness: 70%); -// $code-border-size: 1px; -// $code-border-style: solid; -// $code-border-color: scale-color($code-background-color, $lightness: -10%); -// $code-padding: rem-calc(2) rem-calc(5) rem-calc(1); - -// We use these to style anchors -// $anchor-text-decoration: none; -// $anchor-text-decoration-hover: none; -// $anchor-font-color: $primary-color; -// $anchor-font-color-hover: scale-color($anchor-font-color, $lightness: -14%); - -// We use these to style the
element -// $hr-border-width: 1px; -// $hr-border-style: solid; -// $hr-border-color: #ddd; -// $hr-margin: rem-calc(20); - -// We use these to style lists -// $list-font-family: $paragraph-font-family; -// $list-font-size: $paragraph-font-size; -// $list-line-height: $paragraph-line-height; -// $list-margin-bottom: $paragraph-margin-bottom; -// $list-style-position: outside; -// $list-side-margin: 1.1rem; -// $list-ordered-side-margin: 1.4rem; -// $list-side-margin-no-bullet: 0; -// $list-nested-margin: rem-calc(20); -// $definition-list-header-weight: $font-weight-bold; -// $definition-list-header-margin-bottom: .3rem; -// $definition-list-margin-bottom: rem-calc(12); - -// We use these to style blockquotes -// $blockquote-font-color: scale-color($header-font-color, $lightness: 35%); -// $blockquote-padding: rem-calc(9 20 0 19); -// $blockquote-border: 1px solid #ddd; -// $blockquote-cite-font-size: rem-calc(13); -// $blockquote-cite-font-color: scale-color($header-font-color, $lightness: 23%); -// $blockquote-cite-link-color: $blockquote-cite-font-color; - -// Acronym styles -// $acronym-underline: 1px dotted #ddd; - -// 5. Grid -// - - - - - - - - - - - - - - - - -// $container-width: rem-calc(900); -// $block-padding: $global-padding; -// $total-columns: 12; -// $block-grid-max-size: 6; - -// 6. Button -// - - - - - - - - - - - - - - - - -// $button-padding: 0.85em 1em; -// $button-margin: 0 $global-padding $global-padding 0; -// $button-style: solid; -// $button-background: $primary-color; -// $button-color: auto; -// $button-radius: 0; -// $button-sizes: ( -// tiny: 0.7, -// small: 0.8, -// medium: 1, -// large: 1.3, -// ); -// $button-font-size: 0.9rem; -// $button-opacity-disabled: 0.5; -// $button-tag-selector: false; - -// 7. Accordion -// - - - - - - - - - - - - - - - - -// $accordion-border: 1px solid $gray-dark; - -// $accordion-title-background: $gray-light; -// $accordion-title-background-hover: smartscale($accordion-title-background, 5%); -// $accordion-title-background-active: smartscale($accordion-title-background, 3%); -// $accordion-title-color: isitlight($accordion-title-background); -// $accordion-title-color-active: isitlight($accordion-title-background); - -// $accordion-title-padding: $global-padding; -// $accordion-content-padding: $global-padding; - -// 8. Action Sheet -// - - - - - - - - - - - - - - - - -// $actionsheet-background: white; -// $actionsheet-border-color: #ccc; -// $actionsheet-animate: transform opacity; -// $actionsheet-animation-speed: 0.25s; -// $actionsheet-width: 300px; -// $actionsheet-radius: 4px; -// $actionsheet-shadow: 0 -3px 10px rgba(black, 0.25); -// $actionsheet-padding: $global-padding; -// $actionsheet-tail-size: 10px; - -// $actionsheet-popup-shadow: 0 0 10px rgba(black, 0.25); - -// $actionsheet-link-color: #000; -// $actionsheet-link-background-hover: smartscale($actionsheet-background); - -// 9. Block List -// - - - - - - - - - - - - - - - - -// $blocklist-background: #fff; -// $blocklist-fullbleed: true; -// $blocklist-fontsize: 1rem; - -// $blocklist-item-padding: 0.8rem 1rem; -// $blocklist-item-color: isitlight($blocklist-background, #000, #fff); -// $blocklist-item-background-hover: smartscale($blocklist-background, 4.5%); -// $blocklist-item-color-disabled: #999; -// $blocklist-item-border: 1px solid smartscale($blocklist-background, 18.5%); - -// $blocklist-item-label-color: scale-color($blocklist-item-color, $lightness: 60%); -// $blocklist-item-icon-size: 0.8; - -// $blocklist-header-fontsize: 0.8em; -// $blocklist-header-color: smartscale($blocklist-item-color, 40%); -// $blocklist-header-uppercase: true; - -// $blocklist-check-icons: true; - -// 10. Button Group -// - - - - - - - - - - - - - - - - -// $btngroup-background: $primary-color; -// $btngroup-color: #fff; -// $btngroup-radius: $button-radius; - -// 11. Card -// - - - - - - - - - - - - - - - - -// $card-background: #fff; -// $card-color: isitlight($card-background); -// $card-border: 1px solid smartscale($card-background, 7%); -// $card-radius: $global-radius; -// $card-shadow: 0 1px 2px rgba(#000, 0.2); -// $card-padding: $global-padding; -// $card-margin: 0.5rem; - -// $card-divider-background: smartscale($card-background, 7%); - -// 12. Extras -// - - - - - - - - - - - - - - - - -// $closebutton-position: (top right); -// $closebutton-size: 2em; -// $closebutton-lineheight: 0.5; -// $closebutton-color: #999; -// $closebutton-color-hover: #333; - -// $thumbnail-padding: 0.5rem; -// $thumbnail-shadow: 0 3px 15px rgba(black, 0.25); - -// 13. Forms -// - - - - - - - - - - - - - - - - -// Basic form variables -// $form-fontsize: 1rem; -// $form-padding: 0.5rem; - -// Text fields -// $input-color: #000; -// $input-color-hover: $input-color; -// $input-color-focus: $input-color; -// $input-background: #fff; -// $input-background-hover: $input-background; -// $input-background-focus: $input-background; -// $input-border: 1px solid #ccc; -// $input-border-hover: 1px solid #bbb; -// $input-border-focus: 1px solid #999; - -// Select menus -// $select-color: #000; -// $select-background: #fafafa; -// $select-background-hover: smartscale($select-background, 4%); -// $select-arrow: true; -// $select-arrow-color: $select-color; - -// Labels -// $form-label-fontsize: 0.9rem; -// $form-label-margin: 0.5rem; -// $form-label-color: #333; - -// Inline labels -// $inlinelabel-color: #333; -// $inlinelabel-background: #eee; -// $inlinelabel-border: $input-border; - -// Range slider -// $slider-background: #ddd; -// $slider-height: 1rem; -// $slider-radius: 0px; -// $slider-thumb-height: 1.5rem; -// $slider-thumb-color: $primary-color; -// $slider-thumb-radius: 0px; - -// Progress and meter -// $meter-height: 1.5rem; -// $meter-background: #ccc; -// $meter-fill: $primary-color; -// $meter-fill-high: $success-color; -// $meter-fill-medium: #e7cf00; -// $meter-fill-low: $alert-color; -// $meter-radius: 0; - -// 14. Iconic -// - - - - - - - - - - - - - - - - -// $iconic-primary-fill: $primary-color; -// $iconic-primary-stroke: $primary-color; -// $iconic-accent-fill: $iconic-primary-fill; -// $iconic-accent-stroke: $iconic-accent-fill; - -// 15. Label -// - - - - - - - - - - - - - - - - -// $label-fontsize: 0.8rem; -// $label-padding: ($global-padding / 3) ($global-padding / 2); -// $label-radius: 0; -// $label-background: $primary-color; -// $label-color: isitlight($primary-color); - -// $badge-fontsize: 0.8em; -// $badge-diameter: 1.5rem; -// $badge-background: $primary-color; -// $badge-color: #fff; - -// DEPRECATED: these variables will be removed in v1.1. -// $badge-padding: .1em .61em; -// $badge-radius: $global-rounded; -// $badge-font-color: #fff; - -// 16. Menu Bar -// - - - - - - - - - - - - - - - - -// $menubar-fontsize: 1rem; -// $menubar-background: #fff; -// $menubar-background-hover: smartscale($menubar-background, 7%); -// $menubar-background-active: $menubar-background-hover; -// $menubar-color: isitlight($menubar-background); -// $menubar-color-hover: $menubar-color; -// $menubar-color-active: $menubar-color-hover; - -// $menubar-item-padding: $global-padding; -// $menubar-icon-size: 25px; -// $menubar-icon-spacing: $menubar-item-padding; - -// 17. Modal -// - - - - - - - - - - - - - - - - -// $modal-background: #fff; -// $modal-border: 0; -// $modal-radius: 0px; -// $modal-shadow: none; -// $modal-zindex: 1000; -// $modal-sizes: ( -// tiny: 300px, -// small: 500px, -// medium: 600px, -// large: 800px, -// ); - -// $modal-overlay-class: 'modal-overlay'; -// $modal-overlay-background: rgba(#333, 0.7); - -// 18. Motion UI -// - - - - - - - - - - - - - - - - -// Classes to use when triggering in/out animations -// $motion-class: ( -// in: "ng-enter", -// out: "ng-leave", -// ); -// $motion-class-active: ( -// in: "ng-enter-active", -// out: "ng-leave-active", -// ); -// $motion-class-stagger: ( -// in: "ng-enter-stagger", -// out: "ng-leave-stagger", -// ); - -// Set if movement-based transitions should also fade the element in and out -// $motion-slide-and-fade: false; -// $motion-hinge-and-fade: true; -// $motion-scale-and-fade: true; -// $motion-spin-and-fade: true; - -// Default speed for transitions and animations -// $motion-duration-default: 500ms; -// Slow and fast modifiders -// $motion-duration-slow: 750ms; -// $motion-duration-fast: 250ms; -// $motion-stagger-duration-default: 150ms; -// $motion-stagger-duration-short: 50ms; -// $motion-stagger-duration-long: 300ms; - -// Default timing function for transitions and animations -// $motion-timing-default: ease; -// Built-in and custom easing functions -// Every item in this map becomes a CSS class -// $motion-timings: ( -// linear: linear, -// ease: ease, -// easeIn: ease-in, -// easeOut: ease-out, -// easeInOut: ease-in-out, -// bounceIn: cubic-bezier(0.485, 0.155, 0.240, 1.245), -// bounceOut: cubic-bezier(0.485, 0.155, 0.515, 0.845), -// bounceInOut: cubic-bezier(0.760, -0.245, 0.240, 1.245), -// ); - -// Default delay for all transitions and animations -// $motion-delay-default: 0; -// Short and long delay modifiers -// $motion-delay-short: 300ms; -// $motion-delay-long: 700ms; - -// 19. Notification -// - - - - - - - - - - - - - - - - -// $notification-default-position: right top; -// $notification-width: rem-calc(400); -// $notification-offset: $global-padding; - -// $notification-background: $primary-color; -// $notification-color: white; -// $notification-padding: $global-padding; -// $notification-radius: 4px; - -// $notification-icon-size: 60px; -// $notification-icon-margin: $global-padding; -// $notification-icon-align: top; - - -// 20. Off-canvas -// - - - - - - - - - - - - - - - - -// $offcanvas-size-horizontal: 250px; -// $offcanvas-size-vertical: 250px; - -// $offcanvas-background: #fff; -// $offcanvas-color: isitlight($offcanvas-background); -// $offcanvas-padding: 0; -// $offcanvas-shadow: 3px 0 10px rgba(black, 0.25); -// $offcanvas-animation-speed: 0.25s; - -// $offcanvas-frame-selector: '.grid-frame'; - -// 21. Panel -// - - - - - - - - - - - - - - - - -// $panel-size-horizontal: 300px; -// $panel-size-vertical: 300px; -// $panel-padding: 0; - -// $panel-background: #fff; -// $panel-shadow: 3px 0 10px rgba(black, 0.25); -// $panel-animation-speed: 0.25s; - -// 22. Popup -// - - - - - - - - - - - - - - - - -// $popup-width: rem-calc(300); -// $popup-background: #fff; -// $popup-border: 0; -// $popup-radius: 0; -// $popup-shadow: 0 0 10px rgba(#000, 0.25); - -// 23. Switch -// - - - - - - - - - - - - - - - - -// $switch-width: rem-calc(50); -// $switch-height: rem-calc(32); -// $switch-background: #ccc; -// $switch-background-active: $primary-color; -// $switch-border: 0; -// $switch-radius: 9999px; -// $switch-animation-speed: 0.15s; - -// $switch-paddle-color: white; -// $switch-paddle-offset: 4px; - -// 24. Tabs -// - - - - - - - - - - - - - - - - -// $tabstrip-background: transparent; - -// $tab-title-background: $gray-light; -// $tab-title-background-hover: smartscale($tab-title-background, 5%); -// $tab-title-background-active: smartscale($tab-title-background, 3%); -// $tab-title-color: isitlight($tab-title-background); -// $tab-title-color-active: $tab-title-color; - -// $tab-title-padding: $global-padding; -// $tab-content-padding: $global-padding; - -// 25. Title Bar -// - - - - - - - - - - - - - - - - -// $titlebar-center-width: 50%; -// $titlebar-side-width: (100% - $titlebar-center-width) / 2; -// $titlebar-background: #eee; -// $titlebar-color: #000; -// $titlebar-border: 1px solid #ccc; -// $titlebar-padding: $global-padding; -// $titlebar-item-classes: ( -// center: 'center', -// left: 'left', -// right: 'right', -// title: 'title', -// ); - diff --git a/templates/html5/app/Frontend/styles/foundation/foundation-conf.scss b/templates/html5/app/Frontend/styles/foundation/foundation-conf.scss deleted file mode 100644 index bdcfe1f..0000000 --- a/templates/html5/app/Frontend/styles/foundation/foundation-conf.scss +++ /dev/null @@ -1,19 +0,0 @@ -@import "foundation-settings"; -@import "foundation-icons"; -@import "foundation"; - - -/*.sidebar { - // Panel on small screens - @extend %panel-base; - @include panel-position(left); - // Override styles to become a block on medium screens - @include breakpoint(medium) { - @include grid-panel-reset; - @include grid-block(4); - } - // Change size to 3 columns on large screens - @include breakpoint(large) { - @include grid-size(3); - } -}*/ \ No newline at end of file diff --git a/templates/html5/app/Frontend/widgets/ActionButtons/ActionButtons.scss b/templates/html5/app/Frontend/widgets/ActionButtons/ActionButtons.scss deleted file mode 100644 index 6cb8338..0000000 --- a/templates/html5/app/Frontend/widgets/ActionButtons/ActionButtons.scss +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -@import "app/ibz-mixins"; - -// place here your submit buttons customization -appli-button { - @include ibz-button(grey,1rem) - img { - height: 3rem; - } - - - .disable>i { - text-decoration:none; // really not needed for the Top Bar, just for general technique - cursor: auto; - color: grey !important; - } -} - -.appli-menu-start { - .start-start, .stop-stop { - i {color: grey;} - } -} diff --git a/templates/html5/app/Frontend/widgets/ActionButtons/AppliButton.js b/templates/html5/app/Frontend/widgets/ActionButtons/AppliButton.js deleted file mode 100644 index 269ee81..0000000 --- a/templates/html5/app/Frontend/widgets/ActionButtons/AppliButton.js +++ /dev/null @@ -1,205 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Bugs: Input with Callback SHOULD BE get 'required' class - */ - -(function () { - 'use strict'; - - var tmplAppli = '
' + - '' + - '{{label}}' + - '
'; - - var tmplModal = - '×' + - '' + - 'Application {{label}}' + - '
' + - ''; - - var tmplDetail = - '×' + - '' + - 'Application {{label}}' + - '
    ' + - '
  • Name : {{detail.name}}
  • ' + - '
  • Description {{detail.description}}
  • ' + - '
  • Author : {{detail.author}}
  • ' + - '
' + - ''; - - angular.module('AppliButton', []) - .directive('appliButton', function (AppConfig, AppCall, ModalFactory, Notification, $timeout, $window, $location, urlquery) { - - function mymethods(scope, elem, attrs) { - scope.runstatus = "stop"; - scope.runmode = urlquery.runmode || "auto"; - scope.clicked = function () { - - var notifyError = function(action, response) { - Notification.error ({message: "Fail /api/afm-main" + action + "=" + scope.label + " RunID="+ scope.appID, delay: 5000}); - elem.addClass ("fail"); - elem.removeClass ("success"); - scope.callback (scope.appID, action, response); - }; - - var notifySuccess = function (action, response) { - elem.removeClass ("fail"); - scope.runID = response.data.response.runid; - scope.callback (scope.appID, action, response); - }; - - var closeModApp = function() { - scope.modApp.deactivate(); - $timeout (function() {scope.modApp.destroy();}, 1000); - }; - - var closeModInfo = function() { - scope.modInfo.deactivate(); - $timeout (function() {scope.modInfo.destroy();}, 1000); - }; - - var actionModal = function(action) { - console.log ("Modal Action=%s", action); - switch (action) { - - case "start": - if (scope.runstatus !== "stop") return; - AppCall.get ("afm-main", "start", {id: scope.appID, mode: scope.runmode}, function(response) { - if (response.status !== 200 || response.data.jtype !== "afb-reply") { - notifyError ("start", response); - return; - } - scope.runstatus="start"; - notifySuccess (action, response); - if(response.data.response.uri) - scope.winapp= $window.open(response.data.response.uri.replace("%h", $location.host())); - }); - break; - - case "stop": - if (scope.runstatus !== "start") return; - - AppCall.get ("afm-main", "terminate", {runid: scope.runID}, function(response) { - if (response.status !== 200 || response.data.jtype !== "afb-reply") { - notifyError ("stop", response); - return; - } - scope.runstatus="stop"; - - // if a remote window app was open let's close it - if (scope.winapp) { - console.log ("Closing Application Window label=%s id=%s", scope.label, scope.appID); - scope.winapp.close(); - scope.winapp=false; - } - notifySuccess (action, response); - }); - break; - - case "info": - AppCall.get ("afm-main", "detail", {id: scope.appID}, function(response) { - if (response.status !== 200 || response.data.jtype !== "afb-reply") { - notifyError ("detail", response); - return; - } - - // reference http://foundation.zurb.com/apps/docs/#!/angular-modules - var config = { - animationIn: 'slideInFromTop', - contentScope: { - close : closeModInfo, - icon : scope.icon, - label : scope.appID, - detail : response.data.response - }, template : tmplDetail - }; - // Popup Modal to render application data - scope.modInfo = new ModalFactory(config); - scope.modInfo.activate (); - - }); - break; - - case "uninstall": - if (scope.runstatus !== "stop") return; - AppCall.get ("afm-main", "uninstall", {id: scope.appID}, function(response) { - if (response.status !== 200 || response.data.jtype !== "afb-reply") { - notifyError ("uninstall", response); - return; - } - - notifySuccess (action, response); - }); - break; - - default: - console.log ("ActionModal unknown action=[%s]", action); - break; - } - - closeModApp(); - }; - - // reference http://foundation.zurb.com/apps/docs/#!/angular-modules - var config = { - animationIn: 'slideInFromTop', - contentScope: { - action : actionModal, - runstatus: scope.runstatus, - close : closeModApp, - icon : scope.icon, - label : scope.label - }, template : tmplModal - }; - // Popup Modal to render application data - scope.modApp = new ModalFactory(config); - scope.modApp.activate (); - }; - - // extract application information from AppID+Store - if (attrs.handle && scope.store [attrs.handle].name) { - scope.icon = AppConfig.paths.icons + attrs.handle; //scope.store [attrs.handle].name.toLowerCase() + '-ico.png'; - scope.label = scope.store [attrs.handle].name; - scope.appID= attrs.handle; - } else { - scope.icon = AppConfig.paths.icons + 'w3c-ico.png'; - scope.label = attrs.handle; - } - - // add label as class - elem.addClass (scope.label.toLowerCase()); - - // note: clicked in imported and when template is clicked - // it will call clicked method passed in param. - } - - return { - restrict: 'E', - template: tmplAppli, - link: mymethods, - scope: {callback: '=', store: '='} - }; - }); -})(); diff --git a/templates/html5/app/Frontend/widgets/ActionButtons/SubmitButton.js b/templates/html5/app/Frontend/widgets/ActionButtons/SubmitButton.js deleted file mode 100644 index 323cd46..0000000 --- a/templates/html5/app/Frontend/widgets/ActionButtons/SubmitButton.js +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Bugs: Input with Callback SHOULD BE get 'required' class - */ - -(function () { - 'use strict'; - - var tmpl = '
' + - '' + - '{{label}}' + - '
'; - - angular.module('SubmitButton', []) - .directive('submitButton', function () { - - function mymethods(scope, elem, attrs) { - - // ajust icon or use default - scope.icon = attrs.icon || 'fi-foot'; - scope.label = attrs.label || 'Next'; - - // add label as class - elem.addClass (scope.label.toLowerCase()); - - // note: clicked in imported and when template is clicked - // it will call clicked method passed in param. - } - - return { - restrict: 'E', - template: tmpl, - link: mymethods, - scope: {clicked : '='} - }; - }); -})(); diff --git a/templates/html5/app/Frontend/widgets/Navigation/LinkButton.js b/templates/html5/app/Frontend/widgets/Navigation/LinkButton.js deleted file mode 100644 index 3e83425..0000000 --- a/templates/html5/app/Frontend/widgets/Navigation/LinkButton.js +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Bugs: Input with Callback SHOULD BE get 'required' class - */ - -(function () { - 'use strict'; - - var tmpl = '' + - '' + - '{{label}}' + - ''; - - - angular.module('LinkButton', []) - .directive('linkButton', function ($location) { - - function mymethods(scope, elem, attrs) { - - scope.clicked = function () { - - if (!attrs.query) $location.path(attrs.href); - else $location.path(attrs.href).search(attrs.query); - }; - - // ajust icon or use default - scope.icon = attrs.icon || 'fi-link'; - scope.label = attrs.label || 'Jump'; - scope.href = attrs.href || '/home'; - - // add label as class - elem.addClass (scope.label.toLowerCase()); - } - - return { - restrict: 'E', - template: tmpl, - link: mymethods, - scope: {} - }; - }); -})(); diff --git a/templates/html5/app/Frontend/widgets/Navigation/Navigation.scss b/templates/html5/app/Frontend/widgets/Navigation/Navigation.scss deleted file mode 100644 index 2babf24..0000000 --- a/templates/html5/app/Frontend/widgets/Navigation/Navigation.scss +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -@import "app/ibz-mixins"; - - -link-button {@include ibz-button(#3366ff,1rem)}; - -//pale blue for secondaty link -link-button.secondary {@include ibz-button(#99b3ff,1rem)}; - diff --git a/templates/html5/app/Frontend/widgets/Notifications/ModalNotification.js b/templates/html5/app/Frontend/widgets/Notifications/ModalNotification.js deleted file mode 100644 index 37ba047..0000000 --- a/templates/html5/app/Frontend/widgets/Notifications/ModalNotification.js +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Bugs: Input with Callback SHOULD BE get 'required' class - * - * ref: https://developer.mozilla.org/en-US/docs/Web/Events/mouseover - * - * usage: - * - * tipModal: listen event from elem.parent() to display tip-modal - *
- * - * - *
- * - * Note: use CSS.visibility to avoid display flickering at initial display. - */ - -(function () { - 'use strict'; - - var tmpl = '
' + - '' + - '{{tip}}' + - '
' ; - - angular.module('ModalNotification', []) - .directive('tipModal', function ($timeout) { - - function mymethods(scope, elem, attrs) { - scope.parent = elem.parent(); - scope.modal = elem.find("div"); - - - // delay tip display to avoid blinking when moving mouse fast - function display () { - function action() { - if (scope.show) scope.modal.css({opacity: 1, visibility:'visible'}); - } - scope.show = true; - scope.timeout = $timeout(action, scope.delay); - } - - function close () { - scope.show = false; - scope.modal.css({opacity: 0, visibility:'hidden'}); - } - - - // ajust icon or use default - scope.icon = attrs.icon || 'fi-lightbulb'; - - // Update Parent element to get mouse event - scope.parent.addClass ('as-modal-tip'); - scope.parent.bind('click', close); - scope.parent.bind('focus', display); - scope.parent.bind('mouseover', display); - scope.parent.bind('mouseleave', close); - scope.parent.bind('blur', close); - - scope.delay = attrs.delay || 1000; // wait 1s before displaying tip - } - - return { - restrict: 'E', - template: tmpl, - link: mymethods, - scope: {tip: "="} // tip may not be defined when widget is display - }; - }); -})(); diff --git a/templates/html5/app/Frontend/widgets/Notifications/Notifications.scss b/templates/html5/app/Frontend/widgets/Notifications/Notifications.scss deleted file mode 100644 index fb740b7..0000000 --- a/templates/html5/app/Frontend/widgets/Notifications/Notifications.scss +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Reference: http://www.greywyvern.com/?post=337 - */ - -@import "app/ibz-mixins"; - - -link-button {@include ibz-button(#3366ff,1rem)}; - -// Modal should be relative and tip-modal-popup absolute -tip-modal { - position:relative; -} - -.tip-modal-popup { - //visibility: hidden; - width: 20rem; - position:absolute; - top:1em; - padding: 0.2em 0.6em; - border:1px solid #996633; - background-color:#e5ffff; - color:#000; - opacity:0; - transition:visibility .5s linear 1s,opacity 1s linear; - border-radius: 5px; - i { - margin: 0 .3rem 0 0; - display: inline; - } -} - -token-refresh { - @include ibz-button(grey,1rem) - i {margin-left: .5rem;} - margin-right: 1rem; -} - -token-refresh.online { - color: #0066cc; - i {color: lime;} -} - -token-refresh.offline { - color: #ff00ff; - i {color: red;} -} diff --git a/templates/html5/app/Frontend/widgets/Notifications/TokenRefreshSvc.js b/templates/html5/app/Frontend/widgets/Notifications/TokenRefreshSvc.js deleted file mode 100644 index 2c7c3da..0000000 --- a/templates/html5/app/Frontend/widgets/Notifications/TokenRefreshSvc.js +++ /dev/null @@ -1,149 +0,0 @@ -/* - alsa-gateway -- provide a REST/HTTP interface to ALSA-Mixer - - Copyright (C) 2015, Fulup Ar Foll - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with scope program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - References: - - */ - -(function () { - 'use strict'; - - var template = - '
' + - 'afb://{{hostname}}:{{httpdport}}' + - '' + - '
'; - - -// scope module is load statically before any route is cativated -angular.module('TokenRefresh', ['AppConfig', 'ModalNotification']) - - .directive ('tokenRefresh', function($log, $window, $timeout, $location, Notification, AppConfig, AppCall) { - - function mymethods(scope, elem, attrs) { - scope.logged=undefined; // neither thu neither false - - $window.onbeforeunload = function () { - AppCall.get (scope.plugin, "logout", {/*query*/}, function () { - $log.log("OPA exit"); - }); - }; - - scope.online = function () { - elem.addClass ("online"); - elem.removeClass ("offline"); - scope.logged=true; - }; - - scope.offline = function(){ - elem.addClass ("offline"); - elem.removeClass ("online"); - scope.logged=false; - }; - - scope.onerror = function() { - if (scope.logged !== false) { - Notification.warning ({message: "AppFramework Binder Lost", delay: 5000}); - scope.offline(); - } - scope.status = 0; - }; - - scope.onsuccess = function(jresp, errcode) { - - if (errcode !== 200 || jresp.request.status !== "success") { - Notification.warning ({message: "auto-connect :" + jresp.request.info, delay: 10000}); - scope.offline(); - return false; - } - - if (scope.logged !== true) { - Notification.success ({message: "AppFramework Binder Connected", delay: 3000}); - scope.online(); - if (scope.callback) scope.callback(jresp); - } - - scope.status = 1; - return true; - }; - - // Check Binder status - scope.getping = function() { - - AppCall.get (scope.plugin, "ping", {/*query*/},function(jresp, errcode) { - if (errcode !== 200 || jresp.request.status !== "success") { - Notification.warning ({message: jresp.request.info, delay: 5000}); - scope.offline(); - return; - } - // restart a new timer for next ping - $timeout (scope.getping, AppConfig.session.pingrate*1000); - }, scope.onerror); - }; - - // Check Binder status - scope.refresh = function() { - - AppCall.get (scope.plugin, "refresh", {/*query*/}, function(jresp, errcode) { - - scope.onsuccess (jresp, errcode); - - // restart a new timer for next refresh - $timeout (scope.refresh, AppConfig.session.timeout *250); - }, scope.onerror); - }; - - // Initial connection - scope.loggin = function() { - AppCall.get (scope.plugin, "connect", {token: AppConfig.session.initial}, function(jresp, errcode) { - - if (!scope.onsuccess (jresp, errcode)) return; - - // Intial token was accepted let's start ping & refresh - $timeout (scope.getping, AppConfig.session.pingrate*1000); - $timeout (scope.refresh, AppConfig.session.timeout *250); - - }, scope.onerror); - }; - - - // Parse Widget Parameters - scope.plugin = attrs.plugin || "auth"; - scope.icon = attrs.icon || "fi-lightbulb"; - scope.hostname = $location.host(); - scope.httpdport = $location.port(); - scope.autolog = JSON.parse(attrs.autolog || false); - - // autostart log if requested - if (scope.autolog) scope.loggin(); - - } - - return { - template: template, - scope: { - callback : "=" - }, - restrict: 'E', - link: mymethods - }; -}); - -})(); -console.log ("Token Refresh Loaded"); diff --git a/templates/html5/app/Frontend/widgets/RangeSliders/RangeSliderMod.js b/templates/html5/app/Frontend/widgets/RangeSliders/RangeSliderMod.js deleted file mode 100644 index 77f0fce..0000000 --- a/templates/html5/app/Frontend/widgets/RangeSliders/RangeSliderMod.js +++ /dev/null @@ -1,631 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Bugs: Input with Callback SHOULD BE get 'required' class - * - * ref: https://developer.mozilla.org/en-US/docs/Web/Events/mouseover - * - * usage: -Usage ---------------------- - - class="radius" // check Zurb foundation doc for further info. - class="ibz-handle-display" // increase handle width to hold slider current value - - - callback="myCallBack" // $scope.myCallBack(sliderhandle) is called when ever slider handle blur - formatter="SliderFormatCB" // $scope.myFormatter(value, sliderid) when exist is call when ever slider handle moves. Should return external form of slider value. - ng-model="xxxxxx" // xxx Must be defined, script will store a new RangerObject within provided ng-model variable. - start-at="ScopeVar" // Dynamic limitation when slider is constrains by an external componant [ex: check in/out] - stop-at="ScopeVar" // Idem but for end. - - - not-less="integer" // Fixed starting value for slider [default 0] - not-more="integer" // Fixed end value for sliders [default 100] - by-step="+-integer" // If by-step is >0 then slider use it as step-value, when negative use it for decimal precision - display-target="handle" // display slider external formated value in the handle [requirer calss="ibz-handle-display"] - dual-handles='true' // add a second handle to slider for min/max range - initial='value|[start/stop]' // slider initial value [dual-handles] may have initial values - /> - */ - -(function () { - 'use strict'; - -var RangeSlider = angular.module('RangeSlider',[]); - -function RangeSliderHandle (scope) { - var internals = []; - var externals = []; - - this.getId = function() { - return scope.sliderid; - }; - - this.getCbHandle = function() { - return scope.cbhandle; - }; - - this.getView= function (handle) { - if (!handle) handle = 0; - - // if value did not change return current external representation - if (scope.value[handle] === internals[handle]) return externals[handle]; - - // build external representation and save it for further requests - internals[handle] = scope.value[handle]; - if (scope.formatter) externals[handle] = scope.formatter(scope.value[handle], scope.ctrlhandle); - else externals[handle] = scope.value[handle]; - - return externals[handle]; - }; - - this.updateClass = function (classe, status) { - scope.updateClass (classe, status); - }; - - this.forceRefresh = function (timer) { - scope.forceRefresh(timer); - }; - - this.getValue= function (handle) { - if (!handle) handle = 0; - return scope.value[handle]; - }; - - this.getRelative= function (handle) { - if (!handle) handle = 0; - return scope.relative[handle]; - }; - - this.setValue= function (value, handle) { - if (!handle) handle = 0; - scope.setValue (value, handle); - }; - - this.setDisable= function (flag) { - scope.setDisable(flag); - }; -} - -RangeSlider.directive('rangeSlider', function ($log, $document, $timeout) { - - var template= '
'+ - ''+ - ''+ - ''+ - ' '+ - ' '+ - ''+ - '
'; - - - function link (scope, element, attrs, model) { - // full initialisation of slider from a single object - scope.initWidget = function (initvalues) { - - if (initvalues.byStep) scope.byStep = parseInt(initvalues.byStep); - if (initvalues.notMore) scope.notMore = parseInt(initvalues.notMore); - if (initvalues.notLess) scope.notLess = parseInt(initvalues.notLess); - if (initvalues.id) scope.sliderid= initvalues.id; - - // hugely but in some case DOM is not finish when we try to set values !!! - if (initvalues.value !== undefined) { - scope.value = initvalues.value; - scope.forceRefresh (50); // wait 50ms for DOM to be ready - } - }; - - // this function recompute slide positioning - scope.forceRefresh = function (timer) { - var value = scope.value; - scope.value = [undefined,undefined]; - $timeout (function() { - scope.setValue(value[0],0); - if (scope.dual) scope.setValue(value[1],1); - }, timer); - }; - - // handler to change class from slider handle - scope.updateClass = function (classe, status) { - - if (status) element.addClass (classe); - else element.removeClass (classe); - }; - - scope.setDisable = function (disabled) { - - if (disabled) { - element.addClass ("disable"); - scope.handles[0].css ('visibility','hidden'); - if (scope.dual) { - scope.handles[1].css ('visibility','hidden'); - } - } else { - element.removeClass ("disable"); - scope.handles[0].css ('visibility','visible'); - if (scope.dual) scope.handles[1].css ('visibility','visible'); - } - - }; - - scope.normalize = function (value) { - var result; - var range = scope.notMore - scope.notLess; - var point = value * range; - - // if step is positive let's round step by step - if (scope.byStep > 0) { - var mod = (point - (point % scope.byStep)) / scope.byStep; - var rem = point % scope.byStep; - - var round = (rem >= scope.byStep * 0.5 ? scope.byStep : 0); - result= (mod * scope.byStep + round) + scope.notLess; - //console.log ("range=%d value=%d point=%d mod=%d rem=%d round=%d result=%d", range, value, point, mod, rem, round, result) - return result; - } - - // if step is negative return round to asked decimal - if (scope.byStep < 0) { - var power = Math.pow (10,(scope.byStep * -1)); - result = scope.notLess + parseInt (point * power) / power; - return (result); - } - - // if step is null return full value - return point; - }; - - // return current value - scope.getValue = function (offset, handle) { - if (scope.vertical) { - scope.relative[handle] = (offset - scope.bounds.handles[handle].getBoundingClientRect().height) / (scope.bounds.bar.getBoundingClientRect().height - scope.bounds.handles[handle].getBoundingClientRect().height); - } else { - scope.relative[handle] = offset / (scope.bounds.bar.getBoundingClientRect().width - scope.bounds.handles[handle].getBoundingClientRect().width); - } - - var newvalue = scope.normalize (scope.relative[handle]); - - - // if internal value change update or model - if (newvalue !== scope.value[handle]) { - if (newvalue < scope.startValue) newvalue=scope.startValue; - if (newvalue > scope.stopValue) newvalue=scope.stopValue; - - - if (scope.formatter) { - scope.viewValue = scope.formatter (newvalue, scope.ctrlhandle); - } else { - scope.viewValue = newvalue; - } - if (scope.displays[handle]) { - scope.displays[handle].html (scope.viewValue); - } - - // update external representation of the model - scope.value[handle] = newvalue; - if (model) model.$setViewValue (scope.viewValue); - scope.$apply(); - if (newvalue > scope.startValue && newvalue < scope.stopValue) scope.translate(offset, handle); - } - }; - - - scope.setStart = function (value) { - var offset; - - if (value > scope.value[0]) { - if (!scope.dual) scope.setValue (value,0); - else scope.setValue (value,1); - } - - if (scope.vertical) { - offset = scope.bounds.bar.getBoundingClientRect().height * (value - scope.notLess) / (scope.notMore - scope.notLess); - scope.start.css('height',offset + 'px'); - } else { - offset = scope.bounds.bar.getBoundingClientRect().width * (value - scope.notLess) / (scope.notMore - scope.notLess); - scope.start.css('width',offset + 'px'); - } - - scope.startValue= value; - }; - - scope.setStop = function (value) { - var offset; - - if (value < scope.value[0]) { - if (!scope.dual) scope.setValue (value,0); - else scope.setValue (value,1); - } - - if (scope.vertical) { - offset = scope.bounds.bar.getBoundingClientRect().height * (value - scope.notLess) / (scope.notMore - scope.notLess); - scope.start.css('height',offset + 'px'); - } else { - offset = scope.bounds.bar.getBoundingClientRect().width * (value - scope.notLess) / (scope.notMore - scope.notLess); - scope.stop.css({'right': 0, 'width': (scope.bounds.bar.getBoundingClientRect().width - offset) + 'px'}); - } - - scope.stopValue= value; - }; - - scope.translate = function (offset, handle) { - var start; - - if (scope.vertical) { - // take handle size in account to compute middle - var voffset = scope.bounds.bar.getBoundingClientRect().height - offset; - - scope.handles[handle].css({ - '-webkit-transform': 'translateY(' + voffset + 'px)', - '-moz-transform': 'translateY(' + voffset + 'px)', - '-ms-transform': 'translateY(' + voffset + 'px)', - '-o-transform': 'translateY(' + voffset + 'px)', - 'transform': 'translateY(' + voffset + 'px)' - }); - if (!scope.dual) scope.slider.css('height', offset + 'px'); - else if (scope.relative[1] && scope.relative[0]) { - var height = (scope.relative[1] - scope.relative[0]) * scope.bounds.bar.getBoundingClientRect().height; - start = (scope.relative[0] * scope.bounds.bar.getBoundingClientRect().height); - scope.slider.css ({'bottom': start+'px','height': height + 'px'}); - } - } else { - - scope.handles[handle].css({ - '-webkit-transform': 'translateX(' + offset + 'px)', - '-moz-transform': 'translateX(' + offset + 'px)', - '-ms-transform': 'translateX(' + offset + 'px)', - '-o-transform': 'translateX(' + offset + 'px)', - 'transform': 'translateX(' + offset + 'px)' - }); - if (!scope.dual) scope.slider.css('width',offset + 'px'); - else if (scope.relative[1] && scope.relative[0]) { - var width = (scope.relative[1] - scope.relative[0]) * scope.bounds.bar.getBoundingClientRect().width; - start = (scope.relative[0] * scope.bounds.bar.getBoundingClientRect().width); - scope.slider.css ({'left': start+'px','width': width + 'px'}); - } - } - }; - - // position handle on the bar depending a given value - scope.setValue = function (value , handle) { - var offset; - - // if value did not change ignore - if (value === scope.value[handle]) return; - if (value === undefined) value=0; - if (value > scope.notMore) value=scope.notMore; - if (value < scope.notLess) value=scope.notLess; - - if (scope.vertical) { - scope.relative[handle] = (value - scope.notLess) / (scope.notMore - scope.notLess); - if (handle === 0) offset = (scope.relative[handle] * scope.bounds.bar.getBoundingClientRect().height) + scope.bounds.handles[handle].getBoundingClientRect().height/2; - if (handle === 1) offset = scope.relative[handle] * scope.bounds.bar.getBoundingClientRect().height; - - } else { - scope.relative[handle] = (value - scope.notLess) / (scope.notMore - scope.notLess); - offset = scope.relative[handle] * (scope.bounds.bar.getBoundingClientRect().width - scope.bounds.handles[handle].getBoundingClientRect().width); - } - - scope.translate (offset,handle); - scope.value[handle] = value; - - if (scope.formatter) { - // when call through setValue we do not pass cbHandle - scope.viewValue = scope.formatter (value, undefined); - } else { - scope.viewValue = value; - } - - if (model) model.$setViewValue( scope.viewValue); - - if (scope.displays[handle]) { - scope.displays[handle].html (scope.viewValue); - } - }; - - - // Minimal keystroke handling to close picker with ESC [scope.actif is current handle index] - scope.keydown= function(e){ - - switch(e.keyCode){ - case 39: // Right - case 38: // up - if (scope.byStep > 0) scope.$apply(scope.setValue ((scope.value[scope.actif]+scope.byStep), scope.actif)); - if (scope.byStep < 0) scope.$apply(scope.setValue ((scope.value[scope.actif]+(1 / Math.pow(10, scope.byStep*-1))),scope.actif)); - if (scope.callback) scope.callback (scope.value[scope.actif], scope.ctrlhandle); - break; - case 37: // left - case 40: // down - if (scope.byStep > 0) scope.$apply(scope.setValue ((scope.value[scope.actif] - scope.byStep), scope.actif)); - if (scope.byStep < 0) scope.$apply(scope.setValue ((scope.value[scope.actif] - (1 / Math.pow(10, scope.byStep*-1))),scope.actif)); - if (scope.callback) scope.callback (scope.value[scope.actif], scope.ctrlhandle); - break; - case 27: // esc - scope.handles[scope.actif][0].blur(); - } - }; - - scope.moveHandle = function (handle, clientX, clientY) { - var offset; - if (scope.vertical) { - offset = scope.bounds.bar.getBoundingClientRect().bottom - clientY; - if (offset > scope.bounds.bar.getBoundingClientRect().height) offset = scope.bounds.bar.getBoundingClientRect().height; - if (offset < scope.bounds.handles[handle].getBoundingClientRect().height) offset = scope.bounds.handles[handle].getBoundingClientRect().height; - } else { - offset = clientX - scope.bounds.bar.getBoundingClientRect().left; - - if (offset < 0) offset = 0; - if ((clientX + scope.bounds.handles[handle].getBoundingClientRect().width) > scope.bounds.bar.getBoundingClientRect().right) { - offset = scope.bounds.bar.getBoundingClientRect().width - scope.bounds.handles[handle].getBoundingClientRect().width; - } - } - - scope.getValue (offset, handle); - - // prevent dual handle to cross - if (scope.dual && scope.value [0] > scope.value[1]) { - if (handle === 0) scope.setValue (scope.value[0] , 1); - else scope.setValue(scope.value[1],0); - } - }; - - - scope.focusCB = function (inside) { - if (inside) { - $document.on('keydown',scope.keydown); - } else { - $document.unbind('keydown',scope.keydown); - } - }; - - // bar was touch let move handle to this point - scope.touchBarCB = function (event) { - var handle=0; - var relative; - var touches = event.changedTouches; - var oldvalue = scope.value[handle]; - - event.preventDefault(); - - // if we have two handles select closest one from touch point - if (scope.dual) { - if (scope.vertical) relative = (touches[0].pageY - scope.bounds.bar.getBoundingClientRect().bottom) / scope.bounds.bar.getBoundingClientRect().height; - else relative= (touches[0].pageX - scope.bounds.bar.getBoundingClientRect().left) / scope.bounds.bar.getBoundingClientRect().width; - - var distance0 = Math.abs(relative - scope.relative[0]); - var distance1 = Math.abs(relative - scope.relative[1]); - if (distance1 < distance0) handle=1; - } - - // move handle to new place - scope.moveHandle (handle,touches[0].pageX, touches[0].pageY); - if (scope.callback && oldvalue !== scope.value[handle]) scope.callback (scope.value[handle], scope.ctrlhandle); - }; - - // handle was touch and drag - scope.touchHandleCB = function (touchevt, handle) { - var oldvalue = scope.value[handle]; - - touchevt.preventDefault(); - $document.on('touchmove',touchmove); - $document.on('touchend' ,touchend); - element.unbind('touchstart', scope.touchBarCB); - - function touchmove(event) { - event.preventDefault(); - var touches = event.changedTouches; - for (var idx = 0; idx < touches.length; idx++) { - scope.moveHandle (handle,touches[idx].pageX, touches[idx].pageY); - } - } - - function touchend(event) { - $document.unbind('touchmove',touchmove); - $document.unbind('touchend' ,touchend); - element.on('touchstart', scope.touchBarCB); - - // if value change notify application callback - if (scope.callback && oldvalue !== scope.value[handle]) scope.callback (scope.value[handle], scope.ctrlhandle); - } - }; - - scope.handleCB = function (clickevent, handle) { - - if (attrs.automatic) return; - - var oldvalue = scope.value[handle]; - // register mouse event to track handle - clickevent.preventDefault(); - - $document.on('mousemove',mousemove); - $document.on('mouseup', mouseup); - scope.handles[handle][0].focus(); - scope.actif=handle; - - // slider handle is moving - function mousemove(event) { - scope.moveHandle (handle, event.clientX, event.clientY); - } - - // mouse is up dans leave slider send resize events - function mouseup() { - $document.unbind('mousemove', mousemove); - $document.unbind('mouseup', mouseup); - - // if value change notify application callback - if (scope.callback && oldvalue !== scope.value[handle]) scope.callback (scope.value[handle], scope.ctrlhandle); - } - }; - - // simulate jquery find by classes capabilities [warning only return 1st elements] - scope.find = function (select, elem) { - var domelem; - - if (elem) domelem = elem[0].querySelector(select); - else domelem = element[0].querySelector(select); - - var angelem = angular.element(domelem); - return (angelem); - }; - - - - scope.initialSettings = function (initial) { - var decimal_places_match_result; - scope.value=[]; // store low/height value when two handles - scope.relative=[]; - - if (scope.precision === null) { - decimal_places_match_result = ('' + scope.byStep).match(/\.([\d]*)/); - scope.precision = decimal_places_match_result && decimal_places_match_result[1] ? decimal_places_match_result[1].length : 0; - } - - // position handle to initial value(s) - element.on('touchstart', scope.touchBarCB); - scope.handles[0].on('touchstart', function(evt){scope.touchHandleCB(evt,0);}); - - // this slider has two handles low/hight - if (scope.dual) { - scope.handles[1].addClass('range-slider-handle'); - scope.handles[1].on('touchstart', function(evt){scope.touchHandleCB(evt,1);}); - if (!scope.initvalues) scope.setValue (initial[1],1); - } - - // if we have an initstate object apply it - if (scope.initvalues) scope.initWidget (scope.initvalues); - else scope.setValue (initial[0],0); - }; - - scope.init = function () { - scope.sliderid = attrs.id || "slider-" + parseInt (Math.random() * 1000); - scope.startValue = -Infinity; - scope.stopValue = Infinity; - scope.byStep = parseInt(attrs.byStep) || 1; - scope.vertical = attrs.vertical || false; - scope.dual = attrs.dualHandles|| false; - scope.trigger_input_change= false; - scope.notMore = parseInt(attrs.notMore) || 100; - scope.notLess = parseInt(attrs.notLess) || 0; - - if (scope.vertical) element.addClass("vertical-range"); - - scope.handles= [scope.find('.handle-min'), scope.find('.handle-max')]; - scope.bar = element; - scope.slider = scope.find('.range-slider-active-segment'); - scope.start = scope.find('.ibz-range-slider-start'); - scope.stop = scope.find('.ibz-range-slider-stop'); - scope.disable= attrs.disable || false; - - scope.ctrlhandle = new RangeSliderHandle (scope); - - // prepare DOM object pointer to compute size dynamically - scope.bounds = { - bar : element[0], - handles: [scope.handles[0][0], scope.handles[1][0]] - }; - - if (attrs.disable === 'true') scope.setDisable(true); - - if (attrs.displayTarget) { - switch (attrs.displayTarget) { - case true : - case 'handle' : - scope.displays = scope.handles; - scope.handles[0].addClass('ibz-range-slider-display'); - if (scope.dual) scope.handles[1].addClass('ibz-range-slider-display'); - break; - default: - scope.displays = [$document.getElementById (attrs.displayTarget)]; - } - } else scope.displays=[]; - - // extract initial values from attrs and parse into int - if (!attrs.initial) { - scope.initial = [scope.ngModel, scope.ngModel]; // initialize to model values - } else { - var initial = attrs.initial.split(','); - scope.initial = [ - initial[0] !== undefined ? parseInt (initial[0]) : scope.notLess, - initial[1] !== undefined ? parseInt (initial[1]) : scope.notMore - ]; - } - - // Monitor any changes on start/stop dates. - scope.$watch('startAt', function() { - if (scope.value < scope.startAt ) { - //scope.setValue (scope.startAt); - } - if (scope.startAt) scope.setStart (scope.startAt); - }); - - scope.$watch('stopAt' , function() { - if (scope.value > scope.stopAt) { - //scope.setValue (scope.stopAt); - } - if (scope.stopAt) scope.setStop (scope.stopAt); - }); - - // finish widget initialisation - scope.initialSettings (scope.initial); - - }; - - scope.init(); - - // slider is ready provide control handle to application controller - scope.$watch ('inithook', function () { // init Values may arrive late - if (scope.inithook) scope.inithook (scope.ctrlhandle); - }); - - scope.$watch ('initvalues', function () { // init Values may arrive late - if (scope.initvalues) scope.initWidget(scope.initvalues); - }); - - // two-way binding if model value changes - scope.$watch ('ngModel', function (newValue) { - scope.setValue(newValue, 0); - }); - } - -return { - restrict: "E", // restrict to HTML element name - scope: { - startAt :'=', // First acceptable date - stopAt :'=', // Last acceptable date - callback :'=', // Callback to actif when a date is selected - formatter:'=', // Callback for drag event call each time internal value changes - inithook :'=', // Hook point to control slider from API - cbhandle :'=', // Argument added to every callback - initvalues:'=', // Initial values as a single object - ngModel: '=' // the model value - }, - require: '?ngModel', - template: template, // html template is build from JS - replace: true, // replace current directive with template while inheriting of class - link: link // pickadate object's methods -}; -}); - -console.log ("RangeSlider Loaded"); - -})(); \ No newline at end of file diff --git a/templates/html5/app/Frontend/widgets/RangeSliders/Rangeslider.scss b/templates/html5/app/Frontend/widgets/RangeSliders/Rangeslider.scss deleted file mode 100644 index 6717d0e..0000000 --- a/templates/html5/app/Frontend/widgets/RangeSliders/Rangeslider.scss +++ /dev/null @@ -1,67 +0,0 @@ -/* - * ibz-Datepicker for Foundation - * - * Author: Fulup Ar Foll - * Date : March-2015 - * Object: SASS stylesheet, customized to Foundation - * References: https://css-tricks.com/stripes-css/ - * - */ -@import "app/ibz-mixins"; - -.range-slider-handle { - display: inline-block; - position: absolute; - z-index: 1; - top: -0.2rem; - width: 2rem; - height: 1.375rem; - border: 1px solid none; - cursor: pointer; - background: #008cba; -} - -.range-slider.radius, .range-slider-handle { - background: #008cba; - -webkit-border-radius: 3px; - border-radius: 3px; -} - -.range-slider-active-segment { - display: inline-block; - top: 0.07rem; - position: absolute; - height: 0.80rem; - background: #e5e5e5; -} - -.ibz-range-slider { - background-color: rgba(154, 205, 50, 0.6) !important; - height: 1rem; - position: relative; - - .range-slider-active-segment { - background-color: rgba(82, 168, 200, 0.6); - } - - &-display { - background-color: rgba(82, 168, 200, 0.6) !important; - width : 4rem !important; - padding: .25rem; - text-align:center - } - - &-start,&-stop { - display: inline-block; - position: absolute; - padding-top: 2px; - height: 95%; - background: repeating-linear-gradient( - 45deg, - #606dbc, - #606dbc 10px, - #465298 10px, - #465298 20px - );} - -} diff --git a/templates/html5/app/bower.json b/templates/html5/app/bower.json deleted file mode 100644 index c78c624..0000000 --- a/templates/html5/app/bower.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "healthy-gulp-angular", - "version": "0.0.0", - "authors": "", - "private": true, - "dependencies": { - "angular": "~1.3.4", - "angular-cookies": "~1.3.4", - "foundation-apps": "~1.1.0", - "angular-ui-notification": "~0.0.14", - "foundation-icon-fonts": "*", - "jszip": "Stuk/jszip#~2.5.0" - }, - "overrides": { - "foundation": { - "main": [ - "dist/js/foundation-apps-templates.js", - "dist/js/foundation-apps.js" - ] - } - } -} diff --git a/templates/html5/app/etc/AppDefaults.js b/templates/html5/app/etc/AppDefaults.js deleted file mode 100644 index 2f27eee..0000000 --- a/templates/html5/app/etc/AppDefaults.js +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -var SESSION_TIMEOUT= 3600000; // default is 1h loggin session - -// Default config will be superseaded by ProjectRoot/.config-l4a.js $HOME/.config-l4a.js /etc/default/config-l4a.js -config = { - - APPNAME : 'xxxxxx-html5',// AppName is use as main Angular Module name - FRONTEND: "Frontend", // HTML5 frontend [no leading ./] - BACKEND : "Backend", // NodeJS Rest API [no leading ./] - URLBASE : '/opa/', // HTML basedir when running in production [should end with a /] - APIBASE : '/api/' // Api url base dir [should end with a /] -}; - -module.exports = config; - diff --git a/templates/html5/app/etc/_Config.js b/templates/html5/app/etc/_Config.js deleted file mode 100644 index ce93d43..0000000 --- a/templates/html5/app/etc/_Config.js +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2014 Fulup Ar Foll - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var fs = require('fs'); - -function Config () { - 'use strict'; - var values=[]; - var extention='-l4a.js'; - var conf; - - // Configs file path last one supersead first one. - var files= [__dirname + "/AppDefaults.js", "/etc/default/noderc"+ extention, process.env.NODERC, process.env.HOME + "/.noderc"+ extention , __dirname +"/../../.noderc.js" ]; - - // Parse any existing files within config list & merge them - for (var idx in files) { - if (files[idx]) { - //console.log ("files=", files[idx]); - if (fs.existsSync (files[idx])) conf=require (files[idx]); - for (var i in conf) values[i] = conf[i]; - } - } - - // set path to search for node_module within parent directory - process.env.NODE_PATH= process.env.NODE_PATH + '../node_modules'; - - // console.log ("values=", values); - return values; -} - -module.exports = Config(); diff --git a/templates/html5/app/etc/_Trace.js b/templates/html5/app/etc/_Trace.js deleted file mode 100644 index 79ef4f5..0000000 --- a/templates/html5/app/etc/_Trace.js +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2014 Fulup Ar Foll - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var util = require("util"); -var path = require("path"); -var config= require('./_Config'); - -function TracePoint () { - var saved = Error.prepareStackTrace; // save default prepareStack function - Error.prepareStackTrace = function(_, stack){ return stack; }; // overload err stack handling - Error.captureStackTrace(this, arguments.callee); // request a stack - this.trace = this.stack; // effectively build trace - Error.prepareStackTrace = saved; // restore original nodejs function -} - -// ------- Public Methods -------------- -var dbgLevel = function(target, level, format) { //+ arguments - // try to get debugLevel from calling object or global config - if (target && target.dbgLevel) dbgLevel = target.dbgLevel; - else dbgLevel = config.DBG_LVL || 1; - - if (dbgLevel >= level ) { - - var args = [].slice.call(arguments, 2); // copy argument in a real array leaving out level - var message = util.format.apply(null, args); - - var trace = new TracePoint().trace; - var info = { - fullpath : trace[1].getFileName(), - linenum : trace[1].getLineNumber(), - basename : path.basename (trace[1].getFileName()) - }; - - if (dbgLevel >= 5) { - console.log("%s:%d", info.fullpath, info.linenum); - console.log("\t[%d] %j", dbgLevel, message); - } - else console.log("--%d-- [%s:%d] -- %j", dbgLevel, info.basename, info.linenum, message); - } -}; - -module.exports = dbgLevel; diff --git a/templates/html5/app/gulpfile.js b/templates/html5/app/gulpfile.js deleted file mode 100644 index da2826d..0000000 --- a/templates/html5/app/gulpfile.js +++ /dev/null @@ -1,438 +0,0 @@ -// BUG Symlink not working - -var gulp = require('gulp'); -var debug = require('gulp-debug'); -var plugins = require('gulp-load-plugins')(); -var del = require('del'); -var es = require('event-stream'); -var bowerFiles = require('main-bower-files'); -var print = require('gulp-print'); -var Q = require('q'); -var imagemin = require('gulp-imagemin'), pngquant = require('imagemin-pngquant'); -var taskListing = require('gulp-task-listing'); -var symlink = require('gulp-sym'); -var rename = require("gulp-rename"); -var exec = require('child_process').exec - -// addon for Foundation6 -var router = require('front-router'); - -// == PATH STRINGS ======== -var appdir = "./"; // Warning to not forget trailling '/' -config=require (appdir + "etc/_Config"); // upload user local preferences if any - -var frontend= appdir + config.FRONTEND; - -var paths = { - application : frontend, - scripts : frontend+'/**/*.js', - appStyles : [frontend+'/**/*.scss', '!'+frontend+'/styles/*/*-conf.scss'], - globalStyles: [frontend+'/styles/**/*.scss'], - images : [frontend+'/**/*.png',frontend+'/**/*.jpg',frontend+'/**/*.jpeg',frontend+'/**/*.svg',frontend+'/**/*.ttf'], - index : frontend+'/index.html', - partials : [frontend + '/**/*.html', '!' + frontend +'/index.html'], - distDev : './dist.dev', - distProd : './dist.prod', - sass: [frontend+'/styles', 'bower_components/foundation-apps/scss','bower_components/foundation-icon-fonts'], - fonts: ['bower_components/**/*.woff'], - favicon: frontend+'/favicon.ico', - wgtconfig: 'config.xml' -}; - -paths['distAppDev'] = paths.distDev + config.URLBASE; -paths['distAppProd'] = paths.distProd + config.URLBASE; - -// Run node in debug mode in developpement mode ? -var nodeopts = config.DEBUG !== undefined ? '--debug='+config.DEBUG : ''; - -// == PIPE SEGMENTS ======== -var pipes = {}; - -pipes.orderedVendorScripts = function() { - return plugins.order(['jquery.js', 'angular.js']); -}; - -pipes.orderedAppScripts = function() { - return plugins.angularFilesort(); -}; - -pipes.minifiedFileName = function() { - return plugins.rename(function (path) { - path.extname = '.min' + path.extname; - }); -}; - -pipes.validatedAppScripts = function() { - return gulp.src(paths.scripts) - .pipe(plugins.replace('@@APPNAME@@', config.APPNAME)) - .pipe(plugins.jshint()) - .pipe(plugins.jshint.reporter('jshint-stylish')); -}; - -pipes.builtAppScriptsDev = function() { - return pipes.validatedAppScripts() - .pipe(gulp.dest(paths.distAppDev)); -}; - -pipes.builtAppScriptsProd = function() { - var scriptedPartials = pipes.scriptedPartials(); - var validatedAppScripts = pipes.validatedAppScripts(); - return es.merge(scriptedPartials, validatedAppScripts) - .pipe(plugins.ngAnnotate()) - .pipe(pipes.orderedAppScripts()) - .pipe(plugins.sourcemaps.init()) - .pipe(plugins.concat(config.APPNAME+'.min.js')) - .pipe(plugins.uglify({compress: {drop_console: true}})) - .pipe(plugins.sourcemaps.write()) - .pipe(gulp.dest(paths.distAppProd)); -}; - -pipes.builtVendorScriptsDev = function() { - return gulp.src(bowerFiles()) - .pipe(gulp.dest( paths.distDev +'/bower_components')); -}; - -pipes.builtVendorScriptsProd = function() { - return gulp.src(bowerFiles('**/*.js')) - .pipe(pipes.orderedVendorScripts()) - .pipe(plugins.concat('vendor.min.js')) - .pipe(plugins.uglify()) - .pipe(gulp.dest(paths.distProd+ '/bower_components')); -}; - - -pipes.validatedPartials = function() { - return gulp.src(paths.partials) - .pipe(plugins.htmlhint({'doctype-first': false})) - .pipe(router({path: paths.application+'/etc/routes.js', root: paths.application})) - .pipe(plugins.htmlhint.reporter()); -}; - -pipes.builtPartialsDev = function() { - return pipes.validatedPartials() - .pipe(gulp.dest(paths.distAppDev)); -}; - -pipes.scriptedPartials = function() { - return pipes.validatedPartials() - .pipe(plugins.htmlhint.failReporter()) - .pipe(plugins.htmlmin({collapseWhitespace: true, removeComments: true})) - .pipe(plugins.ngHtml2js({ - moduleName: config.APPNAME, - template: "(function() {" - + "angular.module('<%= moduleName %>').run(['$templateCache', function($templateCache) {" - + "$templateCache.put('<%= template.url %>',\n '<%= template.escapedContent %>');" - + "}]);\n" - + "})();\n" - })); -}; - -pipes.builtAppStylesDev = function() { - return gulp.src(paths.appStyles) - .pipe(plugins.sass({includePaths: paths.sass})) - .pipe(gulp.dest(paths.distAppDev + '/styles')); -}; - -pipes.builtglobalStylesDev = function() { - return gulp.src(paths.globalStyles) - .pipe(plugins.sass({includePaths: paths.sass})) - .pipe(gulp.dest(paths.distDev + '/global_styles')); -}; - -pipes.builtAppStylesProd = function() { - return gulp.src(paths.appStyles) - .pipe(plugins.sourcemaps.init()) - .pipe(plugins.sass({includePaths: frontend + '/styles'})) - // .pipe(debug({title: '***** appStyle:'})) - .pipe(plugins.cleanCss()) - .pipe(plugins.concat(config.APPNAME+'.css')) - .pipe(plugins.sourcemaps.write()) - .pipe(pipes.minifiedFileName()) - .pipe(gulp.dest(paths.distAppProd)); -}; - -pipes.builtglobalStylesProd = function() { - return gulp.src(paths.globalStyles) - .pipe(plugins.sourcemaps.init()) - .pipe(plugins.sass({includePaths: paths.sass})) - .pipe(plugins.cleanCss()) - .pipe(plugins.sourcemaps.write()) - .pipe(pipes.minifiedFileName()) - .pipe(rename(function (path) {path.dirname="";return path;})) - .pipe(gulp.dest(paths.distProd + '/global_styles')); -}; - -pipes.processedFontsDev = function() { - return gulp.src(paths.fonts) - .pipe(rename(function (path) {path.dirname="";return path;})) - .pipe(gulp.dest(paths.distDev+'/bower_components')); -}; - -pipes.processedFontsProd = function() { - return gulp.src(paths.fonts) - .pipe(rename(function (path) {path.dirname="";return path;})) - .pipe(gulp.dest(paths.distProd+'/bower_components')); -}; - - -pipes.processedImagesDev = function() { - return gulp.src(paths.images) - .pipe(gulp.dest(paths.distAppDev)); -}; - -pipes.processedFaviconDev = function() { - return gulp.src(paths.favicon) - .pipe(gulp.dest(paths.distDev)); -}; - -pipes.processedImagesProd = function() { - return gulp.src(paths.images) - .pipe(imagemin({ - progressive: true, - svgoPlugins: [{removeViewBox: false}], - use: [pngquant()] - })) - .pipe(gulp.dest(paths.distAppProd)); -}; - -pipes.processedFaviconProd = function() { - return gulp.src(paths.favicon) - .pipe(gulp.dest(paths.distProd)); -}; - -// Create an Symlink when config.URLBASE exist -pipes.createDevSymLink = function() { - return gulp.src(paths.distDev).pipe(symlink(paths.distDev+config.URLBASE, {force: true})); -}; - -pipes.createProdSymLink = function() { - return gulp.src(paths.distProd).pipe(symlink(paths.distDev+config.URLBASE,{force: true})); -}; - -pipes.validatedIndex = function() { - return gulp.src(paths.index) - .pipe(plugins.replace('@@APPNAME@@', config.APPNAME)) - .pipe(plugins.replace('@@URLBASE@@', config.URLBASE)) - .pipe(plugins.htmlhint()) - .pipe(plugins.htmlhint.reporter()); -}; - -pipes.builtIndexDev = function() { - - var orderedVendorScripts = pipes.builtVendorScriptsDev() - .pipe(pipes.orderedVendorScripts()); - - var orderedAppScripts = pipes.builtAppScriptsDev() - .pipe(pipes.orderedAppScripts()); - - var appStyles = pipes.builtAppStylesDev(); - var globalStyles = pipes.builtglobalStylesDev(); - - return pipes.validatedIndex() - // Vendor and Global should have absolute path to rootdir application one are relative to BaseURL - .pipe(plugins.inject(orderedVendorScripts, {relative: false, ignorePath: "/dist.dev", name: 'bower'})) - .pipe(plugins.inject(globalStyles, {relative: false, ignorePath: "/dist.dev", name:'vendor'})) - .pipe(gulp.dest(paths.distAppDev)) // write first to get relative path for inject - .pipe(plugins.inject(orderedAppScripts, {relative: true})) - .pipe(plugins.inject(appStyles, {relative: true, name: 'appli'})) - .pipe(gulp.dest(paths.distAppDev)); -}; - -pipes.builtIndexProd = function() { - - var vendorScripts= pipes.builtVendorScriptsProd(); - var appScripts = pipes.builtAppScriptsProd(); - var appStyles = pipes.builtAppStylesProd(); - var globalStyles = pipes.builtglobalStylesProd(); - - return pipes.validatedIndex() - // Vendor and Global should have absolute path to rootdir application one are relative to BaseURL - .pipe(plugins.inject(vendorScripts, {relative: false, ignorePath: "/dist.prod", name: 'bower'})) - .pipe(plugins.inject(globalStyles, {relative: false, ignorePath: "/dist.prod", name:'vendor'})) - .pipe(gulp.dest(paths.distAppProd)) // write first to get relative path for inject - .pipe(plugins.inject(appScripts, {relative: true})) - .pipe(plugins.inject(appStyles, {relative: true, name:'appli'})) - .pipe(plugins.htmlmin({collapseWhitespace: true, removeComments: true})) - .pipe(gulp.dest(paths.distAppProd)); -}; - -pipes.builtAppDev = function() { - return es.merge(pipes.builtIndexDev(), pipes.builtPartialsDev(), pipes.processedFaviconDev(), pipes.processedImagesDev(), pipes.processedFontsDev() ); -}; - -pipes.builtAppProd = function() { - return es.merge(pipes.builtIndexProd(), pipes.processedFaviconProd(), pipes.processedImagesProd(), pipes.processedFontsProd()); -}; - -pipes.widgetConfig = function(type) { - var dst=paths["dist"+type]; - var content="."+config.URLBASE+"/index.html"; - content=content.replace(/\/+/g,"/"); - return gulp.src(paths.wgtconfig+".in") - .pipe(plugins.replace('@@APPNAME@@', config.APPNAME)) - .pipe(plugins.replace('@@CONTENT@@', content)) - .pipe(plugins.rename("config.xml")) - .pipe(gulp.dest(dst)) -}; - -pipes.widgetPack = function(type,cb) { - var dst=paths["dist"+type]; - var wgtfile=config.APPNAME+"_"+type+".wgt" - - exec( - "wgtpkg-pack -f -o "+wgtfile+" "+dst, - function(err,stdout,stderr) { - console.log(stdout); - console.log(stderr); - cb(err); - }); -}; - -// == TASKS ======== - -// Add a task to render the output -gulp.task('help', taskListing.withFilters(/-/)); - -// clean, build of production environement -gulp.task('build', ['clean-build-app-prod']); - -// removes all compiled dev files -gulp.task('clean-dev', function() { - var deferred = Q.defer(); - del(paths.distDev, function() { - deferred.resolve(); - }); - return deferred.promise; -}); - -// removes all compiled production files -gulp.task('clean-prod', function() { - var deferred = Q.defer(); - del(paths.distProd, function() { - deferred.resolve(); - }); - return deferred.promise; -}); - -// checks html source files for syntax errors -gulp.task('validate-partials', pipes.validatedPartials); - -// checks index.html for syntax errors -gulp.task('validate-index', pipes.validatedIndex); - -// moves html source files into the dev environment -gulp.task('build-partials-dev', pipes.builtPartialsDev); - -// converts partials to javascript using html2js -gulp.task('convert-partials-to-js', pipes.scriptedPartials); - -// runs jshint on the app scripts -gulp.task('validate-app-scripts', pipes.validatedAppScripts); - -// moves app scripts into the dev environment -gulp.task('build-app-scripts-dev', pipes.builtAppScriptsDev); - -// concatenates, uglifies, and moves app scripts and partials into the prod environment -gulp.task('build-app-scripts-prod', pipes.builtAppScriptsProd); - -// compiles app sass and moves to the dev environment -gulp.task('build-app-styles-dev', pipes.builtAppStylesDev); - -// compiles and minifies app sass to css and moves to the prod environment -gulp.task('build-app-styles-prod', pipes.builtAppStylesProd); - -// moves vendor scripts into the dev environment -gulp.task('build-vendor-scripts-dev', pipes.builtVendorScriptsDev); - -// concatenates, uglifies, and moves vendor scripts into the prod environment -gulp.task('build-vendor-scripts-prod', pipes.builtVendorScriptsProd); - -// validates and injects sources into index.html and moves it to the dev environment -gulp.task('build-index-dev', pipes.builtIndexDev); - -// validates and injects sources into index.html, minifies and moves it to the dev environment -gulp.task('build-index-prod', pipes.builtIndexProd); - -// builds a complete dev environment -gulp.task('build-app-dev', pipes.builtAppDev); - -// builds a complete prod environment -gulp.task('build-app-prod', pipes.builtAppProd); - -// cleans and builds a complete dev environment -gulp.task('clean-build-app-dev', ['clean-dev'], pipes.builtAppDev); - -// cleans and builds a complete prod environment -gulp.task('clean-build-app-prod', ['clean-prod'], pipes.builtAppProd); - -// clean, build, and watch live changes to the dev environment -gulp.task('watch-dev', ['clean-build-app-dev'], function() { - - // watch app scripts - gulp.watch(paths.scripts, function() { - return pipes.builtAppScriptsDev() - .pipe(plugins.livereload()); - }); - - // watch html partials - gulp.watch(paths.partials, function() { - return pipes.builtPartialsDev() - .pipe(plugins.livereload()); - }); - - // watch Images - gulp.watch(paths.images, function() { - return pipes.processedImagesDev() - .pipe(plugins.livereload()); - }); - - // watch styles - gulp.watch(paths.appStyles, function() { - return pipes.builtAppStylesDev() - .pipe(plugins.livereload()); - }); - -}); - -// clean, build, and watch live changes to the prod environment -gulp.task('watch-prod', ['clean-build-app-prod'], function() { - - // watch index - gulp.watch(paths.index, function() { - return pipes.builtIndexProd() - .pipe(plugins.livereload()); - }); - - // watch app scripts - gulp.watch(paths.scripts, function() { - return pipes.builtAppScriptsProd() - .pipe(plugins.livereload()); - }); - - // watch hhtml partials - gulp.watch(paths.partials, function() { - return pipes.builtAppScriptsProd() - .pipe(plugins.livereload()); - }); - - // watch Images - gulp.watch(paths.images, function() { - return pipes.processedImagesProd() - .pipe(plugins.livereload()); - }); - - // watch styles - gulp.watch(paths.appStyles, function() { - return pipes.builtAppStylesProd() - .pipe(plugins.livereload()); - }); - -}); - -gulp.task('widget-config-dev', ['build-app-dev'], function() { return pipes.widgetConfig("Dev"); }); -gulp.task('widget-config-prod', ['build-app-prod'], function() { return pipes.widgetConfig("Prod"); }); -gulp.task('widget-dev', ['widget-config-dev'], function(cb) { return pipes.widgetPack("Dev",cb); }); -gulp.task('widget-prod', ['widget-config-prod'], function(cb) { return pipes.widgetPack("Prod",cb); }); - -// default task builds for prod -gulp.task('default', ['widget-prod']); diff --git a/templates/html5/app/package.json b/templates/html5/app/package.json deleted file mode 100644 index 3b51d33..0000000 --- a/templates/html5/app/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "html5-example", - "private": true, - "version": "0.0.1", - "repository": { - "type": "git", - "url": "https://github.com/iotbzh/healthy-gulp-angular-foundation6" - }, - "scripts": { - "postinstall": "bower install", - "build": "./node_modules/.bin/gulp clean-build-app-dev", - "start": "node node_modules/.bin/gulp watch-dev" - }, - "devDependencies": { - "body-parser": "^1.5.2", - "bower": "^1.3.1", - "cookie-parser": "^1.4.0", - "del": "^1.1.1", - "event-stream": "^3.2.2", - "express": "^4.7.2", - "express-session": "^1.12.1", - "front-router": "^1.0.0", - "gulp": "^3.9.0", - "gulp-angular-filesort": "^1.0.4", - "gulp-debug": "^2.1.2", - "gulp-concat": "^2.4.3", - "gulp-htmlhint": "0.0.9", - "gulp-htmlmin": "^1.0.0", - "gulp-imagemin": "*", - "gulp-inject": "^1.1.1", - "gulp-jshint": "^1.9.2", - "gulp-livereload": "^3.7.0", - "gulp-load-plugins": "^0.8.0", - "gulp-clean-css": "^2.0.11", - "gulp-ng-annotate": "^1.1.0", - "gulp-ng-html2js": "^0.2.0", - "gulp-nodemon": "^2.0.0", - "gulp-order": "^1.1.1", - "gulp-print": "^1.1.0", - "gulp-rename": "^1.2.0", - "gulp-replace": "^0.5.4", - "gulp-sass": "^2.0.3", - "gulp-sourcemaps": "^1.3.0", - "gulp-task-listing": "^1.0.1", - "gulp-uglify": "^1.2.0", - "imagemin-pngquant": "*", - "jshint-stylish": "^1.0.0", - "karma": "^0.10", - "karma-junit-reporter": "^0.2.2", - "main-bower-files": "^2.5.0", - "method-override": "^2.1.2", - "protractor": "^1.1.1", - "q": "^1.1.2", - "shelljs": "^0.2.6", - "traceback": "^0.3.1", - "gulp-sym": "0.0.14" - }, - "dependencies": { - "multer": "^1.1.0" - } -} diff --git a/templates/html5/etc/config.cmake b/templates/html5/etc/config.cmake deleted file mode 100644 index a6035fa..0000000 --- a/templates/html5/etc/config.cmake +++ /dev/null @@ -1,109 +0,0 @@ -########################################################################### -# Copyright 2015, 2016, 2017 IoT.bzh -# -# author: Fulup Ar Foll -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -########################################################################### - -# Project Info -# ------------------ -set(PROJECT_NAME HTML5-example) -set(VERSION "0.0") -set(PROJECT_PRETTY_NAME "HTML5 Example") -set(PROJECT_DESCRIPTION "HTML5 AGL application example") -set(PROJECT_URL "https://gerrit.automotivelinux.org/gerrit/apps/app-templates") -set(PROJECT_AUTHOR "Last Name, First Name") -set(PROJECT_AUTHOR_MAIL "example.man@bigouden.bzh") -set(PROJECT_ICON "icon.png") - -# Compilation Mode (DEBUG, RELEASE) -# ---------------------------------- -set(CMAKE_BUILD_TYPE "DEBUG") - -# Compiler selection if needed. Impose a minimal version. -# ----------------------------------------------- -set (gcc_minimal_version 4.9) - -# PKG_CONFIG required packages -# ----------------------------- -set (PKG_REQUIRED_LIST - json-c - afb-daemon -) - -# Static constante definition -# ----------------------------- -add_compile_options() - -# LANG Specific compile flags set for all build types -set(CMAKE_C_FLAGS "") -set(CMAKE_CXX_FLAGS "") - -# Print a helper message when every thing is finished -# ---------------------------------------------------- -set(CLOSING_MESSAGE "Test launching application with : afb-daemon --rootdir=\$\$(pwd)/package --ldpaths=\$\$(pwd)/package/lib --port=1234 --roothttp=\$\$(pwd)/package/htdocs --tracereq=common --token=\"1\" --verbose then using your browser and connect to http://localhost:1234/api?token=1") -set(WIDGET_MESSAGE "Install widget file using in the target : afm-util install ${PROJECT_NAME}.wgt") - -# (BUG!!!) as PKG_CONFIG_PATH does not work [should be an env variable] -# --------------------------------------------------------------------- -set(CMAKE_INSTALL_PREFIX ${HOME}/opt) -set(CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX}/lib64/pkgconfig ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig) -set(LD_LIBRARY_PATH ${CMAKE_INSTALL_PREFIX}/lib64 ${CMAKE_INSTALL_PREFIX}/lib) - -# Optional dependencies order -# --------------------------- -#set(EXTRA_DEPENDENCIES_ORDER) - -# Optional Extra global include path -# ----------------------------------- -#set(EXTRA_INCLUDE_DIRS) - -# Optional extra libraries -# ------------------------- -#set(EXTRA_LINK_LIBRARIES) - -# Optional force binding installation -# ------------------------------------ -# set(BINDINGS_INSTALL_PREFIX PrefixPath ) - -# Optional force widget prefix generation -# ------------------------------------------------ -# set(WIDGET_PREFIX DestinationPath) - -# Optional Widget entry point file. -# --------------------------------------------------------- - # This is the file that will be executed, loaded,... -# at launch time by the application framework - -# set(WIDGET_ENTRY_POINT EntryPoint_Path) - -# Optional Widget Mimetype specification -# -------------------------------------------------- -# Choose between : -# - application/x-executable -# - application/vnd.agl.url -# - application/vnd.agl.service -# - application/vnd.agl.native -# - text/vnd.qt.qml -# - text/html -# - application/vnd.agl.qml -# - application/vnd.agl.qml.hybrid -# - application/vnd.agl.html.hybrid -# -# set(WIDGET_TYPE MimeType) - -# Optional force binding Linking flag -# ------------------------------------ -# set(BINDINGS_LINK_FLAG LinkOptions ) - diff --git a/templates/html5/etc/export.map b/templates/html5/etc/export.map deleted file mode 100644 index ee2f413..0000000 --- a/templates/html5/etc/export.map +++ /dev/null @@ -1 +0,0 @@ -{ global: afbBindingV*; local: *; }; diff --git a/templates/html5/etc/macros.cmake b/templates/html5/etc/macros.cmake deleted file mode 100644 index 18af27e..0000000 --- a/templates/html5/etc/macros.cmake +++ /dev/null @@ -1,263 +0,0 @@ -########################################################################### -# Copyright 2015, 2016, 2017 IoT.bzh -# -# author: Fulup Ar Foll -# contrib: Romain Forlot -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -########################################################################### - - -#-------------------------------------------------------------------------- -# WARNING: -# Do not change this cmake template -# Customise your preferences in "./etc/config.cmake" -#-------------------------------------------------------------------------- - - -# Generic useful macro -# ----------------------- -macro(PROJECT_TARGET_ADD TARGET_NAME) - set_property(GLOBAL APPEND PROPERTY PROJECT_TARGETS ${TARGET_NAME}) - set(TARGET_NAME ${TARGET_NAME}) -endmacro(PROJECT_TARGET_ADD) - -# Check GCC minimal version version -if (gcc_minimal_version) - message ("-- Check gcc_minimal_version (found gcc version ${CMAKE_C_COMPILER_VERSION}) (found g++ version ${CMAKE_CXX_COMPILER_VERSION})") -if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${gcc_minimal_version} OR CMAKE_C_COMPILER_VERSION VERSION_LESS ${gcc_minimal_version}) - message(FATAL_ERROR "**** FATAL: Require at least gcc-${gcc_minimal_version} please set CMAKE_C[XX]_COMPILER") -endif() -endif(gcc_minimal_version) - -macro(defstr name value) - add_definitions(-D${name}=${value}) -endmacro(defstr) - -# WGT packaging -macro(project_targets_populate) - add_custom_target(MAIN_POPULATE) - get_property(PROJECT_TARGETS GLOBAL PROPERTY PROJECT_TARGETS) - foreach(TARGET ${PROJECT_TARGETS}) - get_target_property(T ${TARGET} LABELS) - if(T) - # Declaration of a custom command that will populate widget tree with the target - set(POPULE_WIDGET_TARGET "project_populate_${TARGET}") - - get_target_property(P ${TARGET} PREFIX) - get_target_property(BD ${TARGET} BINARY_DIR) - get_target_property(OUT ${TARGET} OUTPUT_NAME) - - if(P MATCHES "NOTFOUND$") - if (${T} STREQUAL "BINDING") - set(P "lib") - else() - set(P "") - endif() - endif() - - if(${T} STREQUAL "BINDING") - add_custom_command(OUTPUT ${WIDGET_LIBDIR}/${P}${TARGET}.so - DEPENDS ${TARGET} - COMMAND mkdir -p ${WIDGET_LIBDIR} - COMMAND cp ${BD}/${P}${OUT}.so ${WIDGET_LIBDIR} - ) - add_custom_target(${POPULE_WIDGET_TARGET} DEPENDS ${WIDGET_LIBDIR}/${P}${TARGET}.so) - add_dependencies(MAIN_POPULATE ${POPULE_WIDGET_TARGET}) - elseif(${T} STREQUAL "EXECUTABLE") - add_custom_command(OUTPUT ${WIDGET_BINDIR}/${P}${TARGET} - DEPENDS ${TARGET} - COMMAND mkdir -p ${WIDGET_BINDIR} - COMMAND cp ${BD}/${P}${OUT} ${WIDGET_BINDIR} - ) - add_custom_target(${POPULE_WIDGET_TARGET} DEPENDS ${WIDGET_BINDIR}/${P}${TARGET}) - add_dependencies(MAIN_POPULATE ${POPULE_WIDGET_TARGET}) - elseif(${T} STREQUAL "HTDOCS") - add_custom_command(OUTPUT ${WIDGET_HTTPDIR} - DEPENDS ${TARGET} - COMMAND cp -r ${BD}/${P}${OUT} ${WIDGET_HTTPDIR} - ) - add_custom_target(${POPULE_WIDGET_TARGET} DEPENDS ${WIDGET_HTTPDIR}) - add_dependencies(MAIN_POPULATE ${POPULE_WIDGET_TARGET}) - elseif(${T} STREQUAL "DATA") - add_custom_command(OUTPUT ${WIDGET_DATADIR} - DEPENDS ${TARGET} - COMMAND cp -r ${BD}/${P}${OUT} ${WIDGET_DATADIR} - ) - add_custom_target(${POPULE_WIDGET_TARGET} DEPENDS ${WIDGET_HTTPDIR}) - add_dependencies(MAIN_POPULATE ${POPULE_WIDGET_TARGET}) - endif(${T} STREQUAL "BINDING") -# elseif(${CMAKE_BUILD_TYPE} MATCHES "[Dd][Ee][Bb][Uu][Gg]") -# MESSAGE(WARNING "This target, ${TARGET}, will be not be included in the package.") - endif() - endforeach() -endmacro(project_targets_populate) - -macro(project_package_build) - if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_WGT_DIR}/config.xml.in OR NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_WGT_DIR}/${PROJECT_ICON}.in) - MESSAGE(FATAL_ERROR "Missing mandatory files: you need config.xml.in and ${PROJECT_ICON}.in files in ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_WGT_DIR} folder.") - endif() - - if(NOT EXISTS ${WIDGET_DIR}/config.xml.in OR NOT EXISTS ${WIDGET_DIR}/${PROJECT_ICON}.in) - configure_file(${PROJECT_WGT_DIR}/config.xml.in ${WIDGET_DIR}/config.xml) - file(COPY ${PROJECT_WGT_DIR}/${PROJECT_ICON}.in DESTINATION ${WIDGET_DIR}/${PROJECT_ICON}) - endif(NOT EXISTS ${WIDGET_DIR}/config.xml.in OR NOT EXISTS ${WIDGET_DIR}/${PROJECT_ICON}.in) - - file(GLOB PROJECT_CONF_FILES "${PROJECT_WGT_DIR}/etc/*") - if(${PROJECT_CONF_FILES}) - file(COPY "${PROJECT_WGT_DIR}/etc/*" DESTINATION ${WIDGET_ETCDIR}/) - endif(${PROJECT_CONF_FILES}) - - add_custom_command(OUTPUT ${PROJECT_NAME}.wgt - DEPENDS ${PROJECT_TARGETS} - COMMAND wgtpkg-pack -f -o ${PROJECT_NAME}.wgt ${WIDGET_DIR} - ) - - add_custom_target(widget DEPENDS ${PROJECT_NAME}.wgt) - add_dependencies(widget MAIN_POPULATE) - set(ADDITIONAL_MAKE_CLEAN_FILES, "${PROJECT_NAME}.wgt") - - if(WIDGET_MESSAGE) - add_custom_command(TARGET widget - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --cyan "++ ${WIDGET_MESSAGE}") - endif() -endmacro(project_package_build) - -macro(project_subdirs_add) - if(${ARGV0}) - file(GLOB filelist "${ARGV0}") - else() - file(GLOB filelist "*") - endif(${ARGV0}) - - foreach(filename ${filelist}) - if(EXISTS "${filename}/CMakeLists.txt") - add_subdirectory(${filename}) - endif(EXISTS "${filename}/CMakeLists.txt") - endforeach() -endmacro(project_subdirs_add) - -set(CMAKE_BUILD_TYPE Debug CACHE STRING "the type of build") -set(CMAKE_POSITION_INDEPENDENT_CODE ON) -set(CMP0048 1) - -# Include project configuration -# ------------------------------ -project(${PROJECT_NAME} VERSION ${PROJECT_VERSION} LANGUAGES ${PROJECT_LANGUAGES}) -set(PROJECT_WGT_DIR "packaging/wgt" CACHE PATH "Subpath to the widget directory") -set(PROJECT_LIBDIR "libs" CACHE PATH "Subpath to libraries") -set(PROJECT_RESOURCES "data" CACHE PATH "Subpath to data") - -INCLUDE(FindPkgConfig) -INCLUDE(CheckIncludeFiles) -INCLUDE(CheckLibraryExists) -INCLUDE(GNUInstallDirs) - -# Default compilation options -############################################################################ -link_libraries(-Wl,--as-needed -Wl,--gc-sections) -add_compile_options(-Wall -Wextra -Wconversion) -add_compile_options(-Wno-unused-parameter) # frankly not using a parameter does it care? -add_compile_options(-Wno-sign-compare -Wno-sign-conversion) -add_compile_options(-Werror=maybe-uninitialized) -add_compile_options(-Werror=implicit-function-declaration) -add_compile_options(-ffunction-sections -fdata-sections) -add_compile_options(-fPIC) -add_compile_options(-g) - -set(CMAKE_C_FLAGS_PROFILING "-g -O2 -pg -Wp,-U_FORTIFY_SOURCE" CACHE STRING "Flags for profiling") -set(CMAKE_C_FLAGS_DEBUG "-g -O2 -ggdb -Wp,-U_FORTIFY_SOURCE" CACHE STRING "Flags for debugging") -set(CMAKE_C_FLAGS_RELEASE "-O2" CACHE STRING "Flags for releasing") -set(CMAKE_C_FLAGS_CCOV "-g -O2 --coverage" CACHE STRING "Flags for coverage test") - -set(CMAKE_CXX_FLAGS_PROFILING "-g -O0 -pg -Wp,-U_FORTIFY_SOURCE") -set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -ggdb -Wp,-U_FORTIFY_SOURCE") -set(CMAKE_CXX_FLAGS_RELEASE "-g -O2") -set(CMAKE_CXX_FLAGS_CCOV "-g -O2 --coverage") - -set(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/Install" CACHE PATH "The path where to install") - -# (BUG!!!) as PKG_CONFIG_PATH does not work [should be en env variable] -set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON CACHE BOOLEAN "Flag for using prefix path") - -# Loop on required package and add options -foreach (PKG_CONFIG ${PKG_REQUIRED_LIST}) - PKG_CHECK_MODULES(${PKG_CONFIG} REQUIRED ${PKG_CONFIG}) - - INCLUDE_DIRECTORIES(${${PKG_CONFIG}_INCLUDE_DIRS}) - list (APPEND link_libraries ${${PKG_CONFIG}_LIBRARIES}) - add_compile_options (${${PKG_CONFIG}_CFLAGS}) -endforeach(PKG_CONFIG) - -# Optional LibEfence Malloc debug library -IF(CMAKE_BUILD_TYPE MATCHES DEBUG) -CHECK_LIBRARY_EXISTS(efence malloc "" HAVE_LIBEFENCE) -IF(HAVE_LIBEFENCE) - MESSAGE(STATUS "Linking with ElectricFence for debugging purposes...") - SET(libefence_LIBRARIES "-lefence") - list (APPEND link_libraries ${libefence_LIBRARIES}) -ENDIF(HAVE_LIBEFENCE) -ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG) - -# set default include directories -INCLUDE_DIRECTORIES(${EXTRA_INCLUDE_DIRS}) - -# If no install dir try to guess some smart default -if(BINDINGS_INSTALL_PREFIX) - set(BINDINGS_INSTALL_DIR ${BINDINGS_INSTALL_PREFIX}/${PROJECT_NAME}) -else() - set(BINDINGS_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}) -endif() - -# Define a default package directory -if(WIDGET_PREFIX) - set(WIDGET_DIR ${WIDGET_PREFIX}/package) -else() - set(WIDGET_DIR ${CMAKE_CURRENT_BINARY_DIR}/package) -endif() - -# and their subsequent subdir -set(WIDGET_BINDIR ${WIDGET_DIR}/bin) -set(WIDGET_ETCDIR ${WIDGET_DIR}/etc) -set(WIDGET_LIBDIR ${WIDGET_DIR}/lib) -set(WIDGET_HTTPDIR ${WIDGET_DIR}/htdocs) -set(WIDGET_DATADIR ${WIDGET_DIR}/data) - -# Default Linkflag -if(NOT BINDINGS_LINK_FLAG) - set(BINDINGS_LINK_FLAG "-Wl,--version-script=${CMAKE_SOURCE_DIR}/etc/export.map") -endif() - -# Add a dummy target to enable global dependency order -# ----------------------------------------------------- -if(EXTRA_DEPENDENCIES_ORDER) - set(DEPENDENCIES_TARGET ${PROJECT_NAME}_extra_dependencies) - add_custom_target(${DEPENDENCIES_TARGET} ALL - DEPENDS ${EXTRA_DEPENDENCY_ORDER} - ) -endif() - -# Print developer helper message when build is done -# ------------------------------------------------------- -macro(project_closing_msg) - get_property(PROJECT_TARGETS_SET GLOBAL PROPERTY PROJECT_TARGETS SET) - get_property(PROJECT_TARGETS GLOBAL PROPERTY PROJECT_TARGETS) - if(CLOSING_MESSAGE AND ${PROJECT_TARGETS_SET}) - add_custom_target(${PROJECT_NAME}_build_done ALL - COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --cyan "++ ${CLOSING_MESSAGE}" - ) - add_dependencies(${PROJECT_NAME}_build_done - ${DEPENDENCIES_TARGET} ${PROJECT_TARGETS}) - endif() -endmacro() diff --git a/templates/html5/packaging/wgt/config.xml.in b/templates/html5/packaging/wgt/config.xml.in deleted file mode 100644 index 26f4664..0000000 --- a/templates/html5/packaging/wgt/config.xml.in +++ /dev/null @@ -1,11 +0,0 @@ - - - @PROJECT_NAME@ - - - @PROJECT_DESCRIPTION@ - @PROJECT_AUTHOR@ <@PROJECT_AUTHOR_MAIL@> - APL 2.0 - - - diff --git a/templates/html5/packaging/wgt/icon.png.in b/templates/html5/packaging/wgt/icon.png.in deleted file mode 100644 index a3573efbf6b2e912ee65933f34b79ce2ca61cf23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6848 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 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -BUILD_DIR := build -PACKAGING_DIR := packaging/wgt - -VPATH = etc:$(PACKAGING_DIR):$(PACKAGING_DIR)/etc:$(BUILD_DIR) - -.PHONY: all clean mrproper package - -all: build - -clean: - @([ -d ${BUILD_DIR} ] && make -C ${BUILD_DIR} clean) || echo Nothing to clean - -mrproper: - @rm -rf ${BUILD_DIR} - -build: ${BUILD_DIR}/Makefile - @cmake --build ${BUILD_DIR} --target all - -package: config.xml.in icon.png.in build | $(PKG_FILELIST) - @mkdir -p ${BUILD_DIR}/$@/bin - @mkdir -p ${BUILD_DIR}/$@/etc - @mkdir -p ${BUILD_DIR}/$@/lib - @mkdir -p ${BUILD_DIR}/$@/htdocs - @mkdir -p ${BUILD_DIR}/$@/data - @mkdir -p package - @cmake --build ${BUILD_DIR} --target widget - @cp ${BUILD_DIR}/*wgt package - -${BUILD_DIR}/Makefile: - @[ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR} - @[ -f ${BUILD_DIR}/Makefile ] || (cd ${BUILD_DIR} && cmake ${CMAKE_OPTS} ..) diff --git a/templates/hybrid-html5/CMakeLists.txt b/templates/hybrid-html5/CMakeLists.txt deleted file mode 100644 index 1ddb659..0000000 --- a/templates/hybrid-html5/CMakeLists.txt +++ /dev/null @@ -1,33 +0,0 @@ -########################################################################### -# Copyright 2015, 2016, 2017 IoT.bzh -# -# author: Romain Forlot -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -########################################################################### - -CMAKE_MINIMUM_REQUIRED(VERSION 3.3) - -include(${CMAKE_CURRENT_SOURCE_DIR}/etc/config.cmake) -include(${CMAKE_CURRENT_SOURCE_DIR}/etc/macros.cmake) - -# Will add each subdirs with a CMakeLists.txt file -project_subdirs_add() - -# Populate each target with LABELS specified. -project_targets_populate() -# Build package widget once populated. -project_package_build() - -#Display CLOSING_MESSAGE specified in config.cmake file. -project_closing_msg() diff --git a/templates/hybrid-html5/README.md b/templates/hybrid-html5/README.md deleted file mode 100644 index f9119a6..0000000 --- a/templates/hybrid-html5/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# Template Hybrid HTML5 Application for Application Framework Binder - -## Setup - -Install HTML5 development toolchain on your host - -``` -$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - -$ sudo apt-get install nodejs -$ sudo npm install --global gulp - -``` - -Then install NodeJS dependencies - -``` -$ cd html5 # or the project directory -$ npm install -``` - -## Overload ./app/etc/AppDefaults.js with '.noderc.js' - -``` - var config= { - APPNAME : 'xxxxxx-hybrid-html5', // AppName is use as main Angular Module name - FRONTEND: "Frontend", // HTML5 frontend [no leading ./] - BACKEND : "Backend", // NodeJS Rest API [no leading ./] - URLBASE : '/opa/', // HTML basedir when running in production [should end with a /] - APIBASE : '/api/', // Api url base dir [should end with a /] - }; - module.exports = config; -``` - -WARNING: in current development version Frontend/services/AppConfig.js is not updated automatically -you should manually assert that backend config is in sync with frontend config. - -## Build widget - -``` -$ mkdir build && cd build -$ cmake .. -$ make -``` - -This should give a .wgt file ready to be deployed on the target. - -## Deploy application package - -Run: - -``` -$ scp *.wgt root@$BOARDIP:~/ -$ ssh root@$BOARDIP -# afm-util install xxxxxx-hybrid-html5.wgt -# afm-util start xxxxxx-hybrid-html5@0.1 -``` - diff --git a/templates/hybrid-html5/app/CMakeLists.txt b/templates/hybrid-html5/app/CMakeLists.txt deleted file mode 100644 index eb70a1b..0000000 --- a/templates/hybrid-html5/app/CMakeLists.txt +++ /dev/null @@ -1,51 +0,0 @@ -########################################################################### -# Copyright 2015, 2016, 2017 IoT.bzh -# -# author: Romain Forlot -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -########################################################################### - -# Project target list -# -------------------- -# Add target to project dependency list. Name specified as argument will be -# added to the project target list and the variable ${TARGET_NAME} become -# available with that value. -PROJECT_TARGET_ADD(hybrid-html5-example) - - # Define project Targets - add_custom_command(OUTPUT dist.prod - DEPENDS ${TARGET_NAME} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMAND [ -d app/dist.prod ] && npm install - COMMAND [ -d app/dist.prod ] && gulp widget-config-prod - COMMAND cp -r dist.prod ${CMAKE_CURRENT_BINARY_DIR}) - - add_custom_target(${TARGET_NAME} ALL DEPENDS dist.prod) - - # Targets properties - # ------------------ - # Target properties will be used to build package tree that will be - # built using project_package_build. - # OUTPUT_NAME: Depends what is the name of your output file, it is - # mandatory to specify which is its name with target the property - # OUTPUT_NAME for your target. If file name is same of your target then - # use variable ${TARGET_NAME}. - # LABELS: Choose between "BINDING", "HTDOCS", "EXECUTABLE" depending of - # the type of your target. - # PREFIX: This prefix will be added on the output file name specify with - # OUTPUT_NAME. By default, there isn't PREFIX on target except on - # library target with is "lib". - SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES - LABELS "HTDOCS" - OUTPUT_NAME dist.prod) diff --git a/templates/hybrid-html5/app/Frontend/app.js b/templates/hybrid-html5/app/Frontend/app.js deleted file mode 100644 index 976959b..0000000 --- a/templates/hybrid-html5/app/Frontend/app.js +++ /dev/null @@ -1,55 +0,0 @@ -(function() { - 'use strict'; - - function ParseQueryString () { - var qd = {}; - location.search.substr(1).split("&").forEach(function(item) { - var k = item.split("=")[0]; - var v = decodeURIComponent(item.split("=")[1]); - if (k in qd) qd[k].push(v); else qd[k] = [v]; - }); - return qd; - } - - angular.module('@@APPNAME@@', [ // Warning: Appname should fit with gulpfile.js & index.html - 'ui.router', - 'ngAnimate', - - //foundation - 'foundation', - 'foundation.dynamicRouting', - 'foundation.dynamicRouting.animations', - - // external components - 'ui-notification', - - // Application Components - 'AppConfig', - 'JQueryEmu', - 'SampleHomeModule', - 'LinkButton', - 'TokenRefresh', - 'RangeSlider', - 'ModalNotification' - ]) - .value ('urlquery', ParseQueryString()) - .config(config) - .run(run) - ; - - config.$inject = ['$urlRouterProvider', '$locationProvider']; - - function config($urlProvider, $locationProvider, AppConfig) { - $urlProvider.otherwise('/sample-home'); - - // https://docs.angularjs.org/error/$location/nobase - $locationProvider.html5Mode(true).hashPrefix('!'); - - } - - function run() { - FastClick.attach(document.body); - } - -console.log ("opa=@@APPNAME@@ Loaded"); -})(); diff --git a/templates/hybrid-html5/app/Frontend/etc/AppConfig.js b/templates/hybrid-html5/app/Frontend/etc/AppConfig.js deleted file mode 100644 index 382c0a3..0000000 --- a/templates/hybrid-html5/app/Frontend/etc/AppConfig.js +++ /dev/null @@ -1,65 +0,0 @@ -(function () { - 'use strict'; - - // _all modules only reference dependencies - angular.module('AppConfig', []) - - // Factory is a singleton and share its context within all instances. - .factory('AppConfig', function (urlquery) { - - var myConfig = { - paths: { // Warning paths should end with / - image : 'images/', - avatar: 'images/avatars/' - }, - - session: { // Those data are updated by session service - initial : urlquery.token || '123456789', // typical dev initial token - timeout : 3600, // timeout is updated client sessin context creation - pingrate: 30, // Ping rate to check if server is still alive - uuid : '', // uuid map with cookie or long term session access key - token : '' // will be returned from authentication - } - }; - - return myConfig; - }) - - // Factory is a singleton and share its context within all instances. - .factory('AppCall', function ($http, AppConfig, $log) { - - var myCalls = { - get : function(plugin, action, query, cbresponse, cberror) { - - var onerror = function(response) { - if (cberror) cberror(response.data, response.status, response.config); - else cbresponse(response.data, response.status, response.config); - }; - - var onsuccess =function(response) { - if (!response.data || !response.data.request) { - onerror (response); - return; - } - - var request=response.data.request; - - // if token was updated keep it within application cache - if (request.token) AppConfig.session.token = request.token; - if (request.uuid) AppConfig.session.uuid = request.uuid; - if (request.timeout) AppConfig.session.timeout = request.timeout; - - cbresponse(response.data, response.status, response.config); - }; - - - if (!query.token) query.token = AppConfig.session.token; // add token to provided query - if (!query.reqid) query.reqid = action; // use action as default requestID - var handle= $http.get('/api/' + plugin + '/' + action , {params: query}).then(onsuccess, onerror); - - } - }; - return myCalls; - }); - -})(); \ No newline at end of file diff --git a/templates/hybrid-html5/app/Frontend/etc/routes.js b/templates/hybrid-html5/app/Frontend/etc/routes.js deleted file mode 100644 index 0df3030..0000000 --- a/templates/hybrid-html5/app/Frontend/etc/routes.js +++ /dev/null @@ -1 +0,0 @@ -var foundationRoutes = [{"name":"SampleHome","url":"/sample-home","controller":"SampleHomeController as ctrl","animationIn":"slideInRight","path":"pages/SampleHome/SampleHome.html"}]; diff --git a/templates/hybrid-html5/app/Frontend/favicon.ico b/templates/hybrid-html5/app/Frontend/favicon.ico deleted file mode 100644 index eeb7ab7a0612f56c8f115cb25eaf2b39c89ca690..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmb_bOH30{6n#TW6{x0GD3wAfpJ}Hvg9cpim5&HfkQNH1En9!f zd^95EBjCcAm}rb~DGR|JCbGeW2#dy*L=z3f0`=U22BYk}lQZ|d^WM4dzB_jq&6{yAfAdxNQiAArmJ~fK7kH==*xFb|fb_kPZ%;sao-ti+os?+WuNE@YSzC{%L?>ILs^v6(jk<; zyOLOR6q*I_{?sjo)8PtLEcOS_T(A2zM*hWgHtPEkTxD&{?vr#MKzx5<5$wRS!}N$G6K}6WPkMaDz*AXzJ*lBdsgS{eX-g%AbEaZB^`(c z!q>0~{x5?z$U*O*7+%Tk%hH(2KxP7|KoUUz-d5nB23?THf3h9pdf)}V^%L}SN2jIY zFnU-%5NQn!1Q-iqnX%<1#%A*w8*6541Qq&%KW(vqu_fGg#SV{dU%HKPJT!U08^(SD DsKEJf diff --git a/templates/hybrid-html5/app/Frontend/images/avatars/istoobig.jpg b/templates/hybrid-html5/app/Frontend/images/avatars/istoobig.jpg deleted file mode 100644 index da0f255a923b36eb143693f2db09b6385afd3487..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7204 zcmb7oby!qi(Er_F31MOBW|3~BQ#z$VkVd*2r5gmKC6tr~1p#T04kZOyI;4@1Qj`#Q z7yUlJ_x<-bd-vIMX6`+Eo|(^lX70I}y;%VWR25Ye0T2iTD5F2X%>p0?V8bx6Fk#qO zSXekX*mvM$_;5TtI5jZ|g6u9W0|PxR63N6a$i>9M$BIO9OY!gti%LjHFmlN%%7`fn zic5&zE&{^A!GYt#sqpcsM46GyqW|A=(*q!|fDxb$0zv>_1PFov-Sh!e00;m>(7XL# zfj~iE3>YTbNQu^?ZU5H@0z;q}u$y@R7lM9}073u&px@{(0u*66`)>^l!f}q&7ZiUd zAkd>^asftOW1+uOJtPdSJ<9@%>bjj`@YRSY5%1FU47QB_HG8>`yyc^w?8s!f8o=^<4#0?-HaB%0R0}=peHA_1lyvvo? zwtsrgGd}j@$1e{D{I+4G!VguJRci@r?fL3I1Ud}?5XFYr&Uzc$2g#>QSDIXveF=_L z(Tx|L&YVyHz|w>)Xy88-CtsNG zT0nUjTi{I6v7Yk(UUto$*XTm;lOzdyAul>_;Az-y)^(L8@3|JdHr_l z8$cW2xHvGaIukb&Q$pS5t4ZcNPs(0vSm9e|IKmvwao?)6V=`+Y6o)yoOzKghW%}Bv z?WiqV9Ho++Xt&}qUIvF`pslL9VIoRH8bjoPVG<38Redr`{xH~cnP0E>9;3?)wvF1x|`J8d?BjpAslM2ab6v=)Q)zfBOEUvM9D6rHF0L0e;dR+sb ztiI^t#r=Rr)vk!r>5ho8(boVF@p;F$ovIHnNTN0GBjZ*dhFrw9n^NAd_a7*ggxhF8 znn^mST0?YR^$lE{U;aGzM*kX21ej!$v|ww{hV<=}l{h**5{RjsEN%JH_#D=!U@0PU zTAMZI<;7t-uoPlIn`9P{MZ(|2KlJ5YirEB4^1RjVJD*ZKHL7eXneK+HY5&nT>RH^s z^lyMC0hB5FPM$`L3ap!ET#0YE$QgK5trurr7~fM-Dd1FF=v$aUcGK!s6cpgOH2y?U z@Htu!##i&TWoJ{F3Dtz46NiNW06{?z=xy@+%N{U*o+1bci7=4#yu|nT?n*Q8qq7JL zZ3bb05BX;oux8){%I7x#d5B$lI)ke=>FN!D`#I)guZ@ij+)#isH;?gieo+2E;{J%F zYAyNIf#JiiU+r!HNwJYc68wsTP|migYUZ<(x7SzG+woAko=(VYC9kTENwKCzJP(F* zg=HGbR6|*Vp8|6xq{5k%qELn<7m$M^cMS;m(>*I1)exhC*cA(ji@|wsQNHs{5u54^ zFJ=-4nXB*49yR{=s>3Gq(Er+7>URw)~sY*5~NIlS7}2+N#`N{|^}eTJG<$E% z{~62|>pT@gYqX?tt^c4SXhXL}SB3kOIrfs_>UOGdiTY3{HZ(NEa!ghzn2r|n+9k3G z)OFFt;RTl|imP70TccFS7Gmi_H{4XHD0_~giRquT|27rAX#9!h-TTywbI;gb6p%c` zSU1;_mQjSkwI)bXL_C8baiA(ZzjCf#R3X71N3X%wFH%Z8vLEf&FF2Svnl4$fgiv;J zM5wVUU=@%UAI*!UcRqt^m&Hmb7pfDknW%L0ax?WcCo5(#P81|yu^Qu72q#o@OE@J^ zI}{%GHD}_im^_H}V15prC{5sHCdT{L^W;ZVR8;gMo2aPB{p{KXH2zu96$XuWbPiyk z>F=+A5MT(BfROhdJ(TFK44<^D_G9!;aEIDoGzkeQ2%Eq zi8yAvc9gqIdh0F?2JuvSY*wDz5tB2QkEWa6L{VrJ;FKo$z)vpND`sZTgwmEn>{^r$ zLNFcg$qiIa8yMuU?dKrO1Mv+RtDzdiNgeR%_sU;!_M-Ff(f;E?-0}w)1_psK|8pO@ zN+SrN^aMmm-h0|;2V!^-Gw{pmScLs`BKV&Z{haQ!AqXTQE#ONr;S#^^Mqg`aEJ-$W zVlK1Lv69k^-2koE<|TIqnJOxoEVHe8xSWf87;T;fqj;AOG#?d8mPKFDQZ^3?`THFS$fI!6aONml(aC4rr$VXyGS}#=wJ3t2_S*z))M+t@MjgJR3CSL zugRsG-Es0{tF*tA#+eiCE*whLx!%xS9$Wd9#C9Cfo|y4mAQlft<<98u*BRGLj#SRO zlSx@96+7B9frys)-Kg2Qbt*nqUNSlvQcS?8_HoVq7YbRLRz}X{^Y@0TRL9w0SaFlK zz}4fMjW)9xzIb{3=+(FoNV24azb`_DPyULS?*R*RJv}LWy~irfE0_5Tn9)g#kZ}pc zYPMc`m4H){4Cm1aHg zYFlSyVER-2im&e0%wdFS;xp@YEq{A!);JZ*>*vHdSOQf>_3*u)hkd_j-ZwZ-RZnIg zbMMUbK0o76(Zvk{hG0UV=*ID1Zln822qBXG9+ZISF0YI>-(wGH*{~EH zO9riiiT|n`ObYz*prqe3-Kit>2AIY@rIUAmc~Gar?-nKL@uNc{%-G{|3xx&O@ywa{ zO3+xO{VZ2ZR2`E>3s>jYrFdlwI1$sZiGQtdwS@N zJ80kn`?^c4YvFpvn(MB-@ie($&3LX?ebn90u30wM-f8UF_oo9?RbK5`Os3s$%x4W> zXm_~k^V+_fTK2bjM?q|^Ik7&lHb(WPt~plbU6Cp3L&nzEE8VbDshD(#aEns#c2%Fn zhS()?`SUPQXD!IX^lklKMlO#1H8<3Ut{l zdx>{?JyBH|DON4{L2Btvuj-qxGH4&^HA;V(aBlB&*w3OKre4-z@TOK*lst?=NBE-?20@#Cdw z4)WJH^b?VhA&)GhC(lIkzLZwe)N&dZyBbvvAL;-Q&9R!Nyf*!;RAj}BYI=I+9#&mx zN|oKq>)RrdF(R1)gk@L5p5OIQ<=-{J<}M<9vFqGmW_8;pMLv$k!h$$|YHong`id_` zQwP7rmxAK$O@_J2=56*>ETqbV-U;oP7XpA4t!X%|l96R}sa9%lU zUB4C)*#n3z4S_02Wfw=!`eBf9)gM{iZ&y6cQ32$6N98|(MqKSh@9Vp~!ZB$HEgh-d zc|c`m7_(PjbC%$tez4sK+V;qILhD7VNoGDXrY$JoNey09^~XQgXOEx1hCL!5zr3D% zn3-@4lKtp0%(>Uy4=rQhQoop)!<(nw=|b#jxDBGh8PuiHuiet7I*VT5{9ZkM8rbIy zOWDDGWPFTYyKGKgET`to&UfmrM>G+B*P*2INXk9bR3h}ZK33`{3DWCN_H^{lk26eP zAH)qu1z&jG!y?1D0^@3CN<#@_Znnb!W4KIkj`VAu<|xt+_&&z%S#@pUncC#;Lb>M zTG32(B1xIb&-Yzzh3Cpq%jWMW`TlG;c$;mS7L&bbB=wKOk&zA5Qq$ zoTDDyo7{n=u}xz(*YO+t$=dO#Fg<=DayW0d>M$`Q`8v11il(|nLwIqaEITm}57wH; z(7Y}O4*fo4Vozl;vOtq|)z2z=0!7qL9@CqBM%hgo#9+&d*)v zB4iKF1vf!Lj=H9L!Z==>t|lR$6rNIe zZk>&1x?{#@X@_QVi<>UKKAiZ(b-*sDTZfMv&Azf3&g3>}@zC+##LX{@JK`6&>DlbB z_G>@*tM^LM;w@GvKT!{KFVV;Oj2UbUZiyqlqoI1!ha%oC6&-<}2r(Bl? zl1L@xM^wK&y(dr}R1iP!OY{i8qOpV9>}BoRz^Y(fbJF#aYzL8=OpK!q{&_5uj7{|;mT;GYHrB>x*=BmWH& zv5E89(DyKV!Z4_BO(_;SUr7BJQ@u1Hp%BJF#;49`B7ybGFkVXEGK#GV3;G2etw~j( zemS@0A8$>l9GRJ{(h((+D);O?dWCZ9RF_EfQOvqa@e5-Wurh}J3?t+QuujDmz5yzj zxLUdZEMsSEFksG@stVX+^D#RxrruWxmnLc+M24DLfvMX4v5~?^iBPeh$smXuM^|dF zGav)}EC8@L`v{f!zGzFKxsC;a<~k7c_WDP4=)XkJ6QEnlTe7R2IFe4WDCqu6b+>If z!3`j)wbB%0&=Q!o5^02>CG01^kXr!f^88v?@fabI_I=xp?YYw7E!}Bn9uv005PnQ( z7FJ%l;zmjEE0i*>G9LW)M=htEf|_Jwm4X$tOH^VYHe9HRuqurjweeiMRrSs_hAZCm zn^=3=%_6nh2c*x#-4(K$Gmz;qOvvR3vffv^HGSH)dV4xm)+ckgztYAPzo!*@Pb?CZ zJ0tVyIm~#<+;sN_ZbEuCGDcwY!>ABV~> zlNvWOLmWb|zmxb$fJtul(p@V^D75Hwwt}1{8|H8Wm~N1|V4BZ0;ccLw63s}G3xBrC zu2)XDZvSz&1g@e}NFmN60S?R!X2Pw|=I~p3`J1FqVjW}hGTsJ5uuHcY{Qk1LeOOGM zLcTONd_Lw|yf^*W^#nZ@uMOGnx_9?HH^&x%$c>{0-4<(~l0(Vv=q4&t5x3 z>T0C%w|;xwk&?o|fz5FNh7E^qVluT4JwE0}_6E-rE+qMa2HiQ?^CfAw2kN@q4V#B~ zPPE$>-=^D4ei$(TrauXPKkUZg^ASJXo2Hm~Om24gaG6EN=^aSb)7?Tr{==3*(`8S( zGXs6lZ2#Le5bjI+(GVDJ%E%$G)CBh6)^f~$@%cAg`|*}FakXgYlgQcC0?wZc8LV^S z3qfZXqiXQb^TF#t`AU+@lGRU4VLM}GQ#;GHRF=)ZUg^qh=f$Wis~#|H)lw};SsRb8 zK)E!c3?W&KO|ked+m=i2e~aP!=JvHu*Jw&%7+Hdv=c7bmaQ>d@8wJGcI_T{kSKWWw zmf;=iV?}~ zxvH9EE+gMpdaX*Yf$67hKQ)o9TDbbXzPkDy3LV_E>F-S9m*S`y576W8P`l^6Hn|;d z@k*@Y@W&vGvV|@{v;M39%6SGppoBS2W7Udzx328^9d*aEhl=(Onq+1wA zsMoMBq`^Mj?yV0B_h zakp|<(^OTZna`QhywlRsvP5oxTRfthBM|r>9{<7-ebNii-?9Y(5)H=!G-dF1uO3VP zzwU@&yPjO#ha58{Sv+tiCAt{-kS#m8~ck(@Jw5O8JLZ+ip=k&W{ zGC>Ud0W*3kPg|$gl2R(v`Xcl5_oF3bkTzOC>pKNykf=U_gT_o+?S2dX&k!jc{F%cf z2Vxp}CEvIYstOp%%&}Ff#f9*BMj8EYE`pJ%sw1-frGyqA!-Bkr&sVqZjtxeDy)4$$ zd@LU*4>yjgdEAQ9c$#WBM}_n!`jqmiU#Pc9m5B|kerGcTDl=JE8T9OsixAwQXS z-LoPboJX(+Y{?k&t?G=urJ(VS(@6{0-KK!!$k5PjL7x=7{ahd4p9F-8S>H4@A*kqL zaOS(-qPo2vk3ijBh>ec$%pX5T*0 zqrm6%Gq@fF=6s<}27wCUjC=8qNK0@XWr|-xqQVUzLi!@vks8XTI4eWeuJRi03nO%{ zQ53+Y9Z8iYwSi`#zFmQVi_1Fg+cr==8O8c#$?P{%zLejW$!3>v*i6Vo2k}vIq4IS5>f3BxY zt!aRt7jwTjLZMECFx1u6pQJa;G&qHEc#A^(sa`me2_C?DCE`N>P!5?i&9R>*bC(|( zZ~Is8o{$fk@t$sGMd2M9a-hzr)6E;8YP;Xb6aQ}Kd(aT*YT-xd4@SsL#KC2nL`Hzz zj8q%ySQ4T1&7$e^3TP>BV4GEF2VS=GAUUKEQ}sL)o}jKCq&=O$i{68}CUj=@i7)k} zI$`qE@JEol_uC5sueT0+FUqSKLX*;}`9l5a1QT%wpGglj3<@sa0D{d%utXg`bK{5i zF`nqy(C~81AZQ;tR3+!xw!7B{$Ynv8MUIle$og{vRG ztp3%RzQZo%vuz#G?dpkRWr1(Iy;Oe9S{mIdAaDbanC;?-K({VdXA6!6LI@N)J~j9i t#nL%{eM!wLA_33DD6GN&<9Itvlqn_B7bzxCk}$>%J1KNi)A!!Y{SP@=$Qb|t diff --git a/templates/hybrid-html5/app/Frontend/images/avatars/istoobig.png b/templates/hybrid-html5/app/Frontend/images/avatars/istoobig.png deleted file mode 100644 index 5614073fba471f30120f612df9b38b25b1648696..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35678 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 z 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�7_$xkT_mmT$z4Hx_? ze;hGG*W|S3L$Q1>rKn;B1jS|hO`7y0pejNkmrY9m>bTc{sp61&QVwzA7coqNIOh8; zYOq*)?a%%KK7K~C_7TWw5hs@&aVlKje@Uy>q2vDW zS8)D?lmrb+%!dq(wkxy9eqqtB=fIssAv;q#^C@Ob-$PIqfq*v+-jaGr0^Dz*0qtta zv%5&?P+mh^T8zu(PQ{nbyRX96*Vlitm+dYXQkr@tbL}}|R_xQbDih)Zh=N_|6wdfO zE$R$jT&mdoLEa(a$zE4F){VQfAbkoQj)*0)!kw89Zw(wt{k*<$e0?=^m^p4u5kSAg zFt{i5clNge97vMd5({!A#?D@9gOi$puqt>~5<64Oi;@oB?8$a7mt~Wmm&ZjtNE7<9 z8$XXFBO|()p%(v2$%%{6$%!EbwWv{3B5zu!){!kTFB8fvMgFpmCguR>aqFSxM*;St zNDx@s!{}d;SR2xTyfw$MQ3sNLr{d%_?jvSU+ZaOB>I#o@9I||0o?h(6pe=tL??}=R z?hj-Q7r8#FKUAmT(ut;^NPL%Y<*)qXPeH+%1nJ-k&55T(IZO4w347=;(rS67$F1>P z$4fn8ZkLp!h$TbxWbaJ+t=hpYbE`^!j@*OXC=QT8Eg*2-SYykgTOTao+0Jw zGwX~=fV{Ci7`_B(fyPe&!t!udiKiBK1+D{JlQh8XNDB}H>E#!B%~lNcOah|wodvRo z_hjWXqWrG`{t~{ZNvG$51C%$DuF&O18x-(N5Rf7|K+2&GzH8-+kg4Sc{POI)j zddKyktf=6=kWY!;wcE+Sce{zqX}Cy#mjKa}{>;Doc7Ll7*?Kg4b{ufDfFmTst6#`8a%5=MY%%7vEI>qexAo@GPJ zCF6xKFX|&sh3DvmeItamb9+0wtmLTp)6dpD+`I8~I0_#a#7E?N*d?HrBJ-u>0(WU{ zk`y#77I$#Ig((N_tT6D#zK9QlN29MI>1nC+{Wn(~oDvtt2`q5z>O<+aM_-$!Eshd~ z?mc>Cb|FhhXU?G#p#yQ(z)~6!?pHSq_Z<$%MajU+ZOvF%dGT;G!{F@L;QXTe%jt)A z2Hh{7lDuRYv;O*bkN1VA8gnl*gWkHgF>Tw1o(uEjzejb}6yM9r#jgY+)-FDwCg6yM zxchX>_vMw7$*=*C1c1!b2~{Fe>eqxq55F6JySC?N#gV&02kx*Bp8T+)t6N0m+W~cO zBvt@Z`2Mda#haejwaxKM zxq<;abQPUL<+PFm$K^^uZw>>#MhKwkMv60M261)(yGD@vy6fc#OPiJSRdj%>MS#@u ztl-F$r9_AO(2Mr5uN(6ef2%tDfpW2akV^t9y+=78D6%c5bgon1O$1ogzcv0-H> z4fgYRa718>9K=80()lz$FNhn^wKxis<)$Ogr{Ee;DSG&5a?|NBurS2tayC**hk>xA zRr?156ZIOFJh)7E>AH!+9?DThtOU`KgkXFMCLE zJ~KfY6%`)4_{*e6n}5D{O-z^)FzYo^cn|C>OG?J>DOJe(DUGY08@2-w=g^^I&0s`W6Gk zd&%ulg9l68bunRoX#lor@!L<$v$8C|n!o9EVoqZpOhiZUM8uunBxH^jj%J2Z6L{^A zfZlODKU(Q_*`K2R;Pm>Ret(`4;ky4dSZnR|rOIfp@I08~f_X@vVpX~Cf1)kvmkIb5 z_9#7`(>XdUVyEkK<=)_{#RrA&4^7oz+y`%hv(9E{Ko1Q79ltZi$iXCYWaI)b{1!RA zDqfT*0e85filzvlQqzkLpfY|&l1M#iAy~77jSG*C8faF|C%0%Fs5x}J`)+<~`kaB1 znmWHgJN-VyV!it7gNy&g$>mrj#^lOK$#{gpQUXsG|E~v{ipGNFFyA*vtfp5ScwEk& zYJOKH-bbh4`fJy38fyf zXs0Oc+>NA}2&axWxtud;L~VHE-VU?gj?zpGim;p)ArD=MvB!`2n8+qgJQ+dmM|uD; zSgvIPTo)3A_7PbYWN&tFMClBX+tcc7+$9Tv7=|4=h`Q>0OuZR@Op=WxL)SOJIP?Q=)pl>y4<`Ef;QQmVL z2gcQ%?;t@Co-nLi)fm)rYCOipLH2$pvwP7&C?B2M5O^NYtE- z$a~wG{PS)<7C5&Ro${vWoL1qYE*W+!n;1f}-@<(0STokJ9Q*GB+5R7XE5z4I`+YmV zP=A!Z?2Z$49R6Y=N(dGsTNJ{-BlY>lRBO6+6!2_LETeT*l_l6ubwR_l?gkWn-SSVh zQl2C+VC-PCEP)4~Rv#N_euS9c*?_e$IhJV;ke9&$8qhaCk&psoW#km0q2>3-?psAN zX)2gEhob5zfOGt#yyq?jxfhFXbp?gjipU!v#g|=V**hY&sY5SyfIFH$+fg`H#EW7q z{`YsiFm9)r>zE(>%MX78a!3qEh?yAeQmp%c87h`OUxgHczvdNQo4mB{O}pz&Yy61% z+0W_a85khH-8yhfpV&YS*xEm`dH>j^>9G_Q7(Tl!YQ8v3kUJr)kH=L9LNliw6yl(E zvvyZ8i3Hu<KFzx1@k#8*`G zgd$5TewKPn^m!Xs?DLKqzjpa}+(U%>Xt*OCbV}`aalD|b=eo)K;L?Tf70Z9h@hi z4`U+<@PSb6ADRxmKim-MGXPb$pV<()s(>L3yH5#bz1JUtJA`03mf%(ekkz!)r7I{< z%L>9appppT?i$#X0n+3TgaGwFLZcM8h^0z=CIT-v{D z-`T|fZ9b;)6$Y&?Mj2B~U?&11) zTeDs0&%gY}$`1H?fw9u+fouxw#|F07YXrux3cwMDHUZ>=uQE5EA50LI&w+c;=?1Vg zWG3Qnp$4(s?(-w|S22vh_JIU=_=g`{G;WeX$KmV%T4y_e?#6;Y?cJN?`DD0Vp7S_# z5)7OD?3cELyf+`|jF#$B)h$!-|>Una0D{KaVx zD>rfKn1tahDtPHf2{8~4Iu)3e#C?G9tJDCJ9I@6=4Q53Fw(GP_ zdO)*K*wX^aaM9nT=;ddaz?d>;f9Uz*mOP;5wxk7jp{dSpxHLIZf-VF?hqrgQgqR!k z_iq67eK}zKMN^LOoffOS+5o(6xdopNz_FgKW#?YhBjFDh`_U7R%r{9v=rsyJ1FvK$ zf)sn|jnXNHMag97uuM>Y_KKxEi*XVV*E-h*ukVY3L@$ONBPKvPUq%f=H!p!}o(?&6 zR^KEDkfhLsG_b^c;W;9eCI*`uH7f|9w@K~72{6|Hycci}Qv*oi8(O3ACJ`dg$_4;G z81s?>Z)g)~iIeO2p`2ZvUYrPPmPP?$p?O8D%xENRf*7*tRO!%8Af`Gd5%rpb4;W){)k37 z`#qc+($?DkF0_Oou)xsF1SP4}#)pJ-IPMuJrv@+H^#XEmKM8Y<3ivE+;%G4^>oIbg zpKd)vfJ7J;lJ})K-kfx!3p($k8?~2H^FZKUZDw0oft=gdL8o<2(JpKjGP7c9$X%0x z1pWmu`1QZ~Xto5gD+v~w0(BpjWrP3&HDQ_w6hpT9{`e><%gh8s$rKZKdthi^HCWE! z`>hf{|KV6o4f2YK8gZ}_X@664nrtRLzEy%U6Zm$m2eij?upiAua{c-`gV9tz*wiK> zqvh#P({$27i^`EMd3LN^qX9l9w4Wict2GKwgUR~qz!BdSc>yo)*!{T&f=$U?v@1=HXPm{g6yy5QlA<@(H;Rd9!#_#!9&R2MWt$` zUdw?MG9XNe9lOs}dmW5@z2zx4w)l(1Ow506<7gE^1_clpmLd)vc%XLb)&*Q)Sf`qr zQj6g8>ohAf+3In~yEYxM3EwBES#PGE9&Tt3*~<@^$5U?#PI(JkKp&n2ppJDH{KrB} z@Bbb2v6uJE=*ssIz_`wkgY4%B5ewk%CkEdEAACTO^^~u=Y-*!~W(6cjWb~Z}M8&BWL-^k%n4gD`tSZh5KOi zV&nnd$u7!5dAIB-=|{Nbfe4_lTCfMIt`c_%HxO%5zyRcM?T-Q|Fg^u8nSkkeqpupL zh^cqD{kNw%O?k)_Lxij<;o@wor@h!BaEB!5;J4B4@lFTV5WCwCmD}wo`~d#Lx0&Mu zNQ9!uQV8l29?vDl3a|O`%X0g= z&y?!qiS*?41ZZsjLtBp*D{*+YEEHG7JHfsJ(K{I0v7k!}dj$%s&<1uxe!}d95de29 zRf?LPrIUuV*h_|(!Emwfh|pmL2>k*+7DZu_9LoCmeSpR1#C5Fas}-(1YL|f%qz@z zjE{dZ5<7(!fWkx&Y@e<{W8^^{=9Yxh{oh6w^^jNno&lSkNxb_O>A^0XPv`_oeVLj% zREVg#6PJik#W2f>;bLizc~!QSY<49VmU9_*?t_y9qtgVdZ5p3hhpCE2y!`8e-ra%| zO_{d=&me(ti@6CsA5B1(zmH+Nm%EASp@)?pl_es4TgOnpe ztBX%Ih1l;9U}WE&hB}j_!lN1a$;H)US*|RQu-raQvif<}!4XZ5v4s_YFe;);ZDY40RRKy*nuBX3%P9&7cBH!L_CrPO&7vKS9y zJA7W8{7VWYlZhbPU|W3guTx%~?TZSVj+avXk1v{joq22bQ=-xbqa>!S0KC&VCJlWTE1GG zI(M=7K4tX*0|tmeg9b6-hYcIX$Diq>Kj44^INLMvDdQh@=%JkTF}noI4{Hw`DFIQy zYe)`o2oR0YqeqL;`;8N)oxO6M9-z(&z^<$SSc$Jd+54i&lPABA1_Ehk5P@gToXLd7 zAmHrTvzg@c0LuC%=y!An=Fsa90E{J^PXBW%If7Gu{9`^L_rw!VG_4-Q09Fv!L54Ww z;6tc?IDvv_JO#pmVjO+nfB)}^6HfYxIOk`}#AVm57B{VZPu%^?4hqsQsK2^X-2ePn zQ3YW2tMa(;S9Ves+)n-BokWzc2wxL%z832>0k9K+4O@1Hj0J=U!8-;_GV59XJq;@B zYnfmDuTK1szWmzVy}e!Z?c0~9;1uD93>hLiIyyMZkCdcGpB|Z75g+75{~iN-7{v!bYKHtB!hqND zz60s~2aFp>ZM;8!7Q_U?(yw1Xam3WQA1%3i=VUD|vko8y0^kY*_sEeWuSFxHQ86t8 z)rNHgX{X5n8)S8?7l1&3+_3!^2f)A}L;jAx<8{0b@5lcgj{zSN7xV#@{X3fMA+Ez2 zfv$8~3 z?IaA_#Y04VhyV@?T`RNXI;|V<$ZI=D6t;=Ao41jD-XYe%fn&FKQik0{Wc!+k_qDiT z%`4)#)6Nrhjjh7vcB2B5Mj#Ln#l^*ki`nz96w_wR68n!oShTgZiJm=s@;2rmd!Igi zOu`QwI8Y28JlG^WvOGu+a#Boi{e!G%3y>e=McV-5h|D_hH@uGb;r;v3|01UFStIB( zhtcQbI=CiC-@A8j(c0R|hp8Mo<@`0)xXcQGvjPy7{6Kwu{X7bk?Fb5}@`w>5xbe}T zPIWgm~HbS6(W`gzpH!@%GVi0mfN?<3%KavS`9{2%@wp93L4 zHv#q$T?J&22`X#Q^*Oj?V4++HDg&IOIO?_R@}8w-2T{GXhz_!;><;qjq(@up#7DcMZj}Ix0*J(R z!0Ui&3w#DX51)&+!1Zu#l%qF^56ad;haiIxbcl}O`;vGJBjS4;BfeDt>gwv43@AsB9zDWBkz5g5WpP#R zc7X0fMRD;99Bk4v4_i@bN7<4}TN)1PeJbm#%&$lvE_3MuU=4a8odVDWAishV0VxDwA>Y$8 z3PMCib{iO~J3*vY#6|{3dp1(Lg5W4O+8S*RlB500DWlsF9hn{Rqm$k5_wzZ5M0j>s z^1zfcwK$9@0+9keRiyoQ6o9bgC-|vx4y8ufh6X}I0cbQdo)QK$suBk@G#VTYj{ra* zKqShgNK{FYKxRMyv6G;HLU1XY8)9*_jAymA3OZ?{!J6H5yR5RR9ih@C06OVRpk6Ep z*G)h@ngCfPAjUdS?~23>B66(++6F*7>EuTHf#6n>BN@a(be-%P;f2fPVo;sjNthtx zFBTEV3P2nJ5I6Y=0YZ?_$L01eaR>6=b9;Ot$6Kk!WMR<6p^HEe@+dHLflw|&i3EZQ z!KK^;0#AvB3Qi>&4S;kQfC~CZedwr!u>(GvkS+l*2`RIy3DkikrU^+<6I5SS5~x1~ z)Te?@U;y>5fOb%%R>W51)(H+k?Cpqd&FXeU*9dRLOc{ILWJMq=0MP{?R`LTmgxo;G z(2ih3hwxYQ6rO@A;qvEoX;dJbKq&VR;vg(8!s;Y+u`mTg6AfKBlz7;o(heF)tVFRQ zT>?-piD^P3XsINq2}x8Ps-AS>D)QIK+L7Fj=vJ~vssooVxYgzH zBJ+=yG3Sp{1hN7U%M#xh1wfHs7XT(dABsHOtl_Bdw zhhA4fS$|d%>(DK_6{?LQkvtZ%BR1TWG`xj1f?`Po>W5Gabqtj;7Ssel7lDLaKvn>p z$^It!3HgKqe|6t>5`c$;%_9Xl0*1d~i161B7XG?H!dKZ#cuN{s5Zr-$;i4`>#0+2) zM3IETDi*q6=%Nu00V^!z2#0hD0ADZ4J@~cz)nP|ohE{js$ZSQpc8N}Mt!>d=3>J`E ztQ5Yo9-J)TAah#B5XOpNkC7))ywu4Uvx-1cE+8ua&Sw97i9$k=zjnaB!RApS&@|j2 ze*GZfuN_DjApAA`3{>|OK5B3%y|<*1yA1A}Vs;5GcYKR!A_b$JSVV%yiZJA`A}qO* z0J1r3KE^OG2#J}Bc!`<_fs-M1*fydzMVHW>TS^(emI&X>g!k7`Ow$D5V3P1|7zY+kl{LO*J;WGnG`x*`a#INn&N&G4zepNfUf!^#0 ze3d;}2z(W7ypqo6^9Y~cO(by9?;tRO(7DVSZ}7*092=XREYMHKfE`BqF++jr%S6hS z3U?B@e)r)vL))PZyVMC|@#;jUvBK#lCHkr}_50-(wuzQ=2jJrHmU9|FZ~kUbhYgL@xG zg&`T}qvcKkBlnnzK=#Ml1T13e4)>}P-GFjh(SdgM`P|f1AyM#o4HqDVAlNL)-#Gj@ zatKW^2tYh8AS(bi0^o8`019;hAe8#6+B*VGBS_7M8p=<^N23RVMs|0*okym`!8(ub z1Tg21wFn?TRxM(ccmXl+`>EUG3y=tmx}D;tuZ*Qa2L-^D6#!=hAQ;5~6iERn z@s>2Sl9fBg>+=hLz{BdFiU3MXAUZ|D{5u}xaV7R7pLLDB6Ts?2^!u@F8RW;a4oMMO z-W%Vut1G!vMew-9z~}mwuuH~KI0q2S3PAUB00mYTKn=N*@PC;Os#pPmVryDdD?CLt z!c$nygOeDg_T*OxPhJ_rom;{KmhPM);SLrGcc6gDsvePb3V22V&oJ=LIr4dVmoLW{ zD8+zUAfHFkxeUP~qfAsbPhP1}R+JfK$31u`%lh16Z)po4;CKDg<92qa0<;!bj!umNv?A)*EFmu457NLc~1oG&rx+3QHj1 z`d_cx^;uQ`x~Bk`B7lsa9P!;LLgGT;vlW77gMc6+W-lsxiC|fisH$%kLpz3XrshYO zCrwHUyfxO5M~d+z1P!h2B2dwy5x<9p_;n5wzk9WX#Svr$AOixRPXmUCfY;;t%@XKe@oG25 zAf695)=Km@M#nL0B42Un9}lHS1e4KFS5+d-e*_JJA-dZ>d}G5Bm9&tN^4|0J^vUs`QU2>wk_$ zNHo~6v=#dR-f+VWV)N$B;({4oOp@ZpCaiogH;@8WNN z`Mw}sSG~4Z(h6L_IOP<5IQzsbO}IUb_47P z`txF!0ED1!5EC9hcV_$n<{~LST!fkR+id#!mOefPD&x-j&JY$)9HP5}Ltw7I{(ABF z1AKs7u!~ZAS9+)v8(c7980Otk3)&+q4ROw$N z8fX~Y!Wjauyz+`k_DH0+5+9C0C;z+ezAN5&=N<8Aq#!VONwmuPAV0Exn?`5^m zmp;;CKLnf!0T=e(d+&*FzWF9$;Q#SC_&j`WqHQ6^2DVyaH!A=M3P2|L_K;Q}~0!j#Kq$5y-m*0Id>-#Gd`St$3ZuzyWFQ@iAY0CJRkyy5D8Q1gf z-MbwJJ{O;l>m=3|+$H!l)*XVf0ua9o@FYThJk5qP0-t;Cxe#LO1Xmwhq!1?{}e{T~1jW^y9uf6sfcPrpB9(w2@K5GEayr)70d?6yxz=ZX&8|a)a^viC6 zNp$VIF~}#Mg(wI4TkOeS)Rp|{AU=fqs;jQzw%f5|N6LZg;CkU5T*SfJ|HHUI_Fbg& zn!1pmiO=M(Obhw3p$HCnK^0I?Oh6+m(YMRsI)J<|iPzWOSY{^gfn7B9Z|qDg!>4-67M{q)m3!+>Y%Qy~I= zT?Ay8z;FWS5;O~Md5hLHXf?7uI|OO>OIwU_gpwvxL_*156(jkR&-&Q>bm`KiA>Fe~ z0p&n>;%N`8KDCHIc0Ygw1;9m>xh>v+L%;jhTW@8uDk#!gp)$7uNUfmAt&<$tUC;1< zmGHnb&pgAVf9k2H#Kw&qd2sO8zy39g03NMP#dH-f8Y--jb{zwD5CO{M$ml$hZ#V)L zgEBd~U)Cea+`hIP*&S_hPx9o)^5dIsy2;kHWeO+{$`wyr1pKaV<-lN802194)Pw21 zILVLAD=;Mof?9#>Y=t7R4iMT35L}TQ1AL0;&p!JslU-$b5dO(0pXBudiu8{?_Lx|| ze!W<`cCC2ikw>^YfQ>Yh*+?T&cfb$C8*jYPbYk5JC>P2Xmk0!0U;kU|37Dp@E&_lx*zsnY zIdkTizo0^rKhm|6CqH&l#`LV! zb#*78d?;sJuFUJ&wofaGH?kHz|b5ij|13J=HzLdFA-SBE096W$gBgz1~A13faHqkR&e%H`KFoRoxjVXS`E{ ze!uIhtN_IE6?uKXeGuUYEf5XlO9UWnIDp7HKx##7g}d&$i%G7Ce#aemm}JL*BnXeJ zkG>?9AOHO4KNl-jtl%AYoY+t^+^m47u+p5uGhBh%Yd~gv5(mTbS84tIPV!^aKm4_v z$^PiJ!9ndUKzZYF0bY;mJGn?GD*(~HFz}biC^L@m2H~6nh-(FitOKN0xcTOr8H(h; z_{A?6AUf8c1J_-5ow)YeYnk}VmoMkRN}Mp9Di^>H=b#T?V2~S*z^j(xX9iDlsCL^hj#%Rt_ymz0ubekDr$Qo0x)mhJSJNzpa^Wm zs#U8PAhrSs4y;_c(j@vd*IdJ7$D$<6D`P4U%aSpubjm5GIJT{}-ClRzf^sPWlH5%C z%Fb+Gpir)5{xTAP(k^}fR0sf$R)<^K+kkS%I~E{afGaBi5&HiDzw4Vs=9n+M@Ioe7 zDuE@Ub^xgrKyF3wB}XAK`>DsLVkB%Ny@W7aPr9~bC+mu1IiumIt>hLM_TjppC|z4&Hrqs&qIBs zPZM2a0y2SI=>Q091qiLMXwf1D$^=|=(M2p!nE%HELJJoz6blwC5Eoo? zB2X*>p!)NjLZAtP+Gtdg--8WDNdSD_)KC2>=LToAw*lpjR{+orusq}9j`H+iN(3R@ z0ualMxi_u~9Gj^9SM$gqRXPCT+5zJb3UlYqWnjb@m_2(o1BA!)AD&P=80f)nBTzKLAlohj2R$lsl2-+LlM$JxK^cw-*3cj8FRU z(|)i=-XzwTV*^WU>6K1kBMB=YL^@{9oXNmoAAoJd(0{~Az!@`U@Q%C5k|^SO0FM*^ z6J;z0ZZ*)CXZ+nDzWQDqGWVa#ZM=T;qaUSBxSa&bouB~tEJuoYV-N*Lg&@@e5Yywm z*3CY`XaCrO4y)>>PoJK4AcNcCgcD9Mas2VeGY~YuamO9U+lNh?HZ92wLt=bdFsH<{ z_euylGrqL_eAa+GZ-4|KUHkZ9ho*E3w-Z3Q6BK}e&91_}Fy{=~2}06BkSYO)hxA_S zK7Wz-_lq7#c(`WDlqq8B)TwC)u4@OZO;9-Y*kc*T9CHlg=%bJ3Ew^$0UOEK8Z3;k% z%=nh9&j*dD@97f&%%^8UxRXWn1zceTKpilmpE49q6zl{c=55E)B>-{n>u0yccjOa% zVqa2v_~D0V1mX79$Nu~}uxL1Io&5&2cTR4j?daj zlt~A+AcuvFyensT0jMHW5-JGggt9QApadZ|f-{KwSaPQXAQJh#HrZZ3$4@`Rvqau} zSuofmQjQ|a1(=mIC&T4OossQuDz1vh5+aTfw};Mihw80hkD>S z`|cpz(GY$=fS3iKflyDVBh(UVETW(bf-VN(4k*=yASMw=RsiB5zct&dlY2|0`c=rA zukrg`I|BjNznlm*~OV+y^YXHXd(0&@Q>qs)>Pe2D%UwOKvGQpt=MxiGY&= zV3+w7`Bm00w;_IuBE7uv0kSfNMBf5DUIL&?P(TE%poXkWJ8)fGKeoN}orT};{)Pf} zkGHUTowvB|32zahq~U2salGMzJ%d~4vQe@V$fnE1m&6=&_%$`2{fec(`X?+RBxcXaj4=5St1OO1P;WaisY72?r4lBpg8a9$_qE zUdH|i$%P@38~rRo&?vc79fJsjbpcKZfYth|K7XMN`J1Gz>8%les8qj^vI6!ej6>y+ zQhpwcIv|)Byj~Ak@c{M3b5jOlq zOZGb`ii!%;BHFkPu7~S75^qL(V0-W*2}ckn5hfB2B^*qcAO&HZA(lo0fm z9BQ%=fkJIeAP~(3Br5=svVVcr=dZGmzg-T143;XVhz}JUFDn8Sau_O!D(`db4M@TF zU8*t+ND6!B6!3YOu=8=tG% z&@tEPcYRCshPIeS_yJ)GVKU(u!cm$a9HxoEc*zMR1j8g}`b!S!B2cA`2^7TW0umB{ zc(Q+~oYSn8mPKWLMgHN^?u?Z-2seF*RK+7?#T+9mYbsUXP73NhsLWJ}!QKpPI0<4> z9sP@b-mMXLWejAu;#!-(nQnkw1qAt@d=joFGi{-S+bQu@pXG#b%WVH0rnBk$ZmO@H zRBtl~ClXE|98Wk-3c^$wy zInUWs4r&aNYBow*o$<0y1ob;yR>HBeQl`m@I$l=Zbizr5lL@B~W)e;%oJKgEa0cNg zgfj`VBxV!l5avqEllU)*vn0-zI7h>|8qTxedWJl<+f&3neZhTufL* zSWLKta4F$3!v7GK5UwOFC0r%@^m^ZYxlN{D8RmEO-jy-J+9g;f%dk|IX^AW&%KG23 z+?UAvSS0W3A_;ZB>i&PK)r%F@`kNmH7leVeoviJsx3S*#DjrmPsCZHFqvC0fj4>5& zXUZ5nL&oH3GDc_0m_1p>@N^l|x)@B6v4520!eNpd<0V%{N$w1iT@-scSsA8(%sVC-QC>{(jg#S(hVZr(hVQoQX<_A@9>Z3*jL86cU(BJ zVy-#o{;H%Pg@Q{RIJJX5#|@ zqP(@3n39r}qno3vm7^2+7cnt%Cl^NxYddoQ@LI`H_0&qa!xh}TGe^@9T{^E%w+jX+ zKUBdFqiYwUCj-V|=$OI-;ZcYh*f<#3((1oM<`JcHqWv5lwt(7+U z`<$JeJS{$T9AqCnPkK+G1z}*)B<&a406Z$;{JcwK35wFcM>>Nbaiq7P$+($hjc_F;c7vC~`Tde3sent#U)B z@D^zZpl2*~B3*Wt9lIrUn$Yv|eCrRzpFX>KQDZ!MbPI%C%Ix&44_ML%P;!&V06_RK z)BDOTlz6beyS;C5V0U&sQ21(l?no&}ak2T@5eo?opeszBtr+g@EkHR9LDac-+m`DB zD;j{+=7T=_Dnh;v;>F(MMu3AITTq}P;dLlH@Fkvp<_|}`9wSclh1S;=B}(}r z?^cy0af*@DKbVJsY!_r{F9<1~C_q(&VvoWvxTZ0?o`6#b$QV?uSr0%s;EE}h5Ge^j zx8z{+z5{@i?uP{7j}X8_`i~s|==h7TSN080ZV(;-#Pfq0>O|m>d$Fr}P_uhUI(qOR zjbX)wk*Rw4(M4f*gNP9e@Y6&H)OvWApquKT2=g&Ax6yz0vT~ywY+>pJA35Q{8sX>m z;dewJK#L5+V;NKMMq!x5FHugy<7LD{QyNQiBnSNMPxvu$b(owj`Z>BoiuGG?gEG{AknX~*Wn_fWgZZvAZX9U(L1~4yGlV}$1%iGR zmd?ojb$0{&qvK73W>`@zVwa8eVk0GtzG@ND4B?vYX?@m6_-sm|#pQuR)RSv`22TYU z6NGgPZxDvwXBU!~D5WK*C00g#{NX2N8@wh$Xc%iBEoDlX;!kQH%!l7zCcO2DT9Q>X zrxc_Vxzq-dXg{*C3*Qh_ zMV_A2oQRgFnEW)-zuSz>I}r6p4xx}r<;OQnna}1zd(g#sY@!+Y70MIkx&OgeMDgb7 ze6i2>P-0e%EXU$-&!nEn!WA3)!BjLqooQ`peP_jd=+=g?9!e^aKAk>m`xox;;4t*s z6B#7}C3HyIgpRF8%ppF=AzssBGHar~5dB8joc`*CR zsfxK)SX5agS>)_HPe7m!)^DBjEN9D1QcR*u`Z7T=2{F|#*i>6o2UK&d_^foTn4Gwr z;GP_RakeS9g}1G`PyG{|Gd=P?M7SBfK|Nfbk-D+JF1o?{ zceZdgL&n9z0neF8V8_aBdOn_L`q%cmb<50o*mfDlm{nWSZ>yr2FGaL1G^df4JDT_Ipu|)QOOblntP})kG-xy4qeA->rcMU-eZ;cy`#i}n0dPj^$_6wSJN<^Aj z$XUEuW53F(v#Ni4WZ7?G|G`e6pQXQ1by#6Nem+J#&OC-a;kh-wrM|Vlogx`0#w1zb zbK~=KadRK{uyg7-`mxQ?U;ewi|4`GC$g;pS=jt*E3g{*_PipR$NX^!o+QM6S>8wEj4c@8pzbmG)gF9xxkt z7-$5e6%;UkoIHdQ92A7i^T~_sD(Rx!6zKX8un>?D z0Qa2x#P>M%l5pR>?R|-Rp#Wn9(F?H$(HTq_+z4e0MFyP#T@3dbCJv?@mKj+PM-&+W zMVrhe#jywPlIX#dea(_Fa|UM=J_kpK=#gcdMvim=BR*mZeiJ>wvE)JSaQqj1)RvT8 zR129kK?dG~KQ=uBTg9h;%0E@zoZapi7piu(pDa7$FA~aQTlrRPez|y9R@vC8*qI(@ zwFI?Pv;=!a-b-AhW4d8cA)I{O{k`;C;OmYn3Dj&U*2$EYrT*+&QFKkpzEjuqW@qEkvmR+QRVx9K$<04BlU9+Oa z$B!u}yWacuqeLl@qj$R>9$c?haqPn7W{Q5Q)F`3i$}yLH^wP!G^=gssl-Bu=ebeIg z-@^x_5L~~`#5$#xy2hmzFYSvh%5I5v+z&CTc%GkF^;O!;ysXb>{l~1v8q!{r{%EPF zU)p%DUB;_~&K4JoeGJj$NG<<1GUiZotCtxTtl$ozD~IZ8FrMcf{dp}ow8TY-HtzH&z7Tx;f1nQ4zyi`{DlC@!+_c+ve!$yS>orrqx836vVX0AVlyMK`3C+-+WX@yZ?}6D zQ;~hXKtbo(-`JuY5(5&cuI9IZGu9nb_o2@Tnz{KobOIL-yCEq%rDmnMISN7o|7EOs z-^o2^*y=0mcUp=~B-kGdYH_KKF)CfogIK6C3*XlYR znct0_X!6&%UCSTw&792zKHBumyDr`@e$vnL?mQbjCTez|Sto9xZo9enxIMx1L_C#S z)Avd6s(tQSdHDzTi1sh==WD%rkNwuYQIFA7zc$(#DnexL>$kVL$n9CFajE$ak{{v{ za>&StPzXCO%_dW}OB+hDrbYua-n@@oD-Skb{yfP}X+1BUBR#}Sb=P>8U%8xBme=wQ zeHbF^nDiF7D0!})T=hR|IcwV->Lkmcdlr6Gx|(@39V(qxyc0a|dwpiU3%h!vp3P$i z(I&K|h`a~@)W`chDW`zP1oOOa$e zLqCkYy*(hvh$YI=|47#e9~Sv)GB++m4mLG4_3z=K2o+}Vy2H>~t82Z*1RXi0t#{&vZ;o;e~W5xkrO>M6T~=`%FD> za3!Ly?!`~af4gKVO@(>x)9FRKp|-<)v{2oDe$JAal{K@l5K$zR@Taw$F6_u6sZigz_g8qb3 z38WH%fkIUpAJ-hX;3@h}*W0^S{`>EG#En!@p}8+-CU{S<}iyKH(?wkfGq(* zL3I}zk8zvpdpfcnp6zF3=H!Hq8VS|zc{cdVes#-(Y=I9M1^S64UE#sz;T_@}`L_>^udb6!kc@qHOS@KWyAKmm> zG;U89h~00a1xB6u9q`@H<-LYkaYVPe9{j<|yNAwGDD7^sU953bkwKtnToIZSNNzkIu`hp|dFj=0lw=B2 z5Y>yx^Nn~&8OKDE#Hms+s7#E_*a(ycAt(PqSUUHa)Q9Y7nXzGt&fvp_QiK&b(?vrn z2qlyU$ttVswORD{IR-wh2I3PEW`2PWhTsOzUR{0sJ1dl?q5lonWHyhhqyLVacCvU` zG^7#^G@wooFJ{!dyzSAx?d-c%#|N;P1YAI(UV!H!w+}@Le0&kfCHCB3Q_gA;jQ?;eU22DVCY-;Ukx@XGDb` zBr_Bn!6O+MsX_A>VE_4Ew9Ybz)yXgIdz=+JCn-1+?#Ym57IEC!GHRh1_7 zm?9r2CMU1cVk8{);&Q

M#c*UF0M{r&wvC`6oc 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 oA?KYy_%#2!z=`|c-47Bdf+^XF1h($ diff --git a/templates/hybrid-html5/app/Frontend/images/avatars/tux-visitor.png b/templates/hybrid-html5/app/Frontend/images/avatars/tux-visitor.png deleted file mode 100644 index bd491b04e4760324a8d2cbd1a489e6f0409b4d56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84573 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

F>gQpgvBKsbVpbL+x0w0((n8630MN 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 - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - IOT - - BZH - - - - diff --git a/templates/hybrid-html5/app/Frontend/images/logo/logo_iot_bzhx350.png b/templates/hybrid-html5/app/Frontend/images/logo/logo_iot_bzhx350.png deleted file mode 100644 index 2c3b2aef11e9b4fe5fd7f22340fab71ff6fa86e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14449 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 diff --git a/templates/hybrid-html5/app/Frontend/images/logo/tampon-iot-bzhx450.png b/templates/hybrid-html5/app/Frontend/images/logo/tampon-iot-bzhx450.png deleted file mode 100644 index f365e192612f95359de5d63f87948da554515db6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44996 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 diff --git a/templates/hybrid-html5/app/Frontend/images/logo/triskel_iot_bzh.png b/templates/hybrid-html5/app/Frontend/images/logo/triskel_iot_bzh.png deleted file mode 100644 index 832dc1f7eb85c419eaf354aa36d7fe476391d8e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55940 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 - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/templates/hybrid-html5/app/Frontend/images/logo/triskel_iot_bzhx250.png b/templates/hybrid-html5/app/Frontend/images/logo/triskel_iot_bzhx250.png deleted file mode 100644 index f4e41aecb824458648c2a19e53b8e3fa65cc8ac5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18787 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 - - - - - - - - Simple Sample Application - - - - - - - - - - - - - - - -

- - - - - - - - - - \ No newline at end of file diff --git a/templates/hybrid-html5/app/Frontend/pages/SampleHome/SampleHome.html b/templates/hybrid-html5/app/Frontend/pages/SampleHome/SampleHome.html deleted file mode 100644 index 8ecdd64..0000000 --- a/templates/hybrid-html5/app/Frontend/pages/SampleHome/SampleHome.html +++ /dev/null @@ -1,30 +0,0 @@ - ---- -name: SampleHome -url: /sample-home -controller: SampleHomeController as ctrl -animationIn: slideInRight ---- - -

- - App Framework - Hybrid HTML5 Client -

- - - - -
- - - -
-
-
- req/res= {{ctrl.request}} - status= {{ctrl.errcode}} -
-
- - - diff --git a/templates/hybrid-html5/app/Frontend/pages/SampleHome/SampleHome.js b/templates/hybrid-html5/app/Frontend/pages/SampleHome/SampleHome.js deleted file mode 100644 index b037773..0000000 --- a/templates/hybrid-html5/app/Frontend/pages/SampleHome/SampleHome.js +++ /dev/null @@ -1,63 +0,0 @@ -(function() { -'use strict'; - -// WARNING: make sure than app/frontend/services/AppConfig.js match your server - -// list all rependencies within the page + controler if needed -angular.module('SampleHomeModule', ['SubmitButton', 'TokenRefresh','ModalNotification']) - - .controller('SampleHomeController', function (AppCall, Notification) { - var scope = this; // I hate JavaScript - scope.uuid ="none"; - scope.token ="none"; - scope.session="none"; - scope.status ="err-no"; - - console.log ("Home Controller"); - - scope.OnResponse= function(jresp, errcode) { - - // Update UI response global display zone - scope.status = jresp.request.status; - scope.errcode = errcode; - scope.request = jresp.request; - scope.response = jresp.response; - - var action=jresp.request.reqid.toUpperCase(); - - switch (action) { - case 'PING': - break; - - default: - Notification.error ({message: "Invalid RequestID:" + jresp.request.reqid , delay: 5000}); - return; - } - - // update button classes within home.html - scope.class [jresp.request.reqid]="success"; - console.log ("OK: "+ JSON.stringify(jresp)); - }; - - scope.ProcessError= function(response, errcode, config) { - Notification.error ({message: "Invalid API:" + response.request.reqid , delay: 5000}); - scope.status = "err-fx"; - scope.errcode = errcode; - scope.request = response.request; - scope.response = ""; - console.log ("FX: "+ JSON.stringify(response)); - }; - - scope.RefreshSession = function() { - console.log ("RefreshSession"); - AppCall.get ("xxxxxx", "ping", {/*query*/}, scope.OnResponse, scope.InvalidApiCall); - }; - - scope.Initialised = function () { - scope.class = {connect: "success"}; - }; - - }); - -console.log ("SampleControler Loaded"); -})(); diff --git a/templates/hybrid-html5/app/Frontend/pages/SampleHome/SampleHome.scss b/templates/hybrid-html5/app/Frontend/pages/SampleHome/SampleHome.scss deleted file mode 100644 index 8bf04a1..0000000 --- a/templates/hybrid-html5/app/Frontend/pages/SampleHome/SampleHome.scss +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -@import "app/ibz-mixins"; - -$COLOR_SUCCESS: green; -$COLOR_FAIL: red; - -token-refresh { - display: block; - float: right; - margin: .5rem 1rem 0 0; -} - -.button-box { - height : 4.5rem; - - .session-button { - float: left; - width: 5rem; - }; - - .response > span{ - display: block; - margin: .3rem .5rem .3rem .5rem; - } - - .fail { - color:$COLOR_FAIL; - border: 1px solid darken($COLOR_FAIL,10%); - } - .success { - color:$COLOR_SUCCESS; - border: 1px solid darken($COLOR_SUCCESS,10%); - } - -}; - -.message-box { - height : auto; - width: 100%; - font-size: .75rem; - - .response { - .err-no { color:grey; } - .res.err-ok { color: blue; } - .req.err-ok { color:blueviolet; } - .status.err-ok { color:green; } - .status.err-fx { color:red; } - } - - -}; - - - diff --git a/templates/hybrid-html5/app/Frontend/services/JQueryEmu.js b/templates/hybrid-html5/app/Frontend/services/JQueryEmu.js deleted file mode 100644 index 6d6e338..0000000 --- a/templates/hybrid-html5/app/Frontend/services/JQueryEmu.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * Usage: - * - * // mouse event probably point on icon and not on button div - * ... ng-click="LockChannel($event) - var target= angular.element(event.currentTarget); - var button= JQemu.FindInParent (target, 'div'); - * - */ - - -(function () { - 'use strict'; - - - - // _all modules only reference dependencies - angular.module('JQueryEmu', []) - - // Factory is a singleton and share its context within all instances. - .factory('JQemu', function () { - - var FindInParent = function (element, selector) { - var parent = element; - var search = selector.toUpperCase(); - while (parent[0]) { - if (search === parent[0].tagName) { - return parent; - } // HTMLDivElement properties - parent = parent.parent(); - } - }; - - var FindByTag= function (element, tag, selector) { - var search = selector.toLowerCase(); - var type = tag.toLowerCase()+ "Name"; - var children = element.children(); - while (children[0]) { - if (search === children[0][type]) { - return children; - } // HTMLDivElement properties - children = children.next(); - } - }; - - var FindByClass= function (element, selector) { - var search = selector.toLowerCase(); - var children = element.children(); - while (children[0]) { - if (children.hasClass(search)) { - return children; - } // HTMLDivElement properties - children = children.next(); - } - }; - - var myMethods = { - FindInParent: FindInParent, - FindByTag: FindByTag, - FindByClass: FindByClass - }; - - return myMethods; - }); - -})(); \ No newline at end of file diff --git a/templates/hybrid-html5/app/Frontend/styles/README.md b/templates/hybrid-html5/app/Frontend/styles/README.md deleted file mode 100644 index dc50ced..0000000 --- a/templates/hybrid-html5/app/Frontend/styles/README.md +++ /dev/null @@ -1,28 +0,0 @@ -WARNING note about global style dir -------------------------------------- - - - styles placed in Frontend/styles is global and will be posted in dist.prod/styles - - styles defined within widget or page directory will be place in dist.prof/opa/styles - -This model allows to share global styles by multiple applications. - -To change this behaviour just rename styles directory on something else [eg: appstyles] - - - |---- /Frontend - | | - | |---- /styles - | | | - | | |---- _settings.scss - | | |---- app.scss - | | - | |---- /Widgets - | | | - | | |--- widget.js - | | |--- widget.sccs - | | - | |-----/Pages - | |--- page-partial.html - | |--- page-cntrl.js - | |--- page-style.scss - | diff --git a/templates/hybrid-html5/app/Frontend/styles/app/_ibz-mixins.scss b/templates/hybrid-html5/app/Frontend/styles/app/_ibz-mixins.scss deleted file mode 100644 index b2fb2ec..0000000 --- a/templates/hybrid-html5/app/Frontend/styles/app/_ibz-mixins.scss +++ /dev/null @@ -1,52 +0,0 @@ -/* - Every SCSS files will be injected into main HTML page -*/ -shadow-transition { - transition: border 0.2s linear 0s, box-shadow 0.2s linear 0s; - border-radius: 5px; -} - -@mixin ibz-box-content { - border: 2px solid gainsboro !important; - border-radius: 5px; - - margin-left: auto; - margin-right: auto; - min-width: 98% !important; - margin: .5rem .5rem .5rem .5rem; - background: rgba(200,205,200,.3); -} - -@mixin ibz-button ($color, $size:2rem) { - display: inline-block; - border: 1px solid darken($color,10%); - box-shadow: 2px 2px 1px adjust-hue($color,20deg); - color: $color; - border-radius: 5px; - font-style: italic; - padding: 0rem .5rem 0rem .5rem; - margin:.5rem; - background: lighten(#9494b7, 20%); - i { - padding-right: 0.3rem; - font-size: $size; - } - span {font-size: 1rem} - - &:hover { - background: lighten($color, 45%); - border: 2px solid darken($color,20%); - - } -} - -@mixin ibz-input-alert ($color, $background) { - position :fixed; - margin: -2.2rem 0 0 15rem; - border-radius: 5px; - font-style: italic; - border-color: darken($background,10%); - color: $color; - background-color: $background !important; - padding: 0.2rem !important; -} diff --git a/templates/hybrid-html5/app/Frontend/styles/app/ibz-global.scss b/templates/hybrid-html5/app/Frontend/styles/app/ibz-global.scss deleted file mode 100644 index 1f5017e..0000000 --- a/templates/hybrid-html5/app/Frontend/styles/app/ibz-global.scss +++ /dev/null @@ -1,43 +0,0 @@ -/* -Copyright (C) 2015 "IoT.bzh" -Author "Fulup Ar Foll" - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -@import "app/ibz-mixins"; - -submit-button { - float: right; - @include ibz-button(grey); -} - -zf-modal { - background-color: rgba(180,180,180,.5); -} - -.box-content { - @include ibz-box-content; - - .box-title { - display: block; - font-size: 1.3rem; - } -} - -// Change Notifications default size -.ui-notification { - width: auto; - border-radius: 5px; -} \ No newline at end of file diff --git a/templates/hybrid-html5/app/Frontend/styles/foundation/_foundation-icons.scss b/templates/hybrid-html5/app/Frontend/styles/foundation/_foundation-icons.scss deleted file mode 100644 index d401f3c..0000000 --- a/templates/hybrid-html5/app/Frontend/styles/foundation/_foundation-icons.scss +++ /dev/null @@ -1,591 +0,0 @@ -/* - * Foundation Icons v 3.0 - * Made by ZURB 2013 http://zurb.com/playground/foundation-icon-fonts-3 - * MIT License - */ - -@font-face { - font-family: "foundation-icons"; - src: url("/bower_components/foundation-icons.woff") format("woff"); - font-weight: normal; - font-style: normal; -} - - -.fi-address-book:before, -.fi-alert:before, -.fi-align-center:before, -.fi-align-justify:before, -.fi-align-left:before, -.fi-align-right:before, -.fi-anchor:before, -.fi-annotate:before, -.fi-archive:before, -.fi-arrow-down:before, -.fi-arrow-left:before, -.fi-arrow-right:before, -.fi-arrow-up:before, -.fi-arrows-compress:before, -.fi-arrows-expand:before, -.fi-arrows-in:before, -.fi-arrows-out:before, -.fi-asl:before, -.fi-asterisk:before, -.fi-at-sign:before, -.fi-background-color:before, -.fi-battery-empty:before, -.fi-battery-full:before, -.fi-battery-half:before, -.fi-bitcoin-circle:before, -.fi-bitcoin:before, -.fi-blind:before, -.fi-bluetooth:before, -.fi-bold:before, -.fi-book-bookmark:before, -.fi-book:before, -.fi-bookmark:before, -.fi-braille:before, -.fi-burst-new:before, -.fi-burst-sale:before, -.fi-burst:before, -.fi-calendar:before, -.fi-camera:before, -.fi-check:before, -.fi-checkbox:before, -.fi-clipboard-notes:before, -.fi-clipboard-pencil:before, -.fi-clipboard:before, -.fi-clock:before, -.fi-closed-caption:before, -.fi-cloud:before, -.fi-comment-minus:before, -.fi-comment-quotes:before, -.fi-comment-video:before, -.fi-comment:before, -.fi-comments:before, -.fi-compass:before, -.fi-contrast:before, -.fi-credit-card:before, -.fi-crop:before, -.fi-crown:before, -.fi-css3:before, -.fi-database:before, -.fi-die-five:before, -.fi-die-four:before, -.fi-die-one:before, -.fi-die-six:before, -.fi-die-three:before, -.fi-die-two:before, -.fi-dislike:before, -.fi-dollar-bill:before, -.fi-dollar:before, -.fi-download:before, -.fi-eject:before, -.fi-elevator:before, -.fi-euro:before, -.fi-eye:before, -.fi-fast-forward:before, -.fi-female-symbol:before, -.fi-female:before, -.fi-filter:before, -.fi-first-aid:before, -.fi-flag:before, -.fi-folder-add:before, -.fi-folder-lock:before, -.fi-folder:before, -.fi-foot:before, -.fi-foundation:before, -.fi-graph-bar:before, -.fi-graph-horizontal:before, -.fi-graph-pie:before, -.fi-graph-trend:before, -.fi-guide-dog:before, -.fi-hearing-aid:before, -.fi-heart:before, -.fi-home:before, -.fi-html5:before, -.fi-indent-less:before, -.fi-indent-more:before, -.fi-info:before, -.fi-italic:before, -.fi-key:before, -.fi-laptop:before, -.fi-layout:before, -.fi-lightbulb:before, -.fi-like:before, -.fi-link:before, -.fi-list-bullet:before, -.fi-list-number:before, -.fi-list-thumbnails:before, -.fi-list:before, -.fi-lock:before, -.fi-loop:before, -.fi-magnifying-glass:before, -.fi-mail:before, -.fi-male-female:before, -.fi-male-symbol:before, -.fi-male:before, -.fi-map:before, -.fi-marker:before, -.fi-megaphone:before, -.fi-microphone:before, -.fi-minus-circle:before, -.fi-minus:before, -.fi-mobile-signal:before, -.fi-mobile:before, -.fi-monitor:before, -.fi-mountains:before, -.fi-music:before, -.fi-next:before, -.fi-no-dogs:before, -.fi-no-smoking:before, -.fi-page-add:before, -.fi-page-copy:before, -.fi-page-csv:before, -.fi-page-delete:before, -.fi-page-doc:before, -.fi-page-edit:before, -.fi-page-export-csv:before, -.fi-page-export-doc:before, -.fi-page-export-pdf:before, -.fi-page-export:before, -.fi-page-filled:before, -.fi-page-multiple:before, -.fi-page-pdf:before, -.fi-page-remove:before, -.fi-page-search:before, -.fi-page:before, -.fi-paint-bucket:before, -.fi-paperclip:before, -.fi-pause:before, -.fi-paw:before, -.fi-paypal:before, -.fi-pencil:before, -.fi-photo:before, -.fi-play-circle:before, -.fi-play-video:before, -.fi-play:before, -.fi-plus:before, -.fi-pound:before, -.fi-power:before, -.fi-previous:before, -.fi-price-tag:before, -.fi-pricetag-multiple:before, -.fi-print:before, -.fi-prohibited:before, -.fi-projection-screen:before, -.fi-puzzle:before, -.fi-quote:before, -.fi-record:before, -.fi-refresh:before, -.fi-results-demographics:before, -.fi-results:before, -.fi-rewind-ten:before, -.fi-rewind:before, -.fi-rss:before, -.fi-safety-cone:before, -.fi-save:before, -.fi-share:before, -.fi-sheriff-badge:before, -.fi-shield:before, -.fi-shopping-bag:before, -.fi-shopping-cart:before, -.fi-shuffle:before, -.fi-skull:before, -.fi-social-500px:before, -.fi-social-adobe:before, -.fi-social-amazon:before, -.fi-social-android:before, -.fi-social-apple:before, -.fi-social-behance:before, -.fi-social-bing:before, -.fi-social-blogger:before, -.fi-social-delicious:before, -.fi-social-designer-news:before, -.fi-social-deviant-art:before, -.fi-social-digg:before, -.fi-social-dribbble:before, -.fi-social-drive:before, -.fi-social-dropbox:before, -.fi-social-evernote:before, -.fi-social-facebook:before, -.fi-social-flickr:before, -.fi-social-forrst:before, -.fi-social-foursquare:before, -.fi-social-game-center:before, -.fi-social-github:before, -.fi-social-google-plus:before, -.fi-social-hacker-news:before, -.fi-social-hi5:before, -.fi-social-instagram:before, -.fi-social-joomla:before, -.fi-social-lastfm:before, -.fi-social-linkedin:before, -.fi-social-medium:before, -.fi-social-myspace:before, -.fi-social-orkut:before, -.fi-social-path:before, -.fi-social-picasa:before, -.fi-social-pinterest:before, -.fi-social-rdio:before, -.fi-social-reddit:before, -.fi-social-skillshare:before, -.fi-social-skype:before, -.fi-social-smashing-mag:before, -.fi-social-snapchat:before, -.fi-social-spotify:before, -.fi-social-squidoo:before, -.fi-social-stack-overflow:before, -.fi-social-steam:before, -.fi-social-stumbleupon:before, -.fi-social-treehouse:before, -.fi-social-tumblr:before, -.fi-social-twitter:before, -.fi-social-vimeo:before, -.fi-social-windows:before, -.fi-social-xbox:before, -.fi-social-yahoo:before, -.fi-social-yelp:before, -.fi-social-youtube:before, -.fi-social-zerply:before, -.fi-social-zurb:before, -.fi-sound:before, -.fi-star:before, -.fi-stop:before, -.fi-strikethrough:before, -.fi-subscript:before, -.fi-superscript:before, -.fi-tablet-landscape:before, -.fi-tablet-portrait:before, -.fi-target-two:before, -.fi-target:before, -.fi-telephone-accessible:before, -.fi-telephone:before, -.fi-text-color:before, -.fi-thumbnails:before, -.fi-ticket:before, -.fi-torso-business:before, -.fi-torso-female:before, -.fi-torso:before, -.fi-torsos-all-female:before, -.fi-torsos-all:before, -.fi-torsos-female-male:before, -.fi-torsos-male-female:before, -.fi-torsos:before, -.fi-trash:before, -.fi-trees:before, -.fi-trophy:before, -.fi-underline:before, -.fi-universal-access:before, -.fi-unlink:before, -.fi-unlock:before, -.fi-upload-cloud:before, -.fi-upload:before, -.fi-usb:before, -.fi-video:before, -.fi-volume-none:before, -.fi-volume-strike:before, -.fi-volume:before, -.fi-web:before, -.fi-wheelchair:before, -.fi-widget:before, -.fi-wrench:before, -.fi-x-circle:before, -.fi-x:before, -.fi-yen:before, -.fi-zoom-in:before, -.fi-zoom-out:before { - font-family: "foundation-icons"; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - -webkit-font-smoothing: antialiased; - display: inline-block; - text-decoration: inherit; -} - -.fi-address-book:before { content: "\f100"; } -.fi-alert:before { content: "\f101"; } -.fi-align-center:before { content: "\f102"; } -.fi-align-justify:before { content: "\f103"; } -.fi-align-left:before { content: "\f104"; } -.fi-align-right:before { content: "\f105"; } -.fi-anchor:before { content: "\f106"; } -.fi-annotate:before { content: "\f107"; } -.fi-archive:before { content: "\f108"; } -.fi-arrow-down:before { content: "\f109"; } -.fi-arrow-left:before { content: "\f10a"; } -.fi-arrow-right:before { content: "\f10b"; } -.fi-arrow-up:before { content: "\f10c"; } -.fi-arrows-compress:before { content: "\f10d"; } -.fi-arrows-expand:before { content: "\f10e"; } -.fi-arrows-in:before { content: "\f10f"; } -.fi-arrows-out:before { content: "\f110"; } -.fi-asl:before { content: "\f111"; } -.fi-asterisk:before { content: "\f112"; } -.fi-at-sign:before { content: "\f113"; } -.fi-background-color:before { content: "\f114"; } -.fi-battery-empty:before { content: "\f115"; } -.fi-battery-full:before { content: "\f116"; } -.fi-battery-half:before { content: "\f117"; } -.fi-bitcoin-circle:before { content: "\f118"; } -.fi-bitcoin:before { content: "\f119"; } -.fi-blind:before { content: "\f11a"; } -.fi-bluetooth:before { content: "\f11b"; } -.fi-bold:before { content: "\f11c"; } -.fi-book-bookmark:before { content: "\f11d"; } -.fi-book:before { content: "\f11e"; } -.fi-bookmark:before { content: "\f11f"; } -.fi-braille:before { content: "\f120"; } -.fi-burst-new:before { content: "\f121"; } -.fi-burst-sale:before { content: "\f122"; } -.fi-burst:before { content: "\f123"; } -.fi-calendar:before { content: "\f124"; } -.fi-camera:before { content: "\f125"; } -.fi-check:before { content: "\f126"; } -.fi-checkbox:before { content: "\f127"; } -.fi-clipboard-notes:before { content: "\f128"; } -.fi-clipboard-pencil:before { content: "\f129"; } -.fi-clipboard:before { content: "\f12a"; } -.fi-clock:before { content: "\f12b"; } -.fi-closed-caption:before { content: "\f12c"; } -.fi-cloud:before { content: "\f12d"; } -.fi-comment-minus:before { content: "\f12e"; } -.fi-comment-quotes:before { content: "\f12f"; } -.fi-comment-video:before { content: "\f130"; } -.fi-comment:before { content: "\f131"; } -.fi-comments:before { content: "\f132"; } -.fi-compass:before { content: "\f133"; } -.fi-contrast:before { content: "\f134"; } -.fi-credit-card:before { content: "\f135"; } -.fi-crop:before { content: "\f136"; } -.fi-crown:before { content: "\f137"; } -.fi-css3:before { content: "\f138"; } -.fi-database:before { content: "\f139"; } -.fi-die-five:before { content: "\f13a"; } -.fi-die-four:before { content: "\f13b"; } -.fi-die-one:before { content: "\f13c"; } -.fi-die-six:before { content: "\f13d"; } -.fi-die-three:before { content: "\f13e"; } -.fi-die-two:before { content: "\f13f"; } -.fi-dislike:before { content: "\f140"; } -.fi-dollar-bill:before { content: "\f141"; } -.fi-dollar:before { content: "\f142"; } -.fi-download:before { content: "\f143"; } -.fi-eject:before { content: "\f144"; } -.fi-elevator:before { content: "\f145"; } -.fi-euro:before { content: "\f146"; } -.fi-eye:before { content: "\f147"; } -.fi-fast-forward:before { content: "\f148"; } -.fi-female-symbol:before { content: "\f149"; } -.fi-female:before { content: "\f14a"; } -.fi-filter:before { content: "\f14b"; } -.fi-first-aid:before { content: "\f14c"; } -.fi-flag:before { content: "\f14d"; } -.fi-folder-add:before { content: "\f14e"; } -.fi-folder-lock:before { content: "\f14f"; } -.fi-folder:before { content: "\f150"; } -.fi-foot:before { content: "\f151"; } -.fi-foundation:before { content: "\f152"; } -.fi-graph-bar:before { content: "\f153"; } -.fi-graph-horizontal:before { content: "\f154"; } -.fi-graph-pie:before { content: "\f155"; } -.fi-graph-trend:before { content: "\f156"; } -.fi-guide-dog:before { content: "\f157"; } -.fi-hearing-aid:before { content: "\f158"; } -.fi-heart:before { content: "\f159"; } -.fi-home:before { content: "\f15a"; } -.fi-html5:before { content: "\f15b"; } -.fi-indent-less:before { content: "\f15c"; } -.fi-indent-more:before { content: "\f15d"; } -.fi-info:before { content: "\f15e"; } -.fi-italic:before { content: "\f15f"; } -.fi-key:before { content: "\f160"; } -.fi-laptop:before { content: "\f161"; } -.fi-layout:before { content: "\f162"; } -.fi-lightbulb:before { content: "\f163"; } -.fi-like:before { content: "\f164"; } -.fi-link:before { content: "\f165"; } -.fi-list-bullet:before { content: "\f166"; } -.fi-list-number:before { content: "\f167"; } -.fi-list-thumbnails:before { content: "\f168"; } -.fi-list:before { content: "\f169"; } -.fi-lock:before { content: "\f16a"; } -.fi-loop:before { content: "\f16b"; } -.fi-magnifying-glass:before { content: "\f16c"; } -.fi-mail:before { content: "\f16d"; } -.fi-male-female:before { content: "\f16e"; } -.fi-male-symbol:before { content: "\f16f"; } -.fi-male:before { content: "\f170"; } -.fi-map:before { content: "\f171"; } -.fi-marker:before { content: "\f172"; } -.fi-megaphone:before { content: "\f173"; } -.fi-microphone:before { content: "\f174"; } -.fi-minus-circle:before { content: "\f175"; } -.fi-minus:before { content: "\f176"; } -.fi-mobile-signal:before { content: "\f177"; } -.fi-mobile:before { content: "\f178"; } -.fi-monitor:before { content: "\f179"; } -.fi-mountains:before { content: "\f17a"; } -.fi-music:before { content: "\f17b"; } -.fi-next:before { content: "\f17c"; } -.fi-no-dogs:before { content: "\f17d"; } -.fi-no-smoking:before { content: "\f17e"; } -.fi-page-add:before { content: "\f17f"; } -.fi-page-copy:before { content: "\f180"; } -.fi-page-csv:before { content: "\f181"; } -.fi-page-delete:before { content: "\f182"; } -.fi-page-doc:before { content: "\f183"; } -.fi-page-edit:before { content: "\f184"; } -.fi-page-export-csv:before { content: "\f185"; } -.fi-page-export-doc:before { content: "\f186"; } -.fi-page-export-pdf:before { content: "\f187"; } -.fi-page-export:before { content: "\f188"; } -.fi-page-filled:before { content: "\f189"; } -.fi-page-multiple:before { content: "\f18a"; } -.fi-page-pdf:before { content: "\f18b"; } -.fi-page-remove:before { content: "\f18c"; } -.fi-page-search:before { content: "\f18d"; } -.fi-page:before { content: "\f18e"; } -.fi-paint-bucket:before { content: "\f18f"; } -.fi-paperclip:before { content: "\f190"; } -.fi-pause:before { content: "\f191"; } -.fi-paw:before { content: "\f192"; } -.fi-paypal:before { content: "\f193"; } -.fi-pencil:before { content: "\f194"; } -.fi-photo:before { content: "\f195"; } -.fi-play-circle:before { content: "\f196"; } -.fi-play-video:before { content: "\f197"; } -.fi-play:before { content: "\f198"; } -.fi-plus:before { content: "\f199"; } -.fi-pound:before { content: "\f19a"; } -.fi-power:before { content: "\f19b"; } -.fi-previous:before { content: "\f19c"; } -.fi-price-tag:before { content: "\f19d"; } -.fi-pricetag-multiple:before { content: "\f19e"; } -.fi-print:before { content: "\f19f"; } -.fi-prohibited:before { content: "\f1a0"; } -.fi-projection-screen:before { content: "\f1a1"; } -.fi-puzzle:before { content: "\f1a2"; } -.fi-quote:before { content: "\f1a3"; } -.fi-record:before { content: "\f1a4"; } -.fi-refresh:before { content: "\f1a5"; } -.fi-results-demographics:before { content: "\f1a6"; } -.fi-results:before { content: "\f1a7"; } -.fi-rewind-ten:before { content: "\f1a8"; } -.fi-rewind:before { content: "\f1a9"; } -.fi-rss:before { content: "\f1aa"; } -.fi-safety-cone:before { content: "\f1ab"; } -.fi-save:before { content: "\f1ac"; } -.fi-share:before { content: "\f1ad"; } -.fi-sheriff-badge:before { content: "\f1ae"; } -.fi-shield:before { content: "\f1af"; } -.fi-shopping-bag:before { content: "\f1b0"; } -.fi-shopping-cart:before { content: "\f1b1"; } -.fi-shuffle:before { content: "\f1b2"; } -.fi-skull:before { content: "\f1b3"; } -.fi-social-500px:before { content: "\f1b4"; } -.fi-social-adobe:before { content: "\f1b5"; } -.fi-social-amazon:before { content: "\f1b6"; } -.fi-social-android:before { content: "\f1b7"; } -.fi-social-apple:before { content: "\f1b8"; } -.fi-social-behance:before { content: "\f1b9"; } -.fi-social-bing:before { content: "\f1ba"; } -.fi-social-blogger:before { content: "\f1bb"; } -.fi-social-delicious:before { content: "\f1bc"; } -.fi-social-designer-news:before { content: "\f1bd"; } -.fi-social-deviant-art:before { content: "\f1be"; } -.fi-social-digg:before { content: "\f1bf"; } -.fi-social-dribbble:before { content: "\f1c0"; } -.fi-social-drive:before { content: "\f1c1"; } -.fi-social-dropbox:before { content: "\f1c2"; } -.fi-social-evernote:before { content: "\f1c3"; } -.fi-social-facebook:before { content: "\f1c4"; } -.fi-social-flickr:before { content: "\f1c5"; } -.fi-social-forrst:before { content: "\f1c6"; } -.fi-social-foursquare:before { content: "\f1c7"; } -.fi-social-game-center:before { content: "\f1c8"; } -.fi-social-github:before { content: "\f1c9"; } -.fi-social-google-plus:before { content: "\f1ca"; } -.fi-social-hacker-news:before { content: "\f1cb"; } -.fi-social-hi5:before { content: "\f1cc"; } -.fi-social-instagram:before { content: "\f1cd"; } -.fi-social-joomla:before { content: "\f1ce"; } -.fi-social-lastfm:before { content: "\f1cf"; } -.fi-social-linkedin:before { content: "\f1d0"; } -.fi-social-medium:before { content: "\f1d1"; } -.fi-social-myspace:before { content: "\f1d2"; } -.fi-social-orkut:before { content: "\f1d3"; } -.fi-social-path:before { content: "\f1d4"; } -.fi-social-picasa:before { content: "\f1d5"; } -.fi-social-pinterest:before { content: "\f1d6"; } -.fi-social-rdio:before { content: "\f1d7"; } -.fi-social-reddit:before { content: "\f1d8"; } -.fi-social-skillshare:before { content: "\f1d9"; } -.fi-social-skype:before { content: "\f1da"; } -.fi-social-smashing-mag:before { content: "\f1db"; } -.fi-social-snapchat:before { content: "\f1dc"; } -.fi-social-spotify:before { content: "\f1dd"; } -.fi-social-squidoo:before { content: "\f1de"; } -.fi-social-stack-overflow:before { content: "\f1df"; } -.fi-social-steam:before { content: "\f1e0"; } -.fi-social-stumbleupon:before { content: "\f1e1"; } -.fi-social-treehouse:before { content: "\f1e2"; } -.fi-social-tumblr:before { content: "\f1e3"; } -.fi-social-twitter:before { content: "\f1e4"; } -.fi-social-vimeo:before { content: "\f1e5"; } -.fi-social-windows:before { content: "\f1e6"; } -.fi-social-xbox:before { content: "\f1e7"; } -.fi-social-yahoo:before { content: "\f1e8"; } -.fi-social-yelp:before { content: "\f1e9"; } -.fi-social-youtube:before { content: "\f1ea"; } -.fi-social-zerply:before { content: "\f1eb"; } -.fi-social-zurb:before { content: "\f1ec"; } -.fi-sound:before { content: "\f1ed"; } -.fi-star:before { content: "\f1ee"; } -.fi-stop:before { content: "\f1ef"; } -.fi-strikethrough:before { content: "\f1f0"; } -.fi-subscript:before { content: "\f1f1"; } -.fi-superscript:before { content: "\f1f2"; } -.fi-tablet-landscape:before { content: "\f1f3"; } -.fi-tablet-portrait:before { content: "\f1f4"; } -.fi-target-two:before { content: "\f1f5"; } -.fi-target:before { content: "\f1f6"; } -.fi-telephone-accessible:before { content: "\f1f7"; } -.fi-telephone:before { content: "\f1f8"; } -.fi-text-color:before { content: "\f1f9"; } -.fi-thumbnails:before { content: "\f1fa"; } -.fi-ticket:before { content: "\f1fb"; } -.fi-torso-business:before { content: "\f1fc"; } -.fi-torso-female:before { content: "\f1fd"; } -.fi-torso:before { content: "\f1fe"; } -.fi-torsos-all-female:before { content: "\f1ff"; } -.fi-torsos-all:before { content: "\f200"; } -.fi-torsos-female-male:before { content: "\f201"; } -.fi-torsos-male-female:before { content: "\f202"; } -.fi-torsos:before { content: "\f203"; } -.fi-trash:before { content: "\f204"; } -.fi-trees:before { content: "\f205"; } -.fi-trophy:before { content: "\f206"; } -.fi-underline:before { content: "\f207"; } -.fi-universal-access:before { content: "\f208"; } -.fi-unlink:before { content: "\f209"; } -.fi-unlock:before { content: "\f20a"; } -.fi-upload-cloud:before { content: "\f20b"; } -.fi-upload:before { content: "\f20c"; } -.fi-usb:before { content: "\f20d"; } -.fi-video:before { content: "\f20e"; } -.fi-volume-none:before { content: "\f20f"; } -.fi-volume-strike:before { content: "\f210"; } -.fi-volume:before { content: "\f211"; } -.fi-web:before { content: "\f212"; } -.fi-wheelchair:before { content: "\f213"; } -.fi-widget:before { content: "\f214"; } -.fi-wrench:before { content: "\f215"; } -.fi-x-circle:before { content: "\f216"; } -.fi-x:before { content: "\f217"; } -.fi-yen:before { content: "\f218"; } -.fi-zoom-in:before { content: "\f219"; } -.fi-zoom-out:before { content: "\f21a"; } diff --git a/templates/hybrid-html5/app/Frontend/styles/foundation/_foundation-settings.scss b/templates/hybrid-html5/app/Frontend/styles/foundation/_foundation-settings.scss deleted file mode 100644 index d4c6415..0000000 --- a/templates/hybrid-html5/app/Frontend/styles/foundation/_foundation-settings.scss +++ /dev/null @@ -1,605 +0,0 @@ -// FOUNDATION FOR APPS SETTINGS -// ---------------------------- -// -// Table of Contents: -// -// 1. CSS Exports -// 2. Global Styles -// 3. Breakpoints -// 4. Typography -// 5. Grid -// 6. Button -// 7. Accordion -// 8. Action Sheet -// 9. Block List -// 10. Button Group -// 11. Card -// 12. Extras -// 13. Forms -// 14. Iconic -// 15. Label -// 16. Menu Bar -// 17. Modal -// 18. Motion UI -// 19. Notification -// 20. Off-canvas -// 21. Panel -// 22. Popup -// 23. Switch -// 24. Tabs -// 25. Title Bar - -@import "helpers/functions"; - -// 1. CSS Exports -// - - - - - - - - - - - - - - - - -// Change any value in this map from "true" to "false" to disable that component's CSS class output. You'll still be able to use the component's mixins, but none of our pre-written classes will be in your CSS. - - $include-css: ( - accordion: true, - action-sheet: true, - block-list: true, - button: true, - button-group: true, - card: true, - coloring: true, - extras: true, - forms: true, - grid: true, - iconic: true, - label: true, - badge: true, - list: true, - menu-bar: true, - modal: true, - motion: true, - notification: true, - off-canvas: true, - panel: true, - popup: true, - switch: true, - tabs: true, - title-bar: true, - typography: true, - utilities: true, - ); - -// 2. Global Styles -// - - - - - - - - - - - - - - - - -// This sets 1rem to be 16px -// $rem-base: 16px; - -// The default font-size is set to 100% of the browser style sheet (usually 16px) -// for compatibility with browser-based text zoom or user-set defaults. - -// Since the typical default browser font-size is 16px, that makes the calculation for grid size. -// If you want your base font-size to be different and not have it affect the grid breakpoints, -// set $rem-base to $base-font-size and make sure $base-font-size is a px value. -// $base-font-size: 100%; - -// $base-line-height is 24px while $base-font-size is 16px -// $base-line-height: 1.5; - -// Text selector helpers -// $headers: "h1,h2,h3,h4,h5,h6"; - -// We use these to define default font weights -// $font-weight-normal: normal; -// $font-weight-bold: bold; - -// We use these to control various global styles -// $body-background: #fff; -// $body-font-color: #222; -// $body-font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; -// $body-font-weight: $font-weight-normal; -// $body-font-style: normal; -// $body-antialiased: true; - -// Application Colors -// $primary-color: #00558b; -// $secondary-color: #f1f1f1; -// $alert-color: #F04124; -// $info-color: #A0D3E8; -// $success-color: #43AC6A; -// $warning-color: #F08A24; -// $dark-color: #232323; -// $gray: #dfdfdf; -// $gray-dark: darken($gray, 8); -// $gray-light: lighten($gray, 8); - -// We use these to make sure border radius matches unless we want it different. -// $global-radius: 4px; -// $global-rounded: 1000px; - -// We use this for default spacing -// $global-padding: 1rem; -// $global-spacing: rem-calc(15); - -// 3. Breakpoints -// - - - - - - - - - - - - - - - - -// These are our named breakpoints. You can use them in our breakpoint function like this: @include breakpoint(medium) { // Medium and larger styles } -// $breakpoints: ( -// small: rem-calc(0), -// medium: rem-calc(640), -// large: rem-calc(1200), -// xlarge: rem-calc(1440), -// xxlarge: rem-calc(1920), -// ); - -// All of the names in this list will be output as classes in your CSS, like small-12, medium-6, and so on. -// $breakpoint-classes: (small medium large); - -// 4. Typography -// - - - - - - - - - - - - - - - - -// We use these to control header font styles -// $header-font-family: $body-font-family; -// $header-font-weight: $font-weight-normal; -// $header-font-style: $font-weight-normal; -// $header-font-color: #222; -// $header-line-height: 1.4; -// $header-top-margin: .2rem; -// $header-bottom-margin: .5rem; -// $header-text-rendering: optimizeLegibility; - -// We use these to control header font sizes -// $h1-font-size: rem-calc(44); -// $h2-font-size: rem-calc(37); -// $h3-font-size: rem-calc(27); -// $h4-font-size: rem-calc(23); -// $h5-font-size: rem-calc(18); -// $h6-font-size: 1rem; - -// We use these to control header size reduction on small screens -// $h1-font-reduction: rem-calc(10); -// $h2-font-reduction: rem-calc(10); -// $h3-font-reduction: rem-calc(5); -// $h4-font-reduction: rem-calc(5); -// $h5-font-reduction: 0; -// $h6-font-reduction: 0; - -// These control how subheaders are styled. -// $subheader-line-height: 1.4; -// $subheader-font-color: scale-color($header-font-color, $lightness: 35%); -// $subheader-font-weight: $font-weight-normal; -// $subheader-top-margin: .2rem; -// $subheader-bottom-margin: .5rem; - -// A general styling -// $small-font-size: 60%; -// $small-font-color: scale-color($header-font-color, $lightness: 35%); - -// We use these to style paragraphs -// $paragraph-font-family: inherit; -// $paragraph-font-weight: $font-weight-normal; -// $paragraph-font-size: 1rem; -// $paragraph-line-height: 1.6; -// $paragraph-margin-bottom: rem-calc(20); -// $paragraph-aside-font-size: rem-calc(14); -// $paragraph-aside-line-height: 1.35; -// $paragraph-aside-font-style: italic; -// $paragraph-text-rendering: optimizeLegibility; - -// We use these to style tags -// $code-color: grayscale($primary-color); -// $code-font-family: Consolas, 'Liberation Mono', Courier, monospace; -// $code-font-weight: $font-weight-normal; -// $code-background-color: scale-color($secondary-color, $lightness: 70%); -// $code-border-size: 1px; -// $code-border-style: solid; -// $code-border-color: scale-color($code-background-color, $lightness: -10%); -// $code-padding: rem-calc(2) rem-calc(5) rem-calc(1); - -// We use these to style anchors -// $anchor-text-decoration: none; -// $anchor-text-decoration-hover: none; -// $anchor-font-color: $primary-color; -// $anchor-font-color-hover: scale-color($anchor-font-color, $lightness: -14%); - -// We use these to style the
element -// $hr-border-width: 1px; -// $hr-border-style: solid; -// $hr-border-color: #ddd; -// $hr-margin: rem-calc(20); - -// We use these to style lists -// $list-font-family: $paragraph-font-family; -// $list-font-size: $paragraph-font-size; -// $list-line-height: $paragraph-line-height; -// $list-margin-bottom: $paragraph-margin-bottom; -// $list-style-position: outside; -// $list-side-margin: 1.1rem; -// $list-ordered-side-margin: 1.4rem; -// $list-side-margin-no-bullet: 0; -// $list-nested-margin: rem-calc(20); -// $definition-list-header-weight: $font-weight-bold; -// $definition-list-header-margin-bottom: .3rem; -// $definition-list-margin-bottom: rem-calc(12); - -// We use these to style blockquotes -// $blockquote-font-color: scale-color($header-font-color, $lightness: 35%); -// $blockquote-padding: rem-calc(9 20 0 19); -// $blockquote-border: 1px solid #ddd; -// $blockquote-cite-font-size: rem-calc(13); -// $blockquote-cite-font-color: scale-color($header-font-color, $lightness: 23%); -// $blockquote-cite-link-color: $blockquote-cite-font-color; - -// Acronym styles -// $acronym-underline: 1px dotted #ddd; - -// 5. Grid -// - - - - - - - - - - - - - - - - -// $container-width: rem-calc(900); -// $block-padding: $global-padding; -// $total-columns: 12; -// $block-grid-max-size: 6; - -// 6. Button -// - - - - - - - - - - - - - - - - -// $button-padding: 0.85em 1em; -// $button-margin: 0 $global-padding $global-padding 0; -// $button-style: solid; -// $button-background: $primary-color; -// $button-color: auto; -// $button-radius: 0; -// $button-sizes: ( -// tiny: 0.7, -// small: 0.8, -// medium: 1, -// large: 1.3, -// ); -// $button-font-size: 0.9rem; -// $button-opacity-disabled: 0.5; -// $button-tag-selector: false; - -// 7. Accordion -// - - - - - - - - - - - - - - - - -// $accordion-border: 1px solid $gray-dark; - -// $accordion-title-background: $gray-light; -// $accordion-title-background-hover: smartscale($accordion-title-background, 5%); -// $accordion-title-background-active: smartscale($accordion-title-background, 3%); -// $accordion-title-color: isitlight($accordion-title-background); -// $accordion-title-color-active: isitlight($accordion-title-background); - -// $accordion-title-padding: $global-padding; -// $accordion-content-padding: $global-padding; - -// 8. Action Sheet -// - - - - - - - - - - - - - - - - -// $actionsheet-background: white; -// $actionsheet-border-color: #ccc; -// $actionsheet-animate: transform opacity; -// $actionsheet-animation-speed: 0.25s; -// $actionsheet-width: 300px; -// $actionsheet-radius: 4px; -// $actionsheet-shadow: 0 -3px 10px rgba(black, 0.25); -// $actionsheet-padding: $global-padding; -// $actionsheet-tail-size: 10px; - -// $actionsheet-popup-shadow: 0 0 10px rgba(black, 0.25); - -// $actionsheet-link-color: #000; -// $actionsheet-link-background-hover: smartscale($actionsheet-background); - -// 9. Block List -// - - - - - - - - - - - - - - - - -// $blocklist-background: #fff; -// $blocklist-fullbleed: true; -// $blocklist-fontsize: 1rem; - -// $blocklist-item-padding: 0.8rem 1rem; -// $blocklist-item-color: isitlight($blocklist-background, #000, #fff); -// $blocklist-item-background-hover: smartscale($blocklist-background, 4.5%); -// $blocklist-item-color-disabled: #999; -// $blocklist-item-border: 1px solid smartscale($blocklist-background, 18.5%); - -// $blocklist-item-label-color: scale-color($blocklist-item-color, $lightness: 60%); -// $blocklist-item-icon-size: 0.8; - -// $blocklist-header-fontsize: 0.8em; -// $blocklist-header-color: smartscale($blocklist-item-color, 40%); -// $blocklist-header-uppercase: true; - -// $blocklist-check-icons: true; - -// 10. Button Group -// - - - - - - - - - - - - - - - - -// $btngroup-background: $primary-color; -// $btngroup-color: #fff; -// $btngroup-radius: $button-radius; - -// 11. Card -// - - - - - - - - - - - - - - - - -// $card-background: #fff; -// $card-color: isitlight($card-background); -// $card-border: 1px solid smartscale($card-background, 7%); -// $card-radius: $global-radius; -// $card-shadow: 0 1px 2px rgba(#000, 0.2); -// $card-padding: $global-padding; -// $card-margin: 0.5rem; - -// $card-divider-background: smartscale($card-background, 7%); - -// 12. Extras -// - - - - - - - - - - - - - - - - -// $closebutton-position: (top right); -// $closebutton-size: 2em; -// $closebutton-lineheight: 0.5; -// $closebutton-color: #999; -// $closebutton-color-hover: #333; - -// $thumbnail-padding: 0.5rem; -// $thumbnail-shadow: 0 3px 15px rgba(black, 0.25); - -// 13. Forms -// - - - - - - - - - - - - - - - - -// Basic form variables -// $form-fontsize: 1rem; -// $form-padding: 0.5rem; - -// Text fields -// $input-color: #000; -// $input-color-hover: $input-color; -// $input-color-focus: $input-color; -// $input-background: #fff; -// $input-background-hover: $input-background; -// $input-background-focus: $input-background; -// $input-border: 1px solid #ccc; -// $input-border-hover: 1px solid #bbb; -// $input-border-focus: 1px solid #999; - -// Select menus -// $select-color: #000; -// $select-background: #fafafa; -// $select-background-hover: smartscale($select-background, 4%); -// $select-arrow: true; -// $select-arrow-color: $select-color; - -// Labels -// $form-label-fontsize: 0.9rem; -// $form-label-margin: 0.5rem; -// $form-label-color: #333; - -// Inline labels -// $inlinelabel-color: #333; -// $inlinelabel-background: #eee; -// $inlinelabel-border: $input-border; - -// Range slider -// $slider-background: #ddd; -// $slider-height: 1rem; -// $slider-radius: 0px; -// $slider-thumb-height: 1.5rem; -// $slider-thumb-color: $primary-color; -// $slider-thumb-radius: 0px; - -// Progress and meter -// $meter-height: 1.5rem; -// $meter-background: #ccc; -// $meter-fill: $primary-color; -// $meter-fill-high: $success-color; -// $meter-fill-medium: #e7cf00; -// $meter-fill-low: $alert-color; -// $meter-radius: 0; - -// 14. Iconic -// - - - - - - - - - - - - - - - - -// $iconic-primary-fill: $primary-color; -// $iconic-primary-stroke: $primary-color; -// $iconic-accent-fill: $iconic-primary-fill; -// $iconic-accent-stroke: $iconic-accent-fill; - -// 15. Label -// - - - - - - - - - - - - - - - - -// $label-fontsize: 0.8rem; -// $label-padding: ($global-padding / 3) ($global-padding / 2); -// $label-radius: 0; -// $label-background: $primary-color; -// $label-color: isitlight($primary-color); - -// $badge-fontsize: 0.8em; -// $badge-diameter: 1.5rem; -// $badge-background: $primary-color; -// $badge-color: #fff; - -// DEPRECATED: these variables will be removed in v1.1. -// $badge-padding: .1em .61em; -// $badge-radius: $global-rounded; -// $badge-font-color: #fff; - -// 16. Menu Bar -// - - - - - - - - - - - - - - - - -// $menubar-fontsize: 1rem; -// $menubar-background: #fff; -// $menubar-background-hover: smartscale($menubar-background, 7%); -// $menubar-background-active: $menubar-background-hover; -// $menubar-color: isitlight($menubar-background); -// $menubar-color-hover: $menubar-color; -// $menubar-color-active: $menubar-color-hover; - -// $menubar-item-padding: $global-padding; -// $menubar-icon-size: 25px; -// $menubar-icon-spacing: $menubar-item-padding; - -// 17. Modal -// - - - - - - - - - - - - - - - - -// $modal-background: #fff; -// $modal-border: 0; -// $modal-radius: 0px; -// $modal-shadow: none; -// $modal-zindex: 1000; -// $modal-sizes: ( -// tiny: 300px, -// small: 500px, -// medium: 600px, -// large: 800px, -// ); - -// $modal-overlay-class: 'modal-overlay'; -// $modal-overlay-background: rgba(#333, 0.7); - -// 18. Motion UI -// - - - - - - - - - - - - - - - - -// Classes to use when triggering in/out animations -// $motion-class: ( -// in: "ng-enter", -// out: "ng-leave", -// ); -// $motion-class-active: ( -// in: "ng-enter-active", -// out: "ng-leave-active", -// ); -// $motion-class-stagger: ( -// in: "ng-enter-stagger", -// out: "ng-leave-stagger", -// ); - -// Set if movement-based transitions should also fade the element in and out -// $motion-slide-and-fade: false; -// $motion-hinge-and-fade: true; -// $motion-scale-and-fade: true; -// $motion-spin-and-fade: true; - -// Default speed for transitions and animations -// $motion-duration-default: 500ms; -// Slow and fast modifiders -// $motion-duration-slow: 750ms; -// $motion-duration-fast: 250ms; -// $motion-stagger-duration-default: 150ms; -// $motion-stagger-duration-short: 50ms; -// $motion-stagger-duration-long: 300ms; - -// Default timing function for transitions and animations -// $motion-timing-default: ease; -// Built-in and custom easing functions -// Every item in this map becomes a CSS class -// $motion-timings: ( -// linear: linear, -// ease: ease, -// easeIn: ease-in, -// easeOut: ease-out, -// easeInOut: ease-in-out, -// bounceIn: cubic-bezier(0.485, 0.155, 0.240, 1.245), -// bounceOut: cubic-bezier(0.485, 0.155, 0.515, 0.845), -// bounceInOut: cubic-bezier(0.760, -0.245, 0.240, 1.245), -// ); - -// Default delay for all transitions and animations -// $motion-delay-default: 0; -// Short and long delay modifiers -// $motion-delay-short: 300ms; -// $motion-delay-long: 700ms; - -// 19. Notification -// - - - - - - - - - - - - - - - - -// $notification-default-position: right top; -// $notification-width: rem-calc(400); -// $notification-offset: $global-padding; - -// $notification-background: $primary-color; -// $notification-color: white; -// $notification-padding: $global-padding; -// $notification-radius: 4px; - -// $notification-icon-size: 60px; -// $notification-icon-margin: $global-padding; -// $notification-icon-align: top; - - -// 20. Off-canvas -// - - - - - - - - - - - - - - - - -// $offcanvas-size-horizontal: 250px; -// $offcanvas-size-vertical: 250px; - -// $offcanvas-background: #fff; -// $offcanvas-color: isitlight($offcanvas-background); -// $offcanvas-padding: 0; -// $offcanvas-shadow: 3px 0 10px rgba(black, 0.25); -// $offcanvas-animation-speed: 0.25s; - -// $offcanvas-frame-selector: '.grid-frame'; - -// 21. Panel -// - - - - - - - - - - - - - - - - -// $panel-size-horizontal: 300px; -// $panel-size-vertical: 300px; -// $panel-padding: 0; - -// $panel-background: #fff; -// $panel-shadow: 3px 0 10px rgba(black, 0.25); -// $panel-animation-speed: 0.25s; - -// 22. Popup -// - - - - - - - - - - - - - - - - -// $popup-width: rem-calc(300); -// $popup-background: #fff; -// $popup-border: 0; -// $popup-radius: 0; -// $popup-shadow: 0 0 10px rgba(#000, 0.25); - -// 23. Switch -// - - - - - - - - - - - - - - - - -// $switch-width: rem-calc(50); -// $switch-height: rem-calc(32); -// $switch-background: #ccc; -// $switch-background-active: $primary-color; -// $switch-border: 0; -// $switch-radius: 9999px; -// $switch-animation-speed: 0.15s; - -// $switch-paddle-color: white; -// $switch-paddle-offset: 4px; - -// 24. Tabs -// - - - - - - - - - - - - - - - - -// $tabstrip-background: transparent; - -// $tab-title-background: $gray-light; -// $tab-title-background-hover: smartscale($tab-title-background, 5%); -// $tab-title-background-active: smartscale($tab-title-background, 3%); -// $tab-title-color: isitlight($tab-title-background); -// $tab-title-color-active: $tab-title-color; - -// $tab-title-padding: $global-padding; -// $tab-content-padding: $global-padding; - -// 25. Title Bar -// - - - - - - - - - - - - - - - - -// $titlebar-center-width: 50%; -// $titlebar-side-width: (100% - $titlebar-center-width) / 2; -// $titlebar-background: #eee; -// $titlebar-color: #000; -// $titlebar-border: 1px solid #ccc; -// $titlebar-padding: $global-padding; -// $titlebar-item-classes: ( -// center: 'center', -// left: 'left', -// right: 'right', -// title: 'title', -// ); - diff --git a/templates/hybrid-html5/app/Frontend/styles/foundation/foundation-conf.scss b/templates/hybrid-html5/app/Frontend/styles/foundation/foundation-conf.scss deleted file mode 100644 index bdcfe1f..0000000 --- a/templates/hybrid-html5/app/Frontend/styles/foundation/foundation-conf.scss +++ /dev/null @@ -1,19 +0,0 @@ -@import "foundation-settings"; -@import "foundation-icons"; -@import "foundation"; - - -/*.sidebar { - // Panel on small screens - @extend %panel-base; - @include panel-position(left); - // Override styles to become a block on medium screens - @include breakpoint(medium) { - @include grid-panel-reset; - @include grid-block(4); - } - // Change size to 3 columns on large screens - @include breakpoint(large) { - @include grid-size(3); - } -}*/ \ No newline at end of file diff --git a/templates/hybrid-html5/app/Frontend/widgets/ActionButtons/ActionButtons.scss b/templates/hybrid-html5/app/Frontend/widgets/ActionButtons/ActionButtons.scss deleted file mode 100644 index 6cb8338..0000000 --- a/templates/hybrid-html5/app/Frontend/widgets/ActionButtons/ActionButtons.scss +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -@import "app/ibz-mixins"; - -// place here your submit buttons customization -appli-button { - @include ibz-button(grey,1rem) - img { - height: 3rem; - } - - - .disable>i { - text-decoration:none; // really not needed for the Top Bar, just for general technique - cursor: auto; - color: grey !important; - } -} - -.appli-menu-start { - .start-start, .stop-stop { - i {color: grey;} - } -} diff --git a/templates/hybrid-html5/app/Frontend/widgets/ActionButtons/AppliButton.js b/templates/hybrid-html5/app/Frontend/widgets/ActionButtons/AppliButton.js deleted file mode 100644 index 269ee81..0000000 --- a/templates/hybrid-html5/app/Frontend/widgets/ActionButtons/AppliButton.js +++ /dev/null @@ -1,205 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Bugs: Input with Callback SHOULD BE get 'required' class - */ - -(function () { - 'use strict'; - - var tmplAppli = '
' + - '' + - '{{label}}' + - '
'; - - var tmplModal = - '×' + - '' + - 'Application {{label}}' + - '
' + - ''; - - var tmplDetail = - '×' + - '' + - 'Application {{label}}' + - '
    ' + - '
  • Name : {{detail.name}}
  • ' + - '
  • Description {{detail.description}}
  • ' + - '
  • Author : {{detail.author}}
  • ' + - '
' + - ''; - - angular.module('AppliButton', []) - .directive('appliButton', function (AppConfig, AppCall, ModalFactory, Notification, $timeout, $window, $location, urlquery) { - - function mymethods(scope, elem, attrs) { - scope.runstatus = "stop"; - scope.runmode = urlquery.runmode || "auto"; - scope.clicked = function () { - - var notifyError = function(action, response) { - Notification.error ({message: "Fail /api/afm-main" + action + "=" + scope.label + " RunID="+ scope.appID, delay: 5000}); - elem.addClass ("fail"); - elem.removeClass ("success"); - scope.callback (scope.appID, action, response); - }; - - var notifySuccess = function (action, response) { - elem.removeClass ("fail"); - scope.runID = response.data.response.runid; - scope.callback (scope.appID, action, response); - }; - - var closeModApp = function() { - scope.modApp.deactivate(); - $timeout (function() {scope.modApp.destroy();}, 1000); - }; - - var closeModInfo = function() { - scope.modInfo.deactivate(); - $timeout (function() {scope.modInfo.destroy();}, 1000); - }; - - var actionModal = function(action) { - console.log ("Modal Action=%s", action); - switch (action) { - - case "start": - if (scope.runstatus !== "stop") return; - AppCall.get ("afm-main", "start", {id: scope.appID, mode: scope.runmode}, function(response) { - if (response.status !== 200 || response.data.jtype !== "afb-reply") { - notifyError ("start", response); - return; - } - scope.runstatus="start"; - notifySuccess (action, response); - if(response.data.response.uri) - scope.winapp= $window.open(response.data.response.uri.replace("%h", $location.host())); - }); - break; - - case "stop": - if (scope.runstatus !== "start") return; - - AppCall.get ("afm-main", "terminate", {runid: scope.runID}, function(response) { - if (response.status !== 200 || response.data.jtype !== "afb-reply") { - notifyError ("stop", response); - return; - } - scope.runstatus="stop"; - - // if a remote window app was open let's close it - if (scope.winapp) { - console.log ("Closing Application Window label=%s id=%s", scope.label, scope.appID); - scope.winapp.close(); - scope.winapp=false; - } - notifySuccess (action, response); - }); - break; - - case "info": - AppCall.get ("afm-main", "detail", {id: scope.appID}, function(response) { - if (response.status !== 200 || response.data.jtype !== "afb-reply") { - notifyError ("detail", response); - return; - } - - // reference http://foundation.zurb.com/apps/docs/#!/angular-modules - var config = { - animationIn: 'slideInFromTop', - contentScope: { - close : closeModInfo, - icon : scope.icon, - label : scope.appID, - detail : response.data.response - }, template : tmplDetail - }; - // Popup Modal to render application data - scope.modInfo = new ModalFactory(config); - scope.modInfo.activate (); - - }); - break; - - case "uninstall": - if (scope.runstatus !== "stop") return; - AppCall.get ("afm-main", "uninstall", {id: scope.appID}, function(response) { - if (response.status !== 200 || response.data.jtype !== "afb-reply") { - notifyError ("uninstall", response); - return; - } - - notifySuccess (action, response); - }); - break; - - default: - console.log ("ActionModal unknown action=[%s]", action); - break; - } - - closeModApp(); - }; - - // reference http://foundation.zurb.com/apps/docs/#!/angular-modules - var config = { - animationIn: 'slideInFromTop', - contentScope: { - action : actionModal, - runstatus: scope.runstatus, - close : closeModApp, - icon : scope.icon, - label : scope.label - }, template : tmplModal - }; - // Popup Modal to render application data - scope.modApp = new ModalFactory(config); - scope.modApp.activate (); - }; - - // extract application information from AppID+Store - if (attrs.handle && scope.store [attrs.handle].name) { - scope.icon = AppConfig.paths.icons + attrs.handle; //scope.store [attrs.handle].name.toLowerCase() + '-ico.png'; - scope.label = scope.store [attrs.handle].name; - scope.appID= attrs.handle; - } else { - scope.icon = AppConfig.paths.icons + 'w3c-ico.png'; - scope.label = attrs.handle; - } - - // add label as class - elem.addClass (scope.label.toLowerCase()); - - // note: clicked in imported and when template is clicked - // it will call clicked method passed in param. - } - - return { - restrict: 'E', - template: tmplAppli, - link: mymethods, - scope: {callback: '=', store: '='} - }; - }); -})(); diff --git a/templates/hybrid-html5/app/Frontend/widgets/ActionButtons/SubmitButton.js b/templates/hybrid-html5/app/Frontend/widgets/ActionButtons/SubmitButton.js deleted file mode 100644 index 323cd46..0000000 --- a/templates/hybrid-html5/app/Frontend/widgets/ActionButtons/SubmitButton.js +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Bugs: Input with Callback SHOULD BE get 'required' class - */ - -(function () { - 'use strict'; - - var tmpl = '
' + - '' + - '{{label}}' + - '
'; - - angular.module('SubmitButton', []) - .directive('submitButton', function () { - - function mymethods(scope, elem, attrs) { - - // ajust icon or use default - scope.icon = attrs.icon || 'fi-foot'; - scope.label = attrs.label || 'Next'; - - // add label as class - elem.addClass (scope.label.toLowerCase()); - - // note: clicked in imported and when template is clicked - // it will call clicked method passed in param. - } - - return { - restrict: 'E', - template: tmpl, - link: mymethods, - scope: {clicked : '='} - }; - }); -})(); diff --git a/templates/hybrid-html5/app/Frontend/widgets/Navigation/LinkButton.js b/templates/hybrid-html5/app/Frontend/widgets/Navigation/LinkButton.js deleted file mode 100644 index 3e83425..0000000 --- a/templates/hybrid-html5/app/Frontend/widgets/Navigation/LinkButton.js +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Bugs: Input with Callback SHOULD BE get 'required' class - */ - -(function () { - 'use strict'; - - var tmpl = '' + - '' + - '{{label}}' + - ''; - - - angular.module('LinkButton', []) - .directive('linkButton', function ($location) { - - function mymethods(scope, elem, attrs) { - - scope.clicked = function () { - - if (!attrs.query) $location.path(attrs.href); - else $location.path(attrs.href).search(attrs.query); - }; - - // ajust icon or use default - scope.icon = attrs.icon || 'fi-link'; - scope.label = attrs.label || 'Jump'; - scope.href = attrs.href || '/home'; - - // add label as class - elem.addClass (scope.label.toLowerCase()); - } - - return { - restrict: 'E', - template: tmpl, - link: mymethods, - scope: {} - }; - }); -})(); diff --git a/templates/hybrid-html5/app/Frontend/widgets/Navigation/Navigation.scss b/templates/hybrid-html5/app/Frontend/widgets/Navigation/Navigation.scss deleted file mode 100644 index 2babf24..0000000 --- a/templates/hybrid-html5/app/Frontend/widgets/Navigation/Navigation.scss +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -@import "app/ibz-mixins"; - - -link-button {@include ibz-button(#3366ff,1rem)}; - -//pale blue for secondaty link -link-button.secondary {@include ibz-button(#99b3ff,1rem)}; - diff --git a/templates/hybrid-html5/app/Frontend/widgets/Notifications/ModalNotification.js b/templates/hybrid-html5/app/Frontend/widgets/Notifications/ModalNotification.js deleted file mode 100644 index 37ba047..0000000 --- a/templates/hybrid-html5/app/Frontend/widgets/Notifications/ModalNotification.js +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Bugs: Input with Callback SHOULD BE get 'required' class - * - * ref: https://developer.mozilla.org/en-US/docs/Web/Events/mouseover - * - * usage: - * - * tipModal: listen event from elem.parent() to display tip-modal - *
- * - * - *
- * - * Note: use CSS.visibility to avoid display flickering at initial display. - */ - -(function () { - 'use strict'; - - var tmpl = '
' + - '' + - '{{tip}}' + - '
' ; - - angular.module('ModalNotification', []) - .directive('tipModal', function ($timeout) { - - function mymethods(scope, elem, attrs) { - scope.parent = elem.parent(); - scope.modal = elem.find("div"); - - - // delay tip display to avoid blinking when moving mouse fast - function display () { - function action() { - if (scope.show) scope.modal.css({opacity: 1, visibility:'visible'}); - } - scope.show = true; - scope.timeout = $timeout(action, scope.delay); - } - - function close () { - scope.show = false; - scope.modal.css({opacity: 0, visibility:'hidden'}); - } - - - // ajust icon or use default - scope.icon = attrs.icon || 'fi-lightbulb'; - - // Update Parent element to get mouse event - scope.parent.addClass ('as-modal-tip'); - scope.parent.bind('click', close); - scope.parent.bind('focus', display); - scope.parent.bind('mouseover', display); - scope.parent.bind('mouseleave', close); - scope.parent.bind('blur', close); - - scope.delay = attrs.delay || 1000; // wait 1s before displaying tip - } - - return { - restrict: 'E', - template: tmpl, - link: mymethods, - scope: {tip: "="} // tip may not be defined when widget is display - }; - }); -})(); diff --git a/templates/hybrid-html5/app/Frontend/widgets/Notifications/Notifications.scss b/templates/hybrid-html5/app/Frontend/widgets/Notifications/Notifications.scss deleted file mode 100644 index fb740b7..0000000 --- a/templates/hybrid-html5/app/Frontend/widgets/Notifications/Notifications.scss +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Reference: http://www.greywyvern.com/?post=337 - */ - -@import "app/ibz-mixins"; - - -link-button {@include ibz-button(#3366ff,1rem)}; - -// Modal should be relative and tip-modal-popup absolute -tip-modal { - position:relative; -} - -.tip-modal-popup { - //visibility: hidden; - width: 20rem; - position:absolute; - top:1em; - padding: 0.2em 0.6em; - border:1px solid #996633; - background-color:#e5ffff; - color:#000; - opacity:0; - transition:visibility .5s linear 1s,opacity 1s linear; - border-radius: 5px; - i { - margin: 0 .3rem 0 0; - display: inline; - } -} - -token-refresh { - @include ibz-button(grey,1rem) - i {margin-left: .5rem;} - margin-right: 1rem; -} - -token-refresh.online { - color: #0066cc; - i {color: lime;} -} - -token-refresh.offline { - color: #ff00ff; - i {color: red;} -} diff --git a/templates/hybrid-html5/app/Frontend/widgets/Notifications/TokenRefreshSvc.js b/templates/hybrid-html5/app/Frontend/widgets/Notifications/TokenRefreshSvc.js deleted file mode 100644 index 2c7c3da..0000000 --- a/templates/hybrid-html5/app/Frontend/widgets/Notifications/TokenRefreshSvc.js +++ /dev/null @@ -1,149 +0,0 @@ -/* - alsa-gateway -- provide a REST/HTTP interface to ALSA-Mixer - - Copyright (C) 2015, Fulup Ar Foll - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with scope program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - References: - - */ - -(function () { - 'use strict'; - - var template = - '
' + - 'afb://{{hostname}}:{{httpdport}}' + - '' + - '
'; - - -// scope module is load statically before any route is cativated -angular.module('TokenRefresh', ['AppConfig', 'ModalNotification']) - - .directive ('tokenRefresh', function($log, $window, $timeout, $location, Notification, AppConfig, AppCall) { - - function mymethods(scope, elem, attrs) { - scope.logged=undefined; // neither thu neither false - - $window.onbeforeunload = function () { - AppCall.get (scope.plugin, "logout", {/*query*/}, function () { - $log.log("OPA exit"); - }); - }; - - scope.online = function () { - elem.addClass ("online"); - elem.removeClass ("offline"); - scope.logged=true; - }; - - scope.offline = function(){ - elem.addClass ("offline"); - elem.removeClass ("online"); - scope.logged=false; - }; - - scope.onerror = function() { - if (scope.logged !== false) { - Notification.warning ({message: "AppFramework Binder Lost", delay: 5000}); - scope.offline(); - } - scope.status = 0; - }; - - scope.onsuccess = function(jresp, errcode) { - - if (errcode !== 200 || jresp.request.status !== "success") { - Notification.warning ({message: "auto-connect :" + jresp.request.info, delay: 10000}); - scope.offline(); - return false; - } - - if (scope.logged !== true) { - Notification.success ({message: "AppFramework Binder Connected", delay: 3000}); - scope.online(); - if (scope.callback) scope.callback(jresp); - } - - scope.status = 1; - return true; - }; - - // Check Binder status - scope.getping = function() { - - AppCall.get (scope.plugin, "ping", {/*query*/},function(jresp, errcode) { - if (errcode !== 200 || jresp.request.status !== "success") { - Notification.warning ({message: jresp.request.info, delay: 5000}); - scope.offline(); - return; - } - // restart a new timer for next ping - $timeout (scope.getping, AppConfig.session.pingrate*1000); - }, scope.onerror); - }; - - // Check Binder status - scope.refresh = function() { - - AppCall.get (scope.plugin, "refresh", {/*query*/}, function(jresp, errcode) { - - scope.onsuccess (jresp, errcode); - - // restart a new timer for next refresh - $timeout (scope.refresh, AppConfig.session.timeout *250); - }, scope.onerror); - }; - - // Initial connection - scope.loggin = function() { - AppCall.get (scope.plugin, "connect", {token: AppConfig.session.initial}, function(jresp, errcode) { - - if (!scope.onsuccess (jresp, errcode)) return; - - // Intial token was accepted let's start ping & refresh - $timeout (scope.getping, AppConfig.session.pingrate*1000); - $timeout (scope.refresh, AppConfig.session.timeout *250); - - }, scope.onerror); - }; - - - // Parse Widget Parameters - scope.plugin = attrs.plugin || "auth"; - scope.icon = attrs.icon || "fi-lightbulb"; - scope.hostname = $location.host(); - scope.httpdport = $location.port(); - scope.autolog = JSON.parse(attrs.autolog || false); - - // autostart log if requested - if (scope.autolog) scope.loggin(); - - } - - return { - template: template, - scope: { - callback : "=" - }, - restrict: 'E', - link: mymethods - }; -}); - -})(); -console.log ("Token Refresh Loaded"); diff --git a/templates/hybrid-html5/app/Frontend/widgets/RangeSliders/RangeSliderMod.js b/templates/hybrid-html5/app/Frontend/widgets/RangeSliders/RangeSliderMod.js deleted file mode 100644 index 77f0fce..0000000 --- a/templates/hybrid-html5/app/Frontend/widgets/RangeSliders/RangeSliderMod.js +++ /dev/null @@ -1,631 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Bugs: Input with Callback SHOULD BE get 'required' class - * - * ref: https://developer.mozilla.org/en-US/docs/Web/Events/mouseover - * - * usage: -Usage ---------------------- - - class="radius" // check Zurb foundation doc for further info. - class="ibz-handle-display" // increase handle width to hold slider current value - - - callback="myCallBack" // $scope.myCallBack(sliderhandle) is called when ever slider handle blur - formatter="SliderFormatCB" // $scope.myFormatter(value, sliderid) when exist is call when ever slider handle moves. Should return external form of slider value. - ng-model="xxxxxx" // xxx Must be defined, script will store a new RangerObject within provided ng-model variable. - start-at="ScopeVar" // Dynamic limitation when slider is constrains by an external componant [ex: check in/out] - stop-at="ScopeVar" // Idem but for end. - - - not-less="integer" // Fixed starting value for slider [default 0] - not-more="integer" // Fixed end value for sliders [default 100] - by-step="+-integer" // If by-step is >0 then slider use it as step-value, when negative use it for decimal precision - display-target="handle" // display slider external formated value in the handle [requirer calss="ibz-handle-display"] - dual-handles='true' // add a second handle to slider for min/max range - initial='value|[start/stop]' // slider initial value [dual-handles] may have initial values - /> - */ - -(function () { - 'use strict'; - -var RangeSlider = angular.module('RangeSlider',[]); - -function RangeSliderHandle (scope) { - var internals = []; - var externals = []; - - this.getId = function() { - return scope.sliderid; - }; - - this.getCbHandle = function() { - return scope.cbhandle; - }; - - this.getView= function (handle) { - if (!handle) handle = 0; - - // if value did not change return current external representation - if (scope.value[handle] === internals[handle]) return externals[handle]; - - // build external representation and save it for further requests - internals[handle] = scope.value[handle]; - if (scope.formatter) externals[handle] = scope.formatter(scope.value[handle], scope.ctrlhandle); - else externals[handle] = scope.value[handle]; - - return externals[handle]; - }; - - this.updateClass = function (classe, status) { - scope.updateClass (classe, status); - }; - - this.forceRefresh = function (timer) { - scope.forceRefresh(timer); - }; - - this.getValue= function (handle) { - if (!handle) handle = 0; - return scope.value[handle]; - }; - - this.getRelative= function (handle) { - if (!handle) handle = 0; - return scope.relative[handle]; - }; - - this.setValue= function (value, handle) { - if (!handle) handle = 0; - scope.setValue (value, handle); - }; - - this.setDisable= function (flag) { - scope.setDisable(flag); - }; -} - -RangeSlider.directive('rangeSlider', function ($log, $document, $timeout) { - - var template= '
'+ - ''+ - ''+ - ''+ - ' '+ - ' '+ - ''+ - '
'; - - - function link (scope, element, attrs, model) { - // full initialisation of slider from a single object - scope.initWidget = function (initvalues) { - - if (initvalues.byStep) scope.byStep = parseInt(initvalues.byStep); - if (initvalues.notMore) scope.notMore = parseInt(initvalues.notMore); - if (initvalues.notLess) scope.notLess = parseInt(initvalues.notLess); - if (initvalues.id) scope.sliderid= initvalues.id; - - // hugely but in some case DOM is not finish when we try to set values !!! - if (initvalues.value !== undefined) { - scope.value = initvalues.value; - scope.forceRefresh (50); // wait 50ms for DOM to be ready - } - }; - - // this function recompute slide positioning - scope.forceRefresh = function (timer) { - var value = scope.value; - scope.value = [undefined,undefined]; - $timeout (function() { - scope.setValue(value[0],0); - if (scope.dual) scope.setValue(value[1],1); - }, timer); - }; - - // handler to change class from slider handle - scope.updateClass = function (classe, status) { - - if (status) element.addClass (classe); - else element.removeClass (classe); - }; - - scope.setDisable = function (disabled) { - - if (disabled) { - element.addClass ("disable"); - scope.handles[0].css ('visibility','hidden'); - if (scope.dual) { - scope.handles[1].css ('visibility','hidden'); - } - } else { - element.removeClass ("disable"); - scope.handles[0].css ('visibility','visible'); - if (scope.dual) scope.handles[1].css ('visibility','visible'); - } - - }; - - scope.normalize = function (value) { - var result; - var range = scope.notMore - scope.notLess; - var point = value * range; - - // if step is positive let's round step by step - if (scope.byStep > 0) { - var mod = (point - (point % scope.byStep)) / scope.byStep; - var rem = point % scope.byStep; - - var round = (rem >= scope.byStep * 0.5 ? scope.byStep : 0); - result= (mod * scope.byStep + round) + scope.notLess; - //console.log ("range=%d value=%d point=%d mod=%d rem=%d round=%d result=%d", range, value, point, mod, rem, round, result) - return result; - } - - // if step is negative return round to asked decimal - if (scope.byStep < 0) { - var power = Math.pow (10,(scope.byStep * -1)); - result = scope.notLess + parseInt (point * power) / power; - return (result); - } - - // if step is null return full value - return point; - }; - - // return current value - scope.getValue = function (offset, handle) { - if (scope.vertical) { - scope.relative[handle] = (offset - scope.bounds.handles[handle].getBoundingClientRect().height) / (scope.bounds.bar.getBoundingClientRect().height - scope.bounds.handles[handle].getBoundingClientRect().height); - } else { - scope.relative[handle] = offset / (scope.bounds.bar.getBoundingClientRect().width - scope.bounds.handles[handle].getBoundingClientRect().width); - } - - var newvalue = scope.normalize (scope.relative[handle]); - - - // if internal value change update or model - if (newvalue !== scope.value[handle]) { - if (newvalue < scope.startValue) newvalue=scope.startValue; - if (newvalue > scope.stopValue) newvalue=scope.stopValue; - - - if (scope.formatter) { - scope.viewValue = scope.formatter (newvalue, scope.ctrlhandle); - } else { - scope.viewValue = newvalue; - } - if (scope.displays[handle]) { - scope.displays[handle].html (scope.viewValue); - } - - // update external representation of the model - scope.value[handle] = newvalue; - if (model) model.$setViewValue (scope.viewValue); - scope.$apply(); - if (newvalue > scope.startValue && newvalue < scope.stopValue) scope.translate(offset, handle); - } - }; - - - scope.setStart = function (value) { - var offset; - - if (value > scope.value[0]) { - if (!scope.dual) scope.setValue (value,0); - else scope.setValue (value,1); - } - - if (scope.vertical) { - offset = scope.bounds.bar.getBoundingClientRect().height * (value - scope.notLess) / (scope.notMore - scope.notLess); - scope.start.css('height',offset + 'px'); - } else { - offset = scope.bounds.bar.getBoundingClientRect().width * (value - scope.notLess) / (scope.notMore - scope.notLess); - scope.start.css('width',offset + 'px'); - } - - scope.startValue= value; - }; - - scope.setStop = function (value) { - var offset; - - if (value < scope.value[0]) { - if (!scope.dual) scope.setValue (value,0); - else scope.setValue (value,1); - } - - if (scope.vertical) { - offset = scope.bounds.bar.getBoundingClientRect().height * (value - scope.notLess) / (scope.notMore - scope.notLess); - scope.start.css('height',offset + 'px'); - } else { - offset = scope.bounds.bar.getBoundingClientRect().width * (value - scope.notLess) / (scope.notMore - scope.notLess); - scope.stop.css({'right': 0, 'width': (scope.bounds.bar.getBoundingClientRect().width - offset) + 'px'}); - } - - scope.stopValue= value; - }; - - scope.translate = function (offset, handle) { - var start; - - if (scope.vertical) { - // take handle size in account to compute middle - var voffset = scope.bounds.bar.getBoundingClientRect().height - offset; - - scope.handles[handle].css({ - '-webkit-transform': 'translateY(' + voffset + 'px)', - '-moz-transform': 'translateY(' + voffset + 'px)', - '-ms-transform': 'translateY(' + voffset + 'px)', - '-o-transform': 'translateY(' + voffset + 'px)', - 'transform': 'translateY(' + voffset + 'px)' - }); - if (!scope.dual) scope.slider.css('height', offset + 'px'); - else if (scope.relative[1] && scope.relative[0]) { - var height = (scope.relative[1] - scope.relative[0]) * scope.bounds.bar.getBoundingClientRect().height; - start = (scope.relative[0] * scope.bounds.bar.getBoundingClientRect().height); - scope.slider.css ({'bottom': start+'px','height': height + 'px'}); - } - } else { - - scope.handles[handle].css({ - '-webkit-transform': 'translateX(' + offset + 'px)', - '-moz-transform': 'translateX(' + offset + 'px)', - '-ms-transform': 'translateX(' + offset + 'px)', - '-o-transform': 'translateX(' + offset + 'px)', - 'transform': 'translateX(' + offset + 'px)' - }); - if (!scope.dual) scope.slider.css('width',offset + 'px'); - else if (scope.relative[1] && scope.relative[0]) { - var width = (scope.relative[1] - scope.relative[0]) * scope.bounds.bar.getBoundingClientRect().width; - start = (scope.relative[0] * scope.bounds.bar.getBoundingClientRect().width); - scope.slider.css ({'left': start+'px','width': width + 'px'}); - } - } - }; - - // position handle on the bar depending a given value - scope.setValue = function (value , handle) { - var offset; - - // if value did not change ignore - if (value === scope.value[handle]) return; - if (value === undefined) value=0; - if (value > scope.notMore) value=scope.notMore; - if (value < scope.notLess) value=scope.notLess; - - if (scope.vertical) { - scope.relative[handle] = (value - scope.notLess) / (scope.notMore - scope.notLess); - if (handle === 0) offset = (scope.relative[handle] * scope.bounds.bar.getBoundingClientRect().height) + scope.bounds.handles[handle].getBoundingClientRect().height/2; - if (handle === 1) offset = scope.relative[handle] * scope.bounds.bar.getBoundingClientRect().height; - - } else { - scope.relative[handle] = (value - scope.notLess) / (scope.notMore - scope.notLess); - offset = scope.relative[handle] * (scope.bounds.bar.getBoundingClientRect().width - scope.bounds.handles[handle].getBoundingClientRect().width); - } - - scope.translate (offset,handle); - scope.value[handle] = value; - - if (scope.formatter) { - // when call through setValue we do not pass cbHandle - scope.viewValue = scope.formatter (value, undefined); - } else { - scope.viewValue = value; - } - - if (model) model.$setViewValue( scope.viewValue); - - if (scope.displays[handle]) { - scope.displays[handle].html (scope.viewValue); - } - }; - - - // Minimal keystroke handling to close picker with ESC [scope.actif is current handle index] - scope.keydown= function(e){ - - switch(e.keyCode){ - case 39: // Right - case 38: // up - if (scope.byStep > 0) scope.$apply(scope.setValue ((scope.value[scope.actif]+scope.byStep), scope.actif)); - if (scope.byStep < 0) scope.$apply(scope.setValue ((scope.value[scope.actif]+(1 / Math.pow(10, scope.byStep*-1))),scope.actif)); - if (scope.callback) scope.callback (scope.value[scope.actif], scope.ctrlhandle); - break; - case 37: // left - case 40: // down - if (scope.byStep > 0) scope.$apply(scope.setValue ((scope.value[scope.actif] - scope.byStep), scope.actif)); - if (scope.byStep < 0) scope.$apply(scope.setValue ((scope.value[scope.actif] - (1 / Math.pow(10, scope.byStep*-1))),scope.actif)); - if (scope.callback) scope.callback (scope.value[scope.actif], scope.ctrlhandle); - break; - case 27: // esc - scope.handles[scope.actif][0].blur(); - } - }; - - scope.moveHandle = function (handle, clientX, clientY) { - var offset; - if (scope.vertical) { - offset = scope.bounds.bar.getBoundingClientRect().bottom - clientY; - if (offset > scope.bounds.bar.getBoundingClientRect().height) offset = scope.bounds.bar.getBoundingClientRect().height; - if (offset < scope.bounds.handles[handle].getBoundingClientRect().height) offset = scope.bounds.handles[handle].getBoundingClientRect().height; - } else { - offset = clientX - scope.bounds.bar.getBoundingClientRect().left; - - if (offset < 0) offset = 0; - if ((clientX + scope.bounds.handles[handle].getBoundingClientRect().width) > scope.bounds.bar.getBoundingClientRect().right) { - offset = scope.bounds.bar.getBoundingClientRect().width - scope.bounds.handles[handle].getBoundingClientRect().width; - } - } - - scope.getValue (offset, handle); - - // prevent dual handle to cross - if (scope.dual && scope.value [0] > scope.value[1]) { - if (handle === 0) scope.setValue (scope.value[0] , 1); - else scope.setValue(scope.value[1],0); - } - }; - - - scope.focusCB = function (inside) { - if (inside) { - $document.on('keydown',scope.keydown); - } else { - $document.unbind('keydown',scope.keydown); - } - }; - - // bar was touch let move handle to this point - scope.touchBarCB = function (event) { - var handle=0; - var relative; - var touches = event.changedTouches; - var oldvalue = scope.value[handle]; - - event.preventDefault(); - - // if we have two handles select closest one from touch point - if (scope.dual) { - if (scope.vertical) relative = (touches[0].pageY - scope.bounds.bar.getBoundingClientRect().bottom) / scope.bounds.bar.getBoundingClientRect().height; - else relative= (touches[0].pageX - scope.bounds.bar.getBoundingClientRect().left) / scope.bounds.bar.getBoundingClientRect().width; - - var distance0 = Math.abs(relative - scope.relative[0]); - var distance1 = Math.abs(relative - scope.relative[1]); - if (distance1 < distance0) handle=1; - } - - // move handle to new place - scope.moveHandle (handle,touches[0].pageX, touches[0].pageY); - if (scope.callback && oldvalue !== scope.value[handle]) scope.callback (scope.value[handle], scope.ctrlhandle); - }; - - // handle was touch and drag - scope.touchHandleCB = function (touchevt, handle) { - var oldvalue = scope.value[handle]; - - touchevt.preventDefault(); - $document.on('touchmove',touchmove); - $document.on('touchend' ,touchend); - element.unbind('touchstart', scope.touchBarCB); - - function touchmove(event) { - event.preventDefault(); - var touches = event.changedTouches; - for (var idx = 0; idx < touches.length; idx++) { - scope.moveHandle (handle,touches[idx].pageX, touches[idx].pageY); - } - } - - function touchend(event) { - $document.unbind('touchmove',touchmove); - $document.unbind('touchend' ,touchend); - element.on('touchstart', scope.touchBarCB); - - // if value change notify application callback - if (scope.callback && oldvalue !== scope.value[handle]) scope.callback (scope.value[handle], scope.ctrlhandle); - } - }; - - scope.handleCB = function (clickevent, handle) { - - if (attrs.automatic) return; - - var oldvalue = scope.value[handle]; - // register mouse event to track handle - clickevent.preventDefault(); - - $document.on('mousemove',mousemove); - $document.on('mouseup', mouseup); - scope.handles[handle][0].focus(); - scope.actif=handle; - - // slider handle is moving - function mousemove(event) { - scope.moveHandle (handle, event.clientX, event.clientY); - } - - // mouse is up dans leave slider send resize events - function mouseup() { - $document.unbind('mousemove', mousemove); - $document.unbind('mouseup', mouseup); - - // if value change notify application callback - if (scope.callback && oldvalue !== scope.value[handle]) scope.callback (scope.value[handle], scope.ctrlhandle); - } - }; - - // simulate jquery find by classes capabilities [warning only return 1st elements] - scope.find = function (select, elem) { - var domelem; - - if (elem) domelem = elem[0].querySelector(select); - else domelem = element[0].querySelector(select); - - var angelem = angular.element(domelem); - return (angelem); - }; - - - - scope.initialSettings = function (initial) { - var decimal_places_match_result; - scope.value=[]; // store low/height value when two handles - scope.relative=[]; - - if (scope.precision === null) { - decimal_places_match_result = ('' + scope.byStep).match(/\.([\d]*)/); - scope.precision = decimal_places_match_result && decimal_places_match_result[1] ? decimal_places_match_result[1].length : 0; - } - - // position handle to initial value(s) - element.on('touchstart', scope.touchBarCB); - scope.handles[0].on('touchstart', function(evt){scope.touchHandleCB(evt,0);}); - - // this slider has two handles low/hight - if (scope.dual) { - scope.handles[1].addClass('range-slider-handle'); - scope.handles[1].on('touchstart', function(evt){scope.touchHandleCB(evt,1);}); - if (!scope.initvalues) scope.setValue (initial[1],1); - } - - // if we have an initstate object apply it - if (scope.initvalues) scope.initWidget (scope.initvalues); - else scope.setValue (initial[0],0); - }; - - scope.init = function () { - scope.sliderid = attrs.id || "slider-" + parseInt (Math.random() * 1000); - scope.startValue = -Infinity; - scope.stopValue = Infinity; - scope.byStep = parseInt(attrs.byStep) || 1; - scope.vertical = attrs.vertical || false; - scope.dual = attrs.dualHandles|| false; - scope.trigger_input_change= false; - scope.notMore = parseInt(attrs.notMore) || 100; - scope.notLess = parseInt(attrs.notLess) || 0; - - if (scope.vertical) element.addClass("vertical-range"); - - scope.handles= [scope.find('.handle-min'), scope.find('.handle-max')]; - scope.bar = element; - scope.slider = scope.find('.range-slider-active-segment'); - scope.start = scope.find('.ibz-range-slider-start'); - scope.stop = scope.find('.ibz-range-slider-stop'); - scope.disable= attrs.disable || false; - - scope.ctrlhandle = new RangeSliderHandle (scope); - - // prepare DOM object pointer to compute size dynamically - scope.bounds = { - bar : element[0], - handles: [scope.handles[0][0], scope.handles[1][0]] - }; - - if (attrs.disable === 'true') scope.setDisable(true); - - if (attrs.displayTarget) { - switch (attrs.displayTarget) { - case true : - case 'handle' : - scope.displays = scope.handles; - scope.handles[0].addClass('ibz-range-slider-display'); - if (scope.dual) scope.handles[1].addClass('ibz-range-slider-display'); - break; - default: - scope.displays = [$document.getElementById (attrs.displayTarget)]; - } - } else scope.displays=[]; - - // extract initial values from attrs and parse into int - if (!attrs.initial) { - scope.initial = [scope.ngModel, scope.ngModel]; // initialize to model values - } else { - var initial = attrs.initial.split(','); - scope.initial = [ - initial[0] !== undefined ? parseInt (initial[0]) : scope.notLess, - initial[1] !== undefined ? parseInt (initial[1]) : scope.notMore - ]; - } - - // Monitor any changes on start/stop dates. - scope.$watch('startAt', function() { - if (scope.value < scope.startAt ) { - //scope.setValue (scope.startAt); - } - if (scope.startAt) scope.setStart (scope.startAt); - }); - - scope.$watch('stopAt' , function() { - if (scope.value > scope.stopAt) { - //scope.setValue (scope.stopAt); - } - if (scope.stopAt) scope.setStop (scope.stopAt); - }); - - // finish widget initialisation - scope.initialSettings (scope.initial); - - }; - - scope.init(); - - // slider is ready provide control handle to application controller - scope.$watch ('inithook', function () { // init Values may arrive late - if (scope.inithook) scope.inithook (scope.ctrlhandle); - }); - - scope.$watch ('initvalues', function () { // init Values may arrive late - if (scope.initvalues) scope.initWidget(scope.initvalues); - }); - - // two-way binding if model value changes - scope.$watch ('ngModel', function (newValue) { - scope.setValue(newValue, 0); - }); - } - -return { - restrict: "E", // restrict to HTML element name - scope: { - startAt :'=', // First acceptable date - stopAt :'=', // Last acceptable date - callback :'=', // Callback to actif when a date is selected - formatter:'=', // Callback for drag event call each time internal value changes - inithook :'=', // Hook point to control slider from API - cbhandle :'=', // Argument added to every callback - initvalues:'=', // Initial values as a single object - ngModel: '=' // the model value - }, - require: '?ngModel', - template: template, // html template is build from JS - replace: true, // replace current directive with template while inheriting of class - link: link // pickadate object's methods -}; -}); - -console.log ("RangeSlider Loaded"); - -})(); \ No newline at end of file diff --git a/templates/hybrid-html5/app/Frontend/widgets/RangeSliders/Rangeslider.scss b/templates/hybrid-html5/app/Frontend/widgets/RangeSliders/Rangeslider.scss deleted file mode 100644 index 6717d0e..0000000 --- a/templates/hybrid-html5/app/Frontend/widgets/RangeSliders/Rangeslider.scss +++ /dev/null @@ -1,67 +0,0 @@ -/* - * ibz-Datepicker for Foundation - * - * Author: Fulup Ar Foll - * Date : March-2015 - * Object: SASS stylesheet, customized to Foundation - * References: https://css-tricks.com/stripes-css/ - * - */ -@import "app/ibz-mixins"; - -.range-slider-handle { - display: inline-block; - position: absolute; - z-index: 1; - top: -0.2rem; - width: 2rem; - height: 1.375rem; - border: 1px solid none; - cursor: pointer; - background: #008cba; -} - -.range-slider.radius, .range-slider-handle { - background: #008cba; - -webkit-border-radius: 3px; - border-radius: 3px; -} - -.range-slider-active-segment { - display: inline-block; - top: 0.07rem; - position: absolute; - height: 0.80rem; - background: #e5e5e5; -} - -.ibz-range-slider { - background-color: rgba(154, 205, 50, 0.6) !important; - height: 1rem; - position: relative; - - .range-slider-active-segment { - background-color: rgba(82, 168, 200, 0.6); - } - - &-display { - background-color: rgba(82, 168, 200, 0.6) !important; - width : 4rem !important; - padding: .25rem; - text-align:center - } - - &-start,&-stop { - display: inline-block; - position: absolute; - padding-top: 2px; - height: 95%; - background: repeating-linear-gradient( - 45deg, - #606dbc, - #606dbc 10px, - #465298 10px, - #465298 20px - );} - -} diff --git a/templates/hybrid-html5/app/bower.json b/templates/hybrid-html5/app/bower.json deleted file mode 100644 index c78c624..0000000 --- a/templates/hybrid-html5/app/bower.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "healthy-gulp-angular", - "version": "0.0.0", - "authors": "", - "private": true, - "dependencies": { - "angular": "~1.3.4", - "angular-cookies": "~1.3.4", - "foundation-apps": "~1.1.0", - "angular-ui-notification": "~0.0.14", - "foundation-icon-fonts": "*", - "jszip": "Stuk/jszip#~2.5.0" - }, - "overrides": { - "foundation": { - "main": [ - "dist/js/foundation-apps-templates.js", - "dist/js/foundation-apps.js" - ] - } - } -} diff --git a/templates/hybrid-html5/app/etc/AppDefaults.js b/templates/hybrid-html5/app/etc/AppDefaults.js deleted file mode 100644 index 1ccb037..0000000 --- a/templates/hybrid-html5/app/etc/AppDefaults.js +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2015 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -var SESSION_TIMEOUT= 3600000; // default is 1h loggin session - -// Default config will be superseaded by ProjectRoot/.config-l4a.js $HOME/.config-l4a.js /etc/default/config-l4a.js -config = { - - APPNAME : 'xxxxxx-hybrid-html5',// AppName is use as main Angular Module name - FRONTEND: "Frontend", // HTML5 frontend [no leading ./] - BACKEND : "Backend", // NodeJS Rest API [no leading ./] - URLBASE : '/opa/', // HTML basedir when running in production [should end with a /] - APIBASE : '/api/' // Api url base dir [should end with a /] -}; - -module.exports = config; - diff --git a/templates/hybrid-html5/app/etc/_Config.js b/templates/hybrid-html5/app/etc/_Config.js deleted file mode 100644 index ce93d43..0000000 --- a/templates/hybrid-html5/app/etc/_Config.js +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2014 Fulup Ar Foll - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var fs = require('fs'); - -function Config () { - 'use strict'; - var values=[]; - var extention='-l4a.js'; - var conf; - - // Configs file path last one supersead first one. - var files= [__dirname + "/AppDefaults.js", "/etc/default/noderc"+ extention, process.env.NODERC, process.env.HOME + "/.noderc"+ extention , __dirname +"/../../.noderc.js" ]; - - // Parse any existing files within config list & merge them - for (var idx in files) { - if (files[idx]) { - //console.log ("files=", files[idx]); - if (fs.existsSync (files[idx])) conf=require (files[idx]); - for (var i in conf) values[i] = conf[i]; - } - } - - // set path to search for node_module within parent directory - process.env.NODE_PATH= process.env.NODE_PATH + '../node_modules'; - - // console.log ("values=", values); - return values; -} - -module.exports = Config(); diff --git a/templates/hybrid-html5/app/etc/_Trace.js b/templates/hybrid-html5/app/etc/_Trace.js deleted file mode 100644 index 79ef4f5..0000000 --- a/templates/hybrid-html5/app/etc/_Trace.js +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2014 Fulup Ar Foll - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var util = require("util"); -var path = require("path"); -var config= require('./_Config'); - -function TracePoint () { - var saved = Error.prepareStackTrace; // save default prepareStack function - Error.prepareStackTrace = function(_, stack){ return stack; }; // overload err stack handling - Error.captureStackTrace(this, arguments.callee); // request a stack - this.trace = this.stack; // effectively build trace - Error.prepareStackTrace = saved; // restore original nodejs function -} - -// ------- Public Methods -------------- -var dbgLevel = function(target, level, format) { //+ arguments - // try to get debugLevel from calling object or global config - if (target && target.dbgLevel) dbgLevel = target.dbgLevel; - else dbgLevel = config.DBG_LVL || 1; - - if (dbgLevel >= level ) { - - var args = [].slice.call(arguments, 2); // copy argument in a real array leaving out level - var message = util.format.apply(null, args); - - var trace = new TracePoint().trace; - var info = { - fullpath : trace[1].getFileName(), - linenum : trace[1].getLineNumber(), - basename : path.basename (trace[1].getFileName()) - }; - - if (dbgLevel >= 5) { - console.log("%s:%d", info.fullpath, info.linenum); - console.log("\t[%d] %j", dbgLevel, message); - } - else console.log("--%d-- [%s:%d] -- %j", dbgLevel, info.basename, info.linenum, message); - } -}; - -module.exports = dbgLevel; diff --git a/templates/hybrid-html5/app/gulpfile.js b/templates/hybrid-html5/app/gulpfile.js deleted file mode 100644 index da2826d..0000000 --- a/templates/hybrid-html5/app/gulpfile.js +++ /dev/null @@ -1,438 +0,0 @@ -// BUG Symlink not working - -var gulp = require('gulp'); -var debug = require('gulp-debug'); -var plugins = require('gulp-load-plugins')(); -var del = require('del'); -var es = require('event-stream'); -var bowerFiles = require('main-bower-files'); -var print = require('gulp-print'); -var Q = require('q'); -var imagemin = require('gulp-imagemin'), pngquant = require('imagemin-pngquant'); -var taskListing = require('gulp-task-listing'); -var symlink = require('gulp-sym'); -var rename = require("gulp-rename"); -var exec = require('child_process').exec - -// addon for Foundation6 -var router = require('front-router'); - -// == PATH STRINGS ======== -var appdir = "./"; // Warning to not forget trailling '/' -config=require (appdir + "etc/_Config"); // upload user local preferences if any - -var frontend= appdir + config.FRONTEND; - -var paths = { - application : frontend, - scripts : frontend+'/**/*.js', - appStyles : [frontend+'/**/*.scss', '!'+frontend+'/styles/*/*-conf.scss'], - globalStyles: [frontend+'/styles/**/*.scss'], - images : [frontend+'/**/*.png',frontend+'/**/*.jpg',frontend+'/**/*.jpeg',frontend+'/**/*.svg',frontend+'/**/*.ttf'], - index : frontend+'/index.html', - partials : [frontend + '/**/*.html', '!' + frontend +'/index.html'], - distDev : './dist.dev', - distProd : './dist.prod', - sass: [frontend+'/styles', 'bower_components/foundation-apps/scss','bower_components/foundation-icon-fonts'], - fonts: ['bower_components/**/*.woff'], - favicon: frontend+'/favicon.ico', - wgtconfig: 'config.xml' -}; - -paths['distAppDev'] = paths.distDev + config.URLBASE; -paths['distAppProd'] = paths.distProd + config.URLBASE; - -// Run node in debug mode in developpement mode ? -var nodeopts = config.DEBUG !== undefined ? '--debug='+config.DEBUG : ''; - -// == PIPE SEGMENTS ======== -var pipes = {}; - -pipes.orderedVendorScripts = function() { - return plugins.order(['jquery.js', 'angular.js']); -}; - -pipes.orderedAppScripts = function() { - return plugins.angularFilesort(); -}; - -pipes.minifiedFileName = function() { - return plugins.rename(function (path) { - path.extname = '.min' + path.extname; - }); -}; - -pipes.validatedAppScripts = function() { - return gulp.src(paths.scripts) - .pipe(plugins.replace('@@APPNAME@@', config.APPNAME)) - .pipe(plugins.jshint()) - .pipe(plugins.jshint.reporter('jshint-stylish')); -}; - -pipes.builtAppScriptsDev = function() { - return pipes.validatedAppScripts() - .pipe(gulp.dest(paths.distAppDev)); -}; - -pipes.builtAppScriptsProd = function() { - var scriptedPartials = pipes.scriptedPartials(); - var validatedAppScripts = pipes.validatedAppScripts(); - return es.merge(scriptedPartials, validatedAppScripts) - .pipe(plugins.ngAnnotate()) - .pipe(pipes.orderedAppScripts()) - .pipe(plugins.sourcemaps.init()) - .pipe(plugins.concat(config.APPNAME+'.min.js')) - .pipe(plugins.uglify({compress: {drop_console: true}})) - .pipe(plugins.sourcemaps.write()) - .pipe(gulp.dest(paths.distAppProd)); -}; - -pipes.builtVendorScriptsDev = function() { - return gulp.src(bowerFiles()) - .pipe(gulp.dest( paths.distDev +'/bower_components')); -}; - -pipes.builtVendorScriptsProd = function() { - return gulp.src(bowerFiles('**/*.js')) - .pipe(pipes.orderedVendorScripts()) - .pipe(plugins.concat('vendor.min.js')) - .pipe(plugins.uglify()) - .pipe(gulp.dest(paths.distProd+ '/bower_components')); -}; - - -pipes.validatedPartials = function() { - return gulp.src(paths.partials) - .pipe(plugins.htmlhint({'doctype-first': false})) - .pipe(router({path: paths.application+'/etc/routes.js', root: paths.application})) - .pipe(plugins.htmlhint.reporter()); -}; - -pipes.builtPartialsDev = function() { - return pipes.validatedPartials() - .pipe(gulp.dest(paths.distAppDev)); -}; - -pipes.scriptedPartials = function() { - return pipes.validatedPartials() - .pipe(plugins.htmlhint.failReporter()) - .pipe(plugins.htmlmin({collapseWhitespace: true, removeComments: true})) - .pipe(plugins.ngHtml2js({ - moduleName: config.APPNAME, - template: "(function() {" - + "angular.module('<%= moduleName %>').run(['$templateCache', function($templateCache) {" - + "$templateCache.put('<%= template.url %>',\n '<%= template.escapedContent %>');" - + "}]);\n" - + "})();\n" - })); -}; - -pipes.builtAppStylesDev = function() { - return gulp.src(paths.appStyles) - .pipe(plugins.sass({includePaths: paths.sass})) - .pipe(gulp.dest(paths.distAppDev + '/styles')); -}; - -pipes.builtglobalStylesDev = function() { - return gulp.src(paths.globalStyles) - .pipe(plugins.sass({includePaths: paths.sass})) - .pipe(gulp.dest(paths.distDev + '/global_styles')); -}; - -pipes.builtAppStylesProd = function() { - return gulp.src(paths.appStyles) - .pipe(plugins.sourcemaps.init()) - .pipe(plugins.sass({includePaths: frontend + '/styles'})) - // .pipe(debug({title: '***** appStyle:'})) - .pipe(plugins.cleanCss()) - .pipe(plugins.concat(config.APPNAME+'.css')) - .pipe(plugins.sourcemaps.write()) - .pipe(pipes.minifiedFileName()) - .pipe(gulp.dest(paths.distAppProd)); -}; - -pipes.builtglobalStylesProd = function() { - return gulp.src(paths.globalStyles) - .pipe(plugins.sourcemaps.init()) - .pipe(plugins.sass({includePaths: paths.sass})) - .pipe(plugins.cleanCss()) - .pipe(plugins.sourcemaps.write()) - .pipe(pipes.minifiedFileName()) - .pipe(rename(function (path) {path.dirname="";return path;})) - .pipe(gulp.dest(paths.distProd + '/global_styles')); -}; - -pipes.processedFontsDev = function() { - return gulp.src(paths.fonts) - .pipe(rename(function (path) {path.dirname="";return path;})) - .pipe(gulp.dest(paths.distDev+'/bower_components')); -}; - -pipes.processedFontsProd = function() { - return gulp.src(paths.fonts) - .pipe(rename(function (path) {path.dirname="";return path;})) - .pipe(gulp.dest(paths.distProd+'/bower_components')); -}; - - -pipes.processedImagesDev = function() { - return gulp.src(paths.images) - .pipe(gulp.dest(paths.distAppDev)); -}; - -pipes.processedFaviconDev = function() { - return gulp.src(paths.favicon) - .pipe(gulp.dest(paths.distDev)); -}; - -pipes.processedImagesProd = function() { - return gulp.src(paths.images) - .pipe(imagemin({ - progressive: true, - svgoPlugins: [{removeViewBox: false}], - use: [pngquant()] - })) - .pipe(gulp.dest(paths.distAppProd)); -}; - -pipes.processedFaviconProd = function() { - return gulp.src(paths.favicon) - .pipe(gulp.dest(paths.distProd)); -}; - -// Create an Symlink when config.URLBASE exist -pipes.createDevSymLink = function() { - return gulp.src(paths.distDev).pipe(symlink(paths.distDev+config.URLBASE, {force: true})); -}; - -pipes.createProdSymLink = function() { - return gulp.src(paths.distProd).pipe(symlink(paths.distDev+config.URLBASE,{force: true})); -}; - -pipes.validatedIndex = function() { - return gulp.src(paths.index) - .pipe(plugins.replace('@@APPNAME@@', config.APPNAME)) - .pipe(plugins.replace('@@URLBASE@@', config.URLBASE)) - .pipe(plugins.htmlhint()) - .pipe(plugins.htmlhint.reporter()); -}; - -pipes.builtIndexDev = function() { - - var orderedVendorScripts = pipes.builtVendorScriptsDev() - .pipe(pipes.orderedVendorScripts()); - - var orderedAppScripts = pipes.builtAppScriptsDev() - .pipe(pipes.orderedAppScripts()); - - var appStyles = pipes.builtAppStylesDev(); - var globalStyles = pipes.builtglobalStylesDev(); - - return pipes.validatedIndex() - // Vendor and Global should have absolute path to rootdir application one are relative to BaseURL - .pipe(plugins.inject(orderedVendorScripts, {relative: false, ignorePath: "/dist.dev", name: 'bower'})) - .pipe(plugins.inject(globalStyles, {relative: false, ignorePath: "/dist.dev", name:'vendor'})) - .pipe(gulp.dest(paths.distAppDev)) // write first to get relative path for inject - .pipe(plugins.inject(orderedAppScripts, {relative: true})) - .pipe(plugins.inject(appStyles, {relative: true, name: 'appli'})) - .pipe(gulp.dest(paths.distAppDev)); -}; - -pipes.builtIndexProd = function() { - - var vendorScripts= pipes.builtVendorScriptsProd(); - var appScripts = pipes.builtAppScriptsProd(); - var appStyles = pipes.builtAppStylesProd(); - var globalStyles = pipes.builtglobalStylesProd(); - - return pipes.validatedIndex() - // Vendor and Global should have absolute path to rootdir application one are relative to BaseURL - .pipe(plugins.inject(vendorScripts, {relative: false, ignorePath: "/dist.prod", name: 'bower'})) - .pipe(plugins.inject(globalStyles, {relative: false, ignorePath: "/dist.prod", name:'vendor'})) - .pipe(gulp.dest(paths.distAppProd)) // write first to get relative path for inject - .pipe(plugins.inject(appScripts, {relative: true})) - .pipe(plugins.inject(appStyles, {relative: true, name:'appli'})) - .pipe(plugins.htmlmin({collapseWhitespace: true, removeComments: true})) - .pipe(gulp.dest(paths.distAppProd)); -}; - -pipes.builtAppDev = function() { - return es.merge(pipes.builtIndexDev(), pipes.builtPartialsDev(), pipes.processedFaviconDev(), pipes.processedImagesDev(), pipes.processedFontsDev() ); -}; - -pipes.builtAppProd = function() { - return es.merge(pipes.builtIndexProd(), pipes.processedFaviconProd(), pipes.processedImagesProd(), pipes.processedFontsProd()); -}; - -pipes.widgetConfig = function(type) { - var dst=paths["dist"+type]; - var content="."+config.URLBASE+"/index.html"; - content=content.replace(/\/+/g,"/"); - return gulp.src(paths.wgtconfig+".in") - .pipe(plugins.replace('@@APPNAME@@', config.APPNAME)) - .pipe(plugins.replace('@@CONTENT@@', content)) - .pipe(plugins.rename("config.xml")) - .pipe(gulp.dest(dst)) -}; - -pipes.widgetPack = function(type,cb) { - var dst=paths["dist"+type]; - var wgtfile=config.APPNAME+"_"+type+".wgt" - - exec( - "wgtpkg-pack -f -o "+wgtfile+" "+dst, - function(err,stdout,stderr) { - console.log(stdout); - console.log(stderr); - cb(err); - }); -}; - -// == TASKS ======== - -// Add a task to render the output -gulp.task('help', taskListing.withFilters(/-/)); - -// clean, build of production environement -gulp.task('build', ['clean-build-app-prod']); - -// removes all compiled dev files -gulp.task('clean-dev', function() { - var deferred = Q.defer(); - del(paths.distDev, function() { - deferred.resolve(); - }); - return deferred.promise; -}); - -// removes all compiled production files -gulp.task('clean-prod', function() { - var deferred = Q.defer(); - del(paths.distProd, function() { - deferred.resolve(); - }); - return deferred.promise; -}); - -// checks html source files for syntax errors -gulp.task('validate-partials', pipes.validatedPartials); - -// checks index.html for syntax errors -gulp.task('validate-index', pipes.validatedIndex); - -// moves html source files into the dev environment -gulp.task('build-partials-dev', pipes.builtPartialsDev); - -// converts partials to javascript using html2js -gulp.task('convert-partials-to-js', pipes.scriptedPartials); - -// runs jshint on the app scripts -gulp.task('validate-app-scripts', pipes.validatedAppScripts); - -// moves app scripts into the dev environment -gulp.task('build-app-scripts-dev', pipes.builtAppScriptsDev); - -// concatenates, uglifies, and moves app scripts and partials into the prod environment -gulp.task('build-app-scripts-prod', pipes.builtAppScriptsProd); - -// compiles app sass and moves to the dev environment -gulp.task('build-app-styles-dev', pipes.builtAppStylesDev); - -// compiles and minifies app sass to css and moves to the prod environment -gulp.task('build-app-styles-prod', pipes.builtAppStylesProd); - -// moves vendor scripts into the dev environment -gulp.task('build-vendor-scripts-dev', pipes.builtVendorScriptsDev); - -// concatenates, uglifies, and moves vendor scripts into the prod environment -gulp.task('build-vendor-scripts-prod', pipes.builtVendorScriptsProd); - -// validates and injects sources into index.html and moves it to the dev environment -gulp.task('build-index-dev', pipes.builtIndexDev); - -// validates and injects sources into index.html, minifies and moves it to the dev environment -gulp.task('build-index-prod', pipes.builtIndexProd); - -// builds a complete dev environment -gulp.task('build-app-dev', pipes.builtAppDev); - -// builds a complete prod environment -gulp.task('build-app-prod', pipes.builtAppProd); - -// cleans and builds a complete dev environment -gulp.task('clean-build-app-dev', ['clean-dev'], pipes.builtAppDev); - -// cleans and builds a complete prod environment -gulp.task('clean-build-app-prod', ['clean-prod'], pipes.builtAppProd); - -// clean, build, and watch live changes to the dev environment -gulp.task('watch-dev', ['clean-build-app-dev'], function() { - - // watch app scripts - gulp.watch(paths.scripts, function() { - return pipes.builtAppScriptsDev() - .pipe(plugins.livereload()); - }); - - // watch html partials - gulp.watch(paths.partials, function() { - return pipes.builtPartialsDev() - .pipe(plugins.livereload()); - }); - - // watch Images - gulp.watch(paths.images, function() { - return pipes.processedImagesDev() - .pipe(plugins.livereload()); - }); - - // watch styles - gulp.watch(paths.appStyles, function() { - return pipes.builtAppStylesDev() - .pipe(plugins.livereload()); - }); - -}); - -// clean, build, and watch live changes to the prod environment -gulp.task('watch-prod', ['clean-build-app-prod'], function() { - - // watch index - gulp.watch(paths.index, function() { - return pipes.builtIndexProd() - .pipe(plugins.livereload()); - }); - - // watch app scripts - gulp.watch(paths.scripts, function() { - return pipes.builtAppScriptsProd() - .pipe(plugins.livereload()); - }); - - // watch hhtml partials - gulp.watch(paths.partials, function() { - return pipes.builtAppScriptsProd() - .pipe(plugins.livereload()); - }); - - // watch Images - gulp.watch(paths.images, function() { - return pipes.processedImagesProd() - .pipe(plugins.livereload()); - }); - - // watch styles - gulp.watch(paths.appStyles, function() { - return pipes.builtAppStylesProd() - .pipe(plugins.livereload()); - }); - -}); - -gulp.task('widget-config-dev', ['build-app-dev'], function() { return pipes.widgetConfig("Dev"); }); -gulp.task('widget-config-prod', ['build-app-prod'], function() { return pipes.widgetConfig("Prod"); }); -gulp.task('widget-dev', ['widget-config-dev'], function(cb) { return pipes.widgetPack("Dev",cb); }); -gulp.task('widget-prod', ['widget-config-prod'], function(cb) { return pipes.widgetPack("Prod",cb); }); - -// default task builds for prod -gulp.task('default', ['widget-prod']); diff --git a/templates/hybrid-html5/app/package.json b/templates/hybrid-html5/app/package.json deleted file mode 100644 index 132e7ec..0000000 --- a/templates/hybrid-html5/app/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "xxxxxx-hybrid-html5", - "private": true, - "version": "0.0.1", - "repository": { - "type": "git", - "url": "https://github.com/iotbzh/healthy-gulp-angular-foundation6" - }, - "scripts": { - "postinstall": "bower install", - "build": "./node_modules/.bin/gulp clean-build-app-dev", - "start": "node node_modules/.bin/gulp watch-dev" - }, - "devDependencies": { - "body-parser": "^1.5.2", - "bower": "^1.3.1", - "cookie-parser": "^1.4.0", - "del": "^1.1.1", - "event-stream": "^3.2.2", - "express": "^4.7.2", - "express-session": "^1.12.1", - "front-router": "^1.0.0", - "gulp": "^3.9.0", - "gulp-angular-filesort": "^1.0.4", - "gulp-debug": "^2.1.2", - "gulp-concat": "^2.4.3", - "gulp-htmlhint": "0.0.9", - "gulp-htmlmin": "^1.0.0", - "gulp-imagemin": "*", - "gulp-inject": "^1.1.1", - "gulp-jshint": "^1.9.2", - "gulp-livereload": "^3.7.0", - "gulp-load-plugins": "^0.8.0", - "gulp-clean-css": "^2.0.11", - "gulp-ng-annotate": "^1.1.0", - "gulp-ng-html2js": "^0.2.0", - "gulp-nodemon": "^2.0.0", - "gulp-order": "^1.1.1", - "gulp-print": "^1.1.0", - "gulp-rename": "^1.2.0", - "gulp-replace": "^0.5.4", - "gulp-sass": "^2.0.3", - "gulp-sourcemaps": "^1.3.0", - "gulp-task-listing": "^1.0.1", - "gulp-uglify": "^1.2.0", - "imagemin-pngquant": "*", - "jshint-stylish": "^1.0.0", - "karma": "^0.10", - "karma-junit-reporter": "^0.2.2", - "main-bower-files": "^2.5.0", - "method-override": "^2.1.2", - "protractor": "^1.1.1", - "q": "^1.1.2", - "shelljs": "^0.2.6", - "traceback": "^0.3.1", - "gulp-sym": "0.0.14" - }, - "dependencies": { - "multer": "^1.1.0" - } -} diff --git a/templates/hybrid-html5/binding/CMakeLists.txt b/templates/hybrid-html5/binding/CMakeLists.txt deleted file mode 100644 index 4d73e8a..0000000 --- a/templates/hybrid-html5/binding/CMakeLists.txt +++ /dev/null @@ -1,76 +0,0 @@ -########################################################################### -# Copyright 2015, 2016, 2017 IoT.bzh -# -# author: Fulup Ar Foll -# contrib: Romain Forlot -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -########################################################################### - -# Project target list -# -------------------- -# Add target to project dependency list. Name specified as argument will be -# added to the project target list and the variable ${TARGET_NAME} become -# available with that value. -PROJECT_TARGET_ADD(xxx) - - # Define project Targets - add_library(${TARGET_NAME} MODULE - ${TARGET_NAME}-hat.c - ${TARGET_NAME}-cb.c - ) - - # Targets properties - # ------------------ - # Target properties will be used to build package tree that will be - # built using project_package_build. - # OUTPUT_NAME: Depends what is the name of your output file, it is - # mandatory to specify which is its name with target the property - # OUTPUT_NAME for your target. If file name is same of your target then - # use variable ${TARGET_NAME}. - # LABELS: Choose between "BINDING", "HTDOCS", "EXECUTABLE" depending of - # the type of your target. - # PREFIX: This prefix will be added on the output file name specify with - # OUTPUT_NAME. By default, there isn't PREFIX on target except on - # library target with is "lib". - SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES - PREFIX "afb-" - LABELS "BINDING" - LINK_FLAGS ${BINDINGS_LINK_FLAG} - OUTPUT_NAME ${TARGET_NAME} - ) - - # Link - # ---- - # Library dependencies (include updates automatically). Linked to the - # target. - TARGET_LINK_LIBRARIES(${TARGET_NAME} - ${link_libraries}) - - # Include - # ------- - # Define target includes search and dependencies. Choose between PUBLIC, - # PRIVATE or INTERFACE. PRIVATE and PUBLIC items will populate the - # INCLUDE_DIRECTORIES property of . PUBLIC and INTERFACE items - # will populate the INTERFACE_INCLUDE_DIRECTORIES property of . - # The following arguments specify include directories. - # INTERFACE_INCLUDE_DIRECTORIES will be read at the - # TARGET_LINK_LIBRARIES step for others targets that link against this - # target. - TARGET_INCLUDE_DIRECTORIES( ${TARGET_NAME} - PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} - ) - - # installation directory - INSTALL(TARGETS ${TARGET_NAME} - LIBRARY DESTINATION ${BINDINGS_INSTALL_DIR}) diff --git a/templates/hybrid-html5/binding/xxx-cb.c b/templates/hybrid-html5/binding/xxx-cb.c deleted file mode 100644 index 12d7fa6..0000000 --- a/templates/hybrid-html5/binding/xxx-cb.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (C) 2015, 2016 "IoT.bzh" - * Author "Manuel Bachmann" - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#define _GNU_SOURCE -#include - -#include -#include "xxx-hat.h" - -void ping (struct afb_req request) -{ - static int pingcount = 0; - - json_object *query = afb_req_json(request); - afb_req_success_f(request, NULL, "Ping Binder Daemon count=%d query=%s", ++pingcount, json_object_to_json_string(query)); -} diff --git a/templates/hybrid-html5/binding/xxx-hat.c b/templates/hybrid-html5/binding/xxx-hat.c deleted file mode 100644 index ffdc2c1..0000000 --- a/templates/hybrid-html5/binding/xxx-hat.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2015, 2016 "IoT.bzh" - * Author "Manuel Bachmann" - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#define _GNU_SOURCE -#include - -#include -#include "xxx-hat.h" - -const struct afb_binding_interface* interface; - -// NOTE: this sample does not use session to keep test a basic as possible -// in real application most APIs should be protected with AFB_SESSION_CHECK -static const struct afb_verb_desc_v1 verbs[]= { - {"ping" , AFB_SESSION_NONE, ping , "Ping the binder"}, - {NULL} -}; - -static const struct afb_binding plugin_desc = { - .type = AFB_BINDING_VERSION_1, - .v1 = { - .info = "xxxxxx hybrid service", - .prefix = "xxxxxx", - .verbs = verbs - } -}; - -const struct afb_binding *afbBindingV1Register (const struct afb_binding_interface *itf) -{ - interface = itf; - - return &plugin_desc; -} diff --git a/templates/hybrid-html5/binding/xxx-hat.h b/templates/hybrid-html5/binding/xxx-hat.h deleted file mode 100644 index b4dd89e..0000000 --- a/templates/hybrid-html5/binding/xxx-hat.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (C) 2015, 2016 "IoT.bzh" - * Author "Manuel Bachmann" - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - #ifndef BINDINGHAT_H - #define BINDINGHAT_H - -#define _GNU_SOURCE -#include - -#include - -extern const struct afb_binding_interface *interface; - -void ping (struct afb_req request); - -#endif \ No newline at end of file diff --git a/templates/hybrid-html5/etc/config.cmake b/templates/hybrid-html5/etc/config.cmake deleted file mode 100644 index c3baad5..0000000 --- a/templates/hybrid-html5/etc/config.cmake +++ /dev/null @@ -1,109 +0,0 @@ -########################################################################### -# Copyright 2015, 2016, 2017 IoT.bzh -# -# author: Fulup Ar Foll -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -########################################################################### - -# Project Info -# ------------------ -set(PROJECT_NAME Hybrid-HTML5-example) -set(VERSION "0.0") -set(PROJECT_PRETTY_NAME "Hybrid HTML5 Example") -set(PROJECT_DESCRIPTION "Hybrid HTML5 AGL application example") -set(PROJECT_URL "https://gerrit.automotivelinux.org/gerrit/apps/app-templates") -set(PROJECT_AUTHOR "Last Name, First Name") -set(PROJECT_AUTHOR_MAIL "example.man@bigouden.bzh") -set(PROJECT_ICON "icon.png") - -# Compilation Mode (DEBUG, RELEASE) -# ---------------------------------- -set(CMAKE_BUILD_TYPE "DEBUG") - -# Compiler selection if needed. Impose a minimal version. -# ----------------------------------------------- -set (gcc_minimal_version 4.9) - -# PKG_CONFIG required packages -# ----------------------------- -set (PKG_REQUIRED_LIST - json-c - afb-daemon -) - -# Static constante definition -# ----------------------------- -add_compile_options() - -# LANG Specific compile flags set for all build types -set(CMAKE_C_FLAGS "") -set(CMAKE_CXX_FLAGS "") - -# Print a helper message when every thing is finished -# ---------------------------------------------------- -set(CLOSING_MESSAGE "Test launching application with : afb-daemon --rootdir=\$\$(pwd)/package --ldpaths=\$\$(pwd)/package/lib --port=1234 --roothttp=\$\$(pwd)/package/htdocs --tracereq=common --token=\"1\" --verbose then using your browser and connect to http://localhost:1234/api?token=1") -set(WIDGET_MESSAGE "Install widget file using in the target : afm-util install ${PROJECT_NAME}.wgt") - -# (BUG!!!) as PKG_CONFIG_PATH does not work [should be an env variable] -# --------------------------------------------------------------------- -set(CMAKE_INSTALL_PREFIX ${HOME}/opt) -set(CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX}/lib64/pkgconfig ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig) -set(LD_LIBRARY_PATH ${CMAKE_INSTALL_PREFIX}/lib64 ${CMAKE_INSTALL_PREFIX}/lib) - -# Optional dependencies order -# --------------------------- -#set(EXTRA_DEPENDENCIES_ORDER) - -# Optional Extra global include path -# ----------------------------------- -#set(EXTRA_INCLUDE_DIRS) - -# Optional extra libraries -# ------------------------- -#set(EXTRA_LINK_LIBRARIES) - -# Optional force binding installation -# ------------------------------------ -# set(BINDINGS_INSTALL_PREFIX PrefixPath ) - -# Optional force widget prefix generation -# ------------------------------------------------ -# set(WIDGET_PREFIX DestinationPath) - -# Optional Widget entry point file. -# --------------------------------------------------------- - # This is the file that will be executed, loaded,... -# at launch time by the application framework - -# set(WIDGET_ENTRY_POINT EntryPoint_Path) - -# Optional Widget Mimetype specification -# -------------------------------------------------- -# Choose between : -# - application/x-executable -# - application/vnd.agl.url -# - application/vnd.agl.service -# - application/vnd.agl.native -# - text/vnd.qt.qml -# - text/html -# - application/vnd.agl.qml -# - application/vnd.agl.qml.hybrid -# - application/vnd.agl.html.hybrid -# -# set(WIDGET_TYPE MimeType) - -# Optional force binding Linking flag -# ------------------------------------ -# set(BINDINGS_LINK_FLAG LinkOptions ) - diff --git a/templates/hybrid-html5/etc/export.map b/templates/hybrid-html5/etc/export.map deleted file mode 100644 index ee2f413..0000000 --- a/templates/hybrid-html5/etc/export.map +++ /dev/null @@ -1 +0,0 @@ -{ global: afbBindingV*; local: *; }; diff --git a/templates/hybrid-html5/etc/macros.cmake b/templates/hybrid-html5/etc/macros.cmake deleted file mode 100644 index 18af27e..0000000 --- a/templates/hybrid-html5/etc/macros.cmake +++ /dev/null @@ -1,263 +0,0 @@ -########################################################################### -# Copyright 2015, 2016, 2017 IoT.bzh -# -# author: Fulup Ar Foll -# contrib: Romain Forlot -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -########################################################################### - - -#-------------------------------------------------------------------------- -# WARNING: -# Do not change this cmake template -# Customise your preferences in "./etc/config.cmake" -#-------------------------------------------------------------------------- - - -# Generic useful macro -# ----------------------- -macro(PROJECT_TARGET_ADD TARGET_NAME) - set_property(GLOBAL APPEND PROPERTY PROJECT_TARGETS ${TARGET_NAME}) - set(TARGET_NAME ${TARGET_NAME}) -endmacro(PROJECT_TARGET_ADD) - -# Check GCC minimal version version -if (gcc_minimal_version) - message ("-- Check gcc_minimal_version (found gcc version ${CMAKE_C_COMPILER_VERSION}) (found g++ version ${CMAKE_CXX_COMPILER_VERSION})") -if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${gcc_minimal_version} OR CMAKE_C_COMPILER_VERSION VERSION_LESS ${gcc_minimal_version}) - message(FATAL_ERROR "**** FATAL: Require at least gcc-${gcc_minimal_version} please set CMAKE_C[XX]_COMPILER") -endif() -endif(gcc_minimal_version) - -macro(defstr name value) - add_definitions(-D${name}=${value}) -endmacro(defstr) - -# WGT packaging -macro(project_targets_populate) - add_custom_target(MAIN_POPULATE) - get_property(PROJECT_TARGETS GLOBAL PROPERTY PROJECT_TARGETS) - foreach(TARGET ${PROJECT_TARGETS}) - get_target_property(T ${TARGET} LABELS) - if(T) - # Declaration of a custom command that will populate widget tree with the target - set(POPULE_WIDGET_TARGET "project_populate_${TARGET}") - - get_target_property(P ${TARGET} PREFIX) - get_target_property(BD ${TARGET} BINARY_DIR) - get_target_property(OUT ${TARGET} OUTPUT_NAME) - - if(P MATCHES "NOTFOUND$") - if (${T} STREQUAL "BINDING") - set(P "lib") - else() - set(P "") - endif() - endif() - - if(${T} STREQUAL "BINDING") - add_custom_command(OUTPUT ${WIDGET_LIBDIR}/${P}${TARGET}.so - DEPENDS ${TARGET} - COMMAND mkdir -p ${WIDGET_LIBDIR} - COMMAND cp ${BD}/${P}${OUT}.so ${WIDGET_LIBDIR} - ) - add_custom_target(${POPULE_WIDGET_TARGET} DEPENDS ${WIDGET_LIBDIR}/${P}${TARGET}.so) - add_dependencies(MAIN_POPULATE ${POPULE_WIDGET_TARGET}) - elseif(${T} STREQUAL "EXECUTABLE") - add_custom_command(OUTPUT ${WIDGET_BINDIR}/${P}${TARGET} - DEPENDS ${TARGET} - COMMAND mkdir -p ${WIDGET_BINDIR} - COMMAND cp ${BD}/${P}${OUT} ${WIDGET_BINDIR} - ) - add_custom_target(${POPULE_WIDGET_TARGET} DEPENDS ${WIDGET_BINDIR}/${P}${TARGET}) - add_dependencies(MAIN_POPULATE ${POPULE_WIDGET_TARGET}) - elseif(${T} STREQUAL "HTDOCS") - add_custom_command(OUTPUT ${WIDGET_HTTPDIR} - DEPENDS ${TARGET} - COMMAND cp -r ${BD}/${P}${OUT} ${WIDGET_HTTPDIR} - ) - add_custom_target(${POPULE_WIDGET_TARGET} DEPENDS ${WIDGET_HTTPDIR}) - add_dependencies(MAIN_POPULATE ${POPULE_WIDGET_TARGET}) - elseif(${T} STREQUAL "DATA") - add_custom_command(OUTPUT ${WIDGET_DATADIR} - DEPENDS ${TARGET} - COMMAND cp -r ${BD}/${P}${OUT} ${WIDGET_DATADIR} - ) - add_custom_target(${POPULE_WIDGET_TARGET} DEPENDS ${WIDGET_HTTPDIR}) - add_dependencies(MAIN_POPULATE ${POPULE_WIDGET_TARGET}) - endif(${T} STREQUAL "BINDING") -# elseif(${CMAKE_BUILD_TYPE} MATCHES "[Dd][Ee][Bb][Uu][Gg]") -# MESSAGE(WARNING "This target, ${TARGET}, will be not be included in the package.") - endif() - endforeach() -endmacro(project_targets_populate) - -macro(project_package_build) - if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_WGT_DIR}/config.xml.in OR NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_WGT_DIR}/${PROJECT_ICON}.in) - MESSAGE(FATAL_ERROR "Missing mandatory files: you need config.xml.in and ${PROJECT_ICON}.in files in ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_WGT_DIR} folder.") - endif() - - if(NOT EXISTS ${WIDGET_DIR}/config.xml.in OR NOT EXISTS ${WIDGET_DIR}/${PROJECT_ICON}.in) - configure_file(${PROJECT_WGT_DIR}/config.xml.in ${WIDGET_DIR}/config.xml) - file(COPY ${PROJECT_WGT_DIR}/${PROJECT_ICON}.in DESTINATION ${WIDGET_DIR}/${PROJECT_ICON}) - endif(NOT EXISTS ${WIDGET_DIR}/config.xml.in OR NOT EXISTS ${WIDGET_DIR}/${PROJECT_ICON}.in) - - file(GLOB PROJECT_CONF_FILES "${PROJECT_WGT_DIR}/etc/*") - if(${PROJECT_CONF_FILES}) - file(COPY "${PROJECT_WGT_DIR}/etc/*" DESTINATION ${WIDGET_ETCDIR}/) - endif(${PROJECT_CONF_FILES}) - - add_custom_command(OUTPUT ${PROJECT_NAME}.wgt - DEPENDS ${PROJECT_TARGETS} - COMMAND wgtpkg-pack -f -o ${PROJECT_NAME}.wgt ${WIDGET_DIR} - ) - - add_custom_target(widget DEPENDS ${PROJECT_NAME}.wgt) - add_dependencies(widget MAIN_POPULATE) - set(ADDITIONAL_MAKE_CLEAN_FILES, "${PROJECT_NAME}.wgt") - - if(WIDGET_MESSAGE) - add_custom_command(TARGET widget - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --cyan "++ ${WIDGET_MESSAGE}") - endif() -endmacro(project_package_build) - -macro(project_subdirs_add) - if(${ARGV0}) - file(GLOB filelist "${ARGV0}") - else() - file(GLOB filelist "*") - endif(${ARGV0}) - - foreach(filename ${filelist}) - if(EXISTS "${filename}/CMakeLists.txt") - add_subdirectory(${filename}) - endif(EXISTS "${filename}/CMakeLists.txt") - endforeach() -endmacro(project_subdirs_add) - -set(CMAKE_BUILD_TYPE Debug CACHE STRING "the type of build") -set(CMAKE_POSITION_INDEPENDENT_CODE ON) -set(CMP0048 1) - -# Include project configuration -# ------------------------------ -project(${PROJECT_NAME} VERSION ${PROJECT_VERSION} LANGUAGES ${PROJECT_LANGUAGES}) -set(PROJECT_WGT_DIR "packaging/wgt" CACHE PATH "Subpath to the widget directory") -set(PROJECT_LIBDIR "libs" CACHE PATH "Subpath to libraries") -set(PROJECT_RESOURCES "data" CACHE PATH "Subpath to data") - -INCLUDE(FindPkgConfig) -INCLUDE(CheckIncludeFiles) -INCLUDE(CheckLibraryExists) -INCLUDE(GNUInstallDirs) - -# Default compilation options -############################################################################ -link_libraries(-Wl,--as-needed -Wl,--gc-sections) -add_compile_options(-Wall -Wextra -Wconversion) -add_compile_options(-Wno-unused-parameter) # frankly not using a parameter does it care? -add_compile_options(-Wno-sign-compare -Wno-sign-conversion) -add_compile_options(-Werror=maybe-uninitialized) -add_compile_options(-Werror=implicit-function-declaration) -add_compile_options(-ffunction-sections -fdata-sections) -add_compile_options(-fPIC) -add_compile_options(-g) - -set(CMAKE_C_FLAGS_PROFILING "-g -O2 -pg -Wp,-U_FORTIFY_SOURCE" CACHE STRING "Flags for profiling") -set(CMAKE_C_FLAGS_DEBUG "-g -O2 -ggdb -Wp,-U_FORTIFY_SOURCE" CACHE STRING "Flags for debugging") -set(CMAKE_C_FLAGS_RELEASE "-O2" CACHE STRING "Flags for releasing") -set(CMAKE_C_FLAGS_CCOV "-g -O2 --coverage" CACHE STRING "Flags for coverage test") - -set(CMAKE_CXX_FLAGS_PROFILING "-g -O0 -pg -Wp,-U_FORTIFY_SOURCE") -set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -ggdb -Wp,-U_FORTIFY_SOURCE") -set(CMAKE_CXX_FLAGS_RELEASE "-g -O2") -set(CMAKE_CXX_FLAGS_CCOV "-g -O2 --coverage") - -set(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/Install" CACHE PATH "The path where to install") - -# (BUG!!!) as PKG_CONFIG_PATH does not work [should be en env variable] -set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON CACHE BOOLEAN "Flag for using prefix path") - -# Loop on required package and add options -foreach (PKG_CONFIG ${PKG_REQUIRED_LIST}) - PKG_CHECK_MODULES(${PKG_CONFIG} REQUIRED ${PKG_CONFIG}) - - INCLUDE_DIRECTORIES(${${PKG_CONFIG}_INCLUDE_DIRS}) - list (APPEND link_libraries ${${PKG_CONFIG}_LIBRARIES}) - add_compile_options (${${PKG_CONFIG}_CFLAGS}) -endforeach(PKG_CONFIG) - -# Optional LibEfence Malloc debug library -IF(CMAKE_BUILD_TYPE MATCHES DEBUG) -CHECK_LIBRARY_EXISTS(efence malloc "" HAVE_LIBEFENCE) -IF(HAVE_LIBEFENCE) - MESSAGE(STATUS "Linking with ElectricFence for debugging purposes...") - SET(libefence_LIBRARIES "-lefence") - list (APPEND link_libraries ${libefence_LIBRARIES}) -ENDIF(HAVE_LIBEFENCE) -ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG) - -# set default include directories -INCLUDE_DIRECTORIES(${EXTRA_INCLUDE_DIRS}) - -# If no install dir try to guess some smart default -if(BINDINGS_INSTALL_PREFIX) - set(BINDINGS_INSTALL_DIR ${BINDINGS_INSTALL_PREFIX}/${PROJECT_NAME}) -else() - set(BINDINGS_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}) -endif() - -# Define a default package directory -if(WIDGET_PREFIX) - set(WIDGET_DIR ${WIDGET_PREFIX}/package) -else() - set(WIDGET_DIR ${CMAKE_CURRENT_BINARY_DIR}/package) -endif() - -# and their subsequent subdir -set(WIDGET_BINDIR ${WIDGET_DIR}/bin) -set(WIDGET_ETCDIR ${WIDGET_DIR}/etc) -set(WIDGET_LIBDIR ${WIDGET_DIR}/lib) -set(WIDGET_HTTPDIR ${WIDGET_DIR}/htdocs) -set(WIDGET_DATADIR ${WIDGET_DIR}/data) - -# Default Linkflag -if(NOT BINDINGS_LINK_FLAG) - set(BINDINGS_LINK_FLAG "-Wl,--version-script=${CMAKE_SOURCE_DIR}/etc/export.map") -endif() - -# Add a dummy target to enable global dependency order -# ----------------------------------------------------- -if(EXTRA_DEPENDENCIES_ORDER) - set(DEPENDENCIES_TARGET ${PROJECT_NAME}_extra_dependencies) - add_custom_target(${DEPENDENCIES_TARGET} ALL - DEPENDS ${EXTRA_DEPENDENCY_ORDER} - ) -endif() - -# Print developer helper message when build is done -# ------------------------------------------------------- -macro(project_closing_msg) - get_property(PROJECT_TARGETS_SET GLOBAL PROPERTY PROJECT_TARGETS SET) - get_property(PROJECT_TARGETS GLOBAL PROPERTY PROJECT_TARGETS) - if(CLOSING_MESSAGE AND ${PROJECT_TARGETS_SET}) - add_custom_target(${PROJECT_NAME}_build_done ALL - COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --cyan "++ ${CLOSING_MESSAGE}" - ) - add_dependencies(${PROJECT_NAME}_build_done - ${DEPENDENCIES_TARGET} ${PROJECT_TARGETS}) - endif() -endmacro() diff --git a/templates/hybrid-html5/packaging/wgt/config.xml.in b/templates/hybrid-html5/packaging/wgt/config.xml.in deleted file mode 100644 index af4fd89..0000000 --- a/templates/hybrid-html5/packaging/wgt/config.xml.in +++ /dev/null @@ -1,11 +0,0 @@ - - - @PROJECT_NAME@ - - - @PROJECT_DESCRIPTION@ - @PROJECT_AUTHOR@ <@PROJECT_AUTHOR_MAIL@> - APL 2.0 - - - diff --git a/templates/hybrid-html5/packaging/wgt/icon.png.in b/templates/hybrid-html5/packaging/wgt/icon.png.in deleted file mode 100644 index bf39b2315249584c7a9f920628c89669d6b46fa6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4482 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 diff --git a/templates/native/.gitignore b/templates/native/.gitignore deleted file mode 100644 index 9a13971..0000000 --- a/templates/native/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -build -config.xml -*.wgt diff --git a/templates/native/AGLbuild b/templates/native/AGLbuild deleted file mode 100755 index 5f8f595..0000000 --- a/templates/native/AGLbuild +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/make -f -# Copyright (C) 2015, 2016 "IoT.bzh" -# Author "Romain Forlot" -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -BUILD_DIR := build -PACKAGING_DIR := packaging/wgt - -VPATH = etc:$(PACKAGING_DIR):$(PACKAGING_DIR)/etc:$(BUILD_DIR) - -.PHONY: all clean mrproper package - -all: build - -clean: - @([ -d ${BUILD_DIR} ] && make -C ${BUILD_DIR} clean) || echo Nothing to clean - -mrproper: - @rm -rf ${BUILD_DIR} - -build: ${BUILD_DIR}/Makefile - @cmake --build ${BUILD_DIR} --target all - -package: config.xml.in icon.png.in build | $(PKG_FILELIST) - @mkdir -p ${BUILD_DIR}/$@/bin - @mkdir -p ${BUILD_DIR}/$@/etc - @mkdir -p ${BUILD_DIR}/$@/lib - @mkdir -p ${BUILD_DIR}/$@/htdocs - @mkdir -p ${BUILD_DIR}/$@/data - @mkdir -p package - @cmake --build ${BUILD_DIR} --target widget - @cp ${BUILD_DIR}/*wgt package - -${BUILD_DIR}/Makefile: - @[ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR} - @[ -f ${BUILD_DIR}/Makefile ] || (cd ${BUILD_DIR} && cmake ${CMAKE_OPTS} ..) diff --git a/templates/native/CMakeLists.txt b/templates/native/CMakeLists.txt deleted file mode 100644 index 1ddb659..0000000 --- a/templates/native/CMakeLists.txt +++ /dev/null @@ -1,33 +0,0 @@ -########################################################################### -# Copyright 2015, 2016, 2017 IoT.bzh -# -# author: Romain Forlot -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -########################################################################### - -CMAKE_MINIMUM_REQUIRED(VERSION 3.3) - -include(${CMAKE_CURRENT_SOURCE_DIR}/etc/config.cmake) -include(${CMAKE_CURRENT_SOURCE_DIR}/etc/macros.cmake) - -# Will add each subdirs with a CMakeLists.txt file -project_subdirs_add() - -# Populate each target with LABELS specified. -project_targets_populate() -# Build package widget once populated. -project_package_build() - -#Display CLOSING_MESSAGE specified in config.cmake file. -project_closing_msg() diff --git a/templates/native/app/CMakeLists.txt b/templates/native/app/CMakeLists.txt deleted file mode 100644 index 1e558fd..0000000 --- a/templates/native/app/CMakeLists.txt +++ /dev/null @@ -1,85 +0,0 @@ -########################################################################### -# Copyright 2015, 2016, 2017 IoT.bzh -# -# author: Fulup Ar Foll -# contrib: Romain Forlot -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -########################################################################### - -# Project target list -# -------------------- -# Add target to project dependency list. Name specified as argument will be -# added to the project target list and the variable ${TARGET_NAME} become -# available with that value. -PROJECT_TARGET_ADD(xxx-native-app) - - # Define project Targets - add_executable(${TARGET_NAME} - ${TARGET_NAME}.c - ) - - # Link - # ---- - # Library dependencies (include updates automatically). Linked to the - # target. - link_libraries( - ${CMAKE_THREAD_LIBS_INIT} - ${libafbwsc_LIBRARIES} - ${json-c_LIBRARIES} - ${libsystemd_LIBRARIES} - ) - - # Targets properties - # ------------------ - # Target properties will be used to build package tree that will be - # built using project_package_build. - # OUTPUT_NAME: Depends what is the name of your output file, it is - # mandatory to specify which is its name with target the property - # OUTPUT_NAME for your target. If file name is same of your target then - # use variable ${TARGET_NAME}. - # LABELS: Choose between "BINDING", "HTDOCS", "EXECUTABLE" depending of - # the type of your target. - # PREFIX: This prefix will be added on the output file name specify with - # OUTPUT_NAME. By default, there isn't PREFIX on target except on - # library target with is "lib". - SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES - LABELS "EXECUTABLE" - OUTPUT_NAME ${TARGET_NAME}) - - # Include - # ------- - # Define target includes search and dependencies. Choose between PUBLIC, - # PRIVATE or INTERFACE. PRIVATE and PUBLIC items will populate the - # INCLUDE_DIRECTORIES property of . PUBLIC and INTERFACE items - # will populate the INTERFACE_INCLUDE_DIRECTORIES property of . - # The following arguments specify include directories. - # INTERFACE_INCLUDE_DIRECTORIES will be read at the - # TARGET_LINK_LIBRARIES step for others targets that link against this - # target. - TARGET_INCLUDE_DIRECTORIES(${TARGET_NAME} - PUBLIC ${libafbwsc_INCLUDE_DIRS} - ${json-c_INCLUDE_DIRS} - ${libsystemd_INCLUDE_DIRS}) - - # Link - # ---- - # Library dependencies (include updates automatically). Linked to the - # target. - TARGET_LINK_LIBRARIES(${TARGET_NAME} - afbwsc - ${link_libraries}) - - # installation directory - INSTALL(TARGETS ${TARGET_NAME} - RUNTIME DESTINATION ${BINDINGS_INSTALL_DIR}) diff --git a/templates/native/app/xxx-native-app.c b/templates/native/app/xxx-native-app.c deleted file mode 100644 index 312fd1a..0000000 --- a/templates/native/app/xxx-native-app.c +++ /dev/null @@ -1,242 +0,0 @@ -/* - * Copyright (C) 2015, 2016 "IoT.bzh" - * Author "Fulup Ar Foll" - * Author José Bollo - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#define _GNU_SOURCE - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include - -/* declaration of functions */ -static void on_hangup(void *closure, struct afb_wsj1 *wsj1); -static void on_call(void *closure, const char *api, const char *verb, struct afb_wsj1_msg *msg); -static void on_event(void *closure, const char *event, struct afb_wsj1_msg *msg); -static int io_event_callback(sd_event_source *src, int fd, uint32_t revents, void *closure); -static void emit(const char *api, const char *verb, const char *object); - -/* the callback interface for wsj1 */ -static struct afb_wsj1_itf itf = { - .on_hangup = on_hangup, - .on_call = on_call, - .on_event = on_event -}; - -/* global variables */ -static struct afb_wsj1 *wsj1; -static int exonrep; -static int callcount; -static sd_event_source *evsrc; - -/* print usage of the program */ -static void usage(int status, char *arg0) -{ - char *name = strrchr(arg0, '/'); - name = name ? name + 1 : arg0; - fprintf(status ? stderr : stdout, "usage: %s uri [api verb [data]]\n", name); - exit(status); -} - -/* entry function */ -int main(int ac, char **av, char **env) -{ - int rc; - sd_event *loop; - - /* check the argument count */ - if (ac != 2 && ac != 4 && ac != 5) - usage(1, av[0]); - - /* emit error and exit if requested */ - if (!strcmp(av[1], "-h") || !strcmp(av[1], "--help")) - usage(0, av[0]); - - /* get the default event loop */ - rc = sd_event_default(&loop); - if (rc < 0) { - fprintf(stderr, "connection to default event loop failed: %s\n", strerror(-rc)); - return 1; - } - - /* connect the websocket wsj1 to the uri given by the first argument */ - wsj1 = afb_ws_client_connect_wsj1(loop,av[1], &itf, NULL); - if (wsj1 == NULL) { - fprintf(stderr, "connection to %s failed: %m\n", av[1]); - return 1; - } - - /* test the behaviour */ - if (ac == 2) { - /* get requests from stdin */ - fcntl(0, F_SETFL, O_NONBLOCK); - sd_event_add_io(loop, &evsrc, 0, EPOLLIN, io_event_callback, NULL); - } else { - /* the request is defined by the arguments */ - exonrep = 1; - emit(av[2], av[3], av[4]); - } - - /* loop until end */ - for(;;) - sd_event_run(loop, 30000000); - return 0; -} - -/* called when wsj1 hangsup */ -static void on_hangup(void *closure, struct afb_wsj1 *wsj1) -{ - printf("ON-HANGUP\n"); - exit(0); -} - -/* called when wsj1 receives a method invocation */ -static void on_call(void *closure, const char *api, const char *verb, struct afb_wsj1_msg *msg) -{ - int rc; - printf("ON-CALL %s/%s(%s)\n", api, verb, afb_wsj1_msg_object_s(msg)); - rc = afb_wsj1_reply_error_s(msg, "\"unimplemented\"", NULL); - if (rc < 0) - fprintf(stderr, "replying failed: %m\n"); -} - -/* called when wsj1 receives an event */ -static void on_event(void *closure, const char *event, struct afb_wsj1_msg *msg) -{ - printf("ON-EVENT %s(%s)\n", event, afb_wsj1_msg_object_s(msg)); -} - -/* called when wsj1 receives a reply */ -static void on_reply(void *closure, struct afb_wsj1_msg *msg) -{ - printf("ON-REPLY %s: %s\n", (char*)closure, afb_wsj1_msg_object_s(msg)); - free(closure); - callcount--; - if (exonrep && !callcount) - //afb_wsj1_hangup(afb_wsj1_msg_wsj1(msg)); - exit(0); -} - -/* makes a call */ -static void call(const char *api, const char *verb, const char *object) -{ - static int num = 0; - char *key; - int rc; - - /* allocates an id for the request */ - rc = asprintf(&key, "%d:%s/%s", ++num, api, verb); - - /* send the request */ - callcount++; - rc = afb_wsj1_call_s(wsj1, api, verb, object, on_reply, key); - if (rc < 0) { - fprintf(stderr, "calling %s/%s(%s) failed: %m\n", api, verb, object); - callcount--; - } -} - -/* sends an event */ -static void event(const char *event, const char *object) -{ - int rc; - - rc = afb_wsj1_send_event_s(wsj1, event, object); - if (rc < 0) - fprintf(stderr, "sending !%s(%s) failed: %m\n", event, object); -} - -/* emits either a call (when api!='!') or an event */ -static void emit(const char *api, const char *verb, const char *object) -{ - if (object == NULL || object[0] == 0) - object = "null"; - if (api[0] == '!' && api[1] == 0) - event(verb, object); - else - call(api, verb, object); -} - -/* called when something happens on stdin */ -static int io_event_callback(sd_event_source *src, int fd, uint32_t revents, void *closure) -{ - static size_t count = 0; - static char line[16384]; - static char sep[] = " \t"; - static char sepnl[] = " \t\n"; - - ssize_t rc; - size_t pos; - - /* read the buffer */ - do { rc = read(0, line + count, sizeof line - count); } while (rc < 0 && errno == EINTR); - if (rc < 0) { - fprintf(stderr, "read error: %m\n"); - exit(1); - } - if (rc == 0) { - if (!callcount) - exit(0); - exonrep = 1; - sd_event_source_unref(evsrc); - } - count += (size_t)rc; - - /* normalise the buffer content */ - /* TODO: handle backspace \x7f ? */ - - /* process the lines */ - pos = 0; - for(;;) { - size_t i, api[2], verb[2], rest[2]; - i = pos; - while(i < count && strchr(sep, line[i])) i++; - api[0] = i; while(i < count && !strchr(sepnl, line[i])) i++; api[1] = i; - while(i < count && strchr(sep, line[i])) i++; - verb[0] = i; while(i < count && !strchr(sepnl, line[i])) i++; verb[1] = i; - while(i < count && strchr(sep, line[i])) i++; - rest[0] = i; while(i < count && line[i] != '\n') i++; rest[1] = i; - if (i == count) break; - line[i++] = 0; - if (api[0] == api[1] || verb[0] == verb[1]) - fprintf(stderr, "bad line: %s\n", line+pos); - else { - line[api[1]] = line[verb[1]] = 0; - emit(line + api[0], line + verb[0], line + rest[0]); - } - pos = i; - } - count -= pos; - if (count == sizeof line) { - fprintf(stderr, "overflow\n"); - exit(1); - } - if (count) - memmove(line, line + pos, count); - return 1; -} - diff --git a/templates/native/etc/config.cmake b/templates/native/etc/config.cmake deleted file mode 100644 index 4e9ac5c..0000000 --- a/templates/native/etc/config.cmake +++ /dev/null @@ -1,109 +0,0 @@ -########################################################################### -# Copyright 2015, 2016, 2017 IoT.bzh -# -# author: Fulup Ar Foll -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -########################################################################### - -# Project Info -# ------------------ -set(PROJECT_NAME native-example) -set(VERSION "0.0") -set(PROJECT_PRETTY_NAME "Native Example") -set(PROJECT_DESCRIPTION "Native AGL application example") -set(PROJECT_URL "https://gerrit.automotivelinux.org/gerrit/apps/app-templates") -set(PROJECT_AUTHOR "Last Name, First Name") -set(PROJECT_AUTHOR_MAIL "example.man@bigouden.bzh") -set(PROJECT_ICON "icon.png") - -# Compilation Mode (DEBUG, RELEASE) -# ---------------------------------- -set(CMAKE_BUILD_TYPE "DEBUG") - -# Compiler selection if needed. Impose a minimal version. -# ----------------------------------------------- -set (gcc_minimal_version 4.9) - -# PKG_CONFIG required packages -# ----------------------------- -set (PKG_REQUIRED_LIST - json-c - afb-daemon -) - -# Static constante definition -# ----------------------------- -add_compile_options() - -# LANG Specific compile flags set for all build types -set(CMAKE_C_FLAGS "") -set(CMAKE_CXX_FLAGS "") - -# Print a helper message when every thing is finished -# ---------------------------------------------------- -set(CLOSING_MESSAGE "Test launching application with : afb-daemon --rootdir=\$\$(pwd)/package --ldpaths=\$\$(pwd)/package/lib --port=1234 --roothttp=\$\$(pwd)/package/htdocs --tracereq=common --token=\"1\" --verbose") -set(WIDGET_MESSAGE "Install widget file using in the target : afm-util install ${PROJECT_NAME}.wgt") - -# (BUG!!!) as PKG_CONFIG_PATH does not work [should be an env variable] -# --------------------------------------------------------------------- -set(CMAKE_INSTALL_PREFIX ${HOME}/opt) -set(CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX}/lib64/pkgconfig ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig) -set(LD_LIBRARY_PATH ${CMAKE_INSTALL_PREFIX}/lib64 ${CMAKE_INSTALL_PREFIX}/lib) - -# Optional dependencies order -# --------------------------- -#set(EXTRA_DEPENDENCIES_ORDER) - -# Optional Extra global include path -# ----------------------------------- -#set(EXTRA_INCLUDE_DIRS) - -# Optional extra libraries -# ------------------------- -#set(EXTRA_LINK_LIBRARIES) - -# Optional force binding installation -# ------------------------------------ -# set(BINDINGS_INSTALL_PREFIX PrefixPath ) - -# Optional force widget prefix generation -# ------------------------------------------------ -# set(WIDGET_PREFIX DestinationPath) - -# Optional Widget entry point file. -# --------------------------------------------------------- - # This is the file that will be executed, loaded,... -# at launch time by the application framework - -# set(WIDGET_ENTRY_POINT EntryPoint_Path) - -# Optional Widget Mimetype specification -# -------------------------------------------------- -# Choose between : -# - application/x-executable -# - application/vnd.agl.url -# - application/vnd.agl.service -# - application/vnd.agl.native -# - text/vnd.qt.qml -# - text/html -# - application/vnd.agl.qml -# - application/vnd.agl.qml.hybrid -# - application/vnd.agl.html.hybrid -# -# set(WIDGET_TYPE MimeType) - -# Optional force binding Linking flag -# ------------------------------------ -# set(BINDINGS_LINK_FLAG LinkOptions ) - diff --git a/templates/native/etc/export.map b/templates/native/etc/export.map deleted file mode 100644 index ee2f413..0000000 --- a/templates/native/etc/export.map +++ /dev/null @@ -1 +0,0 @@ -{ global: afbBindingV*; local: *; }; diff --git a/templates/native/etc/macros.cmake b/templates/native/etc/macros.cmake deleted file mode 100644 index 18af27e..0000000 --- a/templates/native/etc/macros.cmake +++ /dev/null @@ -1,263 +0,0 @@ -########################################################################### -# Copyright 2015, 2016, 2017 IoT.bzh -# -# author: Fulup Ar Foll -# contrib: Romain Forlot -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -########################################################################### - - -#-------------------------------------------------------------------------- -# WARNING: -# Do not change this cmake template -# Customise your preferences in "./etc/config.cmake" -#-------------------------------------------------------------------------- - - -# Generic useful macro -# ----------------------- -macro(PROJECT_TARGET_ADD TARGET_NAME) - set_property(GLOBAL APPEND PROPERTY PROJECT_TARGETS ${TARGET_NAME}) - set(TARGET_NAME ${TARGET_NAME}) -endmacro(PROJECT_TARGET_ADD) - -# Check GCC minimal version version -if (gcc_minimal_version) - message ("-- Check gcc_minimal_version (found gcc version ${CMAKE_C_COMPILER_VERSION}) (found g++ version ${CMAKE_CXX_COMPILER_VERSION})") -if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${gcc_minimal_version} OR CMAKE_C_COMPILER_VERSION VERSION_LESS ${gcc_minimal_version}) - message(FATAL_ERROR "**** FATAL: Require at least gcc-${gcc_minimal_version} please set CMAKE_C[XX]_COMPILER") -endif() -endif(gcc_minimal_version) - -macro(defstr name value) - add_definitions(-D${name}=${value}) -endmacro(defstr) - -# WGT packaging -macro(project_targets_populate) - add_custom_target(MAIN_POPULATE) - get_property(PROJECT_TARGETS GLOBAL PROPERTY PROJECT_TARGETS) - foreach(TARGET ${PROJECT_TARGETS}) - get_target_property(T ${TARGET} LABELS) - if(T) - # Declaration of a custom command that will populate widget tree with the target - set(POPULE_WIDGET_TARGET "project_populate_${TARGET}") - - get_target_property(P ${TARGET} PREFIX) - get_target_property(BD ${TARGET} BINARY_DIR) - get_target_property(OUT ${TARGET} OUTPUT_NAME) - - if(P MATCHES "NOTFOUND$") - if (${T} STREQUAL "BINDING") - set(P "lib") - else() - set(P "") - endif() - endif() - - if(${T} STREQUAL "BINDING") - add_custom_command(OUTPUT ${WIDGET_LIBDIR}/${P}${TARGET}.so - DEPENDS ${TARGET} - COMMAND mkdir -p ${WIDGET_LIBDIR} - COMMAND cp ${BD}/${P}${OUT}.so ${WIDGET_LIBDIR} - ) - add_custom_target(${POPULE_WIDGET_TARGET} DEPENDS ${WIDGET_LIBDIR}/${P}${TARGET}.so) - add_dependencies(MAIN_POPULATE ${POPULE_WIDGET_TARGET}) - elseif(${T} STREQUAL "EXECUTABLE") - add_custom_command(OUTPUT ${WIDGET_BINDIR}/${P}${TARGET} - DEPENDS ${TARGET} - COMMAND mkdir -p ${WIDGET_BINDIR} - COMMAND cp ${BD}/${P}${OUT} ${WIDGET_BINDIR} - ) - add_custom_target(${POPULE_WIDGET_TARGET} DEPENDS ${WIDGET_BINDIR}/${P}${TARGET}) - add_dependencies(MAIN_POPULATE ${POPULE_WIDGET_TARGET}) - elseif(${T} STREQUAL "HTDOCS") - add_custom_command(OUTPUT ${WIDGET_HTTPDIR} - DEPENDS ${TARGET} - COMMAND cp -r ${BD}/${P}${OUT} ${WIDGET_HTTPDIR} - ) - add_custom_target(${POPULE_WIDGET_TARGET} DEPENDS ${WIDGET_HTTPDIR}) - add_dependencies(MAIN_POPULATE ${POPULE_WIDGET_TARGET}) - elseif(${T} STREQUAL "DATA") - add_custom_command(OUTPUT ${WIDGET_DATADIR} - DEPENDS ${TARGET} - COMMAND cp -r ${BD}/${P}${OUT} ${WIDGET_DATADIR} - ) - add_custom_target(${POPULE_WIDGET_TARGET} DEPENDS ${WIDGET_HTTPDIR}) - add_dependencies(MAIN_POPULATE ${POPULE_WIDGET_TARGET}) - endif(${T} STREQUAL "BINDING") -# elseif(${CMAKE_BUILD_TYPE} MATCHES "[Dd][Ee][Bb][Uu][Gg]") -# MESSAGE(WARNING "This target, ${TARGET}, will be not be included in the package.") - endif() - endforeach() -endmacro(project_targets_populate) - -macro(project_package_build) - if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_WGT_DIR}/config.xml.in OR NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_WGT_DIR}/${PROJECT_ICON}.in) - MESSAGE(FATAL_ERROR "Missing mandatory files: you need config.xml.in and ${PROJECT_ICON}.in files in ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_WGT_DIR} folder.") - endif() - - if(NOT EXISTS ${WIDGET_DIR}/config.xml.in OR NOT EXISTS ${WIDGET_DIR}/${PROJECT_ICON}.in) - configure_file(${PROJECT_WGT_DIR}/config.xml.in ${WIDGET_DIR}/config.xml) - file(COPY ${PROJECT_WGT_DIR}/${PROJECT_ICON}.in DESTINATION ${WIDGET_DIR}/${PROJECT_ICON}) - endif(NOT EXISTS ${WIDGET_DIR}/config.xml.in OR NOT EXISTS ${WIDGET_DIR}/${PROJECT_ICON}.in) - - file(GLOB PROJECT_CONF_FILES "${PROJECT_WGT_DIR}/etc/*") - if(${PROJECT_CONF_FILES}) - file(COPY "${PROJECT_WGT_DIR}/etc/*" DESTINATION ${WIDGET_ETCDIR}/) - endif(${PROJECT_CONF_FILES}) - - add_custom_command(OUTPUT ${PROJECT_NAME}.wgt - DEPENDS ${PROJECT_TARGETS} - COMMAND wgtpkg-pack -f -o ${PROJECT_NAME}.wgt ${WIDGET_DIR} - ) - - add_custom_target(widget DEPENDS ${PROJECT_NAME}.wgt) - add_dependencies(widget MAIN_POPULATE) - set(ADDITIONAL_MAKE_CLEAN_FILES, "${PROJECT_NAME}.wgt") - - if(WIDGET_MESSAGE) - add_custom_command(TARGET widget - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --cyan "++ ${WIDGET_MESSAGE}") - endif() -endmacro(project_package_build) - -macro(project_subdirs_add) - if(${ARGV0}) - file(GLOB filelist "${ARGV0}") - else() - file(GLOB filelist "*") - endif(${ARGV0}) - - foreach(filename ${filelist}) - if(EXISTS "${filename}/CMakeLists.txt") - add_subdirectory(${filename}) - endif(EXISTS "${filename}/CMakeLists.txt") - endforeach() -endmacro(project_subdirs_add) - -set(CMAKE_BUILD_TYPE Debug CACHE STRING "the type of build") -set(CMAKE_POSITION_INDEPENDENT_CODE ON) -set(CMP0048 1) - -# Include project configuration -# ------------------------------ -project(${PROJECT_NAME} VERSION ${PROJECT_VERSION} LANGUAGES ${PROJECT_LANGUAGES}) -set(PROJECT_WGT_DIR "packaging/wgt" CACHE PATH "Subpath to the widget directory") -set(PROJECT_LIBDIR "libs" CACHE PATH "Subpath to libraries") -set(PROJECT_RESOURCES "data" CACHE PATH "Subpath to data") - -INCLUDE(FindPkgConfig) -INCLUDE(CheckIncludeFiles) -INCLUDE(CheckLibraryExists) -INCLUDE(GNUInstallDirs) - -# Default compilation options -############################################################################ -link_libraries(-Wl,--as-needed -Wl,--gc-sections) -add_compile_options(-Wall -Wextra -Wconversion) -add_compile_options(-Wno-unused-parameter) # frankly not using a parameter does it care? -add_compile_options(-Wno-sign-compare -Wno-sign-conversion) -add_compile_options(-Werror=maybe-uninitialized) -add_compile_options(-Werror=implicit-function-declaration) -add_compile_options(-ffunction-sections -fdata-sections) -add_compile_options(-fPIC) -add_compile_options(-g) - -set(CMAKE_C_FLAGS_PROFILING "-g -O2 -pg -Wp,-U_FORTIFY_SOURCE" CACHE STRING "Flags for profiling") -set(CMAKE_C_FLAGS_DEBUG "-g -O2 -ggdb -Wp,-U_FORTIFY_SOURCE" CACHE STRING "Flags for debugging") -set(CMAKE_C_FLAGS_RELEASE "-O2" CACHE STRING "Flags for releasing") -set(CMAKE_C_FLAGS_CCOV "-g -O2 --coverage" CACHE STRING "Flags for coverage test") - -set(CMAKE_CXX_FLAGS_PROFILING "-g -O0 -pg -Wp,-U_FORTIFY_SOURCE") -set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -ggdb -Wp,-U_FORTIFY_SOURCE") -set(CMAKE_CXX_FLAGS_RELEASE "-g -O2") -set(CMAKE_CXX_FLAGS_CCOV "-g -O2 --coverage") - -set(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/Install" CACHE PATH "The path where to install") - -# (BUG!!!) as PKG_CONFIG_PATH does not work [should be en env variable] -set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON CACHE BOOLEAN "Flag for using prefix path") - -# Loop on required package and add options -foreach (PKG_CONFIG ${PKG_REQUIRED_LIST}) - PKG_CHECK_MODULES(${PKG_CONFIG} REQUIRED ${PKG_CONFIG}) - - INCLUDE_DIRECTORIES(${${PKG_CONFIG}_INCLUDE_DIRS}) - list (APPEND link_libraries ${${PKG_CONFIG}_LIBRARIES}) - add_compile_options (${${PKG_CONFIG}_CFLAGS}) -endforeach(PKG_CONFIG) - -# Optional LibEfence Malloc debug library -IF(CMAKE_BUILD_TYPE MATCHES DEBUG) -CHECK_LIBRARY_EXISTS(efence malloc "" HAVE_LIBEFENCE) -IF(HAVE_LIBEFENCE) - MESSAGE(STATUS "Linking with ElectricFence for debugging purposes...") - SET(libefence_LIBRARIES "-lefence") - list (APPEND link_libraries ${libefence_LIBRARIES}) -ENDIF(HAVE_LIBEFENCE) -ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG) - -# set default include directories -INCLUDE_DIRECTORIES(${EXTRA_INCLUDE_DIRS}) - -# If no install dir try to guess some smart default -if(BINDINGS_INSTALL_PREFIX) - set(BINDINGS_INSTALL_DIR ${BINDINGS_INSTALL_PREFIX}/${PROJECT_NAME}) -else() - set(BINDINGS_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}) -endif() - -# Define a default package directory -if(WIDGET_PREFIX) - set(WIDGET_DIR ${WIDGET_PREFIX}/package) -else() - set(WIDGET_DIR ${CMAKE_CURRENT_BINARY_DIR}/package) -endif() - -# and their subsequent subdir -set(WIDGET_BINDIR ${WIDGET_DIR}/bin) -set(WIDGET_ETCDIR ${WIDGET_DIR}/etc) -set(WIDGET_LIBDIR ${WIDGET_DIR}/lib) -set(WIDGET_HTTPDIR ${WIDGET_DIR}/htdocs) -set(WIDGET_DATADIR ${WIDGET_DIR}/data) - -# Default Linkflag -if(NOT BINDINGS_LINK_FLAG) - set(BINDINGS_LINK_FLAG "-Wl,--version-script=${CMAKE_SOURCE_DIR}/etc/export.map") -endif() - -# Add a dummy target to enable global dependency order -# ----------------------------------------------------- -if(EXTRA_DEPENDENCIES_ORDER) - set(DEPENDENCIES_TARGET ${PROJECT_NAME}_extra_dependencies) - add_custom_target(${DEPENDENCIES_TARGET} ALL - DEPENDS ${EXTRA_DEPENDENCY_ORDER} - ) -endif() - -# Print developer helper message when build is done -# ------------------------------------------------------- -macro(project_closing_msg) - get_property(PROJECT_TARGETS_SET GLOBAL PROPERTY PROJECT_TARGETS SET) - get_property(PROJECT_TARGETS GLOBAL PROPERTY PROJECT_TARGETS) - if(CLOSING_MESSAGE AND ${PROJECT_TARGETS_SET}) - add_custom_target(${PROJECT_NAME}_build_done ALL - COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --cyan "++ ${CLOSING_MESSAGE}" - ) - add_dependencies(${PROJECT_NAME}_build_done - ${DEPENDENCIES_TARGET} ${PROJECT_TARGETS}) - endif() -endmacro() diff --git a/templates/native/packaging/wgt/config.xml.in b/templates/native/packaging/wgt/config.xml.in deleted file mode 100644 index 411b210..0000000 --- a/templates/native/packaging/wgt/config.xml.in +++ /dev/null @@ -1,11 +0,0 @@ - - - @PROJECT_NAME@ - - - @PROJECT_DESCRIPTION@ - @PROJECT_AUTHOR@ <@PROJECT_AUTHOR_MAIL@> - APL 2.0 - - - diff --git a/templates/native/packaging/wgt/icon.png.in b/templates/native/packaging/wgt/icon.png.in deleted file mode 100644 index fcb5d35f34499e5c9f820621f9c5f537d215be38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5276 zcmWky1ymGD7oOdPr50I2L6DN}T3AY0cqrWs0t<-JjUc&;AfS|Vh%DVo38=&(^$XHS zNQ*v7q#NbuojG^zoO{lkx%1ul=1iP{o;o!pGbI3kT2n*K=t|@M6LR>~+@)kcaHZf5 z+UjcH^1nf7D@(nyPjpsA)} z67+2=Z`P07JgiT-WBd*mh0UZ}E2EfD*SG3Uh$I_I989Zv}ceisyKglt1@A`{kmiqgT+46^OIFF=|GnQ>h5*2w`D2*D`=+KzYVy zDv!)QG!slnijO2{lYbw(v!}jc^XxhLwh_!u!g;y#E??ZLZqETctrr&TU!VXr5^(>i zb{S?ah3nNl1o;TYKMA9Cw-qjL-=%^(qJq@}B@`CD+!!4l-iUt;wg{_X%2qO zE&7uiXjc_xd+gTt$mZD4>xsq(`Vl4)z$=n?un5ID$_ZO~$+_q)8Ci9#lL4yFU?)lX zWvV;s531h!e^Bs3Q$k~jT?%7su`YCzi&H=#IGN5TJ& zLL⪚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 Y69iwFA6WIi`bPwsclFfXsA41k4>7BEsQ>@~ diff --git a/templates/service/.gitignore b/templates/service/.gitignore deleted file mode 100644 index eef9ed9..0000000 --- a/templates/service/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -build -config.xml -*.so -*.wgt diff --git a/templates/service/AGLbuild b/templates/service/AGLbuild deleted file mode 100755 index 5f8f595..0000000 --- a/templates/service/AGLbuild +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/make -f -# Copyright (C) 2015, 2016 "IoT.bzh" -# Author "Romain Forlot" -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -BUILD_DIR := build -PACKAGING_DIR := packaging/wgt - -VPATH = etc:$(PACKAGING_DIR):$(PACKAGING_DIR)/etc:$(BUILD_DIR) - -.PHONY: all clean mrproper package - -all: build - -clean: - @([ -d ${BUILD_DIR} ] && make -C ${BUILD_DIR} clean) || echo Nothing to clean - -mrproper: - @rm -rf ${BUILD_DIR} - -build: ${BUILD_DIR}/Makefile - @cmake --build ${BUILD_DIR} --target all - -package: config.xml.in icon.png.in build | $(PKG_FILELIST) - @mkdir -p ${BUILD_DIR}/$@/bin - @mkdir -p ${BUILD_DIR}/$@/etc - @mkdir -p ${BUILD_DIR}/$@/lib - @mkdir -p ${BUILD_DIR}/$@/htdocs - @mkdir -p ${BUILD_DIR}/$@/data - @mkdir -p package - @cmake --build ${BUILD_DIR} --target widget - @cp ${BUILD_DIR}/*wgt package - -${BUILD_DIR}/Makefile: - @[ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR} - @[ -f ${BUILD_DIR}/Makefile ] || (cd ${BUILD_DIR} && cmake ${CMAKE_OPTS} ..) diff --git a/templates/service/CMakeLists.txt b/templates/service/CMakeLists.txt deleted file mode 100644 index 1ddb659..0000000 --- a/templates/service/CMakeLists.txt +++ /dev/null @@ -1,33 +0,0 @@ -########################################################################### -# Copyright 2015, 2016, 2017 IoT.bzh -# -# author: Romain Forlot -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -########################################################################### - -CMAKE_MINIMUM_REQUIRED(VERSION 3.3) - -include(${CMAKE_CURRENT_SOURCE_DIR}/etc/config.cmake) -include(${CMAKE_CURRENT_SOURCE_DIR}/etc/macros.cmake) - -# Will add each subdirs with a CMakeLists.txt file -project_subdirs_add() - -# Populate each target with LABELS specified. -project_targets_populate() -# Build package widget once populated. -project_package_build() - -#Display CLOSING_MESSAGE specified in config.cmake file. -project_closing_msg() diff --git a/templates/service/README.md b/templates/service/README.md deleted file mode 100644 index 17c9869..0000000 --- a/templates/service/README.md +++ /dev/null @@ -1,66 +0,0 @@ -# Application Framework - Service Template - -## Instructions - -Duplicate directory and adjust names. In particular, replace 'xxxxxx' by a proper service name. - -* adjust CMakeLists.txt (project name and version) -* ajdust config.xml (description, author, license...) -* rename xxxxxx-service-binding.c to something meaningful -* store icon file in icons directory and update the variable PROJECT_ICON in CMakeLists.txt - -## Build - -Run: - -``` -mkdir build -cd build -cmake .. -make -``` - -## Deployment - -Copy the .wgt file on the target through ssh and install it (adjust BOARDIP to your real IP address): - -``` -$ BOARDIP=1.2.3.4 -$ scp xxxxxx-service.wgt root@$BOARDIP:/tmp -$ ssh root@$BOARDIP -# afm-util install /tmp/xxxxxx-service.wgt -# afm-util list -``` - -## Run service manually - -On the target board: - -``` -# afm-util start xxxxxx-server@0.1 -# ps -ef| grep afb-daemon | grep xxx -``` - -## Test using curl - -``` -# PORT=12345 # adjust the port depending in on afb-daemon instance: use ps -ef to check -# curl -v http://localhost:$PORT/api/xxxxxx/ping -* Trying 127.0.0.1... -* Connected to localhost (127.0.0.1) port 5555 (#0) -> GET /api/xxxxxx/ping HTTP/1.1 -> Host: localhost:5555 -> User-Agent: curl/7.44.0 -> Accept: */* -> -< HTTP/1.1 200 OK -< Connection: Keep-Alive -< Content-Length: 184 -< Set-Cookie: x-afb-uuid-5555=30ab9573-cbc8-43f7-b385-0186feebc69a; Path=/api; Max-Age=3600; HttpOnly -< Date: Sun, 10 Jul 2016 00:09:14 GMT -< -* Connection #0 to host localhost left intact -{"response":"Some String","jtype":"afb-reply","request":{"status":"success","info":"Ping Binder Daemon tag=pingSample count=1 query={ }","uuid":"30ab9573-cbc8-43f7-b385-0186feebc69a"}}root@porter:~# -``` - - diff --git a/templates/service/binding/CMakeLists.txt b/templates/service/binding/CMakeLists.txt deleted file mode 100644 index 0d08b90..0000000 --- a/templates/service/binding/CMakeLists.txt +++ /dev/null @@ -1,69 +0,0 @@ -########################################################################### -# Copyright 2015, 2016, 2017 IoT.bzh -# -# author: Romain Forlot -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -########################################################################### - -# Project target list -# -------------------- -# Add target to project dependency list. Name specified as argument will be -# added to the project target list and the variable ${TARGET_NAME} become -# available with that value. -PROJECT_TARGET_ADD(xxx-service) - - # Define project Targets - add_library(${TARGET_NAME} MODULE - ${TARGET_NAME}-hat.c - ${TARGET_NAME}-cb.c - ) - - # Targets properties - # ------------------ - # Target properties will be used to build package tree that will be - # built using project_package_build. - # OUTPUT_NAME: Depends what is the name of your output file, it is - # mandatory to specify which is its name with target the property - # OUTPUT_NAME for your target. If file name is same of your target then - # use variable ${TARGET_NAME}. - # LABELS: Choose between "BINDING", "HTDOCS", "EXECUTABLE" depending of - # the type of your target. - # PREFIX: This prefix will be added on the output file name specify with - # OUTPUT_NAME. By default, there isn't PREFIX on target except on - # library target with is "lib". - SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES - PREFIX "afs-" - LABELS "BINDING" - LINK_FLAGS ${BINDINGS_LINK_FLAG} - OUTPUT_NAME ${TARGET_NAME}) - - # Link - # ---- - # Library dependencies (include updates automatically). Linked to the - # target. - TARGET_LINK_LIBRARIES(${TARGET_NAME} - ${link_libraries}) - - # Include - # ------- - # Define target includes search and dependencies. Choose between PUBLIC, - # PRIVATE or INTERFACE. PRIVATE and PUBLIC items will populate the - # INCLUDE_DIRECTORIES property of . PUBLIC and INTERFACE items - # will populate the INTERFACE_INCLUDE_DIRECTORIES property of . - # The following arguments specify include directories. - # INTERFACE_INCLUDE_DIRECTORIES will be read at the - # TARGET_LINK_LIBRARIES step for others targets that link against this - TARGET_INCLUDE_DIRECTORIES(${TARGET_NAME} - PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) - diff --git a/templates/service/binding/xxx-service-cb.c b/templates/service/binding/xxx-service-cb.c deleted file mode 100644 index 9b765ed..0000000 --- a/templates/service/binding/xxx-service-cb.c +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Copyright (C) 2015, 2016 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#define _GNU_SOURCE -#include -#include -#include - -#include - #include "xxx-service-hat.h" - - const struct afb_binding_interface *interface; - - static struct event *events = 0; - -/* searchs the event of tag */ - struct event *event_get(const char *tag) -{ - struct event *e = events; - while(e && strcmp(e->tag, tag)) - e = e->next; - return e; -} - -/* deletes the event of tag */ - int event_del(const char *tag) -{ - struct event *e, **p; - - /* check exists */ - e = event_get(tag); - if (!e) return -1; - - /* unlink */ - p = &events; - while(*p != e) p = &(*p)->next; - *p = e->next; - - /* destroys */ - afb_event_drop(e->event); - free(e); - return 0; -} - -/* creates the event of tag */ - int event_add(const char *tag, const char *name) -{ - struct event *e; - - /* check valid tag */ - e = event_get(tag); - if (e) return -1; - - /* creation */ - e = malloc(strlen(tag) + sizeof *e); - if (!e) return -1; - strcpy(e->tag, tag); - - /* make the event */ - e->event = afb_daemon_make_event(interface->daemon, name); - if (!e->event.closure) { free(e); return -1; } - - /* link */ - e->next = events; - events = e; - return 0; -} - - int event_subscribe(struct afb_req request, const char *tag) -{ - struct event *e; - e = event_get(tag); - return e ? afb_req_subscribe(request, e->event) : -1; -} - - int event_unsubscribe(struct afb_req request, const char *tag) -{ - struct event *e; - e = event_get(tag); - return e ? afb_req_unsubscribe(request, e->event) : -1; -} - - int event_push(struct json_object *args, const char *tag) -{ - struct event *e; - e = event_get(tag); - return e ? afb_event_push(e->event, json_object_get(args)) : -1; -} - -// Sample Generic Ping Debug API - static void ping(struct afb_req request, json_object *jresp, const char *tag) -{ - static int pingcount = 0; - json_object *query = afb_req_json(request); - afb_req_success_f(request, jresp, "Ping Binder Daemon tag=%s count=%d query=%s", tag, ++pingcount, json_object_to_json_string(query)); -} - - void pingSample (struct afb_req request) -{ - ping(request, json_object_new_string ("Some String"), "pingSample"); -} - - void pingFail (struct afb_req request) -{ - afb_req_fail(request, "failed", "Ping Binder Daemon fails"); -} - - void pingNull (struct afb_req request) -{ - ping(request, NULL, "pingNull"); -} - - void pingBug (struct afb_req request) -{ - ping((struct afb_req){NULL,NULL}, NULL, "pingBug"); -} - - void pingEvent(struct afb_req request) -{ - json_object *query = afb_req_json(request); - afb_daemon_broadcast_event(interface->daemon, "event", json_object_get(query)); - ping(request, json_object_get(query), "event"); -} - - -// For samples https://linuxprograms.wordpress.com/2010/05/20/json-c-libjson-tutorial/ - void pingJson (struct afb_req request) { - json_object *jresp, *embed; - - jresp = json_object_new_object(); - json_object_object_add(jresp, "myString", json_object_new_string ("Some String")); - json_object_object_add(jresp, "myInt", json_object_new_int (1234)); - - embed = json_object_new_object(); - json_object_object_add(embed, "subObjString", json_object_new_string ("Some String")); - json_object_object_add(embed, "subObjInt", json_object_new_int (5678)); - - json_object_object_add(jresp,"eobj", embed); - - ping(request, jresp, "pingJson"); -} - - void subcallcb (void *prequest, int iserror, json_object *object) -{ - struct afb_req request = afb_req_unstore(prequest); - if (iserror) - afb_req_fail(request, "failed", json_object_to_json_string(object)); - else - afb_req_success(request, object, NULL); - afb_req_unref(request); -} - - void subcall (struct afb_req request) -{ - const char *api = afb_req_value(request, "api"); - const char *verb = afb_req_value(request, "verb"); - const char *args = afb_req_value(request, "args"); - json_object *object = api && verb && args ? json_tokener_parse(args) : NULL; - - if (object == NULL) - afb_req_fail(request, "failed", "bad arguments"); - else - afb_req_subcall(request, api, verb, object, subcallcb, afb_req_store(request)); -} - - void eventadd (struct afb_req request) -{ - const char *tag = afb_req_value(request, "tag"); - const char *name = afb_req_value(request, "name"); - - if (tag == NULL || name == NULL) - afb_req_fail(request, "failed", "bad arguments"); - else if (0 != event_add(tag, name)) - afb_req_fail(request, "failed", "creation error"); - else - afb_req_success(request, NULL, NULL); -} - - void eventdel (struct afb_req request) -{ - const char *tag = afb_req_value(request, "tag"); - - if (tag == NULL) - afb_req_fail(request, "failed", "bad arguments"); - else if (0 != event_del(tag)) - afb_req_fail(request, "failed", "deletion error"); - else - afb_req_success(request, NULL, NULL); -} - - void eventsub (struct afb_req request) -{ - const char *tag = afb_req_value(request, "tag"); - - if (tag == NULL) - afb_req_fail(request, "failed", "bad arguments"); - else if (0 != event_subscribe(request, tag)) - afb_req_fail(request, "failed", "subscription error"); - else - afb_req_success(request, NULL, NULL); -} - - void eventunsub (struct afb_req request) -{ - const char *tag = afb_req_value(request, "tag"); - - if (tag == NULL) - afb_req_fail(request, "failed", "bad arguments"); - else if (0 != event_unsubscribe(request, tag)) - afb_req_fail(request, "failed", "unsubscription error"); - else - afb_req_success(request, NULL, NULL); -} - - void eventpush (struct afb_req request) -{ - const char *tag = afb_req_value(request, "tag"); - const char *data = afb_req_value(request, "data"); - json_object *object = data ? json_tokener_parse(data) : NULL; - - if (tag == NULL) - afb_req_fail(request, "failed", "bad arguments"); - else if (0 > event_push(object, tag)) - afb_req_fail(request, "failed", "push error"); - else - afb_req_success(request, NULL, NULL); -} \ No newline at end of file diff --git a/templates/service/binding/xxx-service-hat.c b/templates/service/binding/xxx-service-hat.c deleted file mode 100644 index 2e172e8..0000000 --- a/templates/service/binding/xxx-service-hat.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2015, 2016 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#define _GNU_SOURCE -#include -#include -#include - -#include -#include "xxx-service-hat.h" - -const struct afb_binding_interface *interface; - -// NOTE: this sample does not use session to keep test a basic as possible -// in real application most APIs should be protected with AFB_SESSION_CHECK -static const struct afb_verb_desc_v1 verbs[]= { - {"ping" , AFB_SESSION_NONE, pingSample , "Ping the binder"}, - {"pingfail" , AFB_SESSION_NONE, pingFail , "Ping that fails"}, - {"pingnull" , AFB_SESSION_NONE, pingNull , "Ping which returns NULL"}, - {"pingbug" , AFB_SESSION_NONE, pingBug , "Do a Memory Violation"}, - {"pingJson" , AFB_SESSION_NONE, pingJson , "Return a JSON object"}, - {"pingevent", AFB_SESSION_NONE, pingEvent , "Send an event"}, - {"subcall", AFB_SESSION_NONE, subcall , "Call api/verb(args)"}, - {"eventadd", AFB_SESSION_NONE, eventadd , "adds the event of 'name' for the 'tag'"}, - {"eventdel", AFB_SESSION_NONE, eventdel , "deletes the event of 'tag'"}, - {"eventsub", AFB_SESSION_NONE, eventsub , "subscribes to the event of 'tag'"}, - {"eventunsub",AFB_SESSION_NONE, eventunsub , "unsubscribes to the event of 'tag'"}, - {"eventpush", AFB_SESSION_NONE, eventpush , "pushes the event of 'tag' with the 'data'"}, - {NULL} -}; - -static const struct afb_binding plugin_desc = { - .type = AFB_BINDING_VERSION_1, - .v1 = { - .info = "xxxxxx service", - .prefix = "xxxxxx", - .verbs = verbs - } -}; - -const struct afb_binding *afbBindingV1Register (const struct afb_binding_interface *itf) -{ - interface = itf; - return &plugin_desc; -} diff --git a/templates/service/binding/xxx-service-hat.h b/templates/service/binding/xxx-service-hat.h deleted file mode 100644 index a80c0c2..0000000 --- a/templates/service/binding/xxx-service-hat.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (C) 2015, 2016 "IoT.bzh" - * Author "Fulup Ar Foll" - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#ifndef SERVICEHAT_H -#define SERVICEHAT_H - -#define _GNU_SOURCE -#include -#include -#include - -#include - -extern const struct afb_binding_interface *interface; - -struct event -{ - struct event *next; - struct afb_event event; - char tag[1]; -}; - -/* searchs the event of tag */ -struct event *event_get(const char *tag); - -/* deletes the event of tag */ -int event_del(const char *tag); - -/* creates the event of tag */ -int event_add(const char *tag, const char *name); - -int event_subscribe(struct afb_req request, const char *tag); - -int event_unsubscribe(struct afb_req request, const char *tag); - -int event_push(struct json_object *args, const char *tag); - -void pingSample (struct afb_req request); - -void pingFail (struct afb_req request); - -void pingNull (struct afb_req request); - -void pingBug (struct afb_req request); - -void pingEvent(struct afb_req request); - -// For samples https://linuxprograms.wordpress.com/2010/05/20/json-c-libjson-tutorial/ -void pingJson (struct afb_req request); - -void subcallcb (void *prequest, int iserror, json_object *object); - -void subcall (struct afb_req request); - -void eventadd (struct afb_req request); - -void eventdel (struct afb_req request); - -void eventsub (struct afb_req request); - -void eventunsub (struct afb_req request); - -void eventpush (struct afb_req request); - -#endif \ No newline at end of file diff --git a/templates/service/etc/config.cmake b/templates/service/etc/config.cmake deleted file mode 100644 index e614619..0000000 --- a/templates/service/etc/config.cmake +++ /dev/null @@ -1,109 +0,0 @@ -########################################################################### -# Copyright 2015, 2016, 2017 IoT.bzh -# -# author: Fulup Ar Foll -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -########################################################################### - -# Project Info -# ------------------ -set(PROJECT_NAME service-example) -set(VERSION "0.0") -set(PROJECT_PRETTY_NAME "Service binding Example") -set(PROJECT_DESCRIPTION "service binding AGL application example") -set(PROJECT_URL "https://gerrit.automotivelinux.org/gerrit/apps/app-templates") -set(PROJECT_AUTHOR "Last Name, First Name") -set(PROJECT_AUTHOR_MAIL "example.man@bigouden.bzh") -set(PROJECT_ICON "icon.png") - -# Compilation Mode (DEBUG, RELEASE) -# ---------------------------------- -set(CMAKE_BUILD_TYPE "DEBUG") - -# Compiler selection if needed. Impose a minimal version. -# ----------------------------------------------- -set (gcc_minimal_version 4.9) - -# PKG_CONFIG required packages -# ----------------------------- -set (PKG_REQUIRED_LIST - json-c - afb-daemon -) - -# Static constante definition -# ----------------------------- -add_compile_options() - -# LANG Specific compile flags set for all build types -set(CMAKE_C_FLAGS "") -set(CMAKE_CXX_FLAGS "") - -# Print a helper message when every thing is finished -# ---------------------------------------------------- -set(CLOSING_MESSAGE "Test launching application with : afb-daemon --rootdir=\$\$(pwd)/package --ldpaths=\$\$(pwd)/package/lib --port=1234 --roothttp=\$\$(pwd)/package/htdocs --tracereq=common --token=\"1\" --verbose then using command 'afb-client-demo ws://localhost:1234/api?token=1' to communicate with the service") -set(WIDGET_MESSAGE "Install widget file using in the target : afm-util install ${PROJECT_NAME}.wgt") - -# (BUG!!!) as PKG_CONFIG_PATH does not work [should be an env variable] -# --------------------------------------------------------------------- -set(CMAKE_INSTALL_PREFIX ${HOME}/opt) -set(CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX}/lib64/pkgconfig ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig) -set(LD_LIBRARY_PATH ${CMAKE_INSTALL_PREFIX}/lib64 ${CMAKE_INSTALL_PREFIX}/lib) - -# Optional dependencies order -# --------------------------- -#set(EXTRA_DEPENDENCIES_ORDER) - -# Optional Extra global include path -# ----------------------------------- -#set(EXTRA_INCLUDE_DIRS) - -# Optional extra libraries -# ------------------------- -#set(EXTRA_LINK_LIBRARIES) - -# Optional force binding installation -# ------------------------------------ -# set(BINDINGS_INSTALL_PREFIX PrefixPath ) - -# Optional force widget prefix generation -# ------------------------------------------------ -# set(WIDGET_PREFIX DestinationPath) - -# Optional Widget entry point file. -# --------------------------------------------------------- - # This is the file that will be executed, loaded,... -# at launch time by the application framework - -# set(WIDGET_ENTRY_POINT EntryPoint_Path) - -# Optional Widget Mimetype specification -# -------------------------------------------------- -# Choose between : -# - application/x-executable -# - application/vnd.agl.url -# - application/vnd.agl.service -# - application/vnd.agl.native -# - text/vnd.qt.qml -# - text/html -# - application/vnd.agl.qml -# - application/vnd.agl.qml.hybrid -# - application/vnd.agl.html.hybrid -# -# set(WIDGET_TYPE MimeType) - -# Optional force binding Linking flag -# ------------------------------------ -# set(BINDINGS_LINK_FLAG LinkOptions ) - diff --git a/templates/service/etc/export.map b/templates/service/etc/export.map deleted file mode 100644 index ee2f413..0000000 --- a/templates/service/etc/export.map +++ /dev/null @@ -1 +0,0 @@ -{ global: afbBindingV*; local: *; }; diff --git a/templates/service/etc/macros.cmake b/templates/service/etc/macros.cmake deleted file mode 100644 index 18af27e..0000000 --- a/templates/service/etc/macros.cmake +++ /dev/null @@ -1,263 +0,0 @@ -########################################################################### -# Copyright 2015, 2016, 2017 IoT.bzh -# -# author: Fulup Ar Foll -# contrib: Romain Forlot -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -########################################################################### - - -#-------------------------------------------------------------------------- -# WARNING: -# Do not change this cmake template -# Customise your preferences in "./etc/config.cmake" -#-------------------------------------------------------------------------- - - -# Generic useful macro -# ----------------------- -macro(PROJECT_TARGET_ADD TARGET_NAME) - set_property(GLOBAL APPEND PROPERTY PROJECT_TARGETS ${TARGET_NAME}) - set(TARGET_NAME ${TARGET_NAME}) -endmacro(PROJECT_TARGET_ADD) - -# Check GCC minimal version version -if (gcc_minimal_version) - message ("-- Check gcc_minimal_version (found gcc version ${CMAKE_C_COMPILER_VERSION}) (found g++ version ${CMAKE_CXX_COMPILER_VERSION})") -if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${gcc_minimal_version} OR CMAKE_C_COMPILER_VERSION VERSION_LESS ${gcc_minimal_version}) - message(FATAL_ERROR "**** FATAL: Require at least gcc-${gcc_minimal_version} please set CMAKE_C[XX]_COMPILER") -endif() -endif(gcc_minimal_version) - -macro(defstr name value) - add_definitions(-D${name}=${value}) -endmacro(defstr) - -# WGT packaging -macro(project_targets_populate) - add_custom_target(MAIN_POPULATE) - get_property(PROJECT_TARGETS GLOBAL PROPERTY PROJECT_TARGETS) - foreach(TARGET ${PROJECT_TARGETS}) - get_target_property(T ${TARGET} LABELS) - if(T) - # Declaration of a custom command that will populate widget tree with the target - set(POPULE_WIDGET_TARGET "project_populate_${TARGET}") - - get_target_property(P ${TARGET} PREFIX) - get_target_property(BD ${TARGET} BINARY_DIR) - get_target_property(OUT ${TARGET} OUTPUT_NAME) - - if(P MATCHES "NOTFOUND$") - if (${T} STREQUAL "BINDING") - set(P "lib") - else() - set(P "") - endif() - endif() - - if(${T} STREQUAL "BINDING") - add_custom_command(OUTPUT ${WIDGET_LIBDIR}/${P}${TARGET}.so - DEPENDS ${TARGET} - COMMAND mkdir -p ${WIDGET_LIBDIR} - COMMAND cp ${BD}/${P}${OUT}.so ${WIDGET_LIBDIR} - ) - add_custom_target(${POPULE_WIDGET_TARGET} DEPENDS ${WIDGET_LIBDIR}/${P}${TARGET}.so) - add_dependencies(MAIN_POPULATE ${POPULE_WIDGET_TARGET}) - elseif(${T} STREQUAL "EXECUTABLE") - add_custom_command(OUTPUT ${WIDGET_BINDIR}/${P}${TARGET} - DEPENDS ${TARGET} - COMMAND mkdir -p ${WIDGET_BINDIR} - COMMAND cp ${BD}/${P}${OUT} ${WIDGET_BINDIR} - ) - add_custom_target(${POPULE_WIDGET_TARGET} DEPENDS ${WIDGET_BINDIR}/${P}${TARGET}) - add_dependencies(MAIN_POPULATE ${POPULE_WIDGET_TARGET}) - elseif(${T} STREQUAL "HTDOCS") - add_custom_command(OUTPUT ${WIDGET_HTTPDIR} - DEPENDS ${TARGET} - COMMAND cp -r ${BD}/${P}${OUT} ${WIDGET_HTTPDIR} - ) - add_custom_target(${POPULE_WIDGET_TARGET} DEPENDS ${WIDGET_HTTPDIR}) - add_dependencies(MAIN_POPULATE ${POPULE_WIDGET_TARGET}) - elseif(${T} STREQUAL "DATA") - add_custom_command(OUTPUT ${WIDGET_DATADIR} - DEPENDS ${TARGET} - COMMAND cp -r ${BD}/${P}${OUT} ${WIDGET_DATADIR} - ) - add_custom_target(${POPULE_WIDGET_TARGET} DEPENDS ${WIDGET_HTTPDIR}) - add_dependencies(MAIN_POPULATE ${POPULE_WIDGET_TARGET}) - endif(${T} STREQUAL "BINDING") -# elseif(${CMAKE_BUILD_TYPE} MATCHES "[Dd][Ee][Bb][Uu][Gg]") -# MESSAGE(WARNING "This target, ${TARGET}, will be not be included in the package.") - endif() - endforeach() -endmacro(project_targets_populate) - -macro(project_package_build) - if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_WGT_DIR}/config.xml.in OR NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_WGT_DIR}/${PROJECT_ICON}.in) - MESSAGE(FATAL_ERROR "Missing mandatory files: you need config.xml.in and ${PROJECT_ICON}.in files in ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_WGT_DIR} folder.") - endif() - - if(NOT EXISTS ${WIDGET_DIR}/config.xml.in OR NOT EXISTS ${WIDGET_DIR}/${PROJECT_ICON}.in) - configure_file(${PROJECT_WGT_DIR}/config.xml.in ${WIDGET_DIR}/config.xml) - file(COPY ${PROJECT_WGT_DIR}/${PROJECT_ICON}.in DESTINATION ${WIDGET_DIR}/${PROJECT_ICON}) - endif(NOT EXISTS ${WIDGET_DIR}/config.xml.in OR NOT EXISTS ${WIDGET_DIR}/${PROJECT_ICON}.in) - - file(GLOB PROJECT_CONF_FILES "${PROJECT_WGT_DIR}/etc/*") - if(${PROJECT_CONF_FILES}) - file(COPY "${PROJECT_WGT_DIR}/etc/*" DESTINATION ${WIDGET_ETCDIR}/) - endif(${PROJECT_CONF_FILES}) - - add_custom_command(OUTPUT ${PROJECT_NAME}.wgt - DEPENDS ${PROJECT_TARGETS} - COMMAND wgtpkg-pack -f -o ${PROJECT_NAME}.wgt ${WIDGET_DIR} - ) - - add_custom_target(widget DEPENDS ${PROJECT_NAME}.wgt) - add_dependencies(widget MAIN_POPULATE) - set(ADDITIONAL_MAKE_CLEAN_FILES, "${PROJECT_NAME}.wgt") - - if(WIDGET_MESSAGE) - add_custom_command(TARGET widget - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --cyan "++ ${WIDGET_MESSAGE}") - endif() -endmacro(project_package_build) - -macro(project_subdirs_add) - if(${ARGV0}) - file(GLOB filelist "${ARGV0}") - else() - file(GLOB filelist "*") - endif(${ARGV0}) - - foreach(filename ${filelist}) - if(EXISTS "${filename}/CMakeLists.txt") - add_subdirectory(${filename}) - endif(EXISTS "${filename}/CMakeLists.txt") - endforeach() -endmacro(project_subdirs_add) - -set(CMAKE_BUILD_TYPE Debug CACHE STRING "the type of build") -set(CMAKE_POSITION_INDEPENDENT_CODE ON) -set(CMP0048 1) - -# Include project configuration -# ------------------------------ -project(${PROJECT_NAME} VERSION ${PROJECT_VERSION} LANGUAGES ${PROJECT_LANGUAGES}) -set(PROJECT_WGT_DIR "packaging/wgt" CACHE PATH "Subpath to the widget directory") -set(PROJECT_LIBDIR "libs" CACHE PATH "Subpath to libraries") -set(PROJECT_RESOURCES "data" CACHE PATH "Subpath to data") - -INCLUDE(FindPkgConfig) -INCLUDE(CheckIncludeFiles) -INCLUDE(CheckLibraryExists) -INCLUDE(GNUInstallDirs) - -# Default compilation options -############################################################################ -link_libraries(-Wl,--as-needed -Wl,--gc-sections) -add_compile_options(-Wall -Wextra -Wconversion) -add_compile_options(-Wno-unused-parameter) # frankly not using a parameter does it care? -add_compile_options(-Wno-sign-compare -Wno-sign-conversion) -add_compile_options(-Werror=maybe-uninitialized) -add_compile_options(-Werror=implicit-function-declaration) -add_compile_options(-ffunction-sections -fdata-sections) -add_compile_options(-fPIC) -add_compile_options(-g) - -set(CMAKE_C_FLAGS_PROFILING "-g -O2 -pg -Wp,-U_FORTIFY_SOURCE" CACHE STRING "Flags for profiling") -set(CMAKE_C_FLAGS_DEBUG "-g -O2 -ggdb -Wp,-U_FORTIFY_SOURCE" CACHE STRING "Flags for debugging") -set(CMAKE_C_FLAGS_RELEASE "-O2" CACHE STRING "Flags for releasing") -set(CMAKE_C_FLAGS_CCOV "-g -O2 --coverage" CACHE STRING "Flags for coverage test") - -set(CMAKE_CXX_FLAGS_PROFILING "-g -O0 -pg -Wp,-U_FORTIFY_SOURCE") -set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -ggdb -Wp,-U_FORTIFY_SOURCE") -set(CMAKE_CXX_FLAGS_RELEASE "-g -O2") -set(CMAKE_CXX_FLAGS_CCOV "-g -O2 --coverage") - -set(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/Install" CACHE PATH "The path where to install") - -# (BUG!!!) as PKG_CONFIG_PATH does not work [should be en env variable] -set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON CACHE BOOLEAN "Flag for using prefix path") - -# Loop on required package and add options -foreach (PKG_CONFIG ${PKG_REQUIRED_LIST}) - PKG_CHECK_MODULES(${PKG_CONFIG} REQUIRED ${PKG_CONFIG}) - - INCLUDE_DIRECTORIES(${${PKG_CONFIG}_INCLUDE_DIRS}) - list (APPEND link_libraries ${${PKG_CONFIG}_LIBRARIES}) - add_compile_options (${${PKG_CONFIG}_CFLAGS}) -endforeach(PKG_CONFIG) - -# Optional LibEfence Malloc debug library -IF(CMAKE_BUILD_TYPE MATCHES DEBUG) -CHECK_LIBRARY_EXISTS(efence malloc "" HAVE_LIBEFENCE) -IF(HAVE_LIBEFENCE) - MESSAGE(STATUS "Linking with ElectricFence for debugging purposes...") - SET(libefence_LIBRARIES "-lefence") - list (APPEND link_libraries ${libefence_LIBRARIES}) -ENDIF(HAVE_LIBEFENCE) -ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG) - -# set default include directories -INCLUDE_DIRECTORIES(${EXTRA_INCLUDE_DIRS}) - -# If no install dir try to guess some smart default -if(BINDINGS_INSTALL_PREFIX) - set(BINDINGS_INSTALL_DIR ${BINDINGS_INSTALL_PREFIX}/${PROJECT_NAME}) -else() - set(BINDINGS_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}) -endif() - -# Define a default package directory -if(WIDGET_PREFIX) - set(WIDGET_DIR ${WIDGET_PREFIX}/package) -else() - set(WIDGET_DIR ${CMAKE_CURRENT_BINARY_DIR}/package) -endif() - -# and their subsequent subdir -set(WIDGET_BINDIR ${WIDGET_DIR}/bin) -set(WIDGET_ETCDIR ${WIDGET_DIR}/etc) -set(WIDGET_LIBDIR ${WIDGET_DIR}/lib) -set(WIDGET_HTTPDIR ${WIDGET_DIR}/htdocs) -set(WIDGET_DATADIR ${WIDGET_DIR}/data) - -# Default Linkflag -if(NOT BINDINGS_LINK_FLAG) - set(BINDINGS_LINK_FLAG "-Wl,--version-script=${CMAKE_SOURCE_DIR}/etc/export.map") -endif() - -# Add a dummy target to enable global dependency order -# ----------------------------------------------------- -if(EXTRA_DEPENDENCIES_ORDER) - set(DEPENDENCIES_TARGET ${PROJECT_NAME}_extra_dependencies) - add_custom_target(${DEPENDENCIES_TARGET} ALL - DEPENDS ${EXTRA_DEPENDENCY_ORDER} - ) -endif() - -# Print developer helper message when build is done -# ------------------------------------------------------- -macro(project_closing_msg) - get_property(PROJECT_TARGETS_SET GLOBAL PROPERTY PROJECT_TARGETS SET) - get_property(PROJECT_TARGETS GLOBAL PROPERTY PROJECT_TARGETS) - if(CLOSING_MESSAGE AND ${PROJECT_TARGETS_SET}) - add_custom_target(${PROJECT_NAME}_build_done ALL - COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --cyan "++ ${CLOSING_MESSAGE}" - ) - add_dependencies(${PROJECT_NAME}_build_done - ${DEPENDENCIES_TARGET} ${PROJECT_TARGETS}) - endif() -endmacro() diff --git a/templates/service/packaging/wgt/config.xml.in b/templates/service/packaging/wgt/config.xml.in deleted file mode 100644 index fab0b9d..0000000 --- a/templates/service/packaging/wgt/config.xml.in +++ /dev/null @@ -1,11 +0,0 @@ - - - @PROJECT_NAME@ - - - @PROJECT_DESCRIPTION@ - @PROJECT_AUTHOR@ <@PROJECT_AUTHOR_MAIL@> - APL 2.0 - - - diff --git a/templates/service/packaging/wgt/icon.png.in b/templates/service/packaging/wgt/icon.png.in deleted file mode 100644 index 3aeb6f0291318218ed75ea99bdd69e6b56796e0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13273 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 KDpMh467qj88(KgB -- 2.16.6